@swapkit/toolboxes 4.15.13 → 4.15.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/src/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var IU=Object.defineProperty;var PU=(y)=>y;function tU(y,n){this[y]=PU.bind(null,n)}var yy=(y,n)=>{for(var o in n)IU(y,o,{get:n[o],enumerable:!0,configurable:!0,set:tU.bind(n,o)})};var I=(y,n)=>()=>(y&&(n=y(y=0)),n);var F=((y)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(y,{get:(n,o)=>(typeof require<"u"?require:n)[o]}):y)(function(y){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+y+'" is not supported')});import{AssetValue as nn,Chain as py,derivationPathToString as pU,getChainConfig as Q0,getRPCUrlSync as xC,NetworkDerivationPath as EU,SwapKitError as Ty}from"@swapkit/helpers";import{match as FC,P as Z0}from"ts-pattern";function Df(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let n=y.slice(2);if(n.length===0||n.length>64)return!1;return VU.test(n)}function $C({derivationPath:y,provider:n,...o}={}){let f,T=pU(y||EU[py.Aptos],{allHardened:!0});async function C(){if(f)return f;return f=await FC(o).with({phrase:Z0.string},async({phrase:Q})=>{let{Ed25519Account:B}=await import("@aptos-labs/ts-sdk");return B.fromDerivationPath({mnemonic:Q,path:T})}).with({signer:Z0.any},({signer:Q})=>Q).otherwise(()=>{return}),f}async function H(){let{Aptos:Q,AptosConfig:B}=await import("@aptos-labs/ts-sdk"),D=new B({fullnode:n||xC(py.Aptos)});return new Q(D)}async function U(){return(await C())?.accountAddress.toString()||""}async function _(Q){let B=Q||await U();if(!B)throw new Ty("toolbox_aptos_address_required");let{baseDecimal:D,chain:L}=Q0(py.Aptos);try{let w=await H(),N=await w.getAccountAPTAmount({accountAddress:B}),z=[nn.from({chain:L,fromBaseDecimal:D,value:N.toString()})],J=await w.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:B}}}});for(let Y of J){if(Y.asset_type===qf.COIN_TYPE||Number(Y.amount)<=0)continue;let R=Y.asset_type;if(R){let q=("metadata"in Y&&typeof Y.metadata==="object"&&Y.metadata!==null?Y.metadata:void 0)?.decimals??D;z.push(nn.from({asset:`${py.Aptos}.APT-${R}`,fromBaseDecimal:q,value:String(Y.amount)}))}}return z}catch{return[nn.from({chain:L})]}}async function A(Q){if(!Q){let{baseDecimal:J}=Q0(py.Aptos),Y=n||xC(py.Aptos),R=await fetch(`${Y}/estimate_gas_price`),{gas_estimate:l}=await R.json();return nn.from({chain:py.Aptos,fromBaseDecimal:J,value:String(l)})}let B=await C();if(!B)throw new Ty("toolbox_aptos_no_signer");let D=await Z(Q),L=await H(),[w]=await L.transaction.simulate.simple({signerPublicKey:B.publicKey,transaction:D});if(!w)throw new Ty("toolbox_aptos_transaction_creation_error");let N=BigInt(w.gas_used)*BigInt(w.gas_unit_price),{baseDecimal:z}=Q0(py.Aptos);return nn.from({chain:py.Aptos,fromBaseDecimal:z,value:N.toString()})}async function Z({recipient:Q,assetValue:B,maxGasAmount:D,sender:L}){if(!Df(Q))throw new Ty("core_transaction_invalid_recipient_address");let w=L||await U();if(!w)throw new Ty("toolbox_aptos_no_sender");let{AccountAddress:N}=await import("@aptos-labs/ts-sdk"),z=await H(),J=N.from(w);try{let Y=B.isGasAsset?qf.TRANSFER:qf.FUNGIBLE_STORE_TRANSFER,R=FC({address:B?.address,isGasAsset:B.isGasAsset}).with({isGasAsset:!0},()=>[N.from(Q),B.getBaseValue("bigint")]).with({address:Z0.string},({address:l})=>[N.from(l),N.from(Q),B.getBaseValue("bigint")]).otherwise(()=>null);if(!R)throw new Ty("toolbox_aptos_missing_asset_type");return z.transaction.build.simple({data:{function:Y,functionArguments:R,typeArguments:B.isGasAsset?[]:[qf.FUNGIBLE_ASSET_METADATA]},options:D?{maxGasAmount:D}:void 0,sender:J})}catch(Y){if(Y instanceof Ty)throw Y;throw new Ty("toolbox_aptos_transaction_creation_error",Y)}}async function M(Q){let B=await C();if(!B)throw new Ty("toolbox_aptos_no_signer");return(await H()).transaction.sign({signer:B,transaction:Q})}async function W({assetValue:Q,maxGasAmount:B,recipient:D}){let L=await C();if(!L)throw new Ty("toolbox_aptos_no_signer");if(!Df(D))throw new Ty("core_transaction_invalid_recipient_address");try{let w=L.accountAddress.toString(),N=await Z({assetValue:Q,maxGasAmount:B,recipient:D,sender:w});return(await(await H()).signAndSubmitTransaction({signer:L,transaction:N})).hash}catch(w){if(w instanceof Ty)throw w;throw new Ty("toolbox_aptos_transaction_creation_error",w)}}async function G({senderAuthenticator:Q,transaction:B}){try{return(await(await H()).transaction.submit.simple({senderAuthenticator:Q,transaction:B})).hash}catch(D){throw new Ty("toolbox_aptos_broadcast_error",D)}}async function X(Q){let B=await M(Q);return G({senderAuthenticator:B,transaction:Q})}return{broadcastTransaction:G,createTransaction:Z,estimateTransactionFee:A,getAddress:U,getBalance:_,signAndBroadcastTransaction:X,signTransaction:M,transfer:W,validateAddress:Df}}function IC({provider:y}){return async function({assetValue:o,recipient:f}){if(!Df(f))throw new Ty("core_transaction_invalid_recipient_address");let{AccountAddress:T}=await import("@aptos-labs/ts-sdk");if(o.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[T.from(f).toString(),o.getBaseValue("string")],function:qf.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let C=o.address;if(!C)throw new Ty("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[C,T.from(f).toString(),o.getBaseValue("string")],function:qf.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[qf.FUNGIBLE_ASSET_METADATA]})).hash}}var qf,VU;var PC=I(()=>{qf={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},VU=/^[0-9a-fA-F]+$/});var vn={};yy(vn,{validateAptosAddress:()=>Df,getAptosToolbox:()=>$C,createAptosExtensionTransfer:()=>IC});var jn=I(()=>{PC()});import{AssetValue as tC,getChainConfig as bU}from"@swapkit/helpers";import{SwapKitApi as uU}from"@swapkit/helpers/api";function pC(){function y(){let n=Date.now(),o=J0||n;return J0=o,n>J0?n:o+1}return vU+y().toString(36)}function Xy(y){return async function(o,f=!0){let T=await uU.getChainBalance({address:o,chain:y,scamFilter:f}),{baseDecimal:C}=bU(y),H=T.map(({identifier:_,value:A,decimal:Z})=>{return new tC({decimal:Z||C,identifier:_,value:A})});if(!H.some((_)=>_.isGasAsset))return[tC.from({chain:y}),...H];return H}}var vU,J0=0;var Ey=I(()=>{vU=typeof process<"u"&&process.pid?process.pid.toString(36):""});function Tn(y){return{getBalance:Xy(y)}}function jU(y){return y}var Kn=I(()=>{Ey()});import{Chain as c,getChainConfig as B0,getRPCUrl as KU,SwapKitError as hn}from"@swapkit/helpers";import{getAddress as VC,Interface as hU,JsonRpcProvider as mU}from"ethers";import{match as bC}from"ts-pattern";function uC(y){return new mU(y)}async function z0(y,n){return uC(n||await KU(y))}function on(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function N0(y){let{explorerUrl:n,chainIdHex:o,rpcUrls:f}=B0(y);return function(){return y!==c.Ethereum?{...cU({chain:y}),blockExplorerUrls:[n],chainId:o,rpcUrls:f}:void 0}}function O0(y){return![c.Adi,c.Arbitrum,c.BinanceSmartChain].includes(y)}function cU({chain:y}){let{name:n,nativeCurrency:o,baseDecimal:f}=B0(y);return bC(y).with(c.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(c.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(c.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(c.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(c.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(c.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:c.Polygon}})).otherwise(()=>({chainName:n,nativeCurrency:{decimals:f,name:o,symbol:o}}))}async function w0(y,n){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let o={...n,nonce:n.nonce!==void 0?BigInt(n.nonce):void 0};return await y.authorize(o)}function vC(y,n){let o=n!==void 0?`index ${n}: `:"",f=(T,C)=>{throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:T,message:`${o}${C}`}})};bC(y).when(({chainId:T})=>typeof T!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:T})=>!gU(T),()=>f("address","address must be a valid checksummed address")).when(({nonce:T})=>typeof T!=="bigint"||T<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:T})=>!T,()=>f("signature","signature is required")).when(({signature:T})=>typeof T?.yParity!=="number"||![0,1].includes(T.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:T})=>!EC(T?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:T})=>!EC(T?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function jC(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:n})=>y[n]!=null).map(({key:n,type:o})=>({name:n,type:o}))}function M0(y){return y.charAt(0).toUpperCase()+y.slice(1)}function L0(y,n){if(y.isTuple()&&y.components){let o=M0(y.name);return n[o]=y.components.map((f)=>({name:f.name,type:L0(f,n)})),o}if(y.isArray()){let o=y.arrayChildren;if(o?.isTuple()&&o.components){let f=M0(y.name.replace(/s$/,""));return n[f]=o.components.map((T)=>({name:T.name,type:L0(T,n)})),`${f}[]`}return`${o?.type??"bytes"}[]`}return y.type}function Y0(y,n){if(typeof y==="bigint")return y;if(n?.isTuple()&&typeof y?.toObject==="function"){let o=y.toObject(),f={};for(let[T,C]of(n.components??[]).entries())f[C.name]=Y0(o[C.name]??y[T],C);return f}if(Array.isArray(y)){let o=n?.arrayChildren;return y.map((f)=>Y0(f,o??void 0))}return y}function iU({chain:y,abi:n,data:o,to:f}){let C=new hU(n).parseTransaction({data:o});if(!C)throw new hn({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let H={},U=M0(C.name);H[U]=C.fragment.inputs.map((W)=>({name:W.name,type:L0(W,H)}));let _={};for(let[W,G]of C.fragment.inputs.entries())_[G.name]=Y0(C.args[W],G);let{chainId:A}=B0(y),Z={chainId:Number(A),verifyingContract:VC(f)},M=jC(Z);return{domain:Z,message:_,primaryType:U,types:{EIP712Domain:M,...H}}}function D0(y,n){if(!Array.isArray(y)||y.length===0)throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[o,f]of y.entries())if(vC(f,o),n!==void 0&&f.chainId!==n)throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${o}: authorization chainId (${f.chainId}) does not match transaction chainId (${n})`}})}var EC=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),gU=(y)=>{try{return typeof y==="string"&&!!VC(y)}catch{return!1}};var Cn=()=>{};var KC;var hC=I(()=>{KC=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as dU,applyFeeMultiplierToBigInt as Wy,Chain as Oy,EVMChains as rU,FeeOption as v,isGasAsset as aU,SwapKitError as h,SwapKitNumber as mn}from"@swapkit/helpers";import{erc20ABI as Hn}from"@swapkit/helpers/contracts";import{BrowserProvider as sU,Contract as mC,getAddress as cn,Interface as cC}from"ethers";import{match as gC}from"ts-pattern";function Rf({chain:y=Oy.Ethereum,provider:n,signer:o,isEIP1559Compatible:f=!0}){return{approve:T2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),approvedAmount:rC({chain:y,provider:n}),broadcastTransaction:n.broadcastTransaction,call:x0({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),createApprovalTx:U2({chain:y,provider:n,signer:o}),createContract:k0({chain:y,provider:n}),createContractTxObject:Gf({chain:y,provider:n}),createTransaction:R0({chain:y,provider:n,signer:o}),createTransferTx:R0({chain:y,provider:n,signer:o}),EIP1193SendTransaction:lf(n),estimateCall:aC({provider:n,signer:o}),estimateGasLimit:C2({chain:y,provider:n,signer:o}),estimateGasPrices:Xf({chain:y,isEIP1559Compatible:f,provider:n}),estimateTransactionFee:_2({chain:y,isEIP1559Compatible:f,provider:n}),getAddress:()=>{return o?o.getAddress():void 0},getBalance:Tn(y).getBalance,getNetworkParams:N0(y),isApproved:n2({chain:y,provider:n}),sendTransaction:sC({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),signAuthorization:H2({signer:o}),signMessage:o?(T)=>o.signMessage(T):void 0,signTypedData:o?({domain:T,types:C,value:H})=>o.signTypedData(T,C,H):void 0,transfer:o2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),validateAddress:_n}}function _n(y){try{return cn(y),!0}catch{return!1}}function kf(y){return y instanceof sU}function An(y,n,o){return new mC(y,cC.from(n),o)}function k0({provider:y}){return function(o,f){return new mC(o,cC.from(f),y)}}function l0({abi:y,funcName:n}){let o=y.find((f)=>f.name===n);if(!o)throw new h("toolbox_evm_no_abi_fragment",{funcName:n});return o.stateMutability&&eU.includes(o.stateMutability)}function iC(y){return cn(y)}function lf(y){return function({value:o,...f}){if(!kf(y))throw new h("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:T,gasPrice:C,maxFeePerGas:H,maxPriorityFeePerGas:U,..._}=f;return y.send("eth_sendTransaction",[{..._,value:on(BigInt(o||0))}])}}function dC(y,n){let o=Sf(y,n);if(o)return cn(o.toLowerCase());throw new h("toolbox_evm_invalid_gas_asset_address")}function Sf({chain:y,symbol:n,ticker:o},f){try{let T=y===Oy.BinanceSmartChain&&n==="BNB"&&o==="BNB",C=y===Oy.Hyperevm&&n==="HYPE"&&o==="HYPE",H=y===f&&n===f&&o===f,U=f2.includes(y)&&n==="ETH"&&o==="ETH";if(H||T||C||U)return S0[f];return cn(n.slice(o.length+1).replace(/^0X/,""))}catch{return null}}function Gf({provider:y}){return async({contractAddress:n,abi:o,funcName:f,funcParams:T=[],txOverrides:C})=>An(n,o,y).getFunction(f).populateTransaction(...T.concat(C).filter((H)=>typeof H<"u"))}function Xf({chain:y,provider:n,isEIP1559Compatible:o=!0}){return gC(y).with(Oy.Gnosis,()=>{return async function(){try{let{gasPrice:T,maxPriorityFeePerGas:C}=await n.getFeeData();if(!T||C===null)throw new h("toolbox_evm_no_fee_data");return{[v.Average]:{maxFeePerGas:Wy(T,v.Average),maxPriorityFeePerGas:Wy(C,v.Average)},[v.Fast]:{maxFeePerGas:Wy(T,v.Fast),maxPriorityFeePerGas:Wy(C,v.Fast)},[v.Fastest]:{maxFeePerGas:Wy(T,v.Fastest),maxPriorityFeePerGas:Wy(C,v.Fastest)}}}catch(T){throw new h("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).with(Oy.Arbitrum,()=>{return async function(){try{let{gasPrice:T}=await n.getFeeData();if(!T)throw new h("toolbox_evm_no_fee_data");let C=T*12n/10n;return{[v.Average]:{gasPrice:C},[v.Fast]:{gasPrice:Wy(C,v.Fast)},[v.Fastest]:{gasPrice:Wy(C,v.Fastest)}}}catch(T){throw new h("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:C,gasPrice:H}=await n.getFeeData();if(o){if(T===null||C===null)throw new h("toolbox_evm_no_fee_data");return{[v.Average]:{maxFeePerGas:T,maxPriorityFeePerGas:C},[v.Fast]:{maxFeePerGas:Wy(T,v.Fast),maxPriorityFeePerGas:Wy(C,v.Fast)},[v.Fastest]:{maxFeePerGas:Wy(T,v.Fastest),maxPriorityFeePerGas:Wy(C,v.Fastest)}}}if(!H)throw new h("toolbox_evm_no_gas_price");return{[v.Average]:{gasPrice:H},[v.Fast]:{gasPrice:Wy(H,v.Fast)},[v.Fastest]:{gasPrice:Wy(H,v.Fastest)}}}catch(T){throw new h("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}})}function x0({provider:y,isEIP1559Compatible:n,signer:o,chain:f}){return async function({callProvider:C,contractAddress:H,abi:U,funcName:_,funcParams:A=[],txOverrides:Z={},feeOption:M=v.Fast}){let W=C||y;if(!H)throw new h("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let G=l0({abi:U,funcName:_});if(G&&kf(W)&&o){let B=Gf({chain:f,provider:W}),D=Z?.from||await o?.getAddress(),L=await B({abi:U,contractAddress:H,funcName:_,funcParams:A,txOverrides:{...Z,from:D}});return lf(W)(L)}let X=An(H,U,W);if(G){if(!o)throw new h("toolbox_evm_no_signer");let B=Z?.from||await o.getAddress();if(!B)throw new h("toolbox_evm_no_signer_address");let D=X.connect(o),L=Xf({chain:f,isEIP1559Compatible:n,provider:y}),{maxFeePerGas:w,maxPriorityFeePerGas:N,gasPrice:z}=(await L())[M],J=await X.getFunction(_).estimateGas(...A,Z),Y=await D[_](...A,{...Z,gasLimit:J,gasPrice:z,maxFeePerGas:w,maxPriorityFeePerGas:N,nonce:Z?.nonce||await W.getTransactionCount(B)});return typeof Y?.hash==="string"?Y?.hash:Y}let Q=await X[_]?.(...A);return typeof Q?.hash==="string"?Q?.hash:Q}}function rC({provider:y,chain:n}){return function({assetAddress:f,spenderAddress:T,from:C}){return x0({chain:n,isEIP1559Compatible:!0,provider:y})({abi:Hn,contractAddress:f,funcName:"allowance",funcParams:[C,T]})}}function n2({provider:y,chain:n}){return async function({assetAddress:f,spenderAddress:T,from:C,amount:H=Un}){let U=await rC({chain:n,provider:y})({assetAddress:f,from:C,spenderAddress:T});return mn.fromBigInt(U).gte(mn.fromBigInt(BigInt(H)))}}function T2({signer:y,isEIP1559Compatible:n=!0,provider:o,chain:f}){return async function({assetAddress:C,spenderAddress:H,feeOptionKey:U=v.Fast,amount:_,gasLimitFallback:A,from:Z,nonce:M}){let W=[H,BigInt(_||Un)],G=await y?.getAddress()||Z,X={abi:Hn,contractAddress:C,funcName:"approve",funcParams:W,signer:y,txOverrides:{from:G}};if(kf(o)){let B=Gf({chain:f,provider:o}),D=lf(o),L=await B(X);return D(L)}return x0({chain:f,isEIP1559Compatible:n,provider:o,signer:y})({...X,feeOption:U,funcParams:W,txOverrides:{from:G,gasLimit:A?BigInt(A.toString()):void 0,nonce:M}})}}function o2({signer:y,isEIP1559Compatible:n=!0,provider:o}){return async function({assetValue:T,memo:C,recipient:H,feeOptionKey:U=v.Fast,sender:_,...A}){let{hexlify:Z,toUtf8Bytes:M}=await import("ethers"),W=T.getBaseValue("bigint"),G=T.chain,X=_||await y?.getAddress(),Q=sC({chain:G,isEIP1559Compatible:n,provider:o,signer:y});if(!X)throw new h("toolbox_evm_no_from_address");if(T.isGasAsset){let z={...A,data:Z(M(C||"")),feeOptionKey:U,from:X,to:H,value:W};return Q(z)}if(!Sf(T,G))throw new h("toolbox_evm_no_contract_address");let{maxFeePerGas:D,maxPriorityFeePerGas:L,gasPrice:w}=(await Xf({chain:G,isEIP1559Compatible:n,provider:o})())[U],N=await R0({chain:G,provider:o,signer:y})({assetValue:T,data:Z(M(C||"")),gasPrice:w,maxFeePerGas:D,maxPriorityFeePerGas:L,memo:C,recipient:H,sender:X});return Q(N)}}function aC({provider:y,signer:n}){return function({contractAddress:f,abi:T,funcName:C,funcParams:H=[],txOverrides:U}){if(!f)throw new h("toolbox_evm_no_contract_address");let _=An(f,T,y);return n?_.connect(n).getFunction(C).estimateGas(...H,U):_.getFunction(C).estimateGas(...H,U)}}function C2({provider:y,signer:n}){return async function({assetValue:f,recipient:T,memo:C,data:H,sender:U,funcName:_,funcParams:A,txOverrides:Z}){let M=f.bigIntValue,W=f.isGasAsset?null:Sf(f,f.chain);if(W&&_)return aC({provider:y,signer:n})({abi:Hn,contractAddress:W,funcName:_,funcParams:A,txOverrides:Z});let{hexlify:G,toUtf8Bytes:X}=await import("ethers");return y.estimateGas({data:H?H:C?G(X(C)):void 0,from:U,to:T,value:M})}}function H2({signer:y}){if(!y)return;return(n)=>w0(y,n)}function sC({provider:y,signer:n,isEIP1559Compatible:o=!0,chain:f}){return async function({feeOptionKey:C=v.Fast,...H}){let{from:U,to:_,data:A,value:Z,...M}=H;if(!n)throw new h("toolbox_evm_no_signer");if(!_)throw new h("toolbox_evm_no_to_address");let W={...M,data:A||"0x",from:U,to:_,value:BigInt(Z||0)};if(kf(y))return lf(y)(W);let G=U||await n.getAddress(),X=H.nonce||await y.getTransactionCount(G),Q=(await y.getNetwork()).chainId,B=$0(W,o);if(B==="eip7702")D0(W.authorizations||[],Q);let D=gC(B).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),L={...W,chainId:Q,nonce:X,type:D,...B==="eip7702"&&{authorizationList:W.authorizations}},w=Xf({chain:f,isEIP1559Compatible:o,provider:y}),z=B!=="legacy"&&!(W.maxFeePerGas&&W.maxPriorityFeePerGas)||!W.gasPrice?Object.entries((await w())[C]).reduce((Y,[R,l])=>({...Y,[R]:on(BigInt(l))}),{}):{},J;try{J=on(W.gasLimit||await y.estimateGas(L)*11n/10n)}catch(Y){throw new h("toolbox_evm_error_estimating_gas_limit",{error:Y})}try{let Y={...L,gasLimit:J,...z};try{return(await n.sendTransaction(Y)).hash}catch{let R=await n.signTransaction({...Y,from:G});return(await y.broadcastTransaction(R)).hash}}catch(Y){throw new h("toolbox_evm_error_sending_transaction",{error:Y})}}}function R0({provider:y,signer:n}){return async function({assetValue:f,memo:T,recipient:C,data:H,sender:U,maxFeePerGas:_,maxPriorityFeePerGas:A,gasPrice:Z,...M}){let W=f.getBaseValue("bigint"),G=f.chain,X=U||await n?.getAddress();if(!X)throw new h("toolbox_evm_no_from_address");if(aU(f)){let{hexlify:D,toUtf8Bytes:L}=await import("ethers");return{...M,data:H||D(L(T||"")),from:X,to:C,value:W}}let Q=Sf(f,G);if(!Q)throw new h("toolbox_evm_no_contract_address");return Gf({chain:f.chain,provider:y})({abi:Hn,contractAddress:Q,funcName:"transfer",funcParams:[C,W],txOverrides:{from:X,gasPrice:Z,maxFeePerGas:_,maxPriorityFeePerGas:A}})}}function U2({provider:y,signer:n,chain:o}){return async function({assetAddress:T,spenderAddress:C,amount:H,from:U}){let _=await n?.getAddress()||U,A=Gf({chain:o,provider:y}),Z=["bigint","number"].includes(typeof H)?H:H||Un;return await A({abi:Hn,contractAddress:T,funcName:"approve",funcParams:[C,BigInt(Z)],txOverrides:{from:_}})}}function _2({provider:y,isEIP1559Compatible:n=!0,chain:o}){return async function({feeOption:T=v.Fast,...C}){let U=await Xf({chain:o,isEIP1559Compatible:n,provider:y})(),_=await y.estimateGas(C),A=dU.from({chain:o}),{gasPrice:Z,maxFeePerGas:M,maxPriorityFeePerGas:W}=U[T];if(!n&&Z)return A.set(mn.fromBigInt(Z*_,A.decimal));if(M&&W){let G=(M+W)*_;return A.set(mn.fromBigInt(G,A.decimal))}throw new h("toolbox_evm_no_gas_price")}}var Un,eU,y2,S0,f2,gn=(y)=>y.type===4||(y.authorizations?.length??0)>0,F0=(y)=>!gn(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),$0=(y,n=!0)=>{if(gn(y))return"eip7702";if(F0(y)||n)return"eip1559";return"legacy"};var dn=I(()=>{Kn();Cn();Un=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");eU=["payable","nonpayable"];y2=rU.reduce((y,n)=>{return y[n]="0x0000000000000000000000000000000000000000",y},{}),S0={...y2,[Oy.Optimism]:"0x4200000000000000000000000000000000000042",[Oy.Polygon]:"0x0000000000000000000000000000000000001010"},f2=[Oy.Arbitrum,Oy.Aurora,Oy.Base,Oy.Optimism]});import{Chain as i,FeeOption as A2}from"@swapkit/helpers";import{HDNodeWallet as q2}from"ethers";import{match as G2,P as eC}from"ts-pattern";function rn(y){let n=d(i.Ethereum)(y);async function o(f,T="0x5ba1e12693dc8f9c48aad8770482f4739beed696",C="aggregate",H=A2.Fast){let U=await n.createContractTxObject({abi:KC,contractAddress:T,funcName:C,funcParams:[f]});return n.sendTransaction({...U,feeOptionKey:H})}return{...n,multicall:o}}function d(y){return function({provider:o,...f}){let T=O0(y),C=G2(f).with({phrase:eC.string},({phrase:U})=>q2.fromPhrase(U).connect(o)).with({signer:eC.any},({signer:U})=>U).otherwise(()=>{return});return Rf({chain:y,isEIP1559Compatible:T,provider:o,signer:C})}}var an,sn,en,yT,fT,nT,TT,y1,oT,CT,HT,UT,_T,AT,qn,qT,GT,XT,WT;var I0=I(()=>{hC();Cn();dn();an=d(i.Adi),sn=d(i.Arbitrum),en=d(i.Aurora),yT=d(i.Avalanche),fT=d(i.Base),nT=d(i.Berachain),TT=d(i.BinanceSmartChain),y1=d(i.Botanix),oT=d(i.Core),CT=d(i.Corn),HT=d(i.Cronos),UT=d(i.Gnosis),_T=d(i.Hyperevm),AT=d(i.Polygon),qn=d(i.Sonic),qT=d(i.Unichain),GT=d(i.XLayer),XT=d(i.Monad),WT=d(i.MegaETH)});var f1;var n1=I(()=>{f1=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as xf,Chain as W2,FeeOption as Vy,SwapKitError as P0}from"@swapkit/helpers";import{Contract as Q2,HDNodeWallet as Z2}from"ethers";import{match as J2,P as T1}from"ts-pattern";function t0(y){return new Q2(M2,f1,y)}function o1(y){return async function(){let o=t0(y);if(o&&"l1BaseFee"in o)return await o?.l1BaseFee();return}}function C1(y){return async function({from:o,to:f,nonce:T,...C}){let{Transaction:H}=await import("ethers");if(!f)throw new P0("toolbox_evm_invalid_transaction",{error:"Missing to address"});return H.from({...C,authorizationList:C.authorizationList,nonce:T?T:o?await y.getTransactionCount(o):0,to:f}).serialized}}function H1(y){return async function(o){let f=t0(y),T=await C1(y)(o);if(f&&"getL1Fee"in f)return f.getL1Fee(T)}}function U1(y){return async function(o){let T=(await y.getFeeData()).gasPrice??0n,C=await y.estimateGas(o);return T*C}}function L2(y){return async function(o){let f=await H1(y)(o)??0n,T=await U1(y)(o);return f+T}}function Y2(y){return async function(o){let f=t0(y),T=await C1(y)(o);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(T)}}function B2(y){return async function(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:f,gasPrice:T}=await y.getFeeData(),C=await o1(y)(),H=T;if(!(o&&f))throw new P0("toolbox_evm_no_fee_data");return{[Vy.Average]:{gasPrice:H,l1GasPrice:C,maxFeePerGas:o,maxPriorityFeePerGas:f},[Vy.Fast]:{gasPrice:xf(H,Vy.Fast),l1GasPrice:xf(C||0n,Vy.Fast),maxFeePerGas:o,maxPriorityFeePerGas:xf(f,Vy.Fast)},[Vy.Fastest]:{gasPrice:xf(H,Vy.Fastest),l1GasPrice:xf(C||0n,Vy.Fastest),maxFeePerGas:o,maxPriorityFeePerGas:xf(f,Vy.Fastest)}}}catch(o){throw new P0("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}}function QT({provider:y,...n}){let o=J2(n).with({phrase:T1.string},({phrase:C})=>Z2.fromPhrase(C).connect(y)).with({signer:T1.any},({signer:C})=>C).otherwise(()=>{return}),f=Rf({provider:y,signer:o}),T=o1(y);return{...f,estimateGasPrices:B2(y),estimateL1Gas:Y2(y),estimateL1GasCost:H1(y),estimateL2GasCost:U1(y),estimateTotalGasCost:L2(y),getBalance:Tn(W2.Optimism).getBalance,getL1GasPrice:T}}var M2="0x420000000000000000000000000000000000000f";var p0=I(()=>{Kn();n1();dn()});var A1={};yy(A1,{validateEVMAddress:()=>_n,toChecksumAddress:()=>iC,isStateChangingCall:()=>l0,isEIP7702Transaction:()=>gn,isEIP1559Transaction:()=>F0,isBrowserProvider:()=>kf,getTokenAddress:()=>Sf,getEvmToolboxAsync:()=>_1,getEvmToolbox:()=>E0,getEstimateGasPrices:()=>Xf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>lf,getCreateContractTxObject:()=>Gf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>dC,createContract:()=>An,XLayerToolbox:()=>GT,UNIToolbox:()=>qT,SONICToolbox:()=>qn,OPToolbox:()=>QT,MONADToolbox:()=>XT,MEGAETHToolbox:()=>WT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>AT,HYPEREVMToolbox:()=>_T,GNOToolbox:()=>UT,ETHToolbox:()=>rn,ContractAddress:()=>S0,CROToolbox:()=>HT,CORNToolbox:()=>CT,COREToolbox:()=>oT,BotanixToolbox:()=>y1,BaseEVMToolbox:()=>Rf,BSCToolbox:()=>TT,BERAToolbox:()=>nT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>en,ARBToolbox:()=>sn,ADIToolbox:()=>an});import{Chain as g}from"@swapkit/helpers";import{match as z2}from"ts-pattern";function E0(y,n){return z2(y).with(g.Adi,()=>an(n)).with(g.Arbitrum,()=>sn(n)).with(g.Aurora,()=>en(n)).with(g.Avalanche,()=>yT(n)).with(g.Base,()=>fT(n)).with(g.Berachain,()=>nT(n)).with(g.BinanceSmartChain,()=>TT(n)).with(g.Botanix,()=>qn(n)).with(g.Core,()=>oT(n)).with(g.Corn,()=>CT(n)).with(g.Cronos,()=>HT(n)).with(g.Ethereum,()=>rn(n)).with(g.Gnosis,()=>UT(n)).with(g.Hyperevm,()=>_T(n)).with(g.Optimism,()=>QT(n)).with(g.Polygon,()=>AT(n)).with(g.Sonic,()=>qn(n)).with(g.Unichain,()=>qT(n)).with(g.XLayer,()=>GT(n)).with(g.Monad,()=>XT(n)).with(g.MegaETH,()=>WT(n)).exhaustive()}async function _1(y,n){let o={...n,provider:n?.provider||await z0(y)};return E0(y,o)}var V0=I(()=>{Cn();I0();p0();dn();I0();p0()});var q1;var G1=I(()=>{((o)=>{o.Test="goerli";o.Main="homestead"})(q1||={})});var X1={};yy(X1,{validateEVMAddress:()=>_n,validateAuthorizations:()=>D0,validateAuthorization:()=>vC,toHexString:()=>on,toChecksumAddress:()=>iC,signAuthorization:()=>w0,parseEIP712FromEVMTx:()=>iU,isStateChangingCall:()=>l0,isEIP7702Transaction:()=>gn,isEIP1559Transaction:()=>F0,isBrowserProvider:()=>kf,getTokenAddress:()=>Sf,getProviderSync:()=>uC,getProvider:()=>z0,getNetworkParams:()=>N0,getIsEIP1559Compatible:()=>O0,getEvmToolboxAsync:()=>_1,getEvmToolbox:()=>E0,getEvmApi:()=>Tn,getEstimateGasPrices:()=>Xf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>lf,getCreateContractTxObject:()=>Gf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>dC,createCustomEvmApi:()=>jU,createContract:()=>An,buildEIP712DomainType:()=>jC,XLayerToolbox:()=>GT,UNIToolbox:()=>qT,SONICToolbox:()=>qn,OPToolbox:()=>QT,MONADToolbox:()=>XT,MEGAETHToolbox:()=>WT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>AT,HYPEREVMToolbox:()=>_T,GNOToolbox:()=>UT,EthNetwork:()=>q1,ETHToolbox:()=>rn,ContractAddress:()=>S0,CROToolbox:()=>HT,CORNToolbox:()=>CT,COREToolbox:()=>oT,BotanixToolbox:()=>y1,BaseEVMToolbox:()=>Rf,BSCToolbox:()=>TT,BERAToolbox:()=>nT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>en,ARBToolbox:()=>sn,ADIToolbox:()=>an});var b0=I(()=>{Kn();Cn();V0();G1()});import{bech32 as N2}from"@scure/base";import{mnemonicToSeed as O2}from"@scure/bip39";import{Bip32PrivateKey as w2}from"@stricahq/bip32ed25519";import{Transaction as D2,types as j0,address as R2,crypto as u0,utils as W1}from"@stricahq/typhonjs";import{AssetValue as Ff,Chain as Wf,getChainConfig as k2,SwapKitError as Gn}from"@swapkit/helpers";import Ly from"bignumber.js";async function K0(y,n){let o=await fetch(`${M1}${y}`,{...n,headers:{project_id:J1,...n?.headers}});if(!o.ok)throw Error(`Blockfrost API error: ${o.status} ${o.statusText}`);return o.json()}async function L1(y){try{return await K0(`/addresses/${y}/utxos`)}catch{return[]}}async function S2(){return(await K0("/blocks/latest")).slot}async function x2(){let y=await K0("/epochs/latest/parameters"),n={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new Ly(y.collateral_percent),languageView:n,maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new Ly(y.min_fee_a),minFeeB:new Ly(y.min_fee_b),minFeeRefScriptCostPerByte:new Ly(15),priceMem:new Ly(y.price_mem),priceSteps:new Ly(y.price_step),stakeKeyDeposit:new Ly(2000000),utxoCostPerByte:new Ly(y.coins_per_utxo_size)}}async function Z1(y){let n=await fetch(`${M1}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:J1},method:"POST"});if(!n.ok){let o=await n.text();throw Error(`Transaction submission failed: ${o}`)}return n.json()}function F2(y,n){return y.map((o)=>{let f=o.amount.find((H)=>H.unit==="lovelace"),T=f?new Ly(f.quantity):new Ly(0),C=o.amount.filter((H)=>H.unit!=="lovelace").map((H)=>({amount:new Ly(H.quantity),assetName:H.unit.slice(56),policyId:H.unit.slice(0,56)}));return{address:n,amount:T,index:o.output_index,tokens:C,txId:o.tx_hash}})}async function $2(y){try{let n=await L1(y),o=0n,f=new Map;for(let H of n){if(!H.amount||!Array.isArray(H.amount))continue;for(let U of H.amount){let{unit:_,quantity:A}=U;if(_==="lovelace")o+=BigInt(A);else{let Z=f.get(_)||0n;f.set(_,Z+BigInt(A))}}}let T=[],{baseDecimal:C}=k2(Wf.Cardano);if(o>0n)T.push(Ff.from({chain:Wf.Cardano,fromBaseDecimal:C,value:o.toString()}));for(let[H,U]of f)T.push(Ff.from({asset:`${Wf.Cardano}.${H}`,value:U.toString()}));if(T.length===0)return[Ff.from({chain:Wf.Cardano})];return T}catch(n){let o=n instanceof Error?n.message:String(n);return console.error(`Cardano balance fetch error: ${o}`),[Ff.from({chain:Wf.Cardano})]}}function Y1(y){if(!y||typeof y!=="string")return!1;try{let n=N2.decode(y,120);return n.prefix==="addr"||n.prefix==="addr_test"}catch{return!1}}async function I2(y,n=0,o=0){let f=await O2(y,""),C=(await w2.fromEntropy(Buffer.from(f.slice(0,64)))).derive(v0+1852).derive(v0+1815).derive(v0+n),H=C.derive(0).derive(o),U=H.toBip32PublicKey().toPublicKey().toBytes(),_=u0.hash28(U),Z=C.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),M=u0.hash28(Z),W={hash:_,type:j0.HashType.ADDRESS},G={hash:M,type:j0.HashType.ADDRESS},Q=new R2.BaseAddress(l2,W,G).getBech32(),B=H.toPrivateKey();return{getAddress:()=>Q,publicKey:U,publicKeyHash:_,signTransaction:async(D)=>{try{let L=await import("@stricahq/cbors"),w=Buffer.from(D,"hex"),N=L.Decoder.decode(w),[z,J,Y,R]=N.value,l=L.Encoder.encode(z),q=u0.hash32(l),O=B.sign(q),k=J instanceof Map?J:new Map,S=k.get(Q1)||[];S.push([U,O]),k.set(Q1,S);let x=[z,k,Y,R];return L.Encoder.encode(x).toString("hex")}catch(L){throw new Gn("toolbox_cardano_sign_transaction_failed",{message:String(L)})}}}}function P2(y){let n,o,f;async function T(){if(!f)f=await x2();return f}async function C(){if(n!==void 0)return n;if(y&&"phrase"in y&&y.phrase){let G=y.index??0;return n=await I2(y.phrase,0,G),n}if(y&&"signer"in y&&y.signer)return n=y.signer,n;return}async function H(){if(o)return o;let G=await C();if(!G)return"";if("getAddress"in G)return o=await G.getAddress(),o;return""}async function U(G){let X=G||await H();if(!X)throw new Gn("core_wallet_connection_not_found");return $2(X)}async function _(G){if(G)try{let{tx:D}=await A(G),L=D.getFee();return Ff.from({chain:Wf.Cardano,fromBaseDecimal:6,value:L.toString()})}catch{}let X=await T(),Q=400,B=X.minFeeB.plus(X.minFeeA.times(Q));return Ff.from({chain:Wf.Cardano,fromBaseDecimal:6,value:B.toString()})}async function A({sender:G="",recipient:X,assetValue:Q,memo:B,pureLovelaceOnly:D=!1}){let L=G||await H();if(!L)throw new Gn("core_wallet_connection_not_found");let[w,N,z]=await Promise.all([L1(L),S2(),T()]),J=w.filter((b)=>D?b.amount.every((j)=>j.unit==="lovelace"):b.amount.some((j)=>j.unit==="lovelace")).sort((b,j)=>{let e=b.amount.some((r)=>r.unit!=="lovelace"),_y=j.amount.some((r)=>r.unit!=="lovelace");if(e===_y)return 0;return e?1:-1}),Y=W1.getAddressFromString(L),R=W1.getAddressFromString(X),l=F2(J,Y),q=new Ly(Q.getBaseValue("string")),O=[{address:R,amount:q,tokens:[]}],k;if(B){let b=new Map;b.set("msg",[B]),k={metadata:[{data:b,label:674}]}}let S={...z,minFeeB:z.minFeeB.plus(z.minFeeA.times(4))},t=new D2({protocolParams:S}).paymentTransaction({auxiliaryData:k,changeAddress:Y,inputs:l,outputs:O,ttl:N+3600}),{payload:V}=t.buildTransaction();return{tx:t,unsignedTx:V}}async function Z(G){let X=await C();if(!X||!("signTransaction"in X))throw new Gn("core_wallet_connection_not_found");return X.signTransaction(G)}async function M({recipient:G,assetValue:X,memo:Q}){let B=await C();if(!B||!("signTransaction"in B))throw new Gn("core_wallet_connection_not_found");let{unsignedTx:D}=await A({assetValue:X,memo:Q,recipient:G,sender:await H()}),L=await Z(D);return await Z1(L)}async function W(G){let X=await Z(G);return await Z1(X)}return{createTransaction:A,estimateTransactionFee:_,getAddress:H,getBalance:U,signAndBroadcastTransaction:W,signTransaction:Z,transfer:M,validateAddress:Y1}}var J1="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",M1="https://cardano-mainnet.blockfrost.io/api/v0",l2,v0=2147483648,Q1=0;var B1=I(()=>{l2=j0.NetworkId.MAINNET});var h0={};yy(h0,{validateCardanoAddress:()=>Y1,getCardanoToolbox:()=>P2});var m0=I(()=>{B1()});import{base64 as JT,bech32 as ZT}from"@scure/base";import{SwapKitError as t2}from"@swapkit/helpers";function Xn(y){return JT.encode(Uint8Array.from(ZT.fromWords(ZT.decode(y).words)))}function Wn(y,n="thor"){return ZT.encode(n,ZT.toWords(JT.decode(y)))}function p2(y){return JT.encode(y)}function E2(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new t2("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return JT.decode(y)}var c0=()=>{};import{AssetValue as g0,Chain as u,getChainConfig as Fy,getRPCUrl as V2,SwapKitError as z1}from"@swapkit/helpers";function by(y){switch(y){case u.Maya:return{amount:[],gas:"10000000000"};case u.THORChain:return{amount:[],gas:"500000000"};case u.Kujira:return w1;case u.Noble:return D1;default:return O1}}async function uy(y){let n=await import("@cosmjs/stargate"),o=n.StargateClient??n.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return o.connect({headers:f,url:y})}async function Qf(y,n,o={}){let f=await import("@cosmjs/stargate"),T=f.SigningStargateClient??f.default?.SigningStargateClient,C=f.GasPrice??f.default?.GasPrice,H=typeof o==="string"?o:"0.0003uatom",U=typeof o==="string"?{}:o;return T.connectWithSigner(y,n,{gasPrice:C.fromString(H),...U})}async function d0(y,n){let o=await import("@cosmjs/stargate");return(o.SigningStargateClient??o.default?.SigningStargateClient).offline(y,n)}async function r0({sender:y,recipient:n,assetValue:o,memo:f="",feeRate:T,sequence:C,accountNumber:H}){let{chain:U,chainId:_}=o,A=await V2(U),M=await(await uy(A)).getAccount(y);if(!M)throw new z1("toolbox_cosmos_account_not_found",{sender:y});let W=g0.from({chain:U}),G=dy(W.symbol),X=by(U),Q=G&&T?{amount:[{amount:T.toString(),denom:G}],gas:X.gas}:X,B={amount:[{amount:o.getBaseValue("string"),denom:dy(o.symbol)}],fromAddress:y,toAddress:n};return{accountNumber:H??Number(M.accountNumber),chainId:_,fee:Q,memo:f,msgs:[{typeUrl:b2(U),value:B}],sequence:C??M.sequence}}var i0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",N1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",O1,w1,D1,dy=(y,n=!1)=>{if(n)return y.toLowerCase();switch(y){case"uUSK":case"USK":return i0;case"uYUM":case"YUM":return N1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return y}},Qn=({symbol:y,chain:n})=>{if(n===u.Maya)return(y.toUpperCase()!=="CACAO"?y:`${u.Maya}.${y}`).toUpperCase();if(n===u.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${u.THORChain}.${y}`:y).toUpperCase();return dy(y,!1)},b2=(y)=>{switch(y){case u.Maya:case u.THORChain:return"/types.MsgSend";case u.Cosmos:case u.Kujira:case u.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new z1("toolbox_cosmos_not_supported",{chain:y})}},u2,a0=(y,n)=>{let o=u2[y.toLowerCase()];if(!o)return g0.from({asset:y,fromBaseDecimal:8,value:n});let{chain:f,asset:T,decimals:C}=o,H=f?{chain:f}:{asset:T};return g0.from({...H,fromBaseDecimal:C,value:n})};var Zn=I(()=>{O1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},w1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},D1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};u2={atom:{chain:u.Cosmos,decimals:Fy(u.Cosmos).baseDecimal},cacao:{chain:u.Maya,decimals:10},kuji:{chain:u.Kujira,decimals:Fy(u.Kujira).baseDecimal},maya:{asset:`${u.Maya}.${u.Maya}`,decimals:4},rune:{chain:u.THORChain,decimals:Fy(u.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Fy(u.THORChain).baseDecimal},uatom:{chain:u.Cosmos,decimals:Fy(u.Cosmos).baseDecimal},ukuji:{chain:u.Kujira,decimals:Fy(u.Kujira).baseDecimal},usdc:{chain:u.Noble,decimals:Fy(u.Noble).baseDecimal},uusdc:{chain:u.Noble,decimals:Fy(u.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Fy(u.THORChain).baseDecimal},[i0.toLowerCase()]:{asset:`${u.Kujira}.USK`,decimals:Fy(u.Kujira).baseDecimal}}});var R1={};yy(R1,{$root:()=>$});import fy from"protobufjs/minimal.js";var p,Yy,P,$;var k1=I(()=>{p=fy.Reader,Yy=fy.Writer,P=fy.util,$=fy.roots.default||(fy.roots.default={});$.common=(()=>{let y={};return y.Asset=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.chain="",n.prototype.symbol="",n.prototype.ticker="",n.prototype.synth=!1,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))T.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))T.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))T.uint32(32).bool(f.synth);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Asset;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.chain=f.string();break;case 2:H.symbol=f.string();break;case 3:H.ticker=f.string();break;case 4:H.synth=f.bool();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!P.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!P.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!P.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Asset)return f;let T=new $.common.Asset;if(f.chain!=null)T.chain=String(f.chain);if(f.symbol!=null)T.symbol=String(f.symbol);if(f.ticker!=null)T.ticker=String(f.ticker);if(f.synth!=null)T.synth=Boolean(f.synth);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.chain="",C.symbol="",C.ticker="",C.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))C.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))C.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))C.synth=f.synth;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.Coin=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.asset=null,n.prototype.amount="",n.prototype.decimals=P.Long?P.Long.fromBits(0,0,!1):0,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))$.common.Asset.encode(f.asset,T.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))T.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))T.uint32(24).int64(f.decimals);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Coin;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.asset=$.common.Asset.decode(f,f.uint32());break;case 2:H.amount=f.string();break;case 3:H.decimals=f.int64();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let T=$.common.Asset.verify(f.asset);if(T)return"asset."+T}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!P.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!P.isInteger(f.decimals)&&!(f.decimals&&P.isInteger(f.decimals.low)&&P.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Coin)return f;let T=new $.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");T.asset=$.common.Asset.fromObject(f.asset)}if(f.amount!=null)T.amount=String(f.amount);if(f.decimals!=null){if(P.Long)(T.decimals=P.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")T.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")T.decimals=f.decimals;else if(typeof f.decimals==="object")T.decimals=new P.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)if(C.asset=null,C.amount="",P.Long){let H=new P.Long(0,0,!1);C.decimals=T.longs===String?H.toString():T.longs===Number?H.toNumber():H}else C.decimals=T.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))C.asset=$.common.Asset.toObject(f.asset,T);if(f.amount!=null&&f.hasOwnProperty("amount"))C.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")C.decimals=T.longs===String?String(f.decimals):f.decimals;else C.decimals=T.longs===String?P.Long.prototype.toString.call(f.decimals):T.longs===Number?new P.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.PubKeySet=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.secp256k1="",n.prototype.ed25519="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))T.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))T.uint32(18).string(f.ed25519);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.PubKeySet;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.secp256k1=f.string();break;case 2:H.ed25519=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!P.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!P.isString(f.ed25519))return"ed25519: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.PubKeySet)return f;let T=new $.common.PubKeySet;if(f.secp256k1!=null)T.secp256k1=String(f.secp256k1);if(f.ed25519!=null)T.ed25519=String(f.ed25519);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.secp256k1="",C.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))C.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))C.ed25519=f.ed25519;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.Tx=(()=>{function n(o){if(this.coins=[],this.gas=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.id="",n.prototype.chain="",n.prototype.fromAddress="",n.prototype.toAddress="",n.prototype.coins=P.emptyArray,n.prototype.gas=P.emptyArray,n.prototype.memo="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))T.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(34).string(f.toAddress);if(f.coins?.length)for(let C=0;C<f.coins.length;++C)$.common.Coin.encode(f.coins[C],T.uint32(42).fork()).ldelim();if(f.gas?.length)for(let C=0;C<f.gas.length;++C)$.common.Coin.encode(f.gas[C],T.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(58).string(f.memo);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Tx;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.id=f.string();break;case 2:H.chain=f.string();break;case 3:H.fromAddress=f.string();break;case 4:H.toAddress=f.string();break;case 5:if(!H.coins?.length)H.coins=[];H.coins.push($.common.Coin.decode(f,f.uint32()));break;case 6:if(!H.gas?.length)H.gas=[];H.gas.push($.common.Coin.decode(f,f.uint32()));break;case 7:H.memo=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!P.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!P.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!P.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!P.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=$.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let T=0;T<f.gas.length;++T){let C=$.common.Coin.verify(f.gas[T]);if(C)return"gas."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!P.isString(f.memo))return"memo: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Tx)return f;let T=new $.common.Tx;if(f.id!=null)T.id=String(f.id);if(f.chain!=null)T.chain=String(f.chain);if(f.fromAddress!=null)T.fromAddress=String(f.fromAddress);if(f.toAddress!=null)T.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Tx.coins: object expected");T.coins[C]=$.common.Coin.fromObject(f.coins[C])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");T.gas=[];for(let C=0;C<f.gas.length;++C){if(typeof f.gas[C]!=="object")throw TypeError(".common.Tx.gas: object expected");T.gas[C]=$.common.Coin.fromObject(f.gas[C])}}if(f.memo!=null)T.memo=String(f.memo);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[],C.gas=[];if(T.defaults)C.id="",C.chain="",C.fromAddress="",C.toAddress="",C.memo="";if(f.id!=null&&f.hasOwnProperty("id"))C.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=f.toAddress;if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=$.common.Coin.toObject(f.coins[H],T)}if(f.gas?.length){C.gas=[];for(let H=0;H<f.gas.length;++H)C.gas[H]=$.common.Coin.toObject(f.gas[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.Fee=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=P.emptyArray,n.prototype.poolDeduct="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)$.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))T.uint32(18).string(f.poolDeduct);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Fee;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push($.common.Coin.decode(f,f.uint32()));break;case 2:H.poolDeduct=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=$.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!P.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Fee)return f;let T=new $.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Fee.coins: object expected");T.coins[C]=$.common.Coin.fromObject(f.coins[C])}}if(f.poolDeduct!=null)T.poolDeduct=String(f.poolDeduct);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults)C.poolDeduct="";if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=$.common.Coin.toObject(f.coins[H],T)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))C.poolDeduct=f.poolDeduct;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.ProtoUint=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.value="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))T.uint32(10).string(f.value);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.ProtoUint;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.value=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!P.isString(f.value))return"value: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.ProtoUint)return f;let T=new $.common.ProtoUint;if(f.value!=null)T.value=String(f.value);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.value="";if(f.value!=null&&f.hasOwnProperty("value"))C.value=f.value;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y})();$.types=(()=>{let y={};return y.MsgDeposit=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=P.emptyArray,n.prototype.memo="",n.prototype.signer=P.newBuffer([]),n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)$.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))T.uint32(26).bytes(f.signer);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.types.MsgDeposit;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push($.common.Coin.decode(f,f.uint32()));break;case 2:H.memo=f.string();break;case 3:H.signer=f.bytes();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=$.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!P.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||P.isString(f.signer)))return"signer: buffer expected"}return null},n.fromObject=function(f){if(f instanceof $.types.MsgDeposit)return f;let T=new $.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");T.coins[C]=$.common.Coin.fromObject(f.coins[C])}}if(f.memo!=null)T.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")P.base64.decode(f.signer,T.signer=P.newBuffer(P.base64.length(f.signer)),0);else if(f.signer.length)T.signer=f.signer}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults){if(C.memo="",T.bytes===String)C.signer="";else if(C.signer=[],T.bytes!==Array)C.signer=P.newBuffer(C.signer)}if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=$.common.Coin.toObject(f.coins[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))C.signer=T.bytes===String?P.base64.encode(f.signer,0,f.signer.length):T.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.MsgSend=(()=>{function n(o){if(this.amount=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.fromAddress=P.newBuffer([]),n.prototype.toAddress=P.newBuffer([]),n.prototype.amount=P.emptyArray,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let C=0;C<f.amount.length;++C)$.cosmos.base.v1beta1.Coin.encode(f.amount[C],T.uint32(26).fork()).ldelim();return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.types.MsgSend;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.fromAddress=f.bytes();break;case 2:H.toAddress=f.bytes();break;case 3:if(!H.amount?.length)H.amount=[];H.amount.push($.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||P.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||P.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let T=0;T<f.amount.length;++T){let C=$.cosmos.base.v1beta1.Coin.verify(f.amount[T]);if(C)return"amount."+C}}return null},n.fromObject=function(f){if(f instanceof $.types.MsgSend)return f;let T=new $.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")P.base64.decode(f.fromAddress,T.fromAddress=P.newBuffer(P.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)T.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")P.base64.decode(f.toAddress,T.toAddress=P.newBuffer(P.base64.length(f.toAddress)),0);else if(f.toAddress.length)T.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");T.amount=[];for(let C=0;C<f.amount.length;++C){if(typeof f.amount[C]!=="object")throw TypeError(".types.MsgSend.amount: object expected");T.amount[C]=$.cosmos.base.v1beta1.Coin.fromObject(f.amount[C])}}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.amount=[];if(T.defaults){if(T.bytes===String)C.fromAddress="";else if(C.fromAddress=[],T.bytes!==Array)C.fromAddress=P.newBuffer(C.fromAddress);if(T.bytes===String)C.toAddress="";else if(C.toAddress=[],T.bytes!==Array)C.toAddress=P.newBuffer(C.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=T.bytes===String?P.base64.encode(f.fromAddress,0,f.fromAddress.length):T.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=T.bytes===String?P.base64.encode(f.toAddress,0,f.toAddress.length):T.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){C.amount=[];for(let H=0;H<f.amount.length;++H)C.amount[H]=$.cosmos.base.v1beta1.Coin.toObject(f.amount[H],T)}return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y})();$.cosmos=(()=>{let y={};return y.base=(()=>{let n={};return n.v1beta1=(()=>{let o={};return o.Coin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.Coin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!P.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!P.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.Coin)return C;let H=new $.cosmos.base.v1beta1.Coin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o.DecCoin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.DecCoin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!P.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!P.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.DecCoin)return C;let H=new $.cosmos.base.v1beta1.DecCoin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o.IntProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.int="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.int!=null&&Object.hasOwnProperty.call(C,"int"))H.uint32(10).string(C.int);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.IntProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.int=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.int!=null&&C.hasOwnProperty("int")){if(!P.isString(C.int))return"int: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.IntProto)return C;let H=new $.cosmos.base.v1beta1.IntProto;if(C.int!=null)H.int=String(C.int);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.int="";if(C.int!=null&&C.hasOwnProperty("int"))U.int=C.int;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o.DecProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.dec="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.dec!=null&&Object.hasOwnProperty.call(C,"dec"))H.uint32(10).string(C.dec);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.DecProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.dec=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.dec!=null&&C.hasOwnProperty("dec")){if(!P.isString(C.dec))return"dec: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.DecProto)return C;let H=new $.cosmos.base.v1beta1.DecProto;if(C.dec!=null)H.dec=String(C.dec);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.dec="";if(C.dec!=null&&C.hasOwnProperty("dec"))U.dec=C.dec;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o})(),n})(),y})()});import{Chain as v2}from"@swapkit/helpers";async function Zf(){let{$root:y}=await Promise.resolve().then(() => (k1(),R1)),n=await import("@cosmjs/proto-signing"),o=n.Registry??n.default?.Registry,f=await import("@cosmjs/stargate"),T=f.defaultRegistryTypes??f.default?.defaultRegistryTypes;return new o([...T,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function ry(y){let n=await import("@cosmjs/stargate"),o=n.AminoTypes??n.default?.AminoTypes,f=y===v2.THORChain?"thorchain":"mayachain";return new o({"/types.MsgDeposit":{aminoType:`${f}/MsgDeposit`,fromAmino:({signer:T,...C})=>({...C,signer:Xn(T)}),toAmino:({signer:T,...C})=>({...C,signer:Wn(T)})},"/types.MsgSend":{aminoType:`${f}/MsgSend`,fromAmino:({from_address:T,to_address:C,...H})=>({...H,fromAddress:Xn(T),toAddress:Xn(C)}),toAmino:({fromAddress:T,toAddress:C,...H})=>({...H,from_address:Wn(T),to_address:Wn(C)})}})}var s0=I(()=>{c0()});import{AssetValue as j2,Chain as MT,getChainConfig as l1,getRPCUrl as S1,SwapKitError as K2}from"@swapkit/helpers";function fo(y){let{assetValue:n,recipient:o,memo:f,sender:T,asSignable:C,asAminoMessage:H}=y;if(o)return F1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,recipient:o,sender:T});return $1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,sender:T})}async function F1({sender:y,recipient:n,assetValue:o,memo:f="",asSignable:T=!0,asAminoMessage:C=!1,sequence:H,accountNumber:U}){let _=o.chain,A=await S1(_),Z=await x1({rpcUrl:A,sender:y}),{chainId:M}=l1(_),W=e0({assetValue:o,recipient:n,sender:y}),G=T?await ay(C?W:sy(W),_):W;return{accountNumber:U||Number(Z.accountNumber),chainId:M,fee:by(_),memo:f,msgs:[G],sequence:H||Z.sequence}}async function $1({sender:y,assetValue:n,memo:o="",asSignable:f=!0,asAminoMessage:T=!1,sequence:C,accountNumber:H}){let U=n.chain,_=await S1(U),A=await x1({rpcUrl:_,sender:y}),{chainId:Z}=l1(U),M=yo({assetValue:n,memo:o,sender:y}),W=f?await ay(T?M:sy(M),U):M;return{accountNumber:H||Number(A.accountNumber),chainId:Z,fee:by(U),memo:o,msgs:[W],sequence:C||A.sequence}}function sy(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((n)=>{let o=j2.from({asset:n.asset}),f=(o.isSynthetic?o.symbol.split("/")?.[1]:o.symbol)?.toUpperCase(),T=(o.isSynthetic?o.symbol.split("/")?.[0]:o.chain)?.toUpperCase();return{...n,asset:{chain:T,symbol:f,synth:o.isSynthetic,ticker:o.ticker}}})}}}async function Jn({chain:y,memo:n,msgs:o}){let f=await Zf(),T=await ry(y),C={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:n,messages:o.map((H)=>T.fromAmino(H))}};return f.encode(C)}var h2,m2,e0=({sender:y,recipient:n,assetValue:o})=>{return{type:`${o.chain===MT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:o.getBaseValue("string"),denom:dy(o.symbol,!0)}],from_address:y,to_address:n}}},yo=({sender:y,assetValue:n,memo:o=""})=>{return{type:`${n.chain===MT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:n.getBaseValue("string"),asset:Qn(n)}],memo:o,signer:y}}},LT=({sender:y,recipient:n,assetValue:o,memo:f})=>{return!n?yo({assetValue:o,memo:f,sender:y}):e0({assetValue:o,recipient:n,sender:y})},ay=async(y,n)=>{return(await ry(n)).fromAmino(y)},x1=async({rpcUrl:y,sender:n})=>{let f=await(await uy(y)).getAccount(n);if(!f)throw new K2("toolbox_cosmos_account_not_found",{sender:n});return f};var I1=I(()=>{Zn();s0();h2=by(MT.THORChain).gas,m2=by(MT.Maya).gas});var P1=()=>{};var t1=I(()=>{P1()});var no=I(()=>{c0();I1();s0();t1()});import{stringToPath as c2}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as g2}from"@cosmjs/proto-signing";import{base64 as Co,bech32 as To}from"@scure/base";import{AssetValue as Ho,applyFeeMultiplier as p1,Chain as oy,CosmosChainPrefixes as j1,DerivationPath as i2,derivationPathToString as E1,FeeOption as Uo,getChainConfig as d2,getRPCUrl as Mn,NetworkDerivationPath as r2,SwapKitError as $f,SwapKitNumber as oo,updateDerivationPath as a2}from"@swapkit/helpers";import{SwapKitApi as K1}from"@swapkit/helpers/api";import{match as s2,P as V1}from"ts-pattern";async function Ao(y,n){try{let f=(await K1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}async function _o({phrase:y,prefix:n,...o}){let f="derivationPath"in o?o.derivationPath:`${i2[o.chain]}/${o.index}`;return await g2.fromMnemonic(y,{hdPaths:[c2(f)],prefix:n})}async function e2({privateKey:y,prefix:n}){let o=await import("@cosmjs/proto-signing");return(o.DirectSecp256k1Wallet??o.default?.DirectSecp256k1Wallet).fromKey(y,n)}function h1(y){return async function({signature:o,message:f,address:T}){let C=await y(T);if(!C?.pubkey)throw new $f("toolbox_cosmos_verify_signature_no_pubkey");let H=await import("@cosmjs/crypto"),U=H.Secp256k1Signature??H.default?.Secp256k1Signature,_=H.Secp256k1??H.default?.Secp256k1,A=U.fromFixedLength(Co.decode(o));return _.verifySignature(A,Co.decode(f),C.pubkey.value)}}function Ln({chain:y,...n}){let o=j1[y],f="index"in n?n.index||0:0,T=E1("derivationPath"in n&&n.derivationPath?n.derivationPath:a2(r2[y],{index:f})),C;async function H(){if(C)return C;return C=await s2(n).with({phrase:V1.string},({phrase:G})=>_o({derivationPath:T,phrase:G,prefix:o})).with({signer:V1.any},({signer:G})=>G).otherwise(()=>{return}),C}async function U(G){let X=await Mn(y);return(await uy(X)).getAccount(G)}async function _(){let G=await H(),[X]=await G?.getAccounts()||[];return X?.address}async function A(){let G=await H(),[X]=await G?.getAccounts()||[];if(!X?.pubkey)throw new $f("toolbox_cosmos_signer_not_defined");return Co.encode(X?.pubkey)}async function Z(G){let X=await H(),Q=await _(),B=await Mn(y);if(!(X&&Q))throw new $f("toolbox_cosmos_signer_not_defined");return await(await Qf(B,X)).sign(Q,G.msgs,G.fee,G.memo,{accountNumber:BigInt(G.accountNumber),chainId:G.chainId,sequence:G.sequence})}async function M(G){let X=await H(),Q=await _(),B=await Mn(y);if(!(X&&Q))throw new $f("toolbox_cosmos_signer_not_defined");let L=await(await Qf(B,X)).signAndBroadcast(Q,G.msgs,G.fee,G.memo);if(L.code!==0)throw new $f("core_swap_transaction_error",{code:L.code,message:L.rawLog});return L.transactionHash}async function W({recipient:G,assetValue:X,memo:Q="",feeRate:B,feeOptionKey:D=Uo.Fast}){let L=await H(),w=await _();if(!(L&&w))throw new $f("toolbox_cosmos_signer_not_defined");let N=await Mn(y),z=Ho.from({chain:y}),J=Qn(z),Y=B||n_((await u1(y,b1[y]))[D],J),R=await Qf(N,L),l=dy(X.symbol),q=[{amount:X.getBaseValue("string"),denom:l}],{transactionHash:O}=await R.sendTokens(w,G,q,Y,Q);return O}return{createPrivateKeyFromPhrase:o_(T),createTransaction:r0,fetchFeeRateFromSwapKit:Ao,getAccount:U,getAddress:_,getBalance:async(G,X)=>{let Q=await v1(y)(G),B=await Promise.all(Q.filter(({denom:D})=>D&&!D.includes("IBC/")&&!([oy.THORChain,oy.Maya].includes(y)&&D.split("-").length>2)).map(({denom:D,amount:L})=>{let w=[oy.THORChain,oy.Maya].includes(y)&&(D.includes("/")||D.includes("˜"))?`${y}.${D}`:D;return a0(w,L)}));if(B.length===0)return[Ho.from({chain:y})];return B},getBalanceAsDenoms:v1(y),getFees:()=>u1(y,b1[y]),getPubKey:A,getSignerFromPhrase:({phrase:G,derivationPath:X})=>_o({derivationPath:E1(X),index:f,phrase:G,prefix:o}),getSignerFromPrivateKey:async(G)=>{let X=await import("@cosmjs/proto-signing");return(X.DirectSecp256k1Wallet??X.default?.DirectSecp256k1Wallet).fromKey(G,o)},signAndBroadcastTransaction:M,signTransaction:Z,transfer:W,validateAddress:m1(y),verifySignature:h1(U)}}async function y_(y,n){try{let f=(await K1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}function f_({assetValue:{chain:y}}){return Ho.from({chain:y,value:T_(y)})}async function u1(y,n){let{chainId:o,baseDecimal:f}=d2(y),T=await Ao(o,n);return{average:oo.fromBigInt(BigInt(T),f),fast:oo.fromBigInt(BigInt(p1(T,Uo.Fast,!0)),f),fastest:oo.fromBigInt(BigInt(p1(T,Uo.Fastest,!0)),f)}}function n_(y,n){return{amount:[{amount:y.getBaseValue("string"),denom:n}],gas:"200000"}}function T_(y){return{[oy.Cosmos]:0.007,[oy.Kujira]:0.02,[oy.Noble]:0.01,[oy.THORChain]:0.02,[oy.Maya]:0.02,[oy.Harbor]:0.02}[y]||0}function m1(y){let n=j1[y];return function(f){if(!f.startsWith(n))return!1;try{let{prefix:T,words:C}=To.decode(f);return To.encode(T,C)===f.toLocaleLowerCase()}catch{return!1}}}function v1(y){return async function(o){let f=await Mn(y);return(await(await uy(f)).getAllBalances(o)).map((U)=>({...U,denom:U.denom.includes("/")?U.denom.toUpperCase():U.denom}))}}function o_(y){return async function(o){let f=await import("@cosmjs/crypto"),T=f.stringToPath??f.default?.stringToPath,C=f.Slip10Curve??f.default?.Slip10Curve,H=f.Slip10??f.default?.Slip10,U=f.EnglishMnemonic??f.default?.EnglishMnemonic,_=f.Bip39??f.default?.Bip39,A=new U(o),Z=await _.mnemonicToSeed(A),{privkey:M}=H.derivePath(C.Secp256k1,Z,T(y));return M}}var b1;var YT=I(()=>{Zn();b1={[oy.Cosmos]:1000,[oy.Kujira]:1000,[oy.Noble]:1000,[oy.THORChain]:5000000,[oy.Maya]:5000000,[oy.Harbor]:5000000}});import{base64 as Jf}from"@scure/base";import{Chain as C_,CosmosChainPrefixes as H_,derivationPathToString as U_,FeeOption as qo,getChainConfig as __,getRPCUrl as r1,NetworkDerivationPath as A_,RequestClient as q_,SKConfig as c1,SwapKitError as If,SwapKitNumber as g1,updateDerivationPath as G_}from"@swapkit/helpers";import{match as i1,P as d1}from"ts-pattern";function X_({prefix:y,derivationPath:n}){return async function(f,T=0){let C=await import("@cosmjs/amino"),H=C.Secp256k1HdWallet??C.default?.Secp256k1HdWallet,U=await import("@cosmjs/crypto"),_=U.stringToPath??U.default?.stringToPath;return H.fromMnemonic(f,{hdPaths:[_(`${n}/${T}`)],prefix:y})}}function W_(y){return Jf.encode(y)}function Q_(y){return async function({wallet:o,tx:f}){let{msgs:T,accountNumber:C,sequence:H,chainId:U,fee:_,memo:A}=typeof f==="string"?JSON.parse(f):f,Z=(await o.getAccounts())?.[0]?.address||"",M=await ry(y),W=await Zf(),G=await d0(o,{aminoTypes:M,registry:W}),X=[];for(let D of T){let L=await ay(D,y);X.push(L)}let{signatures:[Q]}=await G.sign(Z,X,_,A,{accountNumber:BigInt(C),chainId:U,sequence:H});return{bodyBytes:await Jn({chain:y,memo:A,msgs:T.map(sy)}),signature:W_(Q)}}}function Z_({prefix:y,chain:n}){return async function(f,T,C,H,U){let _=await r1(n),{encodeSecp256k1Pubkey:A,pubkeyToAddress:Z}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:M}=(await import("@cosmjs/stargate")).default,{sequence:W,fee:G}=JSON.parse(f),X=await a1(C,H),Q=T.map((L)=>[Z(A(Jf.decode(L.pubKey)),y),Jf.decode(L.signature)]),B=await uy(_),{transactionHash:D}=await B.broadcastTx(M(X,W,G,U,new Map(Q)));return D}}async function a1(y,n,o=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:T}=(await import("@cosmjs/amino")).default;return f(y.map((C)=>T(Jf.decode(C))),n,o)}function J_(y){return Jf.decode(y)}async function M_({privateKey:y,message:n}){let{Secp256k1:o}=(await import("@cosmjs/crypto")).default,f=await o.createSignature(Jf.decode(n),y);return Jf.encode(Buffer.concat([f.r(32),f.s(32)]))}function Go({chain:y,...n}){let{isStagenet:o}=c1.get("envs"),f=c1.get("thornodeUrls"),T=y===C_.Maya,C=i1({isMayachain:T,isStagenet:o}).with({isMayachain:!0},({isStagenet:L})=>L?f.MAYA_STAGENET:f.MAYA).otherwise(({isStagenet:L})=>L?f.THOR_STAGENET:f.THOR),H=`${o?"s":""}${H_[y]}`,U="index"in n?n.index||0:0,_="derivationPath"in n&&n.derivationPath?n.derivationPath:G_(A_[y],{index:U}),A=Ln({chain:y,...n}),Z=by(y),M;function W(){return M??=i1(n).with({phrase:d1.string},({phrase:L})=>A.getSignerFromPhrase({derivationPath:_,phrase:L})).with({signer:d1.any},({signer:L})=>Promise.resolve(L)).otherwise(()=>Promise.resolve(void 0)),M}async function G(){let L=await r1(y),w=await W();if(!w)throw new If("toolbox_cosmos_no_signer");let N=await Zf(),z=await ry(y),J=await Qf(L,w,{aminoTypes:z,registry:N});return{signer:w,signingClient:J}}async function X({fee:L,memo:w,msgs:N}){let{signer:z,signingClient:J}=await G(),Y=(await z.getAccounts())?.[0]?.address;if(!Y)throw new If("toolbox_cosmos_signer_not_defined");let R=await J.signAndBroadcast(Y,N,L,w);if(R.code!==0)throw new If("core_swap_transaction_error",{code:R.code,message:R.rawLog});return R.transactionHash}async function Q(){let L,w=`${C}/${T?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:N}}=await q_.get(w);if(!N||Number.isNaN(N)||N<0)throw new If("toolbox_cosmos_invalid_fee",{nativeFee:N.toString()});L=new g1(N)}catch{L=new g1({decimal:__(y).baseDecimal,value:T?1:0.02})}return{[qo.Average]:L,[qo.Fast]:L,[qo.Fastest]:L}}async function B({assetValue:L,memo:w="",recipient:N}){let{TxRaw:z}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:J,signingClient:Y}=await G(),R=(await J.getAccounts())?.[0]?.address;if(!R)throw new If("toolbox_cosmos_no_signer");let l="signAmino"in J,q=LT({assetValue:L,memo:w,recipient:N,sender:R});if(l){let S=await ay(q,y),{signatures:x,authInfoBytes:t}=await Y.sign(R,[S],Z,w),V=z.encode({authInfoBytes:t,bodyBytes:await Jn({chain:y,memo:w,msgs:[q].map(sy)}),signatures:x}).finish();return(await Y.broadcastTx(V)).transactionHash}let O=sy(q),k=await ay(O,y);return X({fee:Z,memo:w,msgs:[k]})}async function D(L){let{signer:w,signingClient:N}=await G(),z=(await w.getAccounts())?.[0]?.address;if(!z)throw new If("toolbox_cosmos_signer_not_defined");return N.sign(z,L.msgs,L.fee,L.memo,{accountNumber:BigInt(L.accountNumber),chainId:L.chainId,sequence:L.sequence})}return{...A,broadcastMultisigTx:Z_({chain:y,prefix:H}),buildAminoMsg:LT,buildEncodedTxBody:Jn,convertToSignable:ay,createDefaultAminoTypes:()=>ry(y),createDefaultRegistry:Zf,createMultisig:a1,createTransaction:fo,deposit:B,getFees:Q,importSignature:J_,parseAminoMessageForDirectSigning:sy,pubkeyToAddress:async(L)=>{let{pubkeyToAddress:w}=(await import("@cosmjs/amino")).default;return w(L,H)},secp256k1HdWalletFromMnemonic:X_({derivationPath:U_(_),prefix:H}),signAndBroadcastTransaction:X,signMultisigTx:Q_(y),signTransaction:D,signWithPrivateKey:M_,transfer:B}}var Xo=I(()=>{no();Zn();YT()});import{Chain as Yn,SwapKitError as L_}from"@swapkit/helpers";var Y_=(y,n)=>{switch(y){case Yn.Cosmos:case Yn.Kujira:case Yn.Noble:return Ln({chain:y,...n});case Yn.Maya:case Yn.THORChain:return Go({chain:y,...n});default:throw new L_("toolbox_cosmos_not_supported",{chain:y})}};var s1=I(()=>{YT();Xo();YT();Xo()});var BT={};yy(BT,{verifySignature:()=>h1,transferMsgAmino:()=>e0,toBase64:()=>p2,parseAminoMessageForDirectSigning:()=>sy,getSignerFromPrivateKey:()=>e2,getSignerFromPhrase:()=>_o,getMsgSendDenom:()=>dy,getFeeRateFromSwapKit:()=>y_,getDenomWithChain:()=>Qn,getDefaultChainFee:()=>by,getCosmosToolbox:()=>Y_,getCosmosAddressValidator:()=>m1,getAssetFromDenom:()=>a0,fromBase64:()=>E2,fetchFeeRateFromSwapKit:()=>Ao,estimateTransactionFee:()=>f_,depositMsgAmino:()=>yo,createTransaction:()=>fo,createThorchainToolbox:()=>Go,createStargateClient:()=>uy,createSigningStargateClient:()=>Qf,createOfflineStargateClient:()=>d0,createDefaultRegistry:()=>Zf,createDefaultAminoTypes:()=>ry,createCosmosToolbox:()=>Ln,cosmosCreateTransaction:()=>r0,convertToSignable:()=>ay,buildTransferTx:()=>F1,buildEncodedTxBody:()=>Jn,buildDepositTx:()=>$1,buildAminoMsg:()=>LT,bech32ToBase64:()=>Xn,base64ToBech32:()=>Wn,YUM_KUJIRA_FACTORY_DENOM:()=>N1,USK_KUJIRA_FACTORY_DENOM:()=>i0,THORCHAIN_GAS_VALUE:()=>h2,MAYA_GAS_VALUE:()=>m2,DEFAULT_NOBLE_FEE_MAINNET:()=>D1,DEFAULT_KUJI_FEE_MAINNET:()=>w1,DEFAULT_COSMOS_FEE_MAINNET:()=>O1});var zT=I(()=>{no();s1();Zn()});function B_({builder:y,grouping:n="na",orders:o}){return{builder:y,grouping:n,orders:o,type:"order"}}function z_({cancels:y}){return{cancels:y,type:"cancel"}}function N_({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function O_({oid:y,order:n}){return{oid:y,order:n,type:"modify"}}function w_({modifies:y}){return{modifies:y,type:"batchModify"}}function D_({asset:y,isCross:n,leverage:o}){return{asset:y,isCross:n,leverage:o,type:"updateLeverage"}}function R_({asset:y,isBuy:n,ntli:o}){return{asset:y,isBuy:n,ntli:o,type:"updateIsolatedMargin"}}function k_({asset:y,leverage:n}){return{asset:y,leverage:n,type:"topUpIsolatedOnlyMargin"}}function l_({time:y}){return{time:y,type:"scheduleCancel"}}function S_({amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T}){return{amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T,type:"usdClassTransfer"}}function x_({amount:y,destination:n,destinationDex:o,fromSubAccount:f,hyperliquidChain:T,nonce:C,signatureChainId:H,sourceDex:U,token:_}){return{amount:y,destination:n,destinationDex:o,fromSubAccount:f,hyperliquidChain:T,nonce:C,signatureChainId:H,sourceDex:U,token:_,type:"sendAsset"}}function F_({agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T}){return{agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T,type:"approveAgent"}}function $_({builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T}){return{builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T,type:"approveBuilderFee"}}function I_({hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,validator:T,wei:C}){return{hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,type:"tokenDelegate",validator:T,wei:C}}import{SwapKitError as Wo}from"@swapkit/helpers";import{keccak256 as P_,Signature as t_}from"ethers";function Qy(...y){let n=y.reduce((T,C)=>T+C.length,0),o=new Uint8Array(n),f=0;for(let T of y)o.set(T,f),f+=T.length;return o}function v_(y,n,o){if(o<n)return new Uint8Array([y+o]);if(o<=255)return new Uint8Array([y+n,o]);if(o<=65535)return new Uint8Array([y+n+1,o>>8,o&255]);return new Uint8Array([y+n+2,o>>>24&255,o>>>16&255,o>>>8&255,o&255])}function ey(y,n){let o=new Uint8Array(n),f=y;for(let T=n-1;T>=0;T-=1)o[T]=Number(f&0xffn),f>>=8n;return o}function e1(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return Qy(new Uint8Array([205]),ey(y,2));if(y<=0xffffffffn)return Qy(new Uint8Array([206]),ey(y,4));return Qy(new Uint8Array([207]),ey(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 Qy(new Uint8Array([209]),ey(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return Qy(new Uint8Array([210]),ey(BigInt.asUintN(32,y),4));return Qy(new Uint8Array([211]),ey(BigInt.asUintN(64,y),8))}function nH(y){let n=u_.encode(y);if(n.length<32)return Qy(new Uint8Array([160+n.length]),n);return Qy(v_(217,0,n.length),n)}function j_(y){let n=y.map((f)=>Qo(f)),o=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Qy(o,...n)}function K_(y){let n=Object.entries(y).filter(([,f])=>typeof f<"u"),o=n.length<16?new Uint8Array([128+n.length]):n.length<=65535?new Uint8Array([222,n.length>>8,n.length&255]):new Uint8Array([223,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return Qy(o,...n.flatMap(([f,T])=>[nH(f),Qo(T)]))}function Qo(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return nH(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new Wo("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return e1(BigInt(y))}if(typeof y==="bigint")return e1(y);if(y instanceof Uint8Array){let n=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Qy(n,y)}if(Array.isArray(y))return j_(y);if(typeof y==="object")return K_(y);throw new Wo("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function h_(y){let n=y.startsWith("0x")?y.slice(2):y;if(n.length%2!==0||/[^a-fA-F0-9]/u.test(n))throw new Wo("helpers_invalid_params",{hexValue:y});let o=new Uint8Array(n.length/2);for(let f=0;f<n.length;f+=2)o[f/2]=Number.parseInt(n.slice(f,f+2),16);return o}function TH(y){return{domain:p_,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...E_.Agent]}}}function oH(y){let n=b_[y.type],o=V_[y.type],{type:f,...T}=y;return{domain:{chainId:Number.parseInt(T.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:yH,version:"1"},message:{...T,hyperliquidChain:T.hyperliquidChain||fH},primaryType:n,types:{[n]:o}}}function CH(y){let n=t_.from(y);return{r:n.r,s:n.s,v:n.v}}function HH(y,n,{expiresAfter:o,vaultAddress:f}={}){let T=Qo(y),C=ey(BigInt(n),8),H=f?Qy(new Uint8Array([1]),h_(f.toLowerCase())):new Uint8Array([0]),U=typeof o==="number"?Qy(new Uint8Array([0]),ey(BigInt(o),8)):new Uint8Array;return P_(Qy(T,C,H,U))}function UH(y){let n=y.hyperliquidChain||fH;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:n};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:n};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:n};case"tokenDelegate":return{...y,hyperliquidChain:n,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:n};default:return y}}var yH="0x0000000000000000000000000000000000000000",p_,E_,fH="Mainnet",V_,b_,u_;var _H=I(()=>{p_={chainId:1337,name:"Exchange",verifyingContract:yH,version:"1"},E_={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},V_={approveAgent:[{name:"hyperliquidChain",type:"string"},{name:"agentAddress",type:"address"},{name:"agentName",type:"string"},{name:"nonce",type:"uint64"}],approveBuilderFee:[{name:"hyperliquidChain",type:"string"},{name:"maxFeeRate",type:"string"},{name:"builder",type:"address"},{name:"nonce",type:"uint64"}],sendAsset:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"sourceDex",type:"string"},{name:"destinationDex",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"fromSubAccount",type:"string"},{name:"nonce",type:"uint64"}],tokenDelegate:[{name:"hyperliquidChain",type:"string"},{name:"validator",type:"address"},{name:"wei",type:"uint64"},{name:"isUndelegate",type:"bool"},{name:"nonce",type:"uint64"}],usdClassTransfer:[{name:"hyperliquidChain",type:"string"},{name:"amount",type:"string"},{name:"toPerp",type:"bool"},{name:"nonce",type:"uint64"}]},b_={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},u_=new TextEncoder});import{AssetValue as Mo,Chain as m_,derivationPathToString as c_,getChainConfig as GH,getRPCUrl as g_,NetworkDerivationPath as i_,RequestClient as Pf,SwapKitError as tf,updateDerivationPath as d_}from"@swapkit/helpers";import{HDNodeWallet as r_}from"ethers";import{match as a_,P as Zo}from"ts-pattern";function wy(y,n){if(!Yo(y))throw new tf(n,{address:y});return y.toLowerCase()}async function Mf(y){let n=await NT();return Pf.post(`${n}/info`,{json:y})}function o8({dex:y,user:n}){return Mf({...y?{dex:y}:{},type:"clearinghouseState",user:wy(n,"helpers_invalid_params")})}function C8({user:y}){return Mf({type:"spotClearinghouseState",user:wy(y,"helpers_invalid_params")})}function H8({dex:y,user:n}){return Mf({...y?{dex:y}:{},type:"openOrders",user:wy(n,"helpers_invalid_params")})}function U8({dex:y,user:n}){return Mf({...y?{dex:y}:{},type:"frontendOpenOrders",user:wy(n,"helpers_invalid_params")})}function _8({oidOrCloid:y,user:n}){return Mf({oid:y,type:"orderStatus",user:wy(n,"helpers_invalid_params")})}function A8({aggregateByTime:y,user:n}){return Mf({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:wy(n,"helpers_invalid_params")})}function q8({aggregateByTime:y,endTime:n,startTime:o,user:f}){return Mf({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof n==="number"?{endTime:n}:{},startTime:o,type:"userFillsByTime",user:wy(f,"helpers_invalid_params")})}function AH({coin:y,token:n,value:o,spotMeta:f}){if(!o||Number(o)<=0)return null;let T=y?.toUpperCase()||`TOKEN-${n||"UNKNOWN"}`,C=s_[T]||XH,H=f?.tokens?.find((_)=>_.name===y||n!==void 0&&_.index===Number(n)),U=H?`${$y}.${T}-${H.name}:${H.tokenId}`:`${$y}.${T}`;return new Mo({decimal:C,identifier:U,value:o})}function G8(y){let n=new Map;for(let o of y){let f=o.toString({includeSynthProtocol:!0}),T=n.get(f);n.set(f,T?T.add(o):o)}if(![...n.values()].some((o)=>o.isGasAsset||o.ticker==="HYPE")){let o=Mo.from({chain:$y,value:0});n.set(o.toString({includeSynthProtocol:!0}),o)}return[...n.values()]}async function NT(){try{return await g_($y)}catch{let[y]=GH($y).rpcUrls;if(!y)throw new tf("helpers_chain_no_public_or_set_rpc_url",{chain:$y});return y}}async function Lo(){return`${await NT()}/exchange`}function X8(y){let n=T8[y.type],{type:o,...f}=y,T=n8[o];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:f8,version:"1"},message:f,primaryType:n,types:{[n]:T}}}async function WH({action:y,expiresAfter:n,nonce:o,vaultAddress:f}){let T=o||Date.now(),C=f?wy(f,"helpers_invalid_params"):void 0,H=await Lo(),U=HH(y,T,{expiresAfter:n,vaultAddress:C});return{action:y,endpoint:H,expiresAfter:n,nonce:T,typedData:TH(U),vaultAddress:C}}async function QH({action:y,nonce:n,signatureChainId:o}){let f=n||y.nonce||Date.now(),T=o||y.signatureChainId||"0xa4b1",C=UH({...y,nonce:f,signatureChainId:T});return{action:C,endpoint:await Lo(),nonce:f,typedData:oH(C)}}async function Jo({assetValue:y,recipient:n,sender:o,signatureChainId:f,time:T}){let C=wy(n,"core_transaction_invalid_recipient_address"),H=wy(o,"core_transaction_invalid_sender_address"),U=await Lo(),_=y.getValue("string"),A=T||Date.now(),Z=y.address;if(!Z)throw new tf("helpers_invalid_params",{asset:y.toString(),from:H});let M={amount:_,destination:C,hyperliquidChain:e_,signatureChainId:f||y8,time:A,token:Z,type:"spotSend"};return{action:M,endpoint:U,nonce:A,typedData:X8(M)}}async function qH(y){let n=await Pf.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(n.status!=="ok")throw new tf("core_transaction_failed",{response:n});return n}async function W8(y,n){let o=await NT(),f=n-5000;for(let T=0;T<5;T++){if(T>0)await new Promise((C)=>setTimeout(C,1000));try{let C=await Pf.post(`${o}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),H=Array.isArray(C)?C.find((U)=>U.time&&U.time>=n&&(U.delta?.type==="spotTransfer"||U.delta?.type==="internalTransfer")):void 0;if(H?.hash)return H.hash}catch{}}return""}function Yo(y){return y.startsWith("0x")&&_n(y)}function Q8(y){let n=Xy($y),o=y&&"index"in y?y.index||0:0,f=c_(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:d_(i_[$y],{index:o})),T,C=!1;function H(){if(C)return T;return T=a_(y).with({phrase:Zo.string},({phrase:W})=>{return r_.fromPhrase(W,void 0,f)}).with({signer:Zo.not(Zo.nullish)},({signer:W})=>W).otherwise(()=>{return}),C=!0,T}async function U(){let W=H();return W?await W.getAddress():""}async function _(W){let G=H();if(!G)throw new tf("toolbox_hypercore_no_signer");let X=await G.signTypedData(W.typedData.domain,W.typedData.types,W.typedData.message);return{action:W.action,endpoint:W.endpoint,nonce:W.nonce,signature:CH(X),..."expiresAfter"in W?{expiresAfter:W.expiresAfter}:{},..."vaultAddress"in W?{vaultAddress:W.vaultAddress}:{}}}async function A(W){let G=wy(W,"helpers_invalid_params");try{let X=await NT(),[Q,B,D]=await Promise.all([Pf.post(`${X}/info`,{json:{type:"spotClearinghouseState",user:G}}),Pf.post(`${X}/info`,{json:{type:"clearinghouseState",user:G}}),Pf.post(`${X}/info`,{json:{type:"spotMeta"}})]),L=(Q.spotState?.balances||Q.balances||[]).map(({coin:N,token:z,total:J})=>AH({coin:N,spotMeta:D,token:z,value:J})).filter((N)=>!!N),w=AH({coin:"USDC",spotMeta:D,value:B.withdrawable||B.marginSummary?.accountValue||B.marginSummary?.totalRawUsd});return G8(w?[...L,w]:L)}catch{return n(G)}}async function Z(W){let G=H();if(!G)throw new tf("toolbox_hypercore_no_signer");let X=W.sender||await G.getAddress(),Q=await Jo({...W,feeRate:0,sender:X}),B=await _(Q);return await qH(B),W8(X,Q.nonce)}function M(){return Mo.from({chain:$y,value:0})}return{broadcastTransaction:qH,createL1ActionRequest:WH,createTransaction:Jo,createUserSignedActionRequest:QH,estimateTransactionFee:M,getAddress:U,getBalance:A,getState:{clearinghouse:o8,frontendOpenOrders:U8,openOrders:H8,orderStatus:_8,spotClearinghouse:C8,userFills:A8,userFillsByTime:q8},signTransaction:_,transfer:Z,validateAddress:Yo}}var $y,XH,s_,e_="Mainnet",y8="0xa4b1",f8="0x0000000000000000000000000000000000000000",n8,T8;var ZH=I(()=>{b0();Ey();_H();$y=m_.HyperCore,{baseDecimal:XH}=GH($y),s_={HYPE:XH,USDC:6,USDT:6},n8={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},T8={spotSend:"HyperliquidTransaction:SpotSend"}});var Bo={};yy(Bo,{validateHyperCoreAddress:()=>Yo,getHyperCoreToolbox:()=>Q8,createUserSignedActionRequest:()=>QH,createTransaction:()=>Jo,createL1ActionRequest:()=>WH,buildUsdClassTransferAction:()=>S_,buildUpdateLeverageAction:()=>D_,buildUpdateIsolatedMarginAction:()=>R_,buildTopUpIsolatedOnlyMarginAction:()=>k_,buildTokenDelegateAction:()=>I_,buildSendAssetAction:()=>x_,buildScheduleCancelAction:()=>l_,buildOrderAction:()=>B_,buildModifyAction:()=>O_,buildCancelByCloidAction:()=>N_,buildCancelAction:()=>z_,buildBatchModifyAction:()=>w_,buildApproveBuilderFeeAction:()=>$_,buildApproveAgentAction:()=>F_});var zo=I(()=>{ZH()});import{PublicKey as yf}from"@solana/web3.js";import{AssetValue as OT,Chain as jy,DerivationPath as Z8,derivationPathToString as J8,getChainConfig as YH,getRPCUrl as M8,NetworkDerivationPath as L8,SwapKitError as pf,updateDerivationPath as Y8}from"@swapkit/helpers";import{match as B8,P as JH}from"ts-pattern";async function BH(y){let n=OT.from({address:y,chain:jy.Solana});if(n.symbol!=="UNKNOWN")return{decimals:n.decimal||0,id:y,logoURI:n.getIconUrl(),name:n.symbol,symbol:n.ticker};let o=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(o);if(!f.ok)return null;let T=await f.json();if(!Array.isArray(T)||T.length===0)return null;return T.find((H)=>H.id===y)||null}catch{return null}}async function z8(y){let n=await vy(),{PublicKey:o}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),T=new o(y),{baseDecimal:C}=YH(jy.Solana),H=await n.getBalance(T),U=[OT.from({chain:jy.Solana,fromBaseDecimal:C,value:H||0})],_=await n.getParsedTokenAccountsByOwner(T,{programId:f});for(let{account:A}of _.value){let Z=A.data.parsed.info,M=Z.mint,W=Z.tokenAmount.amount;if(Number(W)===0)continue;let G=await BH(M),X=G?.symbol||"UNKNOWN",Q=G?.decimals||Z.tokenAmount.decimals;U.push(OT.from({asset:`${jy.Solana}.${X}-${M}`,fromBaseDecimal:Q,value:W}))}return U}function Oo(y){try{let n=new yf(y);return yf.isOnCurve(n.toBytes())}catch{return!1}}function N8(y){let n=y&&"index"in y?y.index||0:0,o=J8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:Y8(L8[jy.Solana],{index:n})),f;async function T(){if(f)return f;return f=await B8(y).with({phrase:JH.string},({phrase:H})=>No({derivationPath:o,phrase:H})).with({signer:JH.any},({signer:H})=>H).otherwise(()=>{return}),f}async function C(){let H=await T();return H?.publicKey?LH(H.publicKey):""}return{broadcastTransaction:wT(vy),createKeysForPath:No,createTransaction:wo(vy),createTransactionFromInstructions:R8,estimateTransactionFee:O8(vy),getAddress:C,getAddressFromPubKey:LH,getBalance:Xy(jy.Solana),getBalanceFromRPC:z8,getConnection:vy,getPubkeyFromAddress:(H)=>new yf(H),signAndBroadcastTransaction:async(H)=>{let U=await MH(vy,T)(H);return wT(vy)(U)},signTransaction:MH(vy,T),transfer:k8(vy,T),validateAddress:Oo}}function O8(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let H=await y(),_=(await wo(y)({assetValue:o,isProgramDerivedAddress:T,memo:f,recipient:n,sender:C})).compileMessage(),A=await H.getFeeForMessage(_);if(A.value===null)throw new pf("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:Z}=YH(jy.Solana);return OT.from({chain:jy.Solana,fromBaseDecimal:Z,value:A.value})}}async function vy(){let{Connection:y}=await import("@solana/web3.js"),n=await M8(jy.Solana);return new y(n,{commitment:"confirmed",fetchMiddleware:(o,f,T)=>{let C={};for(let[H,U]of Object.entries(f?.headers??{})){let _=H.toLowerCase();if(_!=="pragma"&&_!=="solana-client")C[H]=U}T(o,{...f,headers:C})}})}function w8(y){return async({assetValue:n,recipient:o,sender:f,isProgramDerivedAddress:T})=>{let C=await y(),H=new yf(f);if(n.isGasAsset){let{Transaction:U,SystemProgram:_}=await import("@solana/web3.js");return new U().add(_.transfer({fromPubkey:H,lamports:n.getBaseValue("number"),toPubkey:new yf(o)}))}if(n.address)return D8({amount:n.getBaseValue("number"),connection:C,decimals:n.decimal,from:H,isProgramDerivedAddress:T,recipient:o,tokenAddress:n.address});return}}async function D8({tokenAddress:y,recipient:n,from:o,connection:f,amount:T,decimals:C,isProgramDerivedAddress:H}){let{getAssociatedTokenAddress:U,getAccount:_,createAssociatedTokenAccountInstruction:A,createTransferCheckedInstruction:Z}=await import("@solana/spl-token"),{Transaction:M}=await import("@solana/web3.js"),W=new M,G=new yf(y),X=await U(G,o),Q=new yf(n),B=await U(G,Q,H),D=!1;try{await _(f,B),D=!0}catch{}if(!D)W.add(A(o,B,Q,G));return W.add(Z(X,G,B,o,T,C)),W}function wo(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let{createMemoInstruction:H}=await import("@solana/spl-memo"),U=new yf(C);if(!(T||Oo(n)))throw new pf("core_transaction_invalid_recipient_address");let _=await y(),A=await w8(y)({assetValue:o,isProgramDerivedAddress:T,recipient:n,sender:C});if(!A)throw new pf("core_transaction_invalid_sender_address");if(f)A.add(H(f));let Z=await _.getLatestBlockhash();return A.recentBlockhash=Z.blockhash,A.feePayer=U,A}}async function R8({instructions:y}){let{Transaction:n}=await import("@solana/web3.js"),o=new n().add(...y);if(!o)throw new pf("core_transaction_invalid_sender_address");return o}function k8(y,n){return async({recipient:o,assetValue:f,memo:T,isProgramDerivedAddress:C})=>{let H=await n();if(!H)throw new pf("core_transaction_invalid_sender_address");let U=H.publicKey?.toString()??(await H.connect()).publicKey.toString(),_=await wo(y)({assetValue:f,isProgramDerivedAddress:C,memo:T,recipient:o,sender:U});if("signTransaction"in H){let A=await H.signTransaction(_);return wT(y)(A)}return _.sign(H),wT(y)(_)}}function wT(y){return async(n)=>{return(await y()).sendRawTransaction(n.serialize())}}function MH(y,n){return async(o)=>{let f=await n();if(!f)throw new pf("toolbox_solana_no_signer");let{VersionedTransaction:T}=await import("@solana/web3.js");if(!(o instanceof T)){let H=await(await y()).getLatestBlockhash();o.recentBlockhash=H.blockhash,o.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(o);return o.sign([f]),o}}async function No({phrase:y,derivationPath:n=Z8.SOL}){let{HDKey:o}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:T}=await import("@solana/web3.js"),C=f(y),H=o.fromMasterSeed(C);return T.fromSeed(H.derive(n,!0).privateKey)}function LH(y){return y.toString()}var zH=I(()=>{Ey()});var Do={};yy(Do,{validateSolanaAddress:()=>Oo,getSolanaToolbox:()=>N8,fetchTokenMetaData:()=>BH,createKeysForPath:()=>No});var Ro=I(()=>{zH()});import{AssetValue as DT,Chain as RT,DerivationPath as OH,derivationPathToString as l8,getChainConfig as S8,getRPCUrl as So,NetworkDerivationPath as x8,SwapKitError as By,updateDerivationPath as F8}from"@swapkit/helpers";import{match as ko,P as Ef}from"ts-pattern";function kT(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function lT({phrase:y,derivationPath:n=OH.STRK}){let{HDKey:o}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:T,hash:C,encode:H,CallData:U}=await import("starknet"),_=f(y),Z=o.fromMasterSeed(_).derive(n);if(!Z.privateKey)throw new By("toolbox_starknet_no_signer");let M=H.addHexPrefix(Buffer.from(Z.privateKey).toString("hex")),W=T.starkCurve.grindKey(M),G=H.addHexPrefix(W),X=T.starkCurve.getStarkKey(G),Q=U.compile([X,0]);return{address:C.calculateContractAddressFromHash(X,xo,Q,0),privateKey:G,publicKey:X}}async function Fo({phrase:y,derivationPath:n=OH.STRK}){let{Account:o,RpcProvider:f}=await import("starknet"),{privateKey:T,address:C}=await lT({derivationPath:n,phrase:y}),H=await So(RT.Starknet),U=new f({nodeUrl:H});return new o({address:C,provider:U,signer:T})}function wH(y){let n=RT.Starknet,o=y&&"index"in y?y.index||0:0,f=l8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:F8(x8[n],{index:o})),T,C,H;async function U(){if(C)return C;let{RpcProvider:z}=await import("starknet"),J=await So(n);return C=new z({nodeUrl:J}),C}async function _(z){let J=await U(),Y=z||await W();if(!Y)return!1;try{return await J.getClassHashAt(Y),!0}catch(R){if(R instanceof Error&&R.message.includes("Contract not found"))return!1;let l=R;if(l?.code===20||l?.code===19)return!1;throw R}}async function A(){let{CallData:z,hash:J}=await import("starknet"),Y=await U(),R=await M();if(!R)throw new By("toolbox_starknet_no_signer");if(!H)throw new By({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await _())return R.address;let q=z.compile([H,0]);if(J.calculateContractAddressFromHash(H,xo,q,0).toLowerCase()!==R.address.toLowerCase())throw new By({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let k={addressSalt:H,classHash:xo,constructorCalldata:q},{transaction_hash:S}=await R.deployAccount(k);return await Y.waitForTransaction(S),S}async function Z(){if(!await _()){if(!H)throw new By({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await A()}}async function M(){if(T)return T;return T=await ko(y).with({phrase:Ef.string},async({phrase:z})=>{let{Account:J,RpcProvider:Y}=await import("starknet"),{privateKey:R,address:l,publicKey:q}=await lT({derivationPath:f,phrase:z});H=q;let O=await So(RT.Starknet),k=new Y({nodeUrl:O});return new J({address:l,provider:k,signer:R})}).with({address:Ef.string,privateKey:Ef.string},async({privateKey:z,address:J})=>{let{Account:Y}=await import("starknet"),R=await U();return new Y({address:J,provider:R,signer:z})}).with({signer:Ef.instanceOf(Object)},({signer:z})=>z).otherwise(()=>{return}),T}async function W(){return(await M())?.address??""}async function G(z){let J=await U(),{uint256:Y,CallData:R}=await import("starknet"),l=[],q=[lo,NH];for(let O of q)try{let[k="0",S="0"]=await J.callContract({calldata:R.compile({account:z}),contractAddress:O,entrypoint:"balanceOf"}),x=Y.uint256ToBN({high:k,low:S});ko(O).with(lo,()=>{l.push(DT.from({chain:n,value:x}))}).with(NH,()=>{if(x>0n)l.push(DT.from({asset:`${n}.ETH-${O}`,value:x}))}).otherwise(()=>{})}catch{}return l}async function X({recipient:z,assetValue:J}){let{CallData:Y,uint256:R}=await import("starknet");if(!kT(z))throw new By("core_transaction_invalid_recipient_address",{address:z});let l=J.isGasAsset?lo:J.address;if(!l)throw new By("toolbox_starknet_invalid_address",{address:l,assetValue:J});let q=R.bnToUint256(J.getBaseValue("bigint"));return[{calldata:Y.compile([z,q]),contractAddress:l,entrypoint:"transfer"}]}async function Q({recipient:z,assetValue:J,sender:Y}){let{baseDecimal:R}=S8(RT.Starknet),l=await M(),q=await ko({sender:Y,signer:l}).with({sender:Ef.string},async({sender:O})=>{let{Account:k}=await import("starknet"),S=await U();return new k({address:O,provider:S,signer:"0x0"})}).with({signer:Ef.nonNullable},({signer:O})=>O).otherwise((O)=>{throw new By({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:O}})});try{let O=await X({assetValue:J,recipient:z}),k=await q.estimateInvokeFee(O);if(k?.overall_fee)return DT.from({chain:n,fromBaseDecimal:R,value:k.overall_fee})}catch(O){throw new By("toolbox_starknet_fee_estimation_failed",O)}return DT.from({chain:n,value:"0.00001"})}async function B({recipient:z,assetValue:J,memo:Y}){let R=await M();if(!R)throw new By("toolbox_starknet_no_signer");await Z();let l=await X({assetValue:J,memo:Y,recipient:z});return(await R.execute(l)).transaction_hash}async function D(z){let J=await M();if(!J)throw new By("toolbox_starknet_no_signer");let Y=await J.signMessage(z);return Array.isArray(Y)?Y:[Y.r.toString(),Y.s.toString()]}async function L(z){let J=await M();if(!J)throw new By("toolbox_starknet_no_signer");return await Z(),(await J.execute(z)).transaction_hash}function w(z){return L(z)}function N(z,J=!0){try{return Xy(n)(z,J)}catch{return G(z)}}return{broadcastTransaction:L,createKeysForPath:Fo,createTransaction:X,deployAccount:A,estimateTransactionFee:Q,getAddress:W,getBalance:N,getProvider:U,isAccountDeployed:_,signAndBroadcastTransaction:w,signMessage:D,transfer:B,validateAddress:kT}}var lo="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",NH="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",xo="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var DH=I(()=>{Ey()});var ST={};yy(ST,{validateStarknetAddress:()=>kT,starknetCreateKeysForPath:()=>Fo,getStarknetToolbox:()=>wH,deriveStarknetKeys:()=>lT});var xT=I(()=>{DH()});import{isValidSuiAddress as $8}from"@mysten/sui/utils";import{AssetValue as Vf,Chain as FT,getChainConfig as I8,SwapKitError as Dy}from"@swapkit/helpers";import{match as P8,P as RH}from"ts-pattern";async function lH(y,n,o,f=[],T){let C=await y.getCoins({coinType:o,cursor:T,owner:n}),H=[...f,...C.data];return C.hasNextPage?lH(y,n,o,H,C.nextCursor):H}function t8(y,n,o){let f=n.reduce((_,A)=>_+BigInt(A.balance),0n);if(f<o)throw new Dy("toolbox_sui_insufficient_balance",{available:f.toString(),required:o.toString()});let{ids:T}=n.reduce((_,A)=>{if(_.total>=o)return _;return{ids:[..._.ids,A.coinObjectId],total:_.total+BigInt(A.balance)}},{ids:[],total:0n}),C=T[0],H=T.slice(1);if(H.length>0)y.mergeCoins(C,H);let[U]=y.splitCoins(C,[o]);return U}function SH(y){try{return $8(y)}catch{return!1}}function kH(y){return"signWithIntent"in y}function p8({provider:y,...n}={}){let o;async function f(){if(o)return o;return o=await P8(n).with({phrase:RH.string},async({phrase:X})=>{let{Ed25519Keypair:Q}=await import("@mysten/sui/keypairs/ed25519");return Q.deriveKeypair(X)}).with({signer:RH.any},({signer:X})=>X).otherwise(()=>{return}),o}async function T(X=y){let{SuiClient:Q,getFullnodeUrl:B}=await import("@mysten/sui/client");return new Q({url:X||B("mainnet")})}async function C(){return(await f())?.toSuiAddress()||""}function H(X){try{let Q=Vf.from({address:X,chain:FT.Sui});return{asset:Q.toString(),decimals:Q.decimal}}catch{}return null}async function U(X){let Q=X||await C();if(!Q)throw new Dy("toolbox_sui_address_required");let{baseDecimal:B,chain:D}=I8(FT.Sui);try{let L=await T(),{totalBalance:w}=await L.getBalance({owner:Q}),N=[Vf.from({chain:D,fromBaseDecimal:B,value:w})],z=await L.getAllBalances({owner:Q});for(let{coinType:J,totalBalance:Y}of z){if(J==="0x2::sui::SUI"||Number(Y)<=0)continue;let R=H(J);if(R)N.push(Vf.from({asset:R.asset,fromBaseDecimal:R.decimals,value:Y}))}return N}catch{return[Vf.from({chain:D})]}}async function _(X){let Q=Vf.from({chain:FT.Sui,value:"0.01"});if(!X)return Q;try{let B=await T(),{txBytes:D}=await A(X),{effects:{status:L,gasUsed:w}}=await B.dryRunTransactionBlock({transactionBlock:D});if(L.status!=="success")return Q;let N=Number(w.computationCost)+Number(w.storageCost)-Number(w.storageRebate);return Vf.from({chain:FT.Sui,value:N.toString()})}catch{return Q}}async function A({recipient:X,assetValue:Q,gasBudget:B,sender:D}){let{Transaction:L}=await import("@mysten/sui/transactions"),w=D||await C();if(!w)throw new Dy("toolbox_sui_no_sender");try{let N=new L;if(N.setSender(w),Q.isGasAsset||Q.symbol==="SUI"){let[Y]=N.splitCoins(N.gas,[Q.getBaseValue("string")]);N.transferObjects([Y],X)}else{let Y=Q.address;if(!Y)throw new Dy("toolbox_sui_missing_coin_type");let R=await T(),l=Q.getBaseValue("bigint"),q=await lH(R,w,Y);if(!q.length)throw new Dy("toolbox_sui_no_coins_found",{coinType:Y});let O=t8(N,q,l);N.transferObjects([O],X)}if(B)N.setGasBudget(B);let z=await T(),J=await N.build({client:z});return{tx:N,txBytes:J}}catch(N){if(N instanceof Dy)throw N;throw new Dy("toolbox_sui_transaction_creation_error",{error:N})}}async function Z(X){let Q=await f();if(!Q)throw new Dy("toolbox_sui_no_signer");if(X instanceof Uint8Array)return Q.signTransaction(X);let{txBytes:B}="tx"in X?X:await A(X);return Q.signTransaction(B)}async function M({assetValue:X,gasBudget:Q,recipient:B}){let D=await f();if(!D)throw new Dy("toolbox_sui_no_signer");let L=D.toSuiAddress()||await C();if(!L)throw new Dy("toolbox_sui_no_sender");let{txBytes:w}=await A({assetValue:X,gasBudget:Q,recipient:B,sender:L}),N=await T();if(!kH(D)){let J=await D.signTransaction(w),{digest:Y}=await N.executeTransactionBlock({signature:J.signature,transactionBlock:J.bytes});return Y}let{digest:z}=await N.signAndExecuteTransaction({signer:D,transaction:w});return z}async function W(X){let Q=await T(),{digest:B}=await Q.executeTransactionBlock({signature:X.signature,transactionBlock:X.bytes});return B}async function G(X){let Q=await f();if(!Q)throw new Dy("toolbox_sui_no_signer");let B=await T(),D;if(typeof X==="string")D=Uint8Array.from(Buffer.from(X,"base64"));else if(X instanceof Uint8Array)D=X;else D=await X.build({client:B});if(!kH(Q)){let w=await Q.signTransaction(D),{digest:N}=await B.executeTransactionBlock({signature:w.signature,transactionBlock:w.bytes});return N}let{digest:L}=await B.signAndExecuteTransaction({signer:Q,transaction:D});return L}return{broadcastTransaction:W,createTransaction:A,estimateTransactionFee:_,getAddress:C,getBalance:U,signAndBroadcastTransaction:G,signTransaction:Z,transfer:M,validateAddress:SH}}var xH=()=>{};var $T={};yy($T,{validateSuiAddress:()=>SH,getSuiToolbox:()=>p8});var IT=I(()=>{xH()});import{getHttpEndpoint as E8}from"@orbs-network/ton-access";import{AssetValue as V8,Chain as zn,getChainConfig as b8,getRPCUrl as u8,SwapKitError as Bn,SwapKitNumber as v8}from"@swapkit/helpers";import{mnemonicToWalletKey as j8}from"@ton/crypto";import{Address as Ky,beginCell as $o,Cell as FH,external as K8,internal as h8,JettonMaster as m8,loadStateInit as c8,SendMode as $H,storeMessage as g8,TonClient as i8,toNano as pH,WalletContractV4 as d8}from"@ton/ton";import{match as IH,P as Io}from"ts-pattern";async function yA(){let y=Date.now();if(PT&&y-tH<e8)return PT;try{return PT=await E8(),tH=y,PT}catch{return u8(zn.Ton)}}function fA(y={}){let n,o,f;async function T(){if(!n){let N=y.provider??await yA();n=new i8({endpoint:N})}return n}async function C(){return(await U()).address.toString()}async function H(){if(f)return f;return f=await IH(y).with({phrase:Io.string},async({phrase:N})=>j8(N.split(" "))).with({signer:Io.any},({signer:N})=>N).otherwise(()=>{return}),f}async function U(N){if(!o||N){let z=await H(),J=await T(),Y=N||z;if(!Y)throw new Bn("core_wallet_connection_not_found");let R=d8.create({publicKey:Y.publicKey,workchain:0});o=J.open(R)}return o}let _=Xy(zn.Ton);async function A({assetValue:N,recipient:z,memo:J,sender:Y}){if(N.isGasAsset){let V=J?w(J).toBoc().toString("base64"):void 0;return[{address:z,amount:N.getBaseValue("string"),payload:V}]}let R=N.address;if(!R)throw new Bn({errorKey:"core_swap_contract_not_found",info:{asset:N.toString()}});let l=Y??await C(),q=await D({jettonMasterAddress:R,ownerAddress:l}),O=Ky.parse(z),k=Ky.parse(l),S=N.getBaseValue("bigint"),x=J?w(J):void 0,t=L({destinationAddress:O,forwardPayload:x,jettonAmount:S,responseAddress:k});return[{address:q.toString(),amount:s8.toString(),payload:t.toBoc().toString("base64")}]}function Z({sender:N,...z}){return A({...z,sender:N})}function M(N){return N.map((z)=>{let J=z.payload?FH.fromBase64(z.payload):void 0,Y=z.stateInit?c8(FH.fromBase64(z.stateInit).asSlice()):void 0,R=Ky.parse(z.address),l=Ky.isFriendly(z.address)?Ky.parseFriendly(z.address).isBounceable:!0;return h8({body:J,bounce:l,init:Y,to:R,value:BigInt(z.amount)})})}async function W(N){let z=await H(),J=await U();if(!J||!z)throw new Bn("core_wallet_connection_not_found");let Y=await T(),{state:R}=await Y.getContractState(J.address),l=R==="active",q=l?await J.getSeqno():0,O=J.createTransfer({messages:M(N),secretKey:z.secretKey,sendMode:PH,seqno:q}),k=K8({body:O,init:l?void 0:J.init,to:J.address});return $o().store(g8(k)).endCell()}async function G(N){return await(await T()).sendFile(N.toBoc()),N.hash().toString("hex")}async function X(N){let z=await W(N);return G(z)}async function Q({assetValue:N,recipient:z,memo:J}){let Y=await Z({assetValue:N,memo:J,recipient:z});return X(Y)}async function B({sender:N,...z}){let{baseDecimal:J}=b8(zn.Ton),Y=await IH(N).with(Io.string,(q)=>{return Ky.parseFriendly(q).address}).otherwise(async()=>{return(await U()).address});if(!Y)throw new Bn("toolbox_fee_estimation_failed",{chain:zn.Ton});let R=V8.from({chain:zn.Ton,value:"0.01"}),l=await T();try{let q=await Z({sender:N,...z}),O=await H(),k=await U();if(!k||!O)return R;let S=await k.getSeqno(),x=k.createTransfer({messages:M(q),secretKey:O.secretKey,sendMode:PH,seqno:S}),{source_fees:t}=await l.estimateExternalMessageFee(Y,{body:x,ignoreSignature:!0,initCode:null,initData:null}),V=t.in_fwd_fee+t.storage_fee+t.gas_fee+t.fwd_fee;return R.set(v8.fromBigInt(BigInt(V),J))}catch{return R}}async function D({jettonMasterAddress:N,ownerAddress:z}){try{let J=await T(),Y=Ky.parse(N),R=Ky.parse(z);return await J.open(m8.create(Y)).getWalletAddress(R)}catch{throw new Bn({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:N,ownerAddress:z}})}}function L({jettonAmount:N,destinationAddress:z,responseAddress:J,forwardAmount:Y=a8,forwardPayload:R}){let l=$o().storeUint(r8,32).storeUint(0,64).storeCoins(N).storeAddress(z).storeAddress(J).storeBit(0).storeCoins(Y);if(R)l.storeBit(1).storeRef(R);else l.storeBit(0);return l.endCell()}function w(N){return $o().storeUint(0,32).storeStringTail(N).endCell()}return{broadcastTransaction:G,createTransaction:Z,estimateTransactionFee:B,getAddress:C,getBalance:_,getJettonWalletAddress:D,sign:W,signAndBroadcastTransaction:X,transfer:Q,validateAddress:EH}}function EH(y){try{return Ky.parse(y),!0}catch{return!1}}var r8=260734629,a8,s8,PH,e8=60000,PT,tH=0;var VH=I(()=>{Ey();a8=pH("0.01"),s8=pH("0.05"),PH=$H.PAY_GAS_SEPARATELY+$H.IGNORE_ERRORS});var tT={};yy(tT,{validateTonAddress:()=>EH,getTONToolbox:()=>fA});var pT=I(()=>{VH()});import{NetworkDerivationPath as nA}from"@swapkit/helpers";function Ry(y,n){if(!Number.isInteger(n)||n<0)throw RangeError(`${y} must be a non-negative integer, got: ${n}`)}function ff({accountIndex:y,chain:n,derivationPath:o}){if(y!==void 0)Ry("accountIndex",y);let f=[...o?.slice(0,3)??nA[n].slice(0,3)];if(y!==void 0)f[2]=y;return f}function bf({accountIndex:y,change:n=!1,chain:o,derivationPath:f,index:T}){return Ry("index",T),[...ff({accountIndex:y,chain:o,derivationPath:f}),Number(n),T]}function Lf(y){return y[2]??0}function bH({deriveAddress:y,getBalance:n,getUtxos:o}){async function f(U){let{accountIndex:_,count:A,startIndex:Z=0,change:M=!1}=U;if(Ry("count",A),A<1)throw RangeError("count must be at least 1");Ry("startIndex",Z);let W=[];for(let G=0;G<A;G++){let X=await y({accountIndex:_,change:M,index:Z+G});if(X)W.push(X)}return W}async function T(U){let{gapLimit:_=20,change:A=!1}=U??{},Z=[],M=0,W=0;while(M<_){let G=await y({change:A,index:W});if(!G)break;if((await n(G.address)).some((B)=>B.getValue("number")>0))Z.push(G),M=0;else M++;W++}return Z}async function C(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),Z=[..._,...A],M=await Promise.all(Z.map(async(G)=>{let Q=(await n(G.address)).reduce((B,D)=>B+D.getValue("number"),0);return{...G,balance:Q}})),W=M.reduce((G,X)=>G+X.balance,0);return{addresses:M,total:W}}async function H(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),Z=[..._,...A];return(await Promise.all(Z.map(async(W)=>{return(await o(W.address)).map((X)=>({...X,address:W.address,derivationIndex:W.index,isChange:W.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:C,getAggregatedUtxos:H,scanForAddresses:T}}var Nn=()=>{};import{Chain as Cy,getRPCUrl as TA,RequestClient as ET,SKConfig as oA,SwapKitError as Iy,warnOnce as CA}from"@swapkit/helpers";import{NETWORKS as uf}from"@swapkit/utxo-signer";async function HA({chain:y,txHash:n}){let o=`${On(y)}/push/transaction`,f=JSON.stringify({data:n});try{let T=await ET.post(o,{body:f,headers:{"Content-Type":"application/json"}});if(T.context.code!==200)throw new Iy("toolbox_utxo_broadcast_failed",{error:T.context.error||"Transaction broadcast failed"});return T.data?.transaction_hash||n}catch(T){let C=await TA(y);if(C){let H=JSON.stringify({id:pC(),jsonrpc:"2.0",method:"sendrawtransaction",params:[n]}),U=await ET.post(C,{body:H,headers:{"Content-Type":"application/json"}});if(U.error)throw new Iy("toolbox_utxo_broadcast_failed",{error:U.error?.message});if(U.result.includes('"code":-26'))throw new Iy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return U.result}throw T}}function On(y){return`https://api.blockchair.com/${UA(y)}`}function uH(y){switch(y){case Cy.Bitcoin:return 5;case Cy.Dogecoin:return 1e4;case Cy.Litecoin:return 1;case Cy.Zcash:return 1;default:return 2}}function UA(y){switch(y){case Cy.BitcoinCash:return"bitcoin-cash";case Cy.Litecoin:return"litecoin";case Cy.Dash:return"dash";case Cy.Dogecoin:return"dogecoin";case Cy.Zcash:return"zcash";case Cy.Polkadot:return"polkadot";default:return"bitcoin"}}async function _A(y){try{let{feePerKb:n}=await ET.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),o=n/1000;return Math.max(o,uH(y))}catch{return uH(y)}}async function VT(y,n){let o=await ET.get(`${y}${n?`${y.includes("?")?"&":"?"}key=${n}`:""}`);if(!o||o.context.code!==200)throw new Iy("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return o.data}async function jH({address:y,chain:n,apiKey:o}){if(!y)throw new Iy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await VT(`${On(n)}/dashboards/address/${y}?transaction_details=true`,o))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function AA({address:y,chain:n,apiKey:o}){return(await jH({address:y,apiKey:o,chain:n}))?.address.balance||0}async function KH({chain:y,apiKey:n,txHash:o}){if(!o)throw new Iy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await VT(`${On(y)}/raw/transaction/${o}`,n))?.[o]?.raw_transaction||""}catch(f){let T=f instanceof Error?f.message:String(f);return console.error(`Failed to fetch raw transaction: ${T}`),""}}async function GA({chain:y,apiKey:n,txHash:o}){if(!o)throw new Iy("toolbox_utxo_invalid_params",{error:"TxHash is required"});let T=(await VT(`${On(y)}/dashboards/transaction/${o}`,n))?.[o];if(!T)throw new Iy("toolbox_utxo_tx_not_found",{txHash:o});let{transaction:C,inputs:H,outputs:U}=T,_=H.map((Z)=>Z.spending_sequence),A=C.is_rbf===!0||_.some((Z)=>Z<qA);return{blockId:C.block_id,confirmed:C.block_id!==-1,fee:C.fee,inputs:H,isRBF:A,outputs:U,sequences:_,size:C.size,txid:C.hash,weight:C.weight}}async function XA({chain:y,address:n,apiKey:o,offset:f=0,limit:T=30}){return(await VT(`${On(y)}/outputs?q=recipient(${n}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${T}&offset=${f}`,o)).map(({is_spent:_,script_hex:A,block_id:Z,transaction_hash:M,index:W,value:G,spending_signature_hex:X})=>({hash:M,index:W,is_confirmed:Z!==-1,is_spent:_,script_hex:A,txHex:X,value:G}))}function WA(y){return y.reduce((n,o)=>n+o.value,0)}function vH(y,n){let o=[...y].sort((f,T)=>T.value-f.value);if(n){let f=[],T=0;for(let C of o)if(f.push(C),T+=C.value,T>=n)break;return f}return o}async function hH({chain:y,address:n,apiKey:o,targetValue:f,accumulativeValue:T=0,offset:C=0,limit:H=30}){if(!n)throw new Iy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let U=await XA({address:n,apiKey:o,chain:y,limit:H,offset:C,targetValue:f}),A=U.length<H,Z=U.filter(({is_spent:B})=>!B),M=WA(Z),W=T+M,G=f&&W>=f;if(A||G)return vH(Z,f);let X=await hH({accumulativeValue:W,address:n,apiKey:o,chain:y,limit:H,offset:C+H,targetValue:f}),Q=[...Z,...X];return vH(Q,f)}catch(U){let _=U instanceof Error?U.message:String(U);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function QA({address:y,chain:n,apiKey:o,fetchTxHex:f=!0,targetValue:T}){let C=await hH({address:y,apiKey:o,chain:n,targetValue:T}),H=[];for(let{hash:U,index:_,script_hex:A,value:Z}of C){let M;if(f)M=await KH({apiKey:o,chain:n,txHash:U});H.push({address:y,hash:U,index:_,txHex:M,value:Z,witnessUtxo:{script:Buffer.from(A,"hex"),value:Z}})}return H}function a(y){let n=oA.get("apiKeys").blockchair||"";return CA({condition:!n,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(o)=>HA({chain:y,txHash:o}),getAddressData:(o)=>jH({address:o,apiKey:n,chain:y}),getBalance:(o)=>AA({address:o,apiKey:n,chain:y}),getRawTx:(o)=>KH({apiKey:n,chain:y,txHash:o}),getSuggestedTxFee:()=>_A(y),getTransactionDetails:(o)=>GA({apiKey:n,chain:y,txHash:o}),getUtxos:(o)=>QA({...o,apiKey:n,chain:y})}}function ZA(y){return y}function JA(){return function(n){switch(n){case Cy.Bitcoin:return uf.bitcoin;case Cy.BitcoinCash:return uf.bitcoinCash;case Cy.Dash:return uf.dash;case Cy.Litecoin:return uf.litecoin;case Cy.Dogecoin:return uf.dogecoin;case Cy.Zcash:return uf.zcash;default:throw new Iy("toolbox_utxo_not_supported",{chain:n})}}}var qA=4294967294;var mH=I(()=>{Ey()});import{CashAddrType as bT,decodeCashAddr as MA,encodeCashAddr as LA}from"@swapkit/utxo-signer";function zA(y,n,o){return LA({hash:o,prefix:y,type:YA[n]})}function NA(y){let n=MA(y),o=BA[n.type];if(!o)throw Error(`Unknown CashAddr type: ${n.type}`);return{hash:n.hash,prefix:n.prefix,type:o}}var YA,BA,Po;var cH=I(()=>{YA={P2PKH:bT.P2PKH,P2SH:bT.P2SH},BA={[bT.P2PKH]:"P2PKH",[bT.P2SH]:"P2SH"};Po={decode:NA,encode:zA}});import{sha256 as OA}from"@noble/hashes/sha2.js";import{createBase58check as wA}from"@scure/base";import{SwapKitError as iH}from"@swapkit/helpers";function po(y){try{return uT(y),!0}catch{return!1}}function Eo(y){return uT(y)?.network}function hy(y){let n=uT(y);if(n?.format==="legacy")return y;return kA(n)}function wn(y){let n=uT(y);return lA(n)}function uT(y){try{let n=DA(y);if(n)return n}catch{}try{let n=RA(y);if(n)return n}catch{}throw new iH("toolbox_utxo_invalid_address",{address:y})}function DA(y){try{let n=dH.decode(y);if(n.length!==21)throw new iH("toolbox_utxo_invalid_address",{address:y});let o=n[0],f=Array.prototype.slice.call(n,1);switch(o){case Yf.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case Yf.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case Yf.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case Yf.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case Yf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case Yf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function RA(y){if(y.indexOf(":")!==-1)try{return gH(y)}catch{}else{let n=["bitcoincash","bchtest","bchreg"];for(let o of n)try{return gH(`${o}:${y}`)}catch{}}return}function gH(y){try{let{hash:n,prefix:o,type:f}=Po.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(n,0),network:o==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function kA(y){let n=Yf.legacy[y.network][y.type],o=Buffer.alloc(1+y.hash.length);return o[0]=n,o.set(y.hash,1),dH.encode(o)}function lA(y){let n=y.network==="mainnet"?"bitcoincash":"bchtest",o=y.type==="p2pkh"?"P2PKH":"P2SH",f=new Uint8Array(y.hash);return Po.encode(n,o,f)}var dH,to,Yf;var rH=I(()=>{cH();dH=wA(OA);((o)=>{o.Mainnet="mainnet";o.Testnet="testnet"})(to||={});Yf={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as SA}from"@swapkit/helpers";import{Script as xA}from"@swapkit/utxo-signer";function Jy(y){let n=new Uint8Array(Buffer.from(y,"utf8"));return xA.encode(["RETURN",n])}var FA=1000,jT=10,KT=2,aH=10,$A=41,IA=107,hT,vT,Dn,vf=(y)=>{if(y.startsWith("bc1")||y.startsWith("tb1")||y.startsWith("ltc1")||y.startsWith("tltc1"))return"P2WPKH";if(y.startsWith("1")||y.startsWith("m")||y.startsWith("n")||y.startsWith("bitcoincash:q")||y.startsWith("bitcoincash:p")||y.startsWith("q")||y.startsWith("p")||y.startsWith("L")||y.startsWith("M")||y.startsWith("3")||y.startsWith("D")||y.startsWith("A")||y.startsWith("9")||y.startsWith("X")||y.startsWith("7")||y.startsWith("y")||y.startsWith("t1")||y.startsWith("t3")||y.startsWith("tm"))return"P2PKH";throw new SA("toolbox_utxo_invalid_address",{address:y})},Bf=({inputs:y,outputs:n,feeRate:o})=>{let f=y[0]&&"address"in y[0]&&y[0].address?vf(y[0].address):"P2PKH",C=(o?y.filter((A)=>A.value>=vT["type"in A&&A.type?A.type:"P2PKH"]*Math.ceil(o)):y).reduce((A,Z)=>A+nf(Z),0),H=n?.reduce((A,Z)=>A+Rn(Z),0)||Dn[f],U=jT+C+H;return f==="P2WPKH"?Math.ceil(U+KT/4):U},nf=(y)=>{if("type"in y&&y.type)return vT[y.type];if("address"in y&&y.address)return vT[vf(y.address)];return $A+IA},Rn=(y,n)=>{if(y?.script)return aH+y.script.length+(y.script.length>=74?2:1);if(n)return Dn[n];if("address"in y&&y.address)return Dn[vf(y.address)];return Dn.P2PKH};var Vo=I(()=>{((o)=>{o.P2PKH="P2PKH";o.P2WPKH="P2WPKH"})(hT||={});vT={["P2PKH"]:148,["P2WPKH"]:68},Dn={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as zf,SwapKitError as PA}from"@swapkit/helpers";function kn(y){switch(y){case zf.Bitcoin:case zf.BitcoinCash:return 550;case zf.Dash:case zf.Litecoin:return 5500;case zf.Dogecoin:return 1e5;case zf.Zcash:return 546;default:throw new PA("toolbox_utxo_not_supported",{chain:y})}}function ky({inputs:y,outputs:n,feeRate:o=1,chain:f=zf.Bitcoin,changeAddress:T=""}){let C=y[0]&&"address"in y[0]&&y[0].address?vf(y[0].address):"P2PKH",H=y.filter((X)=>nf(X)*o<=X.value),_=C==="P2WPKH"?Math.ceil(KT/4):0,A=jT+_+n.reduce((X,Q)=>X+Rn(Q),0),Z=n.reduce((X,Q)=>X+Q.value,0),M=A*o,W=0,G=[];for(let X of H){let Q=nf(X),B=o*Q;M+=B,W+=X.value,G.push(X);let D=M+Z;if(W<D)continue;let L=W-D,w=o*Rn({address:T,value:0});if(L>w){let N=w+M,z=W-(Z+Math.ceil(N));if(z>Math.max(nf({value:0})*o,kn(f)))return{fee:Math.ceil(N),inputs:G,outputs:n.concat({address:T,value:z})}}return{fee:Math.ceil(M),inputs:G,outputs:n}}return{fee:Math.ceil(o*Bf({inputs:y,outputs:n}))}}var sH=I(()=>{Vo()});var jf=I(()=>{mH();rH();sH();Vo()});import{Address as tA,ZCASH_NETWORK as pA}from"@swapkit/utxo-signer";function Nf(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function Tf(y){let n=Nf(y);return po(n)&&Eo(n)==="mainnet"}function Kf(y){try{if(y.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let o=tA(pA).decode(y);return o.type==="pkh"||o.type==="sh"}catch{return!1}}var ln=I(()=>{jf()});import{secp256k1 as EA}from"@noble/curves/secp256k1.js";import{hex as Of}from"@scure/base";import{HDKey as n5}from"@scure/bip32";import{mnemonicToSeedSync as uo}from"@scure/bip39";import{AssetValue as mT,applyFeeMultiplier as eH,Chain as s,derivationPathToString as Sn,FeeOption as Py,NetworkDerivationPath as T5,SwapKitError as m,SwapKitNumber as VA,updateDerivationPath as bA,warnOnce as uA}from"@swapkit/helpers";import{Address as vA,BCHSigHash as vo,CashAddrPrefix as jA,CashAddrType as KA,encodeCashAddr as hA,NETWORKS as hf,p2pkh as y5,p2wpkh as mA,RBF_SEQUENCE as cA,SigHash as o5,Transaction as bo,WIF as C5}from"@swapkit/utxo-signer";import{match as H5}from"ts-pattern";function jo({address:y,chain:n}){return H5(n).with(s.BitcoinCash,()=>Tf(y)).with(s.Zcash,()=>Kf(y)).otherwise(()=>{try{return vA(Ay(n)).decode(y),!0}catch{return!1}})}function Ay(y){return H5(y).with(s.Bitcoin,()=>hf.bitcoin).with(s.BitcoinCash,()=>hf.bitcoinCash).with(s.Dash,()=>hf.dash).with(s.Dogecoin,()=>hf.dogecoin).with(s.Litecoin,()=>hf.litecoin).with(s.Zcash,()=>hf.zcash).exhaustive()}function gA({phrase:y,derivationPath:n,network:o,seed:f}){let T=f??uo(y),H=n5.fromMasterSeed(T,o.bip32).derive(n);if(!H.privateKey)throw new m("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return H.privateKey}function f5(y){return EA.getPublicKey(y,!0)}function Fn({publicKey:y,chain:n,network:o}){if(n===s.BitcoinCash){let C=y5(y,o);if(!C.hash)throw new m("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return hA({hash:C.hash,prefix:jA.MAINNET,type:KA.P2PKH}).replace(/^bitcoincash:/,"")}let T=!xn.includes(n)?mA(y,o):y5(y,o);if(!T.address)throw new m("toolbox_utxo_invalid_address",{error:"Could not derive address"});return T.address}function mf({phrase:y,derivationPath:n,chain:o,wif:f,seed:T}){let C=Ay(o);if(f){let A=C5(C).decode(f),Z=f5(A);return{privateKey:A,publicKey:Z}}if(!y)throw new m("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let H=n||Sn(T5[o]),U=gA({derivationPath:H,network:C,phrase:y,seed:T}),_=f5(U);return{privateKey:U,publicKey:_}}function iA(y,n){return C5(Ay(n)).encode(y)}function dA({phrase:y,derivationPath:n,chain:o,seed:f}){let T=n.split("/");if(T.length<4)throw new m("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${T.length}): ${n}`});let C=Ay(o),H=f??uo(y),U=n5.fromMasterSeed(H,C.bip32),_=T.slice(0,4).join("/");return U.derive(_)}function of({inputs:y,outputs:n,chain:o,tx:f,sender:T,compiledMemo:C,enableRBF:H=!1}){let U=Ay(o),_=!xn.includes(o),A=H?cA:void 0,Z=new Set;for(let M of y){let W=`${M.hash}:${M.index}`;if(Z.has(W))throw new m("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});Z.add(W);let G=typeof M.hash==="string"?Of.decode(M.hash):M.hash;if(_&&M.witnessUtxo)f.addInput({index:M.index,sequence:A,txid:G,witnessUtxo:{amount:BigInt(M.witnessUtxo.value),script:M.witnessUtxo.script}});else if(M.txHex)f.addInput({index:M.index,nonWitnessUtxo:Of.decode(M.txHex),sequence:A,txid:G,...o===s.BitcoinCash?{sighashType:vo.ALL}:{}});else throw new m("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let M of n){let W="address"in M&&M.address?M.address:T;if(o===s.BitcoinCash)W=hy(W);if(M.script){if(C)f.addOutput({amount:0n,script:C})}else f.addOutputAddress(W,BigInt(M.value),U)}return{inputs:y,tx:f}}async function cf(y){let n=await a(y).getSuggestedTxFee();return{[Py.Average]:n,[Py.Fast]:eH(n,Py.Fast),[Py.Fastest]:eH(n,Py.Fastest)}}async function U5({assetValue:y,recipient:n,memo:o,sender:f,fetchTxHex:T=!1}){let C=y.chain,H=(await cf(C))[Py.Fastest],U=T||xn.includes(C),_=y.getBaseValue("number"),A=Math.ceil(_+H*5000);return{inputs:await a(C).getUtxos({address:f,fetchTxHex:U,targetValue:A}),outputs:[{address:n,value:_},...o?[{address:"",script:Jy(o),value:0}]:[]]}}async function _5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T,fetchTxHex:C=!1,enableRBF:H=!1}){let U=y.chain,_=o?Jy(o):null,A=await U5({assetValue:y,fetchTxHex:C,memo:o,recipient:n,sender:T}),{inputs:Z,outputs:M}=ky({...A,chain:U,feeRate:f});if(!(Z&&M))throw new m("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let W=new bo({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:G,tx:X}=of({chain:U,compiledMemo:_,enableRBF:H,inputs:Z,outputs:M,sender:T,tx:W});return{inputs:G,tx:X,utxos:A.inputs}}async function A5({assetValue:y,feeOptionKey:n=Py.Fast,feeRate:o,memo:f,sender:T,recipient:C}){let H=y.chain,U=await U5({assetValue:y,memo:f,recipient:C,sender:T}),_=o?Math.floor(o):(await cf(H))[n];return ky({...U,chain:H,feeRate:_})}function rA(y){return async function({from:o,memo:f,feeRate:T,feeOptionKey:C=Py.Fast,recipients:H=1}){let U=await a(y).getAddressData(o),_=T?Math.ceil(T):(await cf(y))[C],A=U?.utxo.map((Q)=>({...Q,hash:"",type:"P2PKH"})).filter((Q)=>Q.value>Math.max(kn(y),nf(Q)*_));if(!A?.length)return mT.from({chain:y});let Z=BigInt(A.reduce((Q,B)=>Q+B.value,0)),M=mT.from({chain:y,value:Z}),W=typeof H==="number"?Array.from({length:H},()=>({address:o,value:0})):H;if(f)W.push({address:o,script:Jy(f),value:0});let G=Bf({inputs:A,outputs:W}),X=mT.from({chain:y,value:BigInt(G*_)});return M.sub(X)}}function aA(y){return async function(o){let{fee:f}=await A5(o);return mT.from({chain:y,value:VA.fromBigInt(BigInt(f),8).getValue("string")})}}function sA({chain:y,phrase:n,derivationPath:o,seed:f}){let T=Ay(y),{privateKey:C,publicKey:H}=mf({chain:y,derivationPath:o,phrase:n,seed:f}),U=y===s.BitcoinCash?[vo.ALL]:[o5.ALL];return{getAddress:()=>Fn({chain:y,network:T,publicKey:H}),privateKey:C,publicKey:H,signTransaction:(_)=>{return _.sign(C,U),_}}}function eA(y,n){return async function({memo:f,recipient:T,feeOptionKey:C,feeRate:H,assetValue:U,enableRBF:_=!1}){let A=await n?.getAddress();if(!(n&&A))throw new m("toolbox_utxo_no_signer");if(!T)throw new m("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});uA({condition:_&&!cT.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let Z=_&&cT.includes(y),M=H||(await cf(y))[C||Py.Fast],{tx:W}=await _5({assetValue:U,enableRBF:Z,feeRate:M,memo:f,recipient:T,sender:A}),G=await n.signTransaction(W);return G.finalize(),a(y).broadcastTx(Of.encode(G.extract()))}}function Ko(y){return(n)=>jo({address:n,chain:y})}function ho(y){let n=Ay(y);return function(f){if(!f)throw new m("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return Fn({chain:y,network:n,publicKey:f.publicKey})}}function Cf({chain:y,...n}){let o="phrase"in n?n.phrase:void 0,f="index"in n?n.index||0:0,T=o?uo(o):void 0,C="derivationPath"in n&&n.derivationPath?n.derivationPath:bA(T5[y],{index:f}),H=Sn(C),U=o?sA({chain:y,derivationPath:H,phrase:o,seed:T}):void 0,_="signer"in n?n.signer:void 0,A=U||_,Z=o?mf({chain:y,derivationPath:H,phrase:o,seed:T}):void 0;function M(){if(A)return A.getAddress();return Promise.resolve(void 0)}function W(q){if(!o)return;let O=ff({accountIndex:q,chain:y,derivationPath:C});return dA({chain:y,derivationPath:Sn(O),phrase:o,seed:T})}let G=W();function X(){if(!G)return;return G.publicExtendedKey}function Q({accountIndex:q}={}){let O=q===void 0?G:W(q);if(!O)return;let k=ff({accountIndex:q,chain:y,derivationPath:C});return{accountIndex:Lf(k),path:Sn(k),xpub:O.publicExtendedKey}}function B({accountIndex:q,index:O,change:k=!1}){let S=q===void 0?G:W(q);if(!S)return;let x=bf({accountIndex:q,chain:y,change:k,derivationPath:C,index:O}),t=Ay(y),V=S.deriveChild(Number(k)).deriveChild(O);if(!V.publicKey)throw new m("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let b=Fn({chain:y,network:t,publicKey:V.publicKey}),j=Of.encode(V.publicKey);return{accountIndex:Lf(x),address:b,change:k,index:O,path:Sn(x),pubkey:j}}async function D(q){if(!cT.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let O=await a(y).getTransactionDetails(q);return{canReplace:O.isRBF&&!O.confirmed,confirmed:O.confirmed,enabled:O.isRBF,fee:O.fee,sequences:O.sequences,supported:!0}}async function L({txid:q,newFeeRate:O,recipient:k,memo:S}){if(!cT.includes(y))throw new m("toolbox_utxo_rbf_not_supported",{chain:y});let x=await a(y).getTransactionDetails(q);if(!x.isRBF)throw new m("toolbox_utxo_tx_not_replaceable",{txid:q});if(x.confirmed)throw new m("toolbox_utxo_tx_already_confirmed",{blockId:x.blockId,txid:q});let t=x.inputs.reduce((ny,iy)=>ny+iy.value,0),b=x.outputs.find((ny)=>ny.recipient===k)?.value||0;if(b===0)throw new m("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let j=await Promise.all(x.inputs.map(async(ny)=>{let iy=await a(y).getRawTx(ny.transaction_hash);return{hash:ny.transaction_hash,index:ny.index,txHex:iy,value:ny.value,witnessUtxo:void 0}})),e=S?Jy(S):null,_y=Bf({feeRate:O,inputs:j.map((ny)=>({...ny,type:"P2WPKH"})),outputs:[{address:k,value:b}]}),r=Math.ceil(_y*O);if(r<=x.fee)throw new m("toolbox_utxo_rbf_fee_too_low",{newFee:r,originalFee:x.fee});let Ny=r-x.fee,Gy=b-Ny;if(Gy<=0)throw new m("toolbox_utxo_rbf_insufficient_change");let xy=new bo({allowLegacyWitnessUtxo:!0,version:1}),_f=[{address:k,value:Gy},...S?[{address:"",script:Jy(S),value:0}]:[]],Af=t-Gy-r,gy=await M();if(Af>kn(y)&&gy)_f.push({address:gy,value:Af});return of({chain:y,compiledMemo:e,inputs:j,outputs:_f,sender:gy||k,tx:xy}),{feeDelta:Ny,newFee:r,originalFee:x.fee,tx:xy}}async function w({txid:q,newFeeRate:O,recipient:k,memo:S}){let{tx:x,originalFee:t,newFee:V}=await L({memo:S,newFeeRate:O,recipient:k,txid:q}),b=await R(x);b.finalize();let j=await a(y).broadcastTx(Of.encode(b.extract()));return{newFee:V,originalFee:t,txid:j}}function N({accountIndex:q,index:O,change:k=!1}){Ry("index",O);let S=q===void 0?G:W(q);if(!S)return;return S.deriveChild(Number(k)).deriveChild(O).privateKey||void 0}function z({tx:q,inputDerivations:O}){if(!G)throw new m("toolbox_utxo_no_signer");let k=y===s.BitcoinCash?[vo.ALL]:[o5.ALL];for(let S=0;S<O.length;S++){let x=O[S];if(!x)continue;let{derivationIndex:t,isChange:V}=x,b=N({change:V,index:t});if(!b)throw new m("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${S} at index ${t}`});q.signIdx(b,S,k)}return q}async function J({utxos:q,recipient:O,assetValue:k,memo:S,feeRate:x,feeOptionKey:t,changeAddress:V}){if(!G)throw new m("toolbox_utxo_no_signer");let b=x||(await cf(y))[t||Py.Fast],j=S?Jy(S):null,e=[{address:O,value:k.getBaseValue("number")}];if(j)e.push({address:"",script:j,value:0});let _y=q.map(({hash:gy,index:ny,value:iy,txHex:$U,witnessUtxo:W0})=>({hash:gy,index:ny,txHex:$U,value:iy,witnessUtxo:W0?{script:W0.script,value:W0.value}:void 0})),{inputs:r,outputs:Ny}=ky({chain:y,feeRate:b,inputs:_y,outputs:e});if(!(r&&Ny))throw new m("toolbox_utxo_insufficient_balance",{assetValue:k,sender:"multiple addresses"});let Gy=new bo({allowLegacyWitnessUtxo:!0,version:1}),xy=q[0]?.address,_f=V||await M()||xy||O;of({chain:y,compiledMemo:j,inputs:r,outputs:Ny,sender:_f,tx:Gy});let Af=r.map((gy)=>{let ny=q.find((iy)=>iy.hash===gy.hash&&iy.index===gy.index);return ny?{derivationIndex:ny.derivationIndex,isChange:ny.isChange}:{derivationIndex:0,isChange:!1}});return z({inputDerivations:Af,tx:Gy}),Gy.finalize(),a(y).broadcastTx(Of.encode(Gy.extract()))}function Y({address:q,gapLimit:O=20}){if(!G)return;for(let k=0;k<O;k++){let S=B({change:!1,index:k}),x=B({change:!0,index:k}),t=S?.address===q?!1:x?.address===q;if(S?.address===q||x?.address===q)return{change:t,index:k}}return}function R(q){if(!A)throw new m("toolbox_utxo_no_signer");return A.signTransaction(q)}async function l(q){let O=await R(q);return O.finalize(),await a(y).broadcastTx(Of.encode(O.extract()))}return{accumulative:ky,broadcastTx:(q)=>a(y).broadcastTx(q),bumpFee:w,calculateTxSize:Bf,createKeysForPath:(q)=>mf({...q,chain:y}),createReplacementTransaction:L,createTransaction:_5,deriveAddressAtIndex:B,derivePrivateKeyAtIndex:N,estimateMaxSendableAmount:rA(y),estimateTransactionFee:aA(y),getAddress:M,getAddressFromKeys:ho(y),getBalance:Xy(y),getExtendedPublicKey:X,getExtendedPublicKeyInfo:Q,getFeeRates:()=>cf(y),getInputsOutputsFee:A5,getNetworkForChain:()=>Ay(y),getPrivateKeyFromMnemonic:(q)=>iA(mf({...q,chain:y}).privateKey,y),isRBFEnabled:D,keys:Z,resolveDerivationIndex:Y,signAndBroadcastTransaction:l,signTransaction:R,signTransactionWithMultipleKeys:z,transfer:eA(y,A),transferFromMultipleAddresses:J,validateAddress:Ko(y)}}var xn,cT;var gf=I(()=>{Ey();Nn();jf();ln();xn=[s.Dash,s.Dogecoin,s.Zcash,s.BitcoinCash],cT=[s.Bitcoin]});import{hex as q5}from"@scure/base";import{Chain as yq,derivationPathToString as fq,FeeOption as nq,NetworkDerivationPath as Tq,SwapKitError as my,updateDerivationPath as oq}from"@swapkit/helpers";import{BCHSigHash as Cq,CashAddrPrefix as G5,CashAddrType as X5,encodeCashAddr as W5,NETWORKS as Hq,p2pkh as Q5,Transaction as Z5}from"@swapkit/utxo-signer";function $n(y){return Nf(wn(y))}function Uq(y){let n=Ay(ty);function o(T){return T.sign(y.privateKey,[Cq.ALL]),T}function f(){let T=Q5(y.publicKey,n);if(!T.hash)throw new my("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let C=W5({hash:T.hash,prefix:G5.MAINNET,type:X5.P2PKH});return Promise.resolve(C.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:o}}function mo(y){let n="phrase"in y?y.phrase:void 0,o="index"in y?y.index||0:0,f=fq("derivationPath"in y&&y.derivationPath?y.derivationPath:oq(Tq[ty],{index:o})),T=n?mf({chain:ty,derivationPath:f,phrase:n}):void 0,C=T?Uq(T):("signer"in y)?y.signer:void 0;function H(){return Promise.resolve(C?.getAddress())}let{getBalance:U,getFeeRates:_,broadcastTx:A,...Z}=Cf({chain:ty});function M(X,Q=!0){return U(Nf(wn(X)))}function W(X){if(!C)throw new my("toolbox_utxo_no_signer");return C.signTransaction(X)}async function G(X){let Q=await W(X);return Q.finalize(),await A(q5.encode(Q.extract()))}return{...Z,broadcastTx:A,buildTx:Aq,createTransaction:J5,getAddress:H,getAddressFromKeys:qq,getBalance:M,getFeeRates:_,signAndBroadcastTransaction:G,signTransaction:W,stripPrefix:Nf,stripToCashAddress:$n,transfer:_q({broadcastTx:A,getFeeRates:_,signer:C}),validateAddress:Tf}}async function J5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){if(!Tf(n))throw new my("toolbox_utxo_invalid_address",{address:n});let C=Math.ceil(y.getBaseValue("number")+f*7500),H=await a(ty).getUtxos({address:$n(T),fetchTxHex:!0,targetValue:C}),U=o?Jy(o):null,_=[],A=hy(n);if(_.push({address:A,value:y.getBaseValue("number")}),U)_.push({script:U,value:0});let{inputs:Z,outputs:M}=ky({chain:ty,feeRate:f,inputs:H,outputs:_});if(!(Z&&M))throw new my("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let W=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!U,version:1}),G=hy(T),{inputs:X,tx:Q}=of({chain:ty,compiledMemo:U,inputs:Z,outputs:M.map((B)=>("address"in B)&&B.address?{...B,address:hy(B.address)}:B),sender:G,tx:W});return{inputs:X,tx:Q,utxos:Z}}function _q({broadcastTx:y,getFeeRates:n,signer:o}){return async function({recipient:T,assetValue:C,feeOptionKey:H=nq.Fast,...U}){let _=await o?.getAddress();if(!(o&&_))throw new my("toolbox_utxo_no_signer");if(!T)throw new my("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let A=U.feeRate||(await n())[H],{tx:Z}=await J5({...U,assetValue:C,feeRate:A,recipient:T,sender:_}),M=await o.signTransaction(Z);return M.finalize(),y(q5.encode(M.extract()))}}async function Aq({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){let C=wn(n);if(!Tf(C))throw new my("toolbox_utxo_invalid_address",{address:C});let H=Math.ceil(y.getBaseValue("number")+f*7500),U=await a(ty).getUtxos({address:$n(T),fetchTxHex:!0,targetValue:H}),_=Number(f.toFixed(0)),A=o?Jy(o):null,Z=[];if(Z.push({address:hy(n),value:y.getBaseValue("number")}),A)Z.push({script:A,value:0});let{inputs:M,outputs:W}=ky({chain:ty,feeRate:_,inputs:U,outputs:Z});if(!(M&&W))throw new my("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let G=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:X,tx:Q}=of({chain:ty,compiledMemo:A,inputs:M,outputs:W,sender:hy(T),tx:G});return{inputs:X,tx:Q,utxos:U}}function qq(y){let n=Hq.bitcoinCash,o=Q5(y.publicKey,n);if(!o.hash)throw new my("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return W5({hash:o.hash,prefix:G5.MAINNET,type:X5.P2PKH}).replace(/^bitcoincash:/,"")}var ty;var gT=I(()=>{jf();gf();ln();ty=yq.BitcoinCash});import{createBase58check as Gq,hex as Xq}from"@scure/base";import{HDKey as Y5}from"@scure/bip32";import{mnemonicToSeedSync as B5}from"@scure/bip39";import{Chain as iT,derivationPathToString as Wq,FeeOption as Qq,NetworkDerivationPath as Zq,SKConfig as z5,SwapKitError as In,updateDerivationPath as Jq}from"@swapkit/helpers";import{Address as Mq,createZcashTransaction as Lq,OutScript as Yq,PCZT as Bq,utils as N5,WIF as zq,ZCASH_NETWORK as Nq,ZCASH_TEST_NETWORK as Oq,ZcashConsensusBranchId as wq,ZcashSigHash as M5,ZcashVersionGroupId as Dq}from"@swapkit/utxo-signer";import{match as Rq,P as co}from"ts-pattern";function O5(){let{isStagenet:y}=z5.get("envs");return y?Oq:Nq}function lq(y){return kq.encode(y)}function Sq({phrase:y,derivationPath:n}){let o=B5(y),T=Y5.fromMasterSeed(o).derive(n);if(!T.privateKey||!T.publicKey)throw new In("toolbox_utxo_invalid_params");let{privateKey:C,publicKey:H}=T,U=N5.hash160(H),{isStagenet:_}=z5.get("envs"),A=_?new Uint8Array([29,37]):new Uint8Array([28,184]),Z=new Uint8Array(A.length+U.length);Z.set(A,0),Z.set(U,A.length);let M=lq(Z);return{getAddress:()=>Promise.resolve(M),signTransaction:(W)=>{if(W instanceof Bq)return W.signAllInputs(C,H,M5.ALL),W.finalizeAllInputs(),Promise.resolve(W.extract());return W.signAllInputs(C,H,M5.ALL),Promise.resolve(W)}}}function xq({inputs:y,outputs:n,tx:o,sender:f,compiledMemo:T}){let C=O5();for(let H of y){let U=Mq(C).decode(f),_=Yq.encode(U);o.addInput({index:H.index,script:_,sequence:4294967295,txid:Xq.decode(H.hash),value:BigInt(H.value)})}for(let H of n){let U="address"in H&&H.address?H.address:f,_=H.script;if(_&&!T)continue;if(_&&T)o.addOutput({amount:0n,script:T});else o.addOutputAddress(U,BigInt(H.value),C)}return{inputs:y,tx:o}}async function L5(y){let{assetValue:n,recipient:o,memo:f,feeRate:T,sender:C,fetchTxHex:H}=y,U=f?Jy(f):null,_=await a(iT.Zcash).getUtxos({address:C,fetchTxHex:H!==!1}),A=[{address:o,value:Number(n.getBaseValue("string"))},...U?[{script:U,value:0}]:[]],{inputs:Z,outputs:M}=ky({chain:iT.Zcash,changeAddress:C,feeRate:T,inputs:_,outputs:A});if(!(Z&&M))throw new In("toolbox_utxo_insufficient_balance",{assetValue:n,sender:C});let W=Lq({consensusBranchId:wq.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:Dq.SAPLING}),{tx:G,inputs:X}=xq({compiledMemo:U,inputs:Z,outputs:M,sender:C,tx:W});return{inputs:X,outputs:M,tx:G}}function go(y){let n=Rq(y).with({signer:co.not(co.nullish)},({signer:_})=>_).with({phrase:co.string},({phrase:_,derivationPath:A,index:Z=0})=>{let M=A||Zq[iT.Zcash]||[44,133,0,0,0],W=Jq(M,{index:Z}),G=Wq(W);return Sq({derivationPath:G,phrase:_})}).otherwise(()=>{return}),o=Cf({chain:iT.Zcash,signer:n});async function f(_){if(!n)throw new In("toolbox_utxo_no_signer");return await n.signTransaction(_)}async function T(_){let A=await f(_);return o.broadcastTx(A.toHex())}async function C({recipient:_,assetValue:A,feeOptionKey:Z=Qq.Fast,...M}){let W=await n?.getAddress();if(!(n&&W))throw new In("toolbox_utxo_no_signer");let G=M.feeRate||(await o.getFeeRates())[Z],{tx:X}=await L5({...M,assetValue:A,feeRate:G,recipient:_,sender:W}),B=(await n.signTransaction(X)).toHex();return o.broadcastTx(B)}function H({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let Z=B5(_),W=Y5.fromMasterSeed(Z).derive(A);if(!W.privateKey||!W.publicKey)throw new In("toolbox_utxo_invalid_params");return{privateKey:W.privateKey,publicKey:W.publicKey}}function U({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let Z=H({derivationPath:A,phrase:_}),M=O5();return zq(M).encode(Z.privateKey)}return{...o,createKeysForPath:H,createTransaction:L5,getPrivateKeyFromMnemonic:U,signAndBroadcastTransaction:T,signTransaction:f,transfer:C,validateAddress:Kf}}var kq;var io=I(()=>{jf();gf();ln();kq=Gq(N5.sha256)});import{hex as Fq}from"@scure/base";import{HDKey as $q}from"@scure/bip32";import{derivationPathToString as Iq}from"@swapkit/helpers";function w5({xpub:y,chain:n,count:o,startIndex:f=0,accountIndex:T}){if(Ry("count",o),o<1)throw RangeError("count must be at least 1");Ry("startIndex",f);let C=Ay(n),H=$q.fromExtendedKey(y,C.bip32),U=ff({accountIndex:T,chain:n}),_=Lf(U),A=[];for(let Z of[!1,!0]){let M=H.deriveChild(Number(Z));for(let W=0;W<o;W++){let G=f+W,X=M.deriveChild(G);if(!X.publicKey)continue;let Q=bf({accountIndex:T,chain:n,change:Z,index:G});A.push({accountIndex:_,address:Fn({chain:n,network:C,publicKey:X.publicKey}),change:Z,index:G,path:Iq(Q),pubkey:Fq.encode(X.publicKey)})}}return A}var D5=I(()=>{Nn();gf()});import{Chain as df,SwapKitError as Pq}from"@swapkit/helpers";function tq(y,n){switch(y){case df.BitcoinCash:return mo(n||{});case df.Zcash:return go(n);case df.Bitcoin:case df.Dogecoin:case df.Litecoin:case df.Dash:return Cf({chain:y,...n});default:throw new Pq("toolbox_utxo_not_supported",{chain:y})}}var R5=I(()=>{gT();gf();io();Nn();D5();gT();ln()});var ro={};yy(ro,{validateZcashAddress:()=>Kf,validateUtxoAddress:()=>jo,validateBchAddress:()=>Tf,toLegacyAddress:()=>hy,toCashAddress:()=>wn,stripToCashAddress:()=>$n,stripPrefix:()=>Nf,nonSegwitChains:()=>xn,isValidAddress:()=>po,getUtxoToolbox:()=>tq,getUtxoNetwork:()=>JA,getUtxoApi:()=>a,getUTXOAddressValidator:()=>Ko,getUTXOAddressPath:()=>bf,getUTXOAccountPath:()=>ff,getUTXOAccountIndexFromPath:()=>Lf,getScriptTypeForAddress:()=>vf,getOutputSize:()=>Rn,getNetworkForChain:()=>Ay,getInputSize:()=>nf,getDustThreshold:()=>kn,detectAddressNetwork:()=>Eo,deriveAddressesFromXpub:()=>w5,createZcashToolbox:()=>go,createUTXOToolbox:()=>Cf,createHDWalletHelpers:()=>bH,createCustomUtxoApi:()=>ZA,createBCHToolbox:()=>mo,compileMemo:()=>Jy,calculateTxSize:()=>Bf,assertDerivationIndex:()=>Ry,addressFromKeysGetter:()=>ho,addInputsAndOutputs:()=>of,accumulative:()=>ky,UtxoNetwork:()=>to,UTXOScriptType:()=>hT,TX_OVERHEAD:()=>jT,SEGWIT_MARKER_FLAG_WEIGHT:()=>KT,OutputSizes:()=>Dn,OP_RETURN_OVERHEAD:()=>aH,MIN_TX_FEE:()=>FA,InputSizes:()=>vT});var ao=I(()=>{gf();Nn();jf();R5();gT();io()});import{KeyPairSigner as pq}from"@near-js/signers";import{derivationPathToString as Eq,SwapKitError as Vq}from"@swapkit/helpers";import*as k5 from"near-seed-phrase";function Pn(y){return y.length>=2&&y.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(y)}async function dT(y){let{KeyPair:n}=await import("@near-js/crypto"),o=y.index||0,f=y.derivationPath?Eq(y.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:T}=k5.parseSeedPhrase(y.phrase,f),C=n.fromString(T);return S5(C)}async function so(y){let{KeyPair:n}=await import("@near-js/crypto"),o=n.fromString(y);return S5(o)}function S5(y){return new l5(y)}async function rT(y,n){let f=(await y.query({account_id:n,finality:"final",request_type:"view_access_key_list"})).keys.find((U)=>U.access_key.permission==="FullAccess");if(!f)throw new Vq("toolbox_near_no_public_key_found");let{PublicKey:T}=await import("@near-js/crypto"),C=T.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:C}}var l5;var eo=I(()=>{l5=class l5 extends pq{#y;constructor(y){super(y);this.#y=y}getAddress(){let y=this.#y.getPublicKey(),n=Buffer.from(y.data).toString("hex");return Promise.resolve(n)}}});function yC(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function fC(y){return"contractId"in y&&"methodName"in y}function nC(y){return"actions"in y}function TC(y){return"newAccountId"in y}function oC(y){return"contractCode"in y}function CC(y){return"customEstimator"in y}function HC(y){let n=0;for(let o of y)switch(o.enum){case"transfer":n+=Number(Hy.SIMPLE_TRANSFER);break;case"functionCall":n+=Number(Hy.CONTRACT_CALL);break;case"createAccount":n+=Number(Hy.ACCOUNT_CREATION);break;case"deployContract":n+=Number(Hy.CONTRACT_DEPLOYMENT);break;case"addKey":n+=Number(Hy.ACCESS_KEY_ADDITION);break;case"deleteKey":n+=Number(Hy.ACCESS_KEY_DELETION);break;case"stake":n+=Number(Hy.STAKE);break;default:n+=Number(Hy.CONTRACT_CALL)}return n.toString()}function UC(y){if(y==="ft_transfer"||y==="ft_transfer_call")return Hy.TOKEN_TRANSFER;if(y==="storage_deposit")return Hy.STORAGE_DEPOSIT;return Hy.CONTRACT_CALL}function bq(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function uq(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var Hy;var _C=I(()=>{Hy={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function AC({account:y,contractId:n,viewMethods:o,changeMethods:f}){let{Contract:T}=await import("@near-js/accounts");return new T(y,n,{changeMethods:f,useLocalViewExecution:!0,viewMethods:o})}import{JsonRpcProvider as vq}from"@near-js/providers";import{AssetValue as qC,Chain as rf,getRPCUrl as x5,SwapKitError as Zy}from"@swapkit/helpers";import{match as F5,P as $5}from"ts-pattern";function jq(y){let n;async function o(){if(n)return n;return n=await F5(y).with({phrase:$5.string},async(q)=>{return await dT(q)}).with({signer:$5.any},({signer:q})=>q).otherwise(()=>{return}),n}async function f(){let q=await x5(rf.Near);return new vq({url:q})}async function T(q){let{Account:O}=await import("@near-js/accounts"),k=await f(),S=await o(),x=q||await C();return new O(x,k,S)}async function C(){let q=await o();if(!q)throw new Zy("toolbox_near_no_signer");return await q.getAddress()}async function H(q){return(await N({changeMethods:[],contractId:q.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:q.accountId})}async function U(q){let k=[await W({args:{account_id:q.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await W({args:{amount:q.assetValue.getBaseValue("string"),memo:q.memo||null,receiver_id:q.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return z({actions:k,receiverId:q.contractId})}async function _(q){if(!await o())throw new Zy("toolbox_near_no_signer");let{assetValue:k,recipient:S,memo:x}=q,t=await C();if(!k.isGasAsset&&k.address){if(!await H({accountId:S,contractId:k.address}))return U({assetValue:k,contractId:k.address,memo:x,recipient:S})}let V=await A({...q,sender:t});return Q(V)}async function A({recipient:q,assetValue:O,memo:k,attachedDeposit:S,sender:x,functionCall:t}){let V=await f();if(!Pn(q))throw new Zy("toolbox_near_invalid_address",{recipient:q});if(!Pn(x))throw new Zy("toolbox_near_invalid_address",{sender:x});if(t)return M({...t,sender:x});if(!O.isGasAsset){let Af=O.address;if(!Af)throw new Zy("toolbox_near_missing_contract_address");return M({args:{amount:O.getBaseValue("string"),memo:k||null,receiver_id:q},attachedDeposit:S||"1",contractId:Af,gas:"250000000000000",methodName:"ft_transfer",sender:x})}let{publicKey:b,nonce:j}=await rT(V,x),e=O.getBaseValue("bigint"),{actionCreators:_y,createTransaction:r}=await import("@near-js/transactions"),{baseDecode:Ny}=await import("@near-js/utils"),Gy=[_y.transfer(e)];if(k&&S)Gy.push(_y.functionCall("memo",{memo:k},BigInt("250000000000000"),BigInt(S)));let xy=await V.block({finality:"final"}),_f=Ny(xy.header.hash);return r(x,b,q,j+1,Gy,_f)}function Z(q){let O=q.encode();return Buffer.from(O).toString("base64")}async function M({args:q,attachedDeposit:O,contractId:k,gas:S,methodName:x,sender:t}){let V=await f(),{publicKey:b,nonce:j}=await rT(V,t),{createTransaction:e,actionCreators:_y}=await import("@near-js/transactions"),{baseDecode:r}=await import("@near-js/utils"),Ny=await V.block({finality:"final"}),Gy=r(Ny.header.hash),xy=[_y.functionCall(x,Buffer.from(JSON.stringify(q)),BigInt(S),BigInt(O))];return e(t,b,k,j+1,xy,Gy)}async function W(q){let{actionCreators:O}=await import("@near-js/transactions");return O.functionCall(q.methodName,Buffer.from(JSON.stringify(q.args)),BigInt(q.gas),BigInt(q.attachedDeposit))}async function G(q){let O=await o();if(!O)throw new Zy("toolbox_near_no_signer");let[k,S]=await O.signTransaction(q);return S}async function X(q){return(await(await f()).sendTransaction(q)).transaction.hash}async function Q(q){let O=await o();if(!O)throw new Zy("toolbox_near_no_signer");try{let k=await G(q);return await X(k)}catch{return O.signAndSendTransactions?.({transactions:[q]})}}async function B(q){let O=await o();if("assetValue"in q){let S=await D();try{let x=await x5(rf.Near),t=await fetch(x,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:V}}=await t.json(),{execution:b,send_sir:j}=V.transaction_costs.action_receipt_creation_config,{execution:e,send_sir:_y}=V.transaction_costs.action_creation_config.transfer_cost,r=BigInt(_y)+BigInt(e),Ny=BigInt(j)+BigInt(b),xy=(r+Ny)*BigInt(S.toString());return qC.from({chain:rf.Near,value:xy})}catch(x){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",x);let t=BigInt("115123062500"),V=BigInt("108059500000"),j=(t+V)*BigInt(S.toString());return qC.from({chain:rf.Near,value:j})}}let k=O?await T():void 0;return J(q,k)}async function D(){let q=await f();try{return await q.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function L(q,O,k){if(!await o())throw new Zy("toolbox_near_no_signer");let x=await T(),{formatNearAmount:t}=await import("@near-js/utils"),{PublicKey:V}=await import("@near-js/crypto"),b=t(k)||"0";return(await x.createAccount(q,V.fromString(O),BigInt(b))).transaction.hash}async function w(q){let O=await o();try{if(!O)throw new Zy("toolbox_near_no_signer");let{actionCreators:k}=await import("@near-js/transactions"),{contractId:S,methodName:x,args:t,deposit:V}=q,b=await T(),j=await J({args:t||{},contractId:S,methodName:x}),e=k.functionCall(x,t||{},j.getBaseValue("bigint"),BigInt(V||"1"));return(await b.signAndSendTransaction({actions:[e],receiverId:S})).transaction_outcome.id}catch(k){throw new Zy("toolbox_near_transfer_failed",{error:k})}}async function N(q){let O=await T();return AC({account:O,changeMethods:q.changeMethods,contractId:q.contractId,viewMethods:q.viewMethods})}async function z(q){if(!await o())throw new Zy("toolbox_near_no_signer");if(q.actions.length===0)throw new Zy("toolbox_near_empty_batch");return(await(await T()).signAndSendTransaction({actions:q.actions,receiverId:q.receiverId})).transaction.hash}async function J(q,O){let k=await F5(q).when(yC,()=>Hy.SIMPLE_TRANSFER).when(fC,(x)=>UC(x.methodName)).when(nC,(x)=>HC(x.actions)).when(TC,()=>Hy.ACCOUNT_CREATION).when(oC,()=>Hy.CONTRACT_DEPLOYMENT).when(CC,(x)=>{if(!O)throw new Zy("toolbox_near_no_account");return x.customEstimator(O)}).otherwise(()=>{throw new Zy("toolbox_near_invalid_gas_params")}),S=BigInt(k)*BigInt(1000000000000);return qC.from({chain:rf.Near,value:S})}function Y(q,O){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),J(q,O)}async function R(){let q=await f();try{return(await q.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function l(){let q=await o();return q?(await q.getPublicKey()).toString():""}return{broadcastTransaction:X,callFunction:w,createAction:W,createContract:N,createContractFunctionCall:M,createSubAccount:L,createTransaction:A,estimateGas:Y,estimateGasLimit:J,estimateTransactionFee:B,executeBatchTransaction:z,getAddress:C,getBalance:Xy(rf.Near),getGasPrice:R,getNearProvider:f,getPublicKey:l,getSignerFromPhrase:dT,getSignerFromPrivateKey:so,serializeTransaction:Z,signAndBroadcastTransaction:Q,signTransaction:G,transfer:_,validateAddress:Pn}}var GC=I(()=>{Ey();eo();_C()});var I5=I(()=>{GC()});var XC={};yy(XC,{validateNearAddress:()=>Pn,tgasToGas:()=>bq,isSimpleTransfer:()=>yC,isCustomEstimator:()=>CC,isContractDeployment:()=>oC,isContractCall:()=>fC,isBatchTransaction:()=>nC,isAccountCreation:()=>TC,getNearToolbox:()=>jq,getNearSignerFromPrivateKey:()=>so,getNearSignerFromPhrase:()=>dT,getFullAccessPublicKey:()=>rT,getContractMethodGas:()=>UC,gasToTGas:()=>uq,estimateBatchGas:()=>HC,createNearContract:()=>AC,GAS_COSTS:()=>Hy});var WC=I(()=>{eo();_C();GC();I5()});var ZC={};yy(ZC,{validateRadixAddress:()=>t5,getRadixToolbox:()=>aq});import{GatewayApiClient as Kq}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as hq}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as P5,Chain as QC,SKConfig as mq,SwapKitError as cq}from"@swapkit/helpers";function t5(y){return y.startsWith("account_rdx1")&&y.length===66}function gq({networkApi:y}){return async function(o){let f=await iq({address:o,networkApi:y}),T=await dq({networkApi:y,resources:f});if(!T.some((H)=>H.isGasAsset))return[P5.from({chain:QC.Radix}),...T];return T}}async function iq({address:y,networkApi:n}){let o=!0,f,T=[],C=await rq(n);while(o){let H={address:y,at_ledger_state:{state_version:C},cursor:f,limit_per_page:100},U=await n.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:H});if(T=T.concat(U.items),U.next_cursor)f=U.next_cursor;else o=!1}return T}async function dq({resources:y,networkApi:n}){let o=[],f=50,T=[];for(let C=0;C<y.length;C+=50)T.push(y.slice(C,C+50));for(let C of T){let H=C.map((A)=>A.resource_address),U=await n.state.getEntityDetailsVaultAggregated(H),_=new Map;for(let A of U)if(A.details!==void 0){let Z=A.metadata?.items.find((W)=>W.key==="symbol"),M=Z?.value.typed.type==="String"?Z.value.typed.value:"?";if(A.details.type==="FungibleResource")_.set(A.address,{decimals:A.details.divisibility,symbol:M})}for(let A of C)if(A.aggregation_level==="Global"){let Z=_.get(A.resource_address)||{decimals:0,symbol:"?"},M=P5.from({asset:Z.symbol!==QC.Radix?`${QC.Radix}.${Z.symbol}-${A.resource_address}`:"XRD.XRD",value:A.amount});o.push(M)}}return o}async function rq(y){return(await y.status.getCurrent()).ledger_state.state_version}function aq({dappConfig:y}={}){let n=y||mq.get("integrations").radix,o=hq({...n,networkId:n.network?.networkId||1}),f=Kq.initialize(o.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:gq({networkApi:f}),networkApi:f,signAndBroadcast:()=>{throw new cq("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:t5}}var JC=()=>{};import{SwapKitError as sq}from"@swapkit/helpers";function aT(y){return/^[0-9A-Fa-f]{40}$/.test(y)}function tn(y){if(aT(y))return y.toUpperCase();if(y.length<=3){let o=Buffer.from(y.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${o}${"0".repeat(10)}`.toUpperCase()}let n=Buffer.from(y).toString("hex").toUpperCase();if(n.length>40)throw new sq({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return n.padEnd(40,"0")}function eq(y){if(!aT(y))return y;if(y.toUpperCase().startsWith("00")){let n=y.slice(24,30);try{let o=Buffer.from(n,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(o)&&o.length>0)return o}catch{}return y.toUpperCase()}try{let n=y.replace(/0+$/,""),o=n.length%2===0?n:`${n}0`,f=Buffer.from(o,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function af(y){if(aT(y))return y.toUpperCase();if(y.length<=3)return y;return tn(y)}var sT=()=>{};import{RequestClient as yG,warnOnce as fG}from"@swapkit/helpers";async function nG(y,n){let o=af(y),f=eT.find((T)=>af(T.currency)===o&&T.issuer===n);if(f)return f;try{let T=await yG.get(`https://api.xrplmeta.org/token/${y}:${n}`);if(T)return{currency:y,decimals:15,description:T.desc,domain:T.domain,icon:T.icon,issuer:n,name:T.name,verified:T.self_assessment?.is_regulated||T.self_assessment?.is_licensed}}catch(T){fG({condition:!0,id:`xrpl_token_lookup_${y}_${n}`,warning:`Failed to fetch XRPL token info for ${y}:${n}: ${T}`})}return{currency:y,decimals:15,issuer:n,verified:!1}}function TG(y){return eT.filter((n)=>n.issuer===y)}function oG(y,n){let o=af(y);return eT.some((f)=>af(f.currency)===o&&f.issuer===n)}var eT;var p5=I(()=>{sT();eT=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var MC={};yy(MC,{validateRippleAddress:()=>n0,parseXrplTokenIdentifier:()=>K5,normalizeCurrency:()=>af,isKnownToken:()=>oG,isHexCurrency:()=>aT,hexToCurrency:()=>eq,hashes:()=>GG,getXrplTokenInfo:()=>nG,getRippleToolbox:()=>qG,getKnownTokensByIssuer:()=>TG,formatXrplTokenIdentifier:()=>h5,currencyToHex:()=>tn,XRPL_TOKEN_ERROR_CODES:()=>f0,XRPL_KNOWN_TOKENS:()=>eT});import{AssetValue as y0,Chain as ly,getChainConfig as E5,getRPCUrl as CG,SwapKitError as qy}from"@swapkit/helpers";import{match as V5,P as b5}from"ts-pattern";import{Client as HG,isValidAddress as j5,Wallet as UG,xrpToDrops as _G}from"xrpl";import{hashes as GG}from"xrpl";function K5(y){let n=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!n?.[1]||!n?.[2])return null;if(!j5(n[2]))return null;return{currency:n[1],issuer:n[2]}}function h5(y,n){return`${ly.Ripple}.${y}-${n}`}function AG(y){if(y.isGasAsset)return _G(y.getValue("string"));let n=K5(y.toString());if(!n)throw new qy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:n.currency,issuer:n.issuer,value:y.getValue("string")}}function v5(y){let n=UG.fromMnemonic(y);return{getAddress:()=>Promise.resolve(n.address),signTransaction:(o)=>Promise.resolve(n.sign(o))}}function n0(y){return j5(y)}function qG(y={}){let n=V5(y).with({phrase:b5.string},({phrase:L})=>v5(L)).with({signer:b5.any},({signer:L})=>L).otherwise(()=>{return}),o;async function f(){let L=await CG(ly.Ripple);if(!L)throw new qy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:ly.Ripple}});let w=new HG(L);return await w.connect(),w}async function T(){if(o){let L=await o.catch(()=>null);if(L?.isConnected())return L}return o=f(),o}let C=()=>{if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});return n.getAddress()},H=async(L)=>{let w=L||await C(),{baseDecimal:N}=E5(ly.Ripple),z=await T();try{let[J,Y]=await Promise.all([z.request({account:w,command:"account_info"}),z.request({account:w,command:"account_lines"})]),R=J.result.account_data.Balance,l=[y0.from({chain:ly.Ripple,fromBaseDecimal:N,value:R})];for(let q of Y.result.lines){let O=h5(q.currency,q.account);if(Number.parseFloat(q.balance)!==0)l.push(y0.from({asset:O,asyncTokenLookup:!1,value:q.balance}))}return l}catch(J){if(J.data?.error_code===u5.ACCOUNT_NOT_FOUND)return[y0.from({chain:ly.Ripple,value:0})];throw new qy({errorKey:"toolbox_ripple_get_balance_error",info:{address:w,error:J}})}},U=async()=>{let{baseDecimal:L}=E5(ly.Ripple),z=(await(await T()).request({command:"fee"})).result.drops.open_ledger_fee;return y0.from({chain:ly.Ripple,fromBaseDecimal:L,value:z})};async function _(L){let w=L||await C(),N=await T();try{return(await N.request({account:w,command:"account_lines"})).result.lines.map((J)=>({account:J.account,authorized:J.authorized??!1,balance:J.balance,currency:J.currency,freeze:J.freeze??!1,freezePeer:J.freeze_peer??!1,limit:J.limit,limitPeer:J.limit_peer,noRipple:J.no_ripple??!1,noRipplePeer:J.no_ripple_peer??!1,peerAuthorized:J.peer_authorized??!1,qualityIn:J.quality_in??0,qualityOut:J.quality_out??0}))}catch(z){if(z.data?.error_code===u5.ACCOUNT_NOT_FOUND)return[];throw new qy({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:w,error:z}})}}async function A({address:L,currency:w,issuer:N}){let z=await _(L),J=tn(w);return z.some((Y)=>{return tn(Y.currency)===J&&Y.account===N})}async function Z({currency:L,issuer:w,limit:N,sender:z}){let J=z||await C();if(!n0(w))throw new qy({errorKey:"core_transaction_invalid_recipient_address",info:{address:w}});let Y=Number.parseFloat(N);if(Number.isNaN(Y)||Y<0)throw new qy({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:N}});let R=await T(),l={Account:J,LimitAmount:{currency:L,issuer:w,value:N},TransactionType:"TrustSet"};return R.autofill(l)}async function M({assetValue:L,recipient:w,memo:N,sender:z,destinationTag:J,extendBySeconds:Y=150}){if(!n0(w))throw new qy({errorKey:"core_transaction_invalid_recipient_address"});let R=z||await C();if(L.chain!==ly.Ripple)throw new qy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:L.toString()}});let l=AG(L),q={Account:R,Amount:l,Destination:w,TransactionType:"Payment",...J!==void 0&&{DestinationTag:J}};if(N)q.Memos=[{Memo:{MemoData:Buffer.from(N).toString("hex")}}];let k=await(await T()).autofill(q);if(k.LastLedgerSequence&&Y>0)k.LastLedgerSequence+=Math.ceil(Y/4);return k}function W(L){if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});return n.signTransaction(L)}async function G(L){let N=await(await T()).submitAndWait(L),{result:z}=N;if(z.validated)return z.hash;let J=z.meta?.TransactionResult,Y=V5(J).with(f0.tecNO_LINE,()=>"No trust line exists for this token").with(f0.tecPATH_DRY,()=>"Payment path could not deliver funds").with(f0.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new qy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:ly.Ripple,...Y?{reason:Y}:{txResult:J}}})}let X=async(L)=>{try{let w=await W(L);return G(w.tx_blob)}catch(w){if(w instanceof qy)throw w;throw new qy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:ly.Ripple,error:w}})}};async function Q(L){if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});let w=await n.getAddress(),N=await M({...L,sender:w}),z=await W(N);return G(z.tx_blob)}async function B(L){if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});let w=await n.getAddress(),N=await Z({...L,sender:w}),z=await W(N);return G(z.tx_blob)}function D(){let L=o;if(o=null,L)L.then((w)=>{if(w?.isConnected())return w.disconnect();return}).catch((w)=>{console.warn("XRPL Cleanup failed silently:",w)})}return{broadcastTransaction:G,createSigner:v5,createTransaction:M,disconnect:D,estimateTransactionFee:U,getAddress:C,getBalance:H,getTrustLines:_,hasTrustLine:A,setTrustLine:Z,setTrustLineAndBroadcast:B,signAndBroadcastTransaction:X,signTransaction:W,transfer:Q,validateAddress:n0}}var u5,f0;var LC=I(()=>{sT();sT();p5();u5={ACCOUNT_NOT_FOUND:19},f0={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});import{sha256 as XG}from"@noble/hashes/sha2.js";import{bytesToHex as m5,hexToBytes as c5}from"@noble/hashes/utils.js";import{SwapKitError as sf}from"@swapkit/helpers";function YC(y,n){let o=0n,f=0n,T=n;while(T<y.length&&T-n<10){let C=y[T++];if(C===void 0)break;if(o|=BigInt(C&127)<<f,f+=7n,(C&128)===0)return[o,T]}throw new sf("toolbox_tron_transaction_creation_failed")}function pn(y){let n=[],o=y<0n?y+2n**64n:y;while(o>=128n)n.push(Number(o&0x7fn)|128),o>>=7n;return n.push(Number(o)),n}function T0(y,n,o){let f=y.get(n);if(f)f.push(o);else y.set(n,[o])}function JG(y){let n=new Map,o=0;while(o<y.length){let[f,T]=YC(y,o);o=T;let C=Number(f>>3n),H=Number(f&7n);if(H===o0){let[U,_]=YC(y,o);o=_,T0(n,C,{data:new Uint8Array(pn(U)),wireType:o0})}else if(H===C0){let[U,_]=YC(y,o);o=_;let A=Number(U);if(A<0||o+A>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let Z=y.slice(o,o+A);o+=A,T0(n,C,{data:Z,wireType:C0})}else if(H===g5){if(o+8>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+8);o+=8,T0(n,C,{data:U,wireType:g5})}else if(H===i5){if(o+4>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+4);o+=4,T0(n,C,{data:U,wireType:i5})}else throw new sf("toolbox_tron_transaction_creation_failed")}return n}function MG(y){let n=[];for(let[C,H]of[...y.entries()].sort(([U],[_])=>U-_))for(let{wireType:U,data:_}of H){let A=BigInt(C<<3|U);if(n.push(new Uint8Array(pn(A))),U===C0)n.push(new Uint8Array(pn(BigInt(_.length))));n.push(_)}let o=n.reduce((C,H)=>C+H.length,0),f=new Uint8Array(o),T=0;for(let C of n)f.set(C,T),T+=C.length;return f}function d5(y,n){if(!y||y.length%2!==0)throw new sf("toolbox_tron_transaction_creation_failed");let o=c5(y),f=JG(o);if(n.expiration!==void 0)f.set(WG,[{data:new Uint8Array(pn(BigInt(n.expiration))),wireType:o0}]);if(n.data!==void 0)f.set(QG,[{data:c5(n.data),wireType:C0}]);if(n.fee_limit!==void 0)f.set(ZG,[{data:new Uint8Array(pn(BigInt(n.fee_limit))),wireType:o0}]);let T=MG(f),C=m5(T),H=m5(XG(T));return{raw_data_hex:C,txID:H}}var o0=0,g5=1,C0=2,i5=5,WG=8,QG=10,ZG=18;var r5=()=>{};import{secp256k1 as a5}from"@noble/curves/secp256k1.js";import{sha256 as s5}from"@noble/hashes/sha2.js";import{keccak_256 as LG}from"@noble/hashes/sha3.js";import{bytesToHex as ef,hexToBytes as H0}from"@noble/hashes/utils.js";import{createBase58check as YG}from"@scure/base";import{SwapKitError as e5}from"@swapkit/helpers";function Sy(y){if(typeof y!=="string")return!1;try{let n=U0.decode(y);return n.length===21&&n[0]===yU}catch{return!1}}function fU(y){return ef(U0.decode(y))}function zG(y){return U0.decode(y).slice(1)}function nU(y){let n=a5.getPublicKey(H0(y),!1),o=LG(n.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=yU,f.set(o,1),U0.encode(f)}function TU({txID:y,privateKey:n}){let o=a5.sign(H0(y),H0(n),{format:"recovered",prehash:!1}),f=o[0]??0,T=ef(o.slice(1,33)),C=ef(o.slice(33,65)),H=(f+27).toString(16).padStart(2,"0");return T+C+H}function yn({txID:y,raw_data_hex:n}){let o=ef(s5(H0(n)));if(y!==o)throw new e5("toolbox_tron_invalid_transaction_integrity",{expected:o,txID:y})}function NG(y){return`000000000000000000000000${ef(zG(y))}`}function OG(y){let n=typeof y==="bigint"?y:BigInt(y);if(n<0n||n>=BG)throw new e5("toolbox_tron_invalid_token_identifier",{identifier:n.toString()});return n.toString(16).padStart(64,"0")}function fn(y){return y.map(({type:n,value:o})=>n==="address"?NG(o):OG(BigInt(o))).join("")}function oU(y){return ef(new TextEncoder().encode(y))}var U0,yU=65,BG;var BC=I(()=>{U0=YG(s5),BG=2n**256n});import{Chain as wG,getRPCUrlSync as DG,SwapKitError as My,warnOnce as _0}from"@swapkit/helpers";function HU(){try{return DG(wG.Tron)}catch{return CU}}function UU(){let y=new AbortController,n=setTimeout(()=>y.abort(),xG);return{cleanup:()=>clearTimeout(n),signal:y.signal}}async function wf(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${HU()}${y}`,{body:JSON.stringify(n),headers:{"Content-Type":"application/json"},method:"POST",signal:o});if(!T.ok)throw new My("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function _U(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${n??HU()}${y}`,{headers:{"Content-Type":"application/json"},signal:o});if(!T.ok)throw new My("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function AU(y){if(!Sy(y))throw new My("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let n=await _U(`/v1/accounts/${y}`,CU);if(!(n.success&&n.data)||n.data.length===0)return;let o;try{o=fU(y).toLowerCase()}catch{o=y.toLowerCase()}let f=n.data.find((T)=>T.address.toLowerCase()===o);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(n){if(n instanceof My)throw n;throw new My("toolbox_tron_trongrid_api_error",{address:y,message:n instanceof Error?n.message:"Unknown error"})}}async function qU({from:y,to:n,amount:o}){let T=await wf("/wallet/createtransaction",{amount:o,owner_address:y,to_address:n,visible:!0});if(!T.txID||!T.raw_data_hex||!T.raw_data)throw new My("toolbox_tron_transaction_creation_failed");let H=T.raw_data?.contract?.[0]?.parameter?.value;if(H?.to_address!==n||H?.owner_address!==y||H?.amount!==o)throw new My("toolbox_tron_transaction_creation_failed");return yn(T),T}async function GU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f,feeLimit:T,callValue:C=0}){let H=await wf("/wallet/triggersmartcontract",{call_value:C,contract_address:n,fee_limit:T,function_selector:o,owner_address:y,parameter:f,visible:!0});if(!H.result.result||!H.transaction?.txID||!H.transaction?.raw_data_hex)throw new My("toolbox_tron_transaction_creation_failed");let _=H.transaction.raw_data?.contract?.[0]?.parameter?.value;if(_?.contract_address!==n||_?.owner_address!==y)throw new My("toolbox_tron_transaction_creation_failed");return yn(H.transaction),H.transaction}function XU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return wf("/wallet/triggerconstantcontract",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}function FG({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return wf("/wallet/estimateenergy",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}async function En(y){try{let{result:n,txid:o}=await wf("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!n||!o)throw new My("toolbox_tron_token_transfer_failed");return o}catch(n){throw new My("toolbox_tron_broadcast_failed",{error:n})}}async function Vn(){let y={};try{let{chainParameter:n}=await _U("/wallet/getchainparameters");for(let o of n)y[o.key]=o.value}catch(n){_0({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${n instanceof Error?n.message:n}`})}return{bandwidthFee:y.getTransactionFee??RG,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??kG,energyFee:y.getEnergyFee??lG,memoFee:y.getMemoFee??SG}}async function zC(y){try{let n=await wf("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(n.freeNetLimit??600)-(n.freeNetUsed??0),total:n.NetLimit??0,used:n.NetUsed??0},energy:{total:n.EnergyLimit??0,used:n.EnergyUsed??0}}}catch(n){return _0({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${n instanceof Error?n.message:n}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function bn(y){try{let n=await wf("/wallet/getaccount",{address:y,visible:!0});return n&&Object.keys(n).length>0}catch{return!1}}async function NC(y){try{let n=await FG({...y,ownerAddress:y.sender}),o=n.energy_required??n.energyRequired;if(n.result&&!n.result.result)throw new My("toolbox_tron_trongrid_api_error",{message:n.result.message||"estimateenergy failed"});if(o!==void 0){if(Number.isFinite(o)&&o>0)return o;throw new My("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(n){_0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${n instanceof Error?n.message:n}`})}try{let{energy_used:n}=await XU({...y,ownerAddress:y.sender});return n}catch(n){return _0({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy, using default: ${n instanceof Error?n.message:n}`}),65000}}async function WU({assetAddress:y,owner:n,spender:o}){let f=fn([{type:"address",value:n},{type:"address",value:o}]),C=(await XU({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:o,parameter:f})).constant_result?.[0];if(!C)return 0n;try{return BigInt(`0x${C}`)}catch{return 0n}}var CU="https://api.trongrid.io",RG=1000,kG=1e6,lG=420,SG=1e6,xG=30000;var QU=I(()=>{BC()});import{bytesToHex as $G}from"@noble/hashes/utils.js";import{HDKey as IG}from"@scure/bip32";import{mnemonicToSeedSync as PG}from"@scure/bip39";import{AssetValue as cy,BaseDecimal as A0,Chain as zy,derivationPathToString as BU,getRPCUrl as tG,NetworkDerivationPath as zU,SwapKitError as Uy,updateDerivationPath as NU,warnOnce as ZU}from"@swapkit/helpers";import{match as pG,P as OC}from"ts-pattern";function wU({phrase:y,derivationPath:n}){let o=IG.fromMasterSeed(PG(y)).derive(n);if(!o.privateKey)throw new Uy("toolbox_tron_no_signer");return $G(o.privateKey)}function DU({phrase:y,derivationPath:n,index:o}){let f=n||BU(NU(zU[zy.Tron],{index:o||0}));return wU({derivationPath:f,phrase:y})}function VG({phrase:y,derivationPath:n}){let o=wU({derivationPath:n,phrase:y}),f=nU(o);return{getAddress:()=>Promise.resolve(f),signTransaction:(T)=>{yn(T);let C=TU({privateKey:o,txID:T.txID});return Promise.resolve({...T,signature:[C]})}}}function YU({transaction:y,memo:n,expiration:o,feeLimit:f}){let T={},C={};if(f!==void 0&&y.raw_data)T.fee_limit=f,C.fee_limit=f;if(n){let _=oU(n);T.data=_,C.data=_}if(o){let _=y.raw_data.expiration+o*1000;T.expiration=_,C.expiration=_}if(Object.keys(T).length===0)return y;let{raw_data_hex:H,txID:U}=d5(y.raw_data_hex,T);return{...y,raw_data:{...y.raw_data,...C},raw_data_hex:H,txID:U}}function RU(y={}){let n="index"in y?y.index||0:0,o=BU("derivationPath"in y&&y.derivationPath?y.derivationPath:NU(zU[zy.Tron],{index:n})),f,T=!1;function C(){if(T)return Promise.resolve(f);return f=pG(y).with({phrase:OC.string},({phrase:J})=>VG({derivationPath:o,phrase:J})).with({signer:OC.not(OC.nullish)},({signer:J})=>J).otherwise(()=>{return}),T=!0,Promise.resolve(f)}async function H(){let J=await C();if(!J)throw new Uy("toolbox_tron_no_signer");return J.getAddress()}async function U(J,Y){let R=J||MU,l=Y??(await Vn()).energyFee,q=R*l,O=Math.ceil(q*1.5);return Math.min(Math.max(O,1e7),150000000)}async function _({contractAddress:J,functionSelector:Y,parameter:R,sender:l,memo:q,expiration:O,extraEnergy:k=0}){let S=await NC({contractAddress:J,functionSelector:Y,parameter:R,sender:l}),x=await U(S+k),t=await GU({contractAddress:J,feeLimit:x,functionSelector:Y,ownerAddress:l,parameter:R});return YU({expiration:O,feeLimit:x,memo:q,transaction:t})}async function A(J){if(!Sy(J))return[cy.from({chain:zy.Tron})];try{let Y=await AU(J);if(!Y)return[cy.from({chain:zy.Tron})];let R=[cy.from({chain:zy.Tron,fromBaseDecimal:6,value:String(Y.balance)})],l=Y.trc20?.find((q)=>(DC in q));if(l){let q=l[DC];R.push(cy.from({asset:`TRON.USDT-${DC}`,fromBaseDecimal:6,value:q}))}return R}catch(Y){return ZU({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${Y instanceof Error?Y.message:Y}`}),[cy.from({chain:zy.Tron})]}}async function Z({recipient:J,assetValue:Y,memo:R,expiration:l}){if(!Sy(J))throw new Uy("toolbox_tron_token_transfer_failed",{message:"invalid address"});let q=await C();if(!q)throw new Uy("toolbox_tron_no_signer");try{let O=await H(),k=await B({assetValue:Y,expiration:l,memo:R,recipient:J,sender:O}),S=await q.signTransaction(k),x=await En(S);if(!x)throw new Uy("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return x}catch(O){throw new Uy("toolbox_tron_token_transfer_failed",{message:O instanceof Error?O.message:String(O)})}}function M({requiredBandwidth:J,resources:Y,feePerUnit:R}){let l=Math.max(0,Y.free+Y.total-Y.used);return J>l?(J-l)*R:0}async function W({memo:J,recipient:Y,senderAddress:R}){let[l,q,O]=await Promise.all([Vn(),bn(Y),zC(R)]),k=q?0:l.createAccountFee,S=M({feePerUnit:l.bandwidthFee,requiredBandwidth:JU,resources:O.bandwidth}),x=J?l.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:k+S+x})}async function G({assetValue:J,memo:Y,recipient:R,senderAddress:l}){let q=J.address;if(!q)throw new Uy("toolbox_tron_invalid_token_identifier",{identifier:J.toString()});let[O,k,S,x]=await Promise.all([Vn(),bn(R),zC(l),NC({contractAddress:q,functionSelector:"transfer(address,uint256)",parameter:fn([{type:"address",value:R},{type:"uint256",value:J.getBaseValue("string")}]),sender:l})]),V=x+(k?0:wC),b=M({feePerUnit:O.bandwidthFee,requiredBandwidth:LU,resources:S.bandwidth}),j=Math.max(0,S.energy.total-S.energy.used),e=V>j?(V-j)*O.energyFee:0,_y=Y?O.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:b+e+_y})}async function X({assetValue:J,memo:Y,recipient:R}){let[l,q]=await Promise.all([Vn(),bn(R)]);if(J.isGasAsset){let x=q?0:l.createAccountFee,t=Y?l.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:x+JU*l.bandwidthFee+t})}let k=await U(MU+(q?0:wC),l.energyFee),S=Y?l.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:k+LU*l.bandwidthFee+S})}async function Q({assetValue:J,memo:Y,recipient:R,sender:l}){let q=await C();try{let O=l?l:q?await H():void 0;if(!O)return X({assetValue:J,memo:Y,recipient:R});return J.isGasAsset?W({memo:Y,recipient:R,senderAddress:O}):G({assetValue:J,memo:Y,recipient:R,senderAddress:O})}catch(O){throw ZU({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${O instanceof Error?O.message:O}`}),new Uy("toolbox_fee_estimation_failed",{chain:zy.Tron,error:O})}}async function B({recipient:J,assetValue:Y,memo:R,sender:l,expiration:q}){if(!Sy(J)||!Sy(l))throw new Uy("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(Y.isGasAsset){let S=await qU({amount:Y.getBaseValue("number"),from:l,to:J});return YU({expiration:q,memo:R,transaction:S})}let O=Y.address;if(!O)throw new Uy("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let k=await bn(J);return _({contractAddress:O,expiration:q,extraEnergy:k?0:wC,functionSelector:"transfer(address,uint256)",memo:R,parameter:fn([{type:"address",value:J},{type:"uint256",value:Y.getBaseValue("string")}]),sender:l})}async function D(J){yn(J);let Y=await C();if(!Y)throw new Uy("toolbox_tron_no_signer");return Y.signTransaction(J)}async function L(J){let Y=await D(J);return En(Y)}function w({assetAddress:J,spenderAddress:Y,from:R}){return WU({assetAddress:J,owner:R,spender:Y})}async function N({assetAddress:J,spenderAddress:Y,from:R,amount:l}){let q=await w({assetAddress:J,from:R,spenderAddress:Y});if(!l)return q>0n;return q>=BigInt(l)}async function z({assetAddress:J,spenderAddress:Y,amount:R,from:l}){if(!Sy(J)||!Sy(Y))throw new Uy("toolbox_tron_approve_failed");let q=await C();if(!q)throw new Uy("toolbox_tron_no_signer");let O=l||await H(),k=R!==void 0?BigInt(R).toString():EG;try{let S=await _({contractAddress:J,functionSelector:"approve(address,uint256)",parameter:fn([{type:"address",value:Y},{type:"uint256",value:k}]),sender:O}),x=await q.signTransaction(S),t=await En(x);if(!t)throw new Uy("toolbox_tron_approve_failed");return t}catch(S){if(S instanceof Uy)throw S;throw new Uy("toolbox_tron_approve_failed",{error:S})}}return{approve:z,broadcastTransaction:En,createTransaction:B,estimateTransactionFee:Q,getAddress:H,getApprovedAmount:w,getBalance:A,getRpcUrl:()=>tG(zy.Tron),isApproved:N,signAndBroadcastTransaction:L,signTransaction:D,transfer:Z,validateAddress:Sy}}var OU,JU=268,MU=65000,wC=25000,LU=345,DC="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",EG="115792089237316195423570985008687907853269984665640564039457584007913129639935";var kU=I(()=>{r5();QU();BC();OU=Sy});var RC={};yy(RC,{validateTronAddress:()=>OU,getTronToolbox:()=>RU,getTronPrivateKeyFromMnemonic:()=>DU});var kC=I(()=>{kU()});import{AssetValue as un,Chain as Hf,derivationPathToString as bG,getChainConfig as uG,getRPCUrl as vG,NetworkDerivationPath as jG,SwapKitError as Uf}from"@swapkit/helpers";import{match as KG,P as hG}from"ts-pattern";function q0(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return mG.test(y)}async function cG(y){if(!q0(y))return!1;try{let{StrKey:n}=await import("@stellar/stellar-sdk");return n.isValidEd25519PublicKey(y)}catch{return!1}}function lU(y={}){let n,o=y.derivationPath||jG[Hf.Stellar],f=bG(o.slice(0,3));async function T({phrase:Q,path:B}){let{HDKey:D}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),{Keypair:w}=await import("@stellar/stellar-sdk"),N=L(Q),J=D.fromMasterSeed(N).derive(B,!0);return w.fromRawEd25519Seed(Buffer.from(J.privateKey))}async function C(){if(n)return n;let Q=KG(y).with({phrase:hG.string},({phrase:B})=>B).otherwise(()=>{return});if(!Q)throw new Uf("toolbox_stellar_no_signer");return n=await T({path:f,phrase:Q}),n}async function H(){let{Horizon:Q}=await import("@stellar/stellar-sdk"),B=await vG(Hf.Stellar);return new Q.Server(B)}async function U(){try{return(await C()).publicKey()}catch{return""}}async function _(Q){let B=Q||await U();if(!B)throw new Uf("toolbox_stellar_account_not_found");try{return(await(await H()).loadAccount(B)).balances.map((w)=>{if(w.asset_type==="native")return un.from({chain:Hf.Stellar,value:w.balance});let N="asset_code"in w?w.asset_code:"",z="asset_issuer"in w?w.asset_issuer:"";return un.from({asset:`${Hf.Stellar}.${N}-${z}`,asyncTokenLookup:!1,value:w.balance})})}catch{return[un.from({chain:Hf.Stellar,value:0})]}}async function A({recipient:Q,assetValue:B,memo:D,sender:L}){if(D){if(new TextEncoder().encode(D).length>28)throw new Uf("helpers_invalid_memo_type")}if(!await cG(Q))throw new Uf("core_transaction_invalid_recipient_address");let N=L||await U();if(!N)throw new Uf("toolbox_stellar_no_signer");let{Asset:z,Memo:J,Networks:Y,Operation:R,TransactionBuilder:l}=await import("@stellar/stellar-sdk"),q=await H(),O=await q.fetchBaseFee(),k=await q.loadAccount(N),S=new l(k,{fee:String(O),networkPassphrase:Y.PUBLIC});if(B.isGasAsset)try{await q.loadAccount(Q),S.addOperation(R.payment({amount:B.getValue("string"),asset:z.native(),destination:Q}))}catch{S.addOperation(R.createAccount({destination:Q,startingBalance:B.getValue("string")}))}else S.addOperation(R.payment({amount:B.getValue("string"),asset:new z(B.symbol,B.address),destination:Q}));if(D)S.addMemo(J.text(D));return S.setTimeout(30).build()}async function Z(Q){let{TransactionBuilder:B,Networks:D}=await import("@stellar/stellar-sdk"),L=await C(),w=B.fromXDR(Q.toXDR(),D.PUBLIC);return w.sign(L),w}async function M(Q){try{let B=await H(),{hash:D}=await B.submitTransaction(Q);return D}catch(B){throw new Uf("toolbox_stellar_broadcast_error",B)}}async function W({recipient:Q,assetValue:B,memo:D}){let L=await C(),w=L.publicKey(),N=await A({assetValue:B,memo:D,recipient:Q,sender:w});N.sign(L);try{return(await(await H()).submitTransaction(N)).hash}catch(z){if(z instanceof Uf)throw z;throw new Uf("toolbox_stellar_transaction_failed",z)}}async function G(Q){let B=await Z(Q);return M(B)}async function X(){let{baseDecimal:Q}=uG(Hf.Stellar);try{let L=(await(await H()).feeStats()).fee_charged.p50;return un.from({chain:Hf.Stellar,fromBaseDecimal:Q,value:L})}catch{return un.from({chain:Hf.Stellar,fromBaseDecimal:Q,value:"100"})}}return{broadcastTransaction:M,createTransaction:A,estimateTransactionFee:X,getAddress:U,getBalance:_,signAndBroadcastTransaction:G,signTransaction:Z,transfer:W,validateAddress:q0}}var mG;var SU=I(()=>{mG=/^G[A-Z2-7]{55}$/});var G0={};yy(G0,{validateStellarAddress:()=>q0,getStellarToolbox:()=>lU});var X0=I(()=>{SU()});import{AssetValue as gG,Chain as E,CosmosChains as lC,EVMChains as SC,FeeOption as iG,SwapKitError as dG,UTXOChains as FU}from"@swapkit/helpers";async function QQ(){let{match:y}=await import("ts-pattern"),{validateAptosAddress:n}=await Promise.resolve().then(() => (jn(),vn)),{validateEVMAddress:o}=await Promise.resolve().then(() => (b0(),X1)),{validateCardanoAddress:f}=await Promise.resolve().then(() => (m0(),h0)),{getCosmosAddressValidator:T}=await Promise.resolve().then(() => (zT(),BT)),{validateHyperCoreAddress:C}=await Promise.resolve().then(() => (zo(),Bo)),{validateSolanaAddress:H}=await Promise.resolve().then(() => (Ro(),Do)),{validateStarknetAddress:U}=await Promise.resolve().then(() => (xT(),ST)),{validateSuiAddress:_}=await Promise.resolve().then(() => (IT(),$T)),{validateTonAddress:A}=await Promise.resolve().then(() => (pT(),tT)),{getUTXOAddressValidator:Z}=await Promise.resolve().then(() => (ao(),ro)),{validateNearAddress:M}=await Promise.resolve().then(() => (WC(),XC)),{validateRadixAddress:W}=await Promise.resolve().then(() => (JC(),ZC)),{validateRippleAddress:G}=await Promise.resolve().then(() => (LC(),MC)),{validateTronAddress:X}=await Promise.resolve().then(() => (kC(),RC)),{validateStellarAddress:Q}=await Promise.resolve().then(() => (X0(),G0));return function({address:D,chain:L}){return y(L).with(...SC,()=>o(D)).with(...FU,(N)=>{return Z(N)(D)}).with(...lC,(N)=>{return T(N)(D)}).with(E.Aptos,()=>n(D)).with(E.Radix,()=>W(D)).with(E.HyperCore,()=>C(D)).with(E.Near,()=>M(D)).with(E.Ripple,()=>G(D)).with(E.Solana,()=>H(D)).with(E.Stellar,()=>Q(D)).with(E.Starknet,()=>U(D)).with(E.Sui,()=>_(D)).with(E.Ton,()=>A(D)).with(E.Tron,()=>X(D)).with(E.Cardano,()=>f(D)).otherwise(()=>!1)}}function ZQ(y){return async function(o){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...SC,async(T)=>{let C=await xU(T),H=await C.createTransaction(o),U="feeOptionKey"in o?o.feeOptionKey:iG.Fast;return C.estimateTransactionFee({...H,feeOption:U})}).with(E.Bitcoin,E.BitcoinCash,E.Dogecoin,E.Dash,E.Litecoin,E.Solana,E.Ripple,E.Tron,E.Near,E.Cardano,E.HyperCore,async(T)=>{return(await xU(T)).estimateTransactionFee(o)}).with(E.Aptos,async()=>{let{getAptosToolbox:T}=await Promise.resolve().then(() => (jn(),vn));return T().estimateTransactionFee(o)}).with(E.Starknet,async()=>{let{getStarknetToolbox:T}=await Promise.resolve().then(() => (xT(),ST));return(await T()).estimateTransactionFee(o)}).with(E.Stellar,async()=>{let{getStellarToolbox:T}=await Promise.resolve().then(() => (X0(),G0));return T().estimateTransactionFee()}).with(E.Sui,async()=>{let{getSuiToolbox:T}=await Promise.resolve().then(() => (IT(),$T));return T().estimateTransactionFee(o)}).with(E.Ton,async()=>{let{getTONToolbox:T}=await Promise.resolve().then(() => (pT(),tT));return T().estimateTransactionFee(o)}).with(...lC,async()=>{let{estimateTransactionFee:T}=await Promise.resolve().then(() => (zT(),BT));return T(o)}).otherwise(async()=>gG.from({chain:y}))}}async function xU(y,n){let{match:o}=await import("ts-pattern");return o(y).returnType().with(...SC,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (V0(),A1));return await f(y,n)}).with(...FU,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (ao(),ro));return f(y,n)}).with(...lC,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (zT(),BT));return f(y,n)}).with(E.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (jn(),vn));return f(n)}).with(E.HyperCore,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (zo(),Bo));return f(n)}).with(E.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (JC(),ZC));return f(n)}).with(E.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (LC(),MC));return f(n)}).with(E.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => (Ro(),Do));return f(n)}).with(E.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (X0(),G0));return f(n)}).with(E.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (xT(),ST));return f(n)}).with(E.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (IT(),$T));return f(n)}).with(E.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (kC(),RC));return f(n)}).with(E.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (WC(),XC));return f(n)}).with(E.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (m0(),h0));return f(n)}).with(E.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (pT(),tT));return f(n)}).otherwise(()=>{throw new dG("toolbox_not_supported",{chain:y})})}export{xU as getToolbox,ZQ as getFeeEstimator,QQ as getAddressValidator};
|
|
1
|
+
var IU=Object.defineProperty;var tU=(y)=>y;function PU(y,n){this[y]=tU.bind(null,n)}var yy=(y,n)=>{for(var o in n)IU(y,o,{get:n[o],enumerable:!0,configurable:!0,set:PU.bind(n,o)})};var I=(y,n)=>()=>(y&&(n=y(y=0)),n);var F=((y)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(y,{get:(n,o)=>(typeof require<"u"?require:n)[o]}):y)(function(y){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+y+'" is not supported')});import{AssetValue as nn,Chain as py,derivationPathToString as pU,getChainConfig as Q0,getRPCUrlSync as xC,NetworkDerivationPath as EU,SwapKitError as Ty}from"@swapkit/helpers";import{match as FC,P as Z0}from"ts-pattern";function Df(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let n=y.slice(2);if(n.length===0||n.length>64)return!1;return VU.test(n)}function $C({derivationPath:y,provider:n,...o}={}){let f,T=pU(y||EU[py.Aptos],{allHardened:!0});async function C(){if(f)return f;return f=await FC(o).with({phrase:Z0.string},async({phrase:Q})=>{let{Ed25519Account:B}=await import("@aptos-labs/ts-sdk");return B.fromDerivationPath({mnemonic:Q,path:T})}).with({signer:Z0.any},({signer:Q})=>Q).otherwise(()=>{return}),f}async function H(){let{Aptos:Q,AptosConfig:B}=await import("@aptos-labs/ts-sdk"),D=new B({fullnode:n||xC(py.Aptos)});return new Q(D)}async function U(){return(await C())?.accountAddress.toString()||""}async function _(Q){let B=Q||await U();if(!B)throw new Ty("toolbox_aptos_address_required");let{baseDecimal:D,chain:L}=Q0(py.Aptos);try{let w=await H(),N=await w.getAccountAPTAmount({accountAddress:B}),z=[nn.from({chain:L,fromBaseDecimal:D,value:N.toString()})],J=await w.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:B}}}});for(let Y of J){if(Y.asset_type===qf.COIN_TYPE||Number(Y.amount)<=0)continue;let R=Y.asset_type;if(R){let q=("metadata"in Y&&typeof Y.metadata==="object"&&Y.metadata!==null?Y.metadata:void 0)?.decimals??D;z.push(nn.from({asset:`${py.Aptos}.APT-${R}`,fromBaseDecimal:q,value:String(Y.amount)}))}}return z}catch{return[nn.from({chain:L})]}}async function A(Q){if(!Q){let{baseDecimal:J}=Q0(py.Aptos),Y=n||xC(py.Aptos),R=await fetch(`${Y}/estimate_gas_price`),{gas_estimate:l}=await R.json();return nn.from({chain:py.Aptos,fromBaseDecimal:J,value:String(l)})}let B=await C();if(!B)throw new Ty("toolbox_aptos_no_signer");let D=await Z(Q),L=await H(),[w]=await L.transaction.simulate.simple({signerPublicKey:B.publicKey,transaction:D});if(!w)throw new Ty("toolbox_aptos_transaction_creation_error");let N=BigInt(w.gas_used)*BigInt(w.gas_unit_price),{baseDecimal:z}=Q0(py.Aptos);return nn.from({chain:py.Aptos,fromBaseDecimal:z,value:N.toString()})}async function Z({recipient:Q,assetValue:B,maxGasAmount:D,sender:L}){if(!Df(Q))throw new Ty("core_transaction_invalid_recipient_address");let w=L||await U();if(!w)throw new Ty("toolbox_aptos_no_sender");let{AccountAddress:N}=await import("@aptos-labs/ts-sdk"),z=await H(),J=N.from(w);try{let Y=B.isGasAsset?qf.TRANSFER:qf.FUNGIBLE_STORE_TRANSFER,R=FC({address:B?.address,isGasAsset:B.isGasAsset}).with({isGasAsset:!0},()=>[N.from(Q),B.getBaseValue("bigint")]).with({address:Z0.string},({address:l})=>[N.from(l),N.from(Q),B.getBaseValue("bigint")]).otherwise(()=>null);if(!R)throw new Ty("toolbox_aptos_missing_asset_type");return z.transaction.build.simple({data:{function:Y,functionArguments:R,typeArguments:B.isGasAsset?[]:[qf.FUNGIBLE_ASSET_METADATA]},options:D?{maxGasAmount:D}:void 0,sender:J})}catch(Y){if(Y instanceof Ty)throw Y;throw new Ty("toolbox_aptos_transaction_creation_error",Y)}}async function M(Q){let B=await C();if(!B)throw new Ty("toolbox_aptos_no_signer");return(await H()).transaction.sign({signer:B,transaction:Q})}async function X({assetValue:Q,maxGasAmount:B,recipient:D}){let L=await C();if(!L)throw new Ty("toolbox_aptos_no_signer");if(!Df(D))throw new Ty("core_transaction_invalid_recipient_address");try{let w=L.accountAddress.toString(),N=await Z({assetValue:Q,maxGasAmount:B,recipient:D,sender:w});return(await(await H()).signAndSubmitTransaction({signer:L,transaction:N})).hash}catch(w){if(w instanceof Ty)throw w;throw new Ty("toolbox_aptos_transaction_creation_error",w)}}async function G({senderAuthenticator:Q,transaction:B}){try{return(await(await H()).transaction.submit.simple({senderAuthenticator:Q,transaction:B})).hash}catch(D){throw new Ty("toolbox_aptos_broadcast_error",D)}}async function W(Q){let B=await M(Q);return G({senderAuthenticator:B,transaction:Q})}return{broadcastTransaction:G,createTransaction:Z,estimateTransactionFee:A,getAddress:U,getBalance:_,signAndBroadcastTransaction:W,signTransaction:M,transfer:X,validateAddress:Df}}function IC({provider:y}){return async function({assetValue:o,recipient:f}){if(!Df(f))throw new Ty("core_transaction_invalid_recipient_address");let{AccountAddress:T}=await import("@aptos-labs/ts-sdk");if(o.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[T.from(f).toString(),o.getBaseValue("string")],function:qf.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let C=o.address;if(!C)throw new Ty("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[C,T.from(f).toString(),o.getBaseValue("string")],function:qf.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[qf.FUNGIBLE_ASSET_METADATA]})).hash}}var qf,VU;var tC=I(()=>{qf={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},VU=/^[0-9a-fA-F]+$/});var vn={};yy(vn,{validateAptosAddress:()=>Df,getAptosToolbox:()=>$C,createAptosExtensionTransfer:()=>IC});var jn=I(()=>{tC()});import{AssetValue as PC,getChainConfig as bU}from"@swapkit/helpers";import{SwapKitApi as uU}from"@swapkit/helpers/api";function pC(){function y(){let n=Date.now(),o=J0||n;return J0=o,n>J0?n:o+1}return vU+y().toString(36)}function Wy(y){return async function(o,f=!0){let T=await uU.getChainBalance({address:o,chain:y,scamFilter:f}),{baseDecimal:C}=bU(y),H=T.map(({identifier:_,value:A,decimal:Z})=>{return new PC({decimal:Z||C,identifier:_,value:A})});if(!H.some((_)=>_.isGasAsset))return[PC.from({chain:y}),...H];return H}}var vU,J0=0;var Ey=I(()=>{vU=typeof process<"u"&&process.pid?process.pid.toString(36):""});function Tn(y){return{getBalance:Wy(y)}}function jU(y){return y}var Kn=I(()=>{Ey()});import{Chain as c,getChainConfig as B0,getRPCUrl as KU,SwapKitError as hn}from"@swapkit/helpers";import{getAddress as VC,Interface as hU,JsonRpcProvider as mU}from"ethers";import{match as bC}from"ts-pattern";function uC(y){return new mU(y)}async function z0(y,n){return uC(n||await KU(y))}function on(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function N0(y){let{explorerUrl:n,chainIdHex:o,rpcUrls:f}=B0(y);return function(){return y!==c.Ethereum?{...cU({chain:y}),blockExplorerUrls:[n],chainId:o,rpcUrls:f}:void 0}}function O0(y){return![c.Adi,c.Arbitrum,c.BinanceSmartChain].includes(y)}function cU({chain:y}){let{name:n,nativeCurrency:o,baseDecimal:f}=B0(y);return bC(y).with(c.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(c.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(c.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(c.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(c.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(c.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:c.Polygon}})).otherwise(()=>({chainName:n,nativeCurrency:{decimals:f,name:o,symbol:o}}))}async function w0(y,n){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let o={...n,nonce:n.nonce!==void 0?BigInt(n.nonce):void 0};return await y.authorize(o)}function vC(y,n){let o=n!==void 0?`index ${n}: `:"",f=(T,C)=>{throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:T,message:`${o}${C}`}})};bC(y).when(({chainId:T})=>typeof T!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:T})=>!gU(T),()=>f("address","address must be a valid checksummed address")).when(({nonce:T})=>typeof T!=="bigint"||T<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:T})=>!T,()=>f("signature","signature is required")).when(({signature:T})=>typeof T?.yParity!=="number"||![0,1].includes(T.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:T})=>!EC(T?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:T})=>!EC(T?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function jC(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:n})=>y[n]!=null).map(({key:n,type:o})=>({name:n,type:o}))}function M0(y){return y.charAt(0).toUpperCase()+y.slice(1)}function L0(y,n){if(y.isTuple()&&y.components){let o=M0(y.name);return n[o]=y.components.map((f)=>({name:f.name,type:L0(f,n)})),o}if(y.isArray()){let o=y.arrayChildren;if(o?.isTuple()&&o.components){let f=M0(y.name.replace(/s$/,""));return n[f]=o.components.map((T)=>({name:T.name,type:L0(T,n)})),`${f}[]`}return`${o?.type??"bytes"}[]`}return y.type}function Y0(y,n){if(typeof y==="bigint")return y;if(n?.isTuple()&&typeof y?.toObject==="function"){let o=y.toObject(),f={};for(let[T,C]of(n.components??[]).entries())f[C.name]=Y0(o[C.name]??y[T],C);return f}if(Array.isArray(y)){let o=n?.arrayChildren;return y.map((f)=>Y0(f,o??void 0))}return y}function iU({chain:y,abi:n,data:o,to:f}){let C=new hU(n).parseTransaction({data:o});if(!C)throw new hn({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let H={},U=M0(C.name);H[U]=C.fragment.inputs.map((X)=>({name:X.name,type:L0(X,H)}));let _={};for(let[X,G]of C.fragment.inputs.entries())_[G.name]=Y0(C.args[X],G);let{chainId:A}=B0(y),Z={chainId:Number(A),verifyingContract:VC(f)},M=jC(Z);return{domain:Z,message:_,primaryType:U,types:{EIP712Domain:M,...H}}}function D0(y,n){if(!Array.isArray(y)||y.length===0)throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[o,f]of y.entries())if(vC(f,o),n!==void 0&&f.chainId!==n)throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${o}: authorization chainId (${f.chainId}) does not match transaction chainId (${n})`}})}var EC=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),gU=(y)=>{try{return typeof y==="string"&&!!VC(y)}catch{return!1}};var Cn=()=>{};var KC;var hC=I(()=>{KC=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as dU,applyFeeMultiplierToBigInt as Xy,Chain as Oy,EVMChains as rU,FeeOption as v,isGasAsset as aU,SwapKitError as h,SwapKitNumber as mn}from"@swapkit/helpers";import{erc20ABI as Hn}from"@swapkit/helpers/contracts";import{BrowserProvider as sU,Contract as mC,getAddress as cn,Interface as cC}from"ethers";import{match as gC}from"ts-pattern";function Rf({chain:y=Oy.Ethereum,provider:n,signer:o,isEIP1559Compatible:f=!0}){return{approve:T2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),approvedAmount:rC({chain:y,provider:n}),broadcastTransaction:n.broadcastTransaction,call:x0({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),createApprovalTx:U2({chain:y,provider:n,signer:o}),createContract:k0({chain:y,provider:n}),createContractTxObject:Gf({chain:y,provider:n}),createTransaction:R0({chain:y,provider:n,signer:o}),createTransferTx:R0({chain:y,provider:n,signer:o}),EIP1193SendTransaction:lf(n),estimateCall:aC({provider:n,signer:o}),estimateGasLimit:C2({chain:y,provider:n,signer:o}),estimateGasPrices:Wf({chain:y,isEIP1559Compatible:f,provider:n}),estimateTransactionFee:_2({chain:y,isEIP1559Compatible:f,provider:n}),getAddress:()=>{return o?o.getAddress():void 0},getBalance:Tn(y).getBalance,getNetworkParams:N0(y),isApproved:n2({chain:y,provider:n}),sendTransaction:sC({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),signAuthorization:H2({signer:o}),signMessage:o?(T)=>o.signMessage(T):void 0,signTypedData:o?({domain:T,types:C,value:H})=>o.signTypedData(T,C,H):void 0,transfer:o2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),validateAddress:_n}}function _n(y){try{return cn(y),!0}catch{return!1}}function kf(y){return y instanceof sU}function An(y,n,o){return new mC(y,cC.from(n),o)}function k0({provider:y}){return function(o,f){return new mC(o,cC.from(f),y)}}function l0({abi:y,funcName:n}){let o=y.find((f)=>f.name===n);if(!o)throw new h("toolbox_evm_no_abi_fragment",{funcName:n});return o.stateMutability&&eU.includes(o.stateMutability)}function iC(y){return cn(y)}function lf(y){return function({value:o,...f}){if(!kf(y))throw new h("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:T,gasPrice:C,maxFeePerGas:H,maxPriorityFeePerGas:U,..._}=f;return y.send("eth_sendTransaction",[{..._,value:on(BigInt(o||0))}])}}function dC(y,n){let o=Sf(y,n);if(o)return cn(o.toLowerCase());throw new h("toolbox_evm_invalid_gas_asset_address")}function Sf({chain:y,symbol:n,ticker:o},f){try{let T=y===Oy.BinanceSmartChain&&n==="BNB"&&o==="BNB",C=y===Oy.Hyperevm&&n==="HYPE"&&o==="HYPE",H=y===f&&n===f&&o===f,U=f2.includes(y)&&n==="ETH"&&o==="ETH";if(H||T||C||U)return S0[f];return cn(n.slice(o.length+1).replace(/^0X/,""))}catch{return null}}function Gf({provider:y}){return async({contractAddress:n,abi:o,funcName:f,funcParams:T=[],txOverrides:C})=>An(n,o,y).getFunction(f).populateTransaction(...T.concat(C).filter((H)=>typeof H<"u"))}function Wf({chain:y,provider:n,isEIP1559Compatible:o=!0}){return gC(y).with(Oy.Gnosis,()=>{return async function(){try{let{gasPrice:T,maxPriorityFeePerGas:C}=await n.getFeeData();if(!T||C===null)throw new h("toolbox_evm_no_fee_data");return{[v.Average]:{maxFeePerGas:Xy(T,v.Average),maxPriorityFeePerGas:Xy(C,v.Average)},[v.Fast]:{maxFeePerGas:Xy(T,v.Fast),maxPriorityFeePerGas:Xy(C,v.Fast)},[v.Fastest]:{maxFeePerGas:Xy(T,v.Fastest),maxPriorityFeePerGas:Xy(C,v.Fastest)}}}catch(T){throw new h("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).with(Oy.Arbitrum,()=>{return async function(){try{let{gasPrice:T}=await n.getFeeData();if(!T)throw new h("toolbox_evm_no_fee_data");let C=T*12n/10n;return{[v.Average]:{gasPrice:C},[v.Fast]:{gasPrice:Xy(C,v.Fast)},[v.Fastest]:{gasPrice:Xy(C,v.Fastest)}}}catch(T){throw new h("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:C,gasPrice:H}=await n.getFeeData();if(o){if(T===null||C===null)throw new h("toolbox_evm_no_fee_data");return{[v.Average]:{maxFeePerGas:T,maxPriorityFeePerGas:C},[v.Fast]:{maxFeePerGas:Xy(T,v.Fast),maxPriorityFeePerGas:Xy(C,v.Fast)},[v.Fastest]:{maxFeePerGas:Xy(T,v.Fastest),maxPriorityFeePerGas:Xy(C,v.Fastest)}}}if(!H)throw new h("toolbox_evm_no_gas_price");return{[v.Average]:{gasPrice:H},[v.Fast]:{gasPrice:Xy(H,v.Fast)},[v.Fastest]:{gasPrice:Xy(H,v.Fastest)}}}catch(T){throw new h("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}})}function x0({provider:y,isEIP1559Compatible:n,signer:o,chain:f}){return async function({callProvider:C,contractAddress:H,abi:U,funcName:_,funcParams:A=[],txOverrides:Z={},feeOption:M=v.Fast}){let X=C||y;if(!H)throw new h("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let G=l0({abi:U,funcName:_});if(G&&kf(X)&&o){let B=Gf({chain:f,provider:X}),D=Z?.from||await o?.getAddress(),L=await B({abi:U,contractAddress:H,funcName:_,funcParams:A,txOverrides:{...Z,from:D}});return lf(X)(L)}let W=An(H,U,X);if(G){if(!o)throw new h("toolbox_evm_no_signer");let B=Z?.from||await o.getAddress();if(!B)throw new h("toolbox_evm_no_signer_address");let D=W.connect(o),L=Wf({chain:f,isEIP1559Compatible:n,provider:y}),{maxFeePerGas:w,maxPriorityFeePerGas:N,gasPrice:z}=(await L())[M],J=await W.getFunction(_).estimateGas(...A,Z),Y=await D[_](...A,{...Z,gasLimit:J,gasPrice:z,maxFeePerGas:w,maxPriorityFeePerGas:N,nonce:Z?.nonce||await X.getTransactionCount(B)});return typeof Y?.hash==="string"?Y?.hash:Y}let Q=await W[_]?.(...A);return typeof Q?.hash==="string"?Q?.hash:Q}}function rC({provider:y,chain:n}){return function({assetAddress:f,spenderAddress:T,from:C}){return x0({chain:n,isEIP1559Compatible:!0,provider:y})({abi:Hn,contractAddress:f,funcName:"allowance",funcParams:[C,T]})}}function n2({provider:y,chain:n}){return async function({assetAddress:f,spenderAddress:T,from:C,amount:H=Un}){let U=await rC({chain:n,provider:y})({assetAddress:f,from:C,spenderAddress:T});return mn.fromBigInt(U).gte(mn.fromBigInt(BigInt(H)))}}function T2({signer:y,isEIP1559Compatible:n=!0,provider:o,chain:f}){return async function({assetAddress:C,spenderAddress:H,feeOptionKey:U=v.Fast,amount:_,gasLimitFallback:A,from:Z,nonce:M}){let X=[H,BigInt(_||Un)],G=await y?.getAddress()||Z,W={abi:Hn,contractAddress:C,funcName:"approve",funcParams:X,signer:y,txOverrides:{from:G}};if(kf(o)){let B=Gf({chain:f,provider:o}),D=lf(o),L=await B(W);return D(L)}return x0({chain:f,isEIP1559Compatible:n,provider:o,signer:y})({...W,feeOption:U,funcParams:X,txOverrides:{from:G,gasLimit:A?BigInt(A.toString()):void 0,nonce:M}})}}function o2({signer:y,isEIP1559Compatible:n=!0,provider:o}){return async function({assetValue:T,memo:C,recipient:H,feeOptionKey:U=v.Fast,sender:_,...A}){let{hexlify:Z,toUtf8Bytes:M}=await import("ethers"),X=T.getBaseValue("bigint"),G=T.chain,W=_||await y?.getAddress(),Q=sC({chain:G,isEIP1559Compatible:n,provider:o,signer:y});if(!W)throw new h("toolbox_evm_no_from_address");if(T.isGasAsset){let z={...A,data:Z(M(C||"")),feeOptionKey:U,from:W,to:H,value:X};return Q(z)}if(!Sf(T,G))throw new h("toolbox_evm_no_contract_address");let{maxFeePerGas:D,maxPriorityFeePerGas:L,gasPrice:w}=(await Wf({chain:G,isEIP1559Compatible:n,provider:o})())[U],N=await R0({chain:G,provider:o,signer:y})({assetValue:T,data:Z(M(C||"")),gasPrice:w,maxFeePerGas:D,maxPriorityFeePerGas:L,memo:C,recipient:H,sender:W});return Q(N)}}function aC({provider:y,signer:n}){return function({contractAddress:f,abi:T,funcName:C,funcParams:H=[],txOverrides:U}){if(!f)throw new h("toolbox_evm_no_contract_address");let _=An(f,T,y);return n?_.connect(n).getFunction(C).estimateGas(...H,U):_.getFunction(C).estimateGas(...H,U)}}function C2({provider:y,signer:n}){return async function({assetValue:f,recipient:T,memo:C,data:H,sender:U,funcName:_,funcParams:A,txOverrides:Z}){let M=f.bigIntValue,X=f.isGasAsset?null:Sf(f,f.chain);if(X&&_)return aC({provider:y,signer:n})({abi:Hn,contractAddress:X,funcName:_,funcParams:A,txOverrides:Z});let{hexlify:G,toUtf8Bytes:W}=await import("ethers");return y.estimateGas({data:H?H:C?G(W(C)):void 0,from:U,to:T,value:M})}}function H2({signer:y}){if(!y)return;return(n)=>w0(y,n)}function sC({provider:y,signer:n,isEIP1559Compatible:o=!0,chain:f}){return async function({feeOptionKey:C=v.Fast,...H}){let{from:U,to:_,data:A,value:Z,...M}=H;if(!n)throw new h("toolbox_evm_no_signer");if(!_)throw new h("toolbox_evm_no_to_address");let X={...M,data:A||"0x",from:U,to:_,value:BigInt(Z||0)};if(kf(y))return lf(y)(X);let G=U||await n.getAddress(),W=H.nonce||await y.getTransactionCount(G),Q=(await y.getNetwork()).chainId,B=$0(X,o);if(B==="eip7702")D0(X.authorizations||[],Q);let D=gC(B).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),L={...X,chainId:Q,nonce:W,type:D,...B==="eip7702"&&{authorizationList:X.authorizations}},w=Wf({chain:f,isEIP1559Compatible:o,provider:y}),z=B!=="legacy"&&!(X.maxFeePerGas&&X.maxPriorityFeePerGas)||!X.gasPrice?Object.entries((await w())[C]).reduce((Y,[R,l])=>({...Y,[R]:on(BigInt(l))}),{}):{},J;try{J=on(X.gasLimit||await y.estimateGas(L)*11n/10n)}catch(Y){throw new h("toolbox_evm_error_estimating_gas_limit",{error:Y})}try{let Y={...L,gasLimit:J,...z};try{return(await n.sendTransaction(Y)).hash}catch{let R=await n.signTransaction({...Y,from:G});return(await y.broadcastTransaction(R)).hash}}catch(Y){throw new h("toolbox_evm_error_sending_transaction",{error:Y})}}}function R0({provider:y,signer:n}){return async function({assetValue:f,memo:T,recipient:C,data:H,sender:U,maxFeePerGas:_,maxPriorityFeePerGas:A,gasPrice:Z,...M}){let X=f.getBaseValue("bigint"),G=f.chain,W=U||await n?.getAddress();if(!W)throw new h("toolbox_evm_no_from_address");if(aU(f)){let{hexlify:D,toUtf8Bytes:L}=await import("ethers");return{...M,data:H||D(L(T||"")),from:W,to:C,value:X}}let Q=Sf(f,G);if(!Q)throw new h("toolbox_evm_no_contract_address");return Gf({chain:f.chain,provider:y})({abi:Hn,contractAddress:Q,funcName:"transfer",funcParams:[C,X],txOverrides:{from:W,gasPrice:Z,maxFeePerGas:_,maxPriorityFeePerGas:A}})}}function U2({provider:y,signer:n,chain:o}){return async function({assetAddress:T,spenderAddress:C,amount:H,from:U}){let _=await n?.getAddress()||U,A=Gf({chain:o,provider:y}),Z=["bigint","number"].includes(typeof H)?H:H||Un;return await A({abi:Hn,contractAddress:T,funcName:"approve",funcParams:[C,BigInt(Z)],txOverrides:{from:_}})}}function _2({provider:y,isEIP1559Compatible:n=!0,chain:o}){return async function({feeOption:T=v.Fast,...C}){let U=await Wf({chain:o,isEIP1559Compatible:n,provider:y})(),_=await y.estimateGas(C),A=dU.from({chain:o}),{gasPrice:Z,maxFeePerGas:M,maxPriorityFeePerGas:X}=U[T];if(!n&&Z)return A.set(mn.fromBigInt(Z*_,A.decimal));if(M&&X){let G=(M+X)*_;return A.set(mn.fromBigInt(G,A.decimal))}throw new h("toolbox_evm_no_gas_price")}}var Un,eU,y2,S0,f2,gn=(y)=>y.type===4||(y.authorizations?.length??0)>0,F0=(y)=>!gn(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),$0=(y,n=!0)=>{if(gn(y))return"eip7702";if(F0(y)||n)return"eip1559";return"legacy"};var dn=I(()=>{Kn();Cn();Un=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");eU=["payable","nonpayable"];y2=rU.reduce((y,n)=>{return y[n]="0x0000000000000000000000000000000000000000",y},{}),S0={...y2,[Oy.Optimism]:"0x4200000000000000000000000000000000000042",[Oy.Polygon]:"0x0000000000000000000000000000000000001010"},f2=[Oy.Arbitrum,Oy.Aurora,Oy.Base,Oy.Optimism]});import{Chain as i,FeeOption as A2}from"@swapkit/helpers";import{HDNodeWallet as q2}from"ethers";import{match as G2,P as eC}from"ts-pattern";function rn(y){let n=d(i.Ethereum)(y);async function o(f,T="0x5ba1e12693dc8f9c48aad8770482f4739beed696",C="aggregate",H=A2.Fast){let U=await n.createContractTxObject({abi:KC,contractAddress:T,funcName:C,funcParams:[f]});return n.sendTransaction({...U,feeOptionKey:H})}return{...n,multicall:o}}function d(y){return function({provider:o,...f}){let T=O0(y),C=G2(f).with({phrase:eC.string},({phrase:U})=>q2.fromPhrase(U).connect(o)).with({signer:eC.any},({signer:U})=>U).otherwise(()=>{return});return Rf({chain:y,isEIP1559Compatible:T,provider:o,signer:C})}}var an,sn,en,yT,fT,nT,TT,y1,oT,CT,HT,UT,_T,AT,qn,qT,GT,WT,XT;var I0=I(()=>{hC();Cn();dn();an=d(i.Adi),sn=d(i.Arbitrum),en=d(i.Aurora),yT=d(i.Avalanche),fT=d(i.Base),nT=d(i.Berachain),TT=d(i.BinanceSmartChain),y1=d(i.Botanix),oT=d(i.Core),CT=d(i.Corn),HT=d(i.Cronos),UT=d(i.Gnosis),_T=d(i.Hyperevm),AT=d(i.Polygon),qn=d(i.Sonic),qT=d(i.Unichain),GT=d(i.XLayer),WT=d(i.Monad),XT=d(i.MegaETH)});var f1;var n1=I(()=>{f1=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as xf,Chain as X2,FeeOption as Vy,SwapKitError as t0}from"@swapkit/helpers";import{Contract as Q2,HDNodeWallet as Z2}from"ethers";import{match as J2,P as T1}from"ts-pattern";function P0(y){return new Q2(M2,f1,y)}function o1(y){return async function(){let o=P0(y);if(o&&"l1BaseFee"in o)return await o?.l1BaseFee();return}}function C1(y){return async function({from:o,to:f,nonce:T,...C}){let{Transaction:H}=await import("ethers");if(!f)throw new t0("toolbox_evm_invalid_transaction",{error:"Missing to address"});return H.from({...C,authorizationList:C.authorizationList,nonce:T?T:o?await y.getTransactionCount(o):0,to:f}).serialized}}function H1(y){return async function(o){let f=P0(y),T=await C1(y)(o);if(f&&"getL1Fee"in f)return f.getL1Fee(T)}}function U1(y){return async function(o){let T=(await y.getFeeData()).gasPrice??0n,C=await y.estimateGas(o);return T*C}}function L2(y){return async function(o){let f=await H1(y)(o)??0n,T=await U1(y)(o);return f+T}}function Y2(y){return async function(o){let f=P0(y),T=await C1(y)(o);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(T)}}function B2(y){return async function(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:f,gasPrice:T}=await y.getFeeData(),C=await o1(y)(),H=T;if(!(o&&f))throw new t0("toolbox_evm_no_fee_data");return{[Vy.Average]:{gasPrice:H,l1GasPrice:C,maxFeePerGas:o,maxPriorityFeePerGas:f},[Vy.Fast]:{gasPrice:xf(H,Vy.Fast),l1GasPrice:xf(C||0n,Vy.Fast),maxFeePerGas:o,maxPriorityFeePerGas:xf(f,Vy.Fast)},[Vy.Fastest]:{gasPrice:xf(H,Vy.Fastest),l1GasPrice:xf(C||0n,Vy.Fastest),maxFeePerGas:o,maxPriorityFeePerGas:xf(f,Vy.Fastest)}}}catch(o){throw new t0("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}}function QT({provider:y,...n}){let o=J2(n).with({phrase:T1.string},({phrase:C})=>Z2.fromPhrase(C).connect(y)).with({signer:T1.any},({signer:C})=>C).otherwise(()=>{return}),f=Rf({provider:y,signer:o}),T=o1(y);return{...f,estimateGasPrices:B2(y),estimateL1Gas:Y2(y),estimateL1GasCost:H1(y),estimateL2GasCost:U1(y),estimateTotalGasCost:L2(y),getBalance:Tn(X2.Optimism).getBalance,getL1GasPrice:T}}var M2="0x420000000000000000000000000000000000000f";var p0=I(()=>{Kn();n1();dn()});var A1={};yy(A1,{validateEVMAddress:()=>_n,toChecksumAddress:()=>iC,isStateChangingCall:()=>l0,isEIP7702Transaction:()=>gn,isEIP1559Transaction:()=>F0,isBrowserProvider:()=>kf,getTokenAddress:()=>Sf,getEvmToolboxAsync:()=>_1,getEvmToolbox:()=>E0,getEstimateGasPrices:()=>Wf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>lf,getCreateContractTxObject:()=>Gf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>dC,createContract:()=>An,XLayerToolbox:()=>GT,UNIToolbox:()=>qT,SONICToolbox:()=>qn,OPToolbox:()=>QT,MONADToolbox:()=>WT,MEGAETHToolbox:()=>XT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>AT,HYPEREVMToolbox:()=>_T,GNOToolbox:()=>UT,ETHToolbox:()=>rn,ContractAddress:()=>S0,CROToolbox:()=>HT,CORNToolbox:()=>CT,COREToolbox:()=>oT,BotanixToolbox:()=>y1,BaseEVMToolbox:()=>Rf,BSCToolbox:()=>TT,BERAToolbox:()=>nT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>en,ARBToolbox:()=>sn,ADIToolbox:()=>an});import{Chain as g}from"@swapkit/helpers";import{match as z2}from"ts-pattern";function E0(y,n){return z2(y).with(g.Adi,()=>an(n)).with(g.Arbitrum,()=>sn(n)).with(g.Aurora,()=>en(n)).with(g.Avalanche,()=>yT(n)).with(g.Base,()=>fT(n)).with(g.Berachain,()=>nT(n)).with(g.BinanceSmartChain,()=>TT(n)).with(g.Botanix,()=>qn(n)).with(g.Core,()=>oT(n)).with(g.Corn,()=>CT(n)).with(g.Cronos,()=>HT(n)).with(g.Ethereum,()=>rn(n)).with(g.Gnosis,()=>UT(n)).with(g.Hyperevm,()=>_T(n)).with(g.Optimism,()=>QT(n)).with(g.Polygon,()=>AT(n)).with(g.Sonic,()=>qn(n)).with(g.Unichain,()=>qT(n)).with(g.XLayer,()=>GT(n)).with(g.Monad,()=>WT(n)).with(g.MegaETH,()=>XT(n)).exhaustive()}async function _1(y,n){let o={...n,provider:n?.provider||await z0(y)};return E0(y,o)}var V0=I(()=>{Cn();I0();p0();dn();I0();p0()});var q1;var G1=I(()=>{((o)=>{o.Test="goerli";o.Main="homestead"})(q1||={})});var W1={};yy(W1,{validateEVMAddress:()=>_n,validateAuthorizations:()=>D0,validateAuthorization:()=>vC,toHexString:()=>on,toChecksumAddress:()=>iC,signAuthorization:()=>w0,parseEIP712FromEVMTx:()=>iU,isStateChangingCall:()=>l0,isEIP7702Transaction:()=>gn,isEIP1559Transaction:()=>F0,isBrowserProvider:()=>kf,getTokenAddress:()=>Sf,getProviderSync:()=>uC,getProvider:()=>z0,getNetworkParams:()=>N0,getIsEIP1559Compatible:()=>O0,getEvmToolboxAsync:()=>_1,getEvmToolbox:()=>E0,getEvmApi:()=>Tn,getEstimateGasPrices:()=>Wf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>lf,getCreateContractTxObject:()=>Gf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>dC,createCustomEvmApi:()=>jU,createContract:()=>An,buildEIP712DomainType:()=>jC,XLayerToolbox:()=>GT,UNIToolbox:()=>qT,SONICToolbox:()=>qn,OPToolbox:()=>QT,MONADToolbox:()=>WT,MEGAETHToolbox:()=>XT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>AT,HYPEREVMToolbox:()=>_T,GNOToolbox:()=>UT,EthNetwork:()=>q1,ETHToolbox:()=>rn,ContractAddress:()=>S0,CROToolbox:()=>HT,CORNToolbox:()=>CT,COREToolbox:()=>oT,BotanixToolbox:()=>y1,BaseEVMToolbox:()=>Rf,BSCToolbox:()=>TT,BERAToolbox:()=>nT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>en,ARBToolbox:()=>sn,ADIToolbox:()=>an});var b0=I(()=>{Kn();Cn();V0();G1()});import{bech32 as N2}from"@scure/base";import{mnemonicToSeed as O2}from"@scure/bip39";import{Bip32PrivateKey as w2}from"@stricahq/bip32ed25519";import{Transaction as D2,types as j0,address as R2,crypto as u0,utils as X1}from"@stricahq/typhonjs";import{AssetValue as Ff,Chain as Xf,getChainConfig as k2,SwapKitError as Gn}from"@swapkit/helpers";import Ly from"bignumber.js";async function K0(y,n){let o=await fetch(`${M1}${y}`,{...n,headers:{project_id:J1,...n?.headers}});if(!o.ok)throw Error(`Blockfrost API error: ${o.status} ${o.statusText}`);return o.json()}async function L1(y){try{return await K0(`/addresses/${y}/utxos`)}catch{return[]}}async function S2(){return(await K0("/blocks/latest")).slot}async function x2(){let y=await K0("/epochs/latest/parameters"),n={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new Ly(y.collateral_percent),languageView:n,maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new Ly(y.min_fee_a),minFeeB:new Ly(y.min_fee_b),minFeeRefScriptCostPerByte:new Ly(15),priceMem:new Ly(y.price_mem),priceSteps:new Ly(y.price_step),stakeKeyDeposit:new Ly(2000000),utxoCostPerByte:new Ly(y.coins_per_utxo_size)}}async function Z1(y){let n=await fetch(`${M1}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:J1},method:"POST"});if(!n.ok){let o=await n.text();throw Error(`Transaction submission failed: ${o}`)}return n.json()}function F2(y,n){return y.map((o)=>{let f=o.amount.find((H)=>H.unit==="lovelace"),T=f?new Ly(f.quantity):new Ly(0),C=o.amount.filter((H)=>H.unit!=="lovelace").map((H)=>({amount:new Ly(H.quantity),assetName:H.unit.slice(56),policyId:H.unit.slice(0,56)}));return{address:n,amount:T,index:o.output_index,tokens:C,txId:o.tx_hash}})}async function $2(y){try{let n=await L1(y),o=0n,f=new Map;for(let H of n){if(!H.amount||!Array.isArray(H.amount))continue;for(let U of H.amount){let{unit:_,quantity:A}=U;if(_==="lovelace")o+=BigInt(A);else{let Z=f.get(_)||0n;f.set(_,Z+BigInt(A))}}}let T=[],{baseDecimal:C}=k2(Xf.Cardano);if(o>0n)T.push(Ff.from({chain:Xf.Cardano,fromBaseDecimal:C,value:o.toString()}));for(let[H,U]of f)T.push(Ff.from({asset:`${Xf.Cardano}.${H}`,value:U.toString()}));if(T.length===0)return[Ff.from({chain:Xf.Cardano})];return T}catch(n){let o=n instanceof Error?n.message:String(n);return console.error(`Cardano balance fetch error: ${o}`),[Ff.from({chain:Xf.Cardano})]}}function Y1(y){if(!y||typeof y!=="string")return!1;try{let n=N2.decode(y,120);return n.prefix==="addr"||n.prefix==="addr_test"}catch{return!1}}async function I2(y,n=0,o=0){let f=await O2(y,""),C=(await w2.fromEntropy(Buffer.from(f.slice(0,64)))).derive(v0+1852).derive(v0+1815).derive(v0+n),H=C.derive(0).derive(o),U=H.toBip32PublicKey().toPublicKey().toBytes(),_=u0.hash28(U),Z=C.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),M=u0.hash28(Z),X={hash:_,type:j0.HashType.ADDRESS},G={hash:M,type:j0.HashType.ADDRESS},Q=new R2.BaseAddress(l2,X,G).getBech32(),B=H.toPrivateKey();return{getAddress:()=>Q,publicKey:U,publicKeyHash:_,signTransaction:async(D)=>{try{let L=await import("@stricahq/cbors"),w=Buffer.from(D,"hex"),N=L.Decoder.decode(w),[z,J,Y,R]=N.value,l=L.Encoder.encode(z),q=u0.hash32(l),O=B.sign(q),k=J instanceof Map?J:new Map,S=k.get(Q1)||[];S.push([U,O]),k.set(Q1,S);let x=[z,k,Y,R];return L.Encoder.encode(x).toString("hex")}catch(L){throw new Gn("toolbox_cardano_sign_transaction_failed",{message:String(L)})}}}}function t2(y){let n,o,f;async function T(){if(!f)f=await x2();return f}async function C(){if(n!==void 0)return n;if(y&&"phrase"in y&&y.phrase){let G=y.index??0;return n=await I2(y.phrase,0,G),n}if(y&&"signer"in y&&y.signer)return n=y.signer,n;return}async function H(){if(o)return o;let G=await C();if(!G)return"";if("getAddress"in G)return o=await G.getAddress(),o;return""}async function U(G){let W=G||await H();if(!W)throw new Gn("core_wallet_connection_not_found");return $2(W)}async function _(G){if(G)try{let{tx:D}=await A(G),L=D.getFee();return Ff.from({chain:Xf.Cardano,fromBaseDecimal:6,value:L.toString()})}catch{}let W=await T(),Q=400,B=W.minFeeB.plus(W.minFeeA.times(Q));return Ff.from({chain:Xf.Cardano,fromBaseDecimal:6,value:B.toString()})}async function A({sender:G="",recipient:W,assetValue:Q,memo:B,pureLovelaceOnly:D=!1}){let L=G||await H();if(!L)throw new Gn("core_wallet_connection_not_found");let[w,N,z]=await Promise.all([L1(L),S2(),T()]),J=w.filter((b)=>D?b.amount.every((j)=>j.unit==="lovelace"):b.amount.some((j)=>j.unit==="lovelace")).sort((b,j)=>{let e=b.amount.some((r)=>r.unit!=="lovelace"),_y=j.amount.some((r)=>r.unit!=="lovelace");if(e===_y)return 0;return e?1:-1}),Y=X1.getAddressFromString(L),R=X1.getAddressFromString(W),l=F2(J,Y),q=new Ly(Q.getBaseValue("string")),O=[{address:R,amount:q,tokens:[]}],k;if(B){let b=new Map;b.set("msg",[B]),k={metadata:[{data:b,label:674}]}}let S={...z,minFeeB:z.minFeeB.plus(z.minFeeA.times(4))},P=new D2({protocolParams:S}).paymentTransaction({auxiliaryData:k,changeAddress:Y,inputs:l,outputs:O,ttl:N+3600}),{payload:V}=P.buildTransaction();return{tx:P,unsignedTx:V}}async function Z(G){let W=await C();if(!W||!("signTransaction"in W))throw new Gn("core_wallet_connection_not_found");return W.signTransaction(G)}async function M({recipient:G,assetValue:W,memo:Q}){let B=await C();if(!B||!("signTransaction"in B))throw new Gn("core_wallet_connection_not_found");let{unsignedTx:D}=await A({assetValue:W,memo:Q,recipient:G,sender:await H()}),L=await Z(D);return await Z1(L)}async function X(G){let W=await Z(G);return await Z1(W)}return{createTransaction:A,estimateTransactionFee:_,getAddress:H,getBalance:U,signAndBroadcastTransaction:X,signTransaction:Z,transfer:M,validateAddress:Y1}}var J1="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",M1="https://cardano-mainnet.blockfrost.io/api/v0",l2,v0=2147483648,Q1=0;var B1=I(()=>{l2=j0.NetworkId.MAINNET});var h0={};yy(h0,{validateCardanoAddress:()=>Y1,getCardanoToolbox:()=>t2});var m0=I(()=>{B1()});import{base64 as JT,bech32 as ZT}from"@scure/base";import{SwapKitError as P2}from"@swapkit/helpers";function Wn(y){return JT.encode(Uint8Array.from(ZT.fromWords(ZT.decode(y).words)))}function Xn(y,n="thor"){return ZT.encode(n,ZT.toWords(JT.decode(y)))}function p2(y){return JT.encode(y)}function E2(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new P2("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return JT.decode(y)}var c0=()=>{};import{AssetValue as g0,Chain as u,getChainConfig as Fy,getRPCUrl as V2,SwapKitError as z1}from"@swapkit/helpers";function by(y){switch(y){case u.Maya:return{amount:[],gas:"10000000000"};case u.THORChain:return{amount:[],gas:"500000000"};case u.Kujira:return w1;case u.Noble:return D1;default:return O1}}async function uy(y){let n=await import("@cosmjs/stargate"),o=n.StargateClient??n.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return o.connect({headers:f,url:y})}async function Qf(y,n,o={}){let f=await import("@cosmjs/stargate"),T=f.SigningStargateClient??f.default?.SigningStargateClient,C=f.GasPrice??f.default?.GasPrice,H=typeof o==="string"?o:"0.0003uatom",U=typeof o==="string"?{}:o;return T.connectWithSigner(y,n,{gasPrice:C.fromString(H),...U})}async function d0(y,n){let o=await import("@cosmjs/stargate");return(o.SigningStargateClient??o.default?.SigningStargateClient).offline(y,n)}async function r0({sender:y,recipient:n,assetValue:o,memo:f="",feeRate:T,sequence:C,accountNumber:H}){let{chain:U,chainId:_}=o,A=await V2(U),M=await(await uy(A)).getAccount(y);if(!M)throw new z1("toolbox_cosmos_account_not_found",{sender:y});let X=g0.from({chain:U}),G=dy(X.symbol),W=by(U),Q=G&&T?{amount:[{amount:T.toString(),denom:G}],gas:W.gas}:W,B={amount:[{amount:o.getBaseValue("string"),denom:dy(o.symbol)}],fromAddress:y,toAddress:n};return{accountNumber:H??Number(M.accountNumber),chainId:_,fee:Q,memo:f,msgs:[{typeUrl:b2(U),value:B}],sequence:C??M.sequence}}var i0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",N1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",O1,w1,D1,dy=(y,n=!1)=>{if(n)return y.toLowerCase();switch(y){case"uUSK":case"USK":return i0;case"uYUM":case"YUM":return N1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return y}},Qn=({symbol:y,chain:n})=>{if(n===u.Maya)return(y.toUpperCase()!=="CACAO"?y:`${u.Maya}.${y}`).toUpperCase();if(n===u.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${u.THORChain}.${y}`:y).toUpperCase();return dy(y,!1)},b2=(y)=>{switch(y){case u.Maya:case u.THORChain:return"/types.MsgSend";case u.Cosmos:case u.Kujira:case u.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new z1("toolbox_cosmos_not_supported",{chain:y})}},u2,a0=(y,n)=>{let o=u2[y.toLowerCase()];if(!o)return g0.from({asset:y,fromBaseDecimal:8,value:n});let{chain:f,asset:T,decimals:C}=o,H=f?{chain:f}:{asset:T};return g0.from({...H,fromBaseDecimal:C,value:n})};var Zn=I(()=>{O1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},w1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},D1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};u2={atom:{chain:u.Cosmos,decimals:Fy(u.Cosmos).baseDecimal},cacao:{chain:u.Maya,decimals:10},kuji:{chain:u.Kujira,decimals:Fy(u.Kujira).baseDecimal},maya:{asset:`${u.Maya}.${u.Maya}`,decimals:4},rune:{chain:u.THORChain,decimals:Fy(u.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Fy(u.THORChain).baseDecimal},uatom:{chain:u.Cosmos,decimals:Fy(u.Cosmos).baseDecimal},ukuji:{chain:u.Kujira,decimals:Fy(u.Kujira).baseDecimal},usdc:{chain:u.Noble,decimals:Fy(u.Noble).baseDecimal},uusdc:{chain:u.Noble,decimals:Fy(u.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Fy(u.THORChain).baseDecimal},[i0.toLowerCase()]:{asset:`${u.Kujira}.USK`,decimals:Fy(u.Kujira).baseDecimal}}});var R1={};yy(R1,{$root:()=>$});import fy from"protobufjs/minimal.js";var p,Yy,t,$;var k1=I(()=>{p=fy.Reader,Yy=fy.Writer,t=fy.util,$=fy.roots.default||(fy.roots.default={});$.common=(()=>{let y={};return y.Asset=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.chain="",n.prototype.symbol="",n.prototype.ticker="",n.prototype.synth=!1,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))T.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))T.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))T.uint32(32).bool(f.synth);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Asset;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.chain=f.string();break;case 2:H.symbol=f.string();break;case 3:H.ticker=f.string();break;case 4:H.synth=f.bool();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!t.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!t.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!t.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Asset)return f;let T=new $.common.Asset;if(f.chain!=null)T.chain=String(f.chain);if(f.symbol!=null)T.symbol=String(f.symbol);if(f.ticker!=null)T.ticker=String(f.ticker);if(f.synth!=null)T.synth=Boolean(f.synth);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.chain="",C.symbol="",C.ticker="",C.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))C.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))C.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))C.synth=f.synth;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.Coin=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.asset=null,n.prototype.amount="",n.prototype.decimals=t.Long?t.Long.fromBits(0,0,!1):0,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))$.common.Asset.encode(f.asset,T.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))T.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))T.uint32(24).int64(f.decimals);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Coin;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.asset=$.common.Asset.decode(f,f.uint32());break;case 2:H.amount=f.string();break;case 3:H.decimals=f.int64();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let T=$.common.Asset.verify(f.asset);if(T)return"asset."+T}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!t.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!t.isInteger(f.decimals)&&!(f.decimals&&t.isInteger(f.decimals.low)&&t.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Coin)return f;let T=new $.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");T.asset=$.common.Asset.fromObject(f.asset)}if(f.amount!=null)T.amount=String(f.amount);if(f.decimals!=null){if(t.Long)(T.decimals=t.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")T.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")T.decimals=f.decimals;else if(typeof f.decimals==="object")T.decimals=new t.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)if(C.asset=null,C.amount="",t.Long){let H=new t.Long(0,0,!1);C.decimals=T.longs===String?H.toString():T.longs===Number?H.toNumber():H}else C.decimals=T.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))C.asset=$.common.Asset.toObject(f.asset,T);if(f.amount!=null&&f.hasOwnProperty("amount"))C.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")C.decimals=T.longs===String?String(f.decimals):f.decimals;else C.decimals=T.longs===String?t.Long.prototype.toString.call(f.decimals):T.longs===Number?new t.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.PubKeySet=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.secp256k1="",n.prototype.ed25519="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))T.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))T.uint32(18).string(f.ed25519);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.PubKeySet;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.secp256k1=f.string();break;case 2:H.ed25519=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!t.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!t.isString(f.ed25519))return"ed25519: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.PubKeySet)return f;let T=new $.common.PubKeySet;if(f.secp256k1!=null)T.secp256k1=String(f.secp256k1);if(f.ed25519!=null)T.ed25519=String(f.ed25519);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.secp256k1="",C.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))C.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))C.ed25519=f.ed25519;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.Tx=(()=>{function n(o){if(this.coins=[],this.gas=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.id="",n.prototype.chain="",n.prototype.fromAddress="",n.prototype.toAddress="",n.prototype.coins=t.emptyArray,n.prototype.gas=t.emptyArray,n.prototype.memo="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))T.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(34).string(f.toAddress);if(f.coins?.length)for(let C=0;C<f.coins.length;++C)$.common.Coin.encode(f.coins[C],T.uint32(42).fork()).ldelim();if(f.gas?.length)for(let C=0;C<f.gas.length;++C)$.common.Coin.encode(f.gas[C],T.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(58).string(f.memo);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Tx;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.id=f.string();break;case 2:H.chain=f.string();break;case 3:H.fromAddress=f.string();break;case 4:H.toAddress=f.string();break;case 5:if(!H.coins?.length)H.coins=[];H.coins.push($.common.Coin.decode(f,f.uint32()));break;case 6:if(!H.gas?.length)H.gas=[];H.gas.push($.common.Coin.decode(f,f.uint32()));break;case 7:H.memo=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!t.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!t.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!t.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!t.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=$.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let T=0;T<f.gas.length;++T){let C=$.common.Coin.verify(f.gas[T]);if(C)return"gas."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!t.isString(f.memo))return"memo: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Tx)return f;let T=new $.common.Tx;if(f.id!=null)T.id=String(f.id);if(f.chain!=null)T.chain=String(f.chain);if(f.fromAddress!=null)T.fromAddress=String(f.fromAddress);if(f.toAddress!=null)T.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Tx.coins: object expected");T.coins[C]=$.common.Coin.fromObject(f.coins[C])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");T.gas=[];for(let C=0;C<f.gas.length;++C){if(typeof f.gas[C]!=="object")throw TypeError(".common.Tx.gas: object expected");T.gas[C]=$.common.Coin.fromObject(f.gas[C])}}if(f.memo!=null)T.memo=String(f.memo);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[],C.gas=[];if(T.defaults)C.id="",C.chain="",C.fromAddress="",C.toAddress="",C.memo="";if(f.id!=null&&f.hasOwnProperty("id"))C.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=f.toAddress;if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=$.common.Coin.toObject(f.coins[H],T)}if(f.gas?.length){C.gas=[];for(let H=0;H<f.gas.length;++H)C.gas[H]=$.common.Coin.toObject(f.gas[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.Fee=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=t.emptyArray,n.prototype.poolDeduct="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)$.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))T.uint32(18).string(f.poolDeduct);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Fee;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push($.common.Coin.decode(f,f.uint32()));break;case 2:H.poolDeduct=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=$.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!t.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Fee)return f;let T=new $.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Fee.coins: object expected");T.coins[C]=$.common.Coin.fromObject(f.coins[C])}}if(f.poolDeduct!=null)T.poolDeduct=String(f.poolDeduct);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults)C.poolDeduct="";if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=$.common.Coin.toObject(f.coins[H],T)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))C.poolDeduct=f.poolDeduct;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.ProtoUint=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.value="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))T.uint32(10).string(f.value);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.ProtoUint;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.value=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!t.isString(f.value))return"value: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.ProtoUint)return f;let T=new $.common.ProtoUint;if(f.value!=null)T.value=String(f.value);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.value="";if(f.value!=null&&f.hasOwnProperty("value"))C.value=f.value;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y})();$.types=(()=>{let y={};return y.MsgDeposit=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=t.emptyArray,n.prototype.memo="",n.prototype.signer=t.newBuffer([]),n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)$.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))T.uint32(26).bytes(f.signer);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.types.MsgDeposit;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push($.common.Coin.decode(f,f.uint32()));break;case 2:H.memo=f.string();break;case 3:H.signer=f.bytes();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=$.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!t.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||t.isString(f.signer)))return"signer: buffer expected"}return null},n.fromObject=function(f){if(f instanceof $.types.MsgDeposit)return f;let T=new $.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");T.coins[C]=$.common.Coin.fromObject(f.coins[C])}}if(f.memo!=null)T.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")t.base64.decode(f.signer,T.signer=t.newBuffer(t.base64.length(f.signer)),0);else if(f.signer.length)T.signer=f.signer}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults){if(C.memo="",T.bytes===String)C.signer="";else if(C.signer=[],T.bytes!==Array)C.signer=t.newBuffer(C.signer)}if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=$.common.Coin.toObject(f.coins[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))C.signer=T.bytes===String?t.base64.encode(f.signer,0,f.signer.length):T.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.MsgSend=(()=>{function n(o){if(this.amount=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.fromAddress=t.newBuffer([]),n.prototype.toAddress=t.newBuffer([]),n.prototype.amount=t.emptyArray,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let C=0;C<f.amount.length;++C)$.cosmos.base.v1beta1.Coin.encode(f.amount[C],T.uint32(26).fork()).ldelim();return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.types.MsgSend;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.fromAddress=f.bytes();break;case 2:H.toAddress=f.bytes();break;case 3:if(!H.amount?.length)H.amount=[];H.amount.push($.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||t.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||t.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let T=0;T<f.amount.length;++T){let C=$.cosmos.base.v1beta1.Coin.verify(f.amount[T]);if(C)return"amount."+C}}return null},n.fromObject=function(f){if(f instanceof $.types.MsgSend)return f;let T=new $.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")t.base64.decode(f.fromAddress,T.fromAddress=t.newBuffer(t.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)T.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")t.base64.decode(f.toAddress,T.toAddress=t.newBuffer(t.base64.length(f.toAddress)),0);else if(f.toAddress.length)T.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");T.amount=[];for(let C=0;C<f.amount.length;++C){if(typeof f.amount[C]!=="object")throw TypeError(".types.MsgSend.amount: object expected");T.amount[C]=$.cosmos.base.v1beta1.Coin.fromObject(f.amount[C])}}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.amount=[];if(T.defaults){if(T.bytes===String)C.fromAddress="";else if(C.fromAddress=[],T.bytes!==Array)C.fromAddress=t.newBuffer(C.fromAddress);if(T.bytes===String)C.toAddress="";else if(C.toAddress=[],T.bytes!==Array)C.toAddress=t.newBuffer(C.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=T.bytes===String?t.base64.encode(f.fromAddress,0,f.fromAddress.length):T.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=T.bytes===String?t.base64.encode(f.toAddress,0,f.toAddress.length):T.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){C.amount=[];for(let H=0;H<f.amount.length;++H)C.amount[H]=$.cosmos.base.v1beta1.Coin.toObject(f.amount[H],T)}return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y})();$.cosmos=(()=>{let y={};return y.base=(()=>{let n={};return n.v1beta1=(()=>{let o={};return o.Coin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.Coin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!t.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!t.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.Coin)return C;let H=new $.cosmos.base.v1beta1.Coin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o.DecCoin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.DecCoin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!t.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!t.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.DecCoin)return C;let H=new $.cosmos.base.v1beta1.DecCoin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o.IntProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.int="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.int!=null&&Object.hasOwnProperty.call(C,"int"))H.uint32(10).string(C.int);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.IntProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.int=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.int!=null&&C.hasOwnProperty("int")){if(!t.isString(C.int))return"int: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.IntProto)return C;let H=new $.cosmos.base.v1beta1.IntProto;if(C.int!=null)H.int=String(C.int);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.int="";if(C.int!=null&&C.hasOwnProperty("int"))U.int=C.int;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o.DecProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.dec="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.dec!=null&&Object.hasOwnProperty.call(C,"dec"))H.uint32(10).string(C.dec);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.DecProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.dec=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.dec!=null&&C.hasOwnProperty("dec")){if(!t.isString(C.dec))return"dec: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.DecProto)return C;let H=new $.cosmos.base.v1beta1.DecProto;if(C.dec!=null)H.dec=String(C.dec);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.dec="";if(C.dec!=null&&C.hasOwnProperty("dec"))U.dec=C.dec;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o})(),n})(),y})()});import{Chain as v2}from"@swapkit/helpers";async function Zf(){let{$root:y}=await Promise.resolve().then(() => (k1(),R1)),n=await import("@cosmjs/proto-signing"),o=n.Registry??n.default?.Registry,f=await import("@cosmjs/stargate"),T=f.defaultRegistryTypes??f.default?.defaultRegistryTypes;return new o([...T,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function ry(y){let n=await import("@cosmjs/stargate"),o=n.AminoTypes??n.default?.AminoTypes,f=y===v2.THORChain?"thorchain":"mayachain";return new o({"/types.MsgDeposit":{aminoType:`${f}/MsgDeposit`,fromAmino:({signer:T,...C})=>({...C,signer:Wn(T)}),toAmino:({signer:T,...C})=>({...C,signer:Xn(T)})},"/types.MsgSend":{aminoType:`${f}/MsgSend`,fromAmino:({from_address:T,to_address:C,...H})=>({...H,fromAddress:Wn(T),toAddress:Wn(C)}),toAmino:({fromAddress:T,toAddress:C,...H})=>({...H,from_address:Xn(T),to_address:Xn(C)})}})}var s0=I(()=>{c0()});import{AssetValue as j2,Chain as MT,getChainConfig as l1,getRPCUrl as S1,SwapKitError as K2}from"@swapkit/helpers";function fo(y){let{assetValue:n,recipient:o,memo:f,sender:T,asSignable:C,asAminoMessage:H}=y;if(o)return F1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,recipient:o,sender:T});return $1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,sender:T})}async function F1({sender:y,recipient:n,assetValue:o,memo:f="",asSignable:T=!0,asAminoMessage:C=!1,sequence:H,accountNumber:U}){let _=o.chain,A=await S1(_),Z=await x1({rpcUrl:A,sender:y}),{chainId:M}=l1(_),X=e0({assetValue:o,recipient:n,sender:y}),G=T?await ay(C?X:sy(X),_):X;return{accountNumber:U||Number(Z.accountNumber),chainId:M,fee:by(_),memo:f,msgs:[G],sequence:H||Z.sequence}}async function $1({sender:y,assetValue:n,memo:o="",asSignable:f=!0,asAminoMessage:T=!1,sequence:C,accountNumber:H}){let U=n.chain,_=await S1(U),A=await x1({rpcUrl:_,sender:y}),{chainId:Z}=l1(U),M=yo({assetValue:n,memo:o,sender:y}),X=f?await ay(T?M:sy(M),U):M;return{accountNumber:H||Number(A.accountNumber),chainId:Z,fee:by(U),memo:o,msgs:[X],sequence:C||A.sequence}}function sy(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((n)=>{let o=j2.from({asset:n.asset}),f=(o.isSynthetic?o.symbol.split("/")?.[1]:o.symbol)?.toUpperCase(),T=(o.isSynthetic?o.symbol.split("/")?.[0]:o.chain)?.toUpperCase();return{...n,asset:{chain:T,symbol:f,synth:o.isSynthetic,ticker:o.ticker}}})}}}async function Jn({chain:y,memo:n,msgs:o}){let f=await Zf(),T=await ry(y),C={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:n,messages:o.map((H)=>T.fromAmino(H))}};return f.encode(C)}var h2,m2,e0=({sender:y,recipient:n,assetValue:o})=>{return{type:`${o.chain===MT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:o.getBaseValue("string"),denom:dy(o.symbol,!0)}],from_address:y,to_address:n}}},yo=({sender:y,assetValue:n,memo:o=""})=>{return{type:`${n.chain===MT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:n.getBaseValue("string"),asset:Qn(n)}],memo:o,signer:y}}},LT=({sender:y,recipient:n,assetValue:o,memo:f})=>{return!n?yo({assetValue:o,memo:f,sender:y}):e0({assetValue:o,recipient:n,sender:y})},ay=async(y,n)=>{return(await ry(n)).fromAmino(y)},x1=async({rpcUrl:y,sender:n})=>{let f=await(await uy(y)).getAccount(n);if(!f)throw new K2("toolbox_cosmos_account_not_found",{sender:n});return f};var I1=I(()=>{Zn();s0();h2=by(MT.THORChain).gas,m2=by(MT.Maya).gas});var t1=()=>{};var P1=I(()=>{t1()});var no=I(()=>{c0();I1();s0();P1()});import{stringToPath as c2}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as g2}from"@cosmjs/proto-signing";import{base64 as Co,bech32 as To}from"@scure/base";import{AssetValue as Ho,applyFeeMultiplier as p1,Chain as oy,CosmosChainPrefixes as j1,DerivationPath as i2,derivationPathToString as E1,FeeOption as Uo,getChainConfig as d2,getRPCUrl as Mn,NetworkDerivationPath as r2,SwapKitError as $f,SwapKitNumber as oo,updateDerivationPath as a2}from"@swapkit/helpers";import{SwapKitApi as K1}from"@swapkit/helpers/api";import{match as s2,P as V1}from"ts-pattern";async function Ao(y,n){try{let f=(await K1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}async function _o({phrase:y,prefix:n,...o}){let f="derivationPath"in o?o.derivationPath:`${i2[o.chain]}/${o.index}`;return await g2.fromMnemonic(y,{hdPaths:[c2(f)],prefix:n})}async function e2({privateKey:y,prefix:n}){let o=await import("@cosmjs/proto-signing");return(o.DirectSecp256k1Wallet??o.default?.DirectSecp256k1Wallet).fromKey(y,n)}function h1(y){return async function({signature:o,message:f,address:T}){let C=await y(T);if(!C?.pubkey)throw new $f("toolbox_cosmos_verify_signature_no_pubkey");let H=await import("@cosmjs/crypto"),U=H.Secp256k1Signature??H.default?.Secp256k1Signature,_=H.Secp256k1??H.default?.Secp256k1,A=U.fromFixedLength(Co.decode(o));return _.verifySignature(A,Co.decode(f),C.pubkey.value)}}function Ln({chain:y,...n}){let o=j1[y],f="index"in n?n.index||0:0,T=E1("derivationPath"in n&&n.derivationPath?n.derivationPath:a2(r2[y],{index:f})),C;async function H(){if(C)return C;return C=await s2(n).with({phrase:V1.string},({phrase:G})=>_o({derivationPath:T,phrase:G,prefix:o})).with({signer:V1.any},({signer:G})=>G).otherwise(()=>{return}),C}async function U(G){let W=await Mn(y);return(await uy(W)).getAccount(G)}async function _(){let G=await H(),[W]=await G?.getAccounts()||[];return W?.address}async function A(){let G=await H(),[W]=await G?.getAccounts()||[];if(!W?.pubkey)throw new $f("toolbox_cosmos_signer_not_defined");return Co.encode(W?.pubkey)}async function Z(G){let W=await H(),Q=await _(),B=await Mn(y);if(!(W&&Q))throw new $f("toolbox_cosmos_signer_not_defined");return await(await Qf(B,W)).sign(Q,G.msgs,G.fee,G.memo,{accountNumber:BigInt(G.accountNumber),chainId:G.chainId,sequence:G.sequence})}async function M(G){let W=await H(),Q=await _(),B=await Mn(y);if(!(W&&Q))throw new $f("toolbox_cosmos_signer_not_defined");let L=await(await Qf(B,W)).signAndBroadcast(Q,G.msgs,G.fee,G.memo);if(L.code!==0)throw new $f("core_swap_transaction_error",{code:L.code,message:L.rawLog});return L.transactionHash}async function X({recipient:G,assetValue:W,memo:Q="",feeRate:B,feeOptionKey:D=Uo.Fast}){let L=await H(),w=await _();if(!(L&&w))throw new $f("toolbox_cosmos_signer_not_defined");let N=await Mn(y),z=Ho.from({chain:y}),J=Qn(z),Y=B||n_((await u1(y,b1[y]))[D],J),R=await Qf(N,L),l=dy(W.symbol),q=[{amount:W.getBaseValue("string"),denom:l}],{transactionHash:O}=await R.sendTokens(w,G,q,Y,Q);return O}return{createPrivateKeyFromPhrase:o_(T),createTransaction:r0,fetchFeeRateFromSwapKit:Ao,getAccount:U,getAddress:_,getBalance:async(G,W)=>{let Q=await v1(y)(G),B=await Promise.all(Q.filter(({denom:D})=>D&&!D.includes("IBC/")&&!([oy.THORChain,oy.Maya].includes(y)&&D.split("-").length>2)).map(({denom:D,amount:L})=>{let w=[oy.THORChain,oy.Maya].includes(y)&&(D.includes("/")||D.includes("˜"))?`${y}.${D}`:D;return a0(w,L)}));if(B.length===0)return[Ho.from({chain:y})];return B},getBalanceAsDenoms:v1(y),getFees:()=>u1(y,b1[y]),getPubKey:A,getSignerFromPhrase:({phrase:G,derivationPath:W})=>_o({derivationPath:E1(W),index:f,phrase:G,prefix:o}),getSignerFromPrivateKey:async(G)=>{let W=await import("@cosmjs/proto-signing");return(W.DirectSecp256k1Wallet??W.default?.DirectSecp256k1Wallet).fromKey(G,o)},signAndBroadcastTransaction:M,signTransaction:Z,transfer:X,validateAddress:m1(y),verifySignature:h1(U)}}async function y_(y,n){try{let f=(await K1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}function f_({assetValue:{chain:y}}){return Ho.from({chain:y,value:T_(y)})}async function u1(y,n){let{chainId:o,baseDecimal:f}=d2(y),T=await Ao(o,n);return{average:oo.fromBigInt(BigInt(T),f),fast:oo.fromBigInt(BigInt(p1(T,Uo.Fast,!0)),f),fastest:oo.fromBigInt(BigInt(p1(T,Uo.Fastest,!0)),f)}}function n_(y,n){return{amount:[{amount:y.getBaseValue("string"),denom:n}],gas:"200000"}}function T_(y){return{[oy.Cosmos]:0.007,[oy.Kujira]:0.02,[oy.Noble]:0.01,[oy.THORChain]:0.02,[oy.Maya]:0.02,[oy.Harbor]:0.02}[y]||0}function m1(y){let n=j1[y];return function(f){if(!f.startsWith(n))return!1;try{let{prefix:T,words:C}=To.decode(f);return To.encode(T,C)===f.toLocaleLowerCase()}catch{return!1}}}function v1(y){return async function(o){let f=await Mn(y);return(await(await uy(f)).getAllBalances(o)).map((U)=>({...U,denom:U.denom.includes("/")?U.denom.toUpperCase():U.denom}))}}function o_(y){return async function(o){let f=await import("@cosmjs/crypto"),T=f.stringToPath??f.default?.stringToPath,C=f.Slip10Curve??f.default?.Slip10Curve,H=f.Slip10??f.default?.Slip10,U=f.EnglishMnemonic??f.default?.EnglishMnemonic,_=f.Bip39??f.default?.Bip39,A=new U(o),Z=await _.mnemonicToSeed(A),{privkey:M}=H.derivePath(C.Secp256k1,Z,T(y));return M}}var b1;var YT=I(()=>{Zn();b1={[oy.Cosmos]:1000,[oy.Kujira]:1000,[oy.Noble]:1000,[oy.THORChain]:5000000,[oy.Maya]:5000000,[oy.Harbor]:5000000}});import{base64 as Jf}from"@scure/base";import{Chain as C_,CosmosChainPrefixes as H_,derivationPathToString as U_,FeeOption as qo,getChainConfig as __,getRPCUrl as r1,NetworkDerivationPath as A_,RequestClient as q_,SKConfig as c1,SwapKitError as If,SwapKitNumber as g1,updateDerivationPath as G_}from"@swapkit/helpers";import{match as i1,P as d1}from"ts-pattern";function W_({prefix:y,derivationPath:n}){return async function(f,T=0){let C=await import("@cosmjs/amino"),H=C.Secp256k1HdWallet??C.default?.Secp256k1HdWallet,U=await import("@cosmjs/crypto"),_=U.stringToPath??U.default?.stringToPath;return H.fromMnemonic(f,{hdPaths:[_(`${n}/${T}`)],prefix:y})}}function X_(y){return Jf.encode(y)}function Q_(y){return async function({wallet:o,tx:f}){let{msgs:T,accountNumber:C,sequence:H,chainId:U,fee:_,memo:A}=typeof f==="string"?JSON.parse(f):f,Z=(await o.getAccounts())?.[0]?.address||"",M=await ry(y),X=await Zf(),G=await d0(o,{aminoTypes:M,registry:X}),W=[];for(let D of T){let L=await ay(D,y);W.push(L)}let{signatures:[Q]}=await G.sign(Z,W,_,A,{accountNumber:BigInt(C),chainId:U,sequence:H});return{bodyBytes:await Jn({chain:y,memo:A,msgs:T.map(sy)}),signature:X_(Q)}}}function Z_({prefix:y,chain:n}){return async function(f,T,C,H,U){let _=await r1(n),{encodeSecp256k1Pubkey:A,pubkeyToAddress:Z}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:M}=(await import("@cosmjs/stargate")).default,{sequence:X,fee:G}=JSON.parse(f),W=await a1(C,H),Q=T.map((L)=>[Z(A(Jf.decode(L.pubKey)),y),Jf.decode(L.signature)]),B=await uy(_),{transactionHash:D}=await B.broadcastTx(M(W,X,G,U,new Map(Q)));return D}}async function a1(y,n,o=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:T}=(await import("@cosmjs/amino")).default;return f(y.map((C)=>T(Jf.decode(C))),n,o)}function J_(y){return Jf.decode(y)}async function M_({privateKey:y,message:n}){let{Secp256k1:o}=(await import("@cosmjs/crypto")).default,f=await o.createSignature(Jf.decode(n),y);return Jf.encode(Buffer.concat([f.r(32),f.s(32)]))}function Go({chain:y,...n}){let{isStagenet:o}=c1.get("envs"),f=c1.get("thornodeUrls"),T=y===C_.Maya,C=i1({isMayachain:T,isStagenet:o}).with({isMayachain:!0},({isStagenet:L})=>L?f.MAYA_STAGENET:f.MAYA).otherwise(({isStagenet:L})=>L?f.THOR_STAGENET:f.THOR),H=`${o?"s":""}${H_[y]}`,U="index"in n?n.index||0:0,_="derivationPath"in n&&n.derivationPath?n.derivationPath:G_(A_[y],{index:U}),A=Ln({chain:y,...n}),Z=by(y),M;function X(){return M??=i1(n).with({phrase:d1.string},({phrase:L})=>A.getSignerFromPhrase({derivationPath:_,phrase:L})).with({signer:d1.any},({signer:L})=>Promise.resolve(L)).otherwise(()=>Promise.resolve(void 0)),M}async function G(){let L=await r1(y),w=await X();if(!w)throw new If("toolbox_cosmos_no_signer");let N=await Zf(),z=await ry(y),J=await Qf(L,w,{aminoTypes:z,registry:N});return{signer:w,signingClient:J}}async function W({fee:L,memo:w,msgs:N}){let{signer:z,signingClient:J}=await G(),Y=(await z.getAccounts())?.[0]?.address;if(!Y)throw new If("toolbox_cosmos_signer_not_defined");let R=await J.signAndBroadcast(Y,N,L,w);if(R.code!==0)throw new If("core_swap_transaction_error",{code:R.code,message:R.rawLog});return R.transactionHash}async function Q(){let L,w=`${C}/${T?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:N}}=await q_.get(w);if(!N||Number.isNaN(N)||N<0)throw new If("toolbox_cosmos_invalid_fee",{nativeFee:N.toString()});L=new g1(N)}catch{L=new g1({decimal:__(y).baseDecimal,value:T?1:0.02})}return{[qo.Average]:L,[qo.Fast]:L,[qo.Fastest]:L}}async function B({assetValue:L,memo:w="",recipient:N}){let{TxRaw:z}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:J,signingClient:Y}=await G(),R=(await J.getAccounts())?.[0]?.address;if(!R)throw new If("toolbox_cosmos_no_signer");let l="signAmino"in J,q=LT({assetValue:L,memo:w,recipient:N,sender:R});if(l){let S=await ay(q,y),{signatures:x,authInfoBytes:P}=await Y.sign(R,[S],Z,w),V=z.encode({authInfoBytes:P,bodyBytes:await Jn({chain:y,memo:w,msgs:[q].map(sy)}),signatures:x}).finish();return(await Y.broadcastTx(V)).transactionHash}let O=sy(q),k=await ay(O,y);return W({fee:Z,memo:w,msgs:[k]})}async function D(L){let{signer:w,signingClient:N}=await G(),z=(await w.getAccounts())?.[0]?.address;if(!z)throw new If("toolbox_cosmos_signer_not_defined");return N.sign(z,L.msgs,L.fee,L.memo,{accountNumber:BigInt(L.accountNumber),chainId:L.chainId,sequence:L.sequence})}return{...A,broadcastMultisigTx:Z_({chain:y,prefix:H}),buildAminoMsg:LT,buildEncodedTxBody:Jn,convertToSignable:ay,createDefaultAminoTypes:()=>ry(y),createDefaultRegistry:Zf,createMultisig:a1,createTransaction:fo,deposit:B,getFees:Q,importSignature:J_,parseAminoMessageForDirectSigning:sy,pubkeyToAddress:async(L)=>{let{pubkeyToAddress:w}=(await import("@cosmjs/amino")).default;return w(L,H)},secp256k1HdWalletFromMnemonic:W_({derivationPath:U_(_),prefix:H}),signAndBroadcastTransaction:W,signMultisigTx:Q_(y),signTransaction:D,signWithPrivateKey:M_,transfer:B}}var Wo=I(()=>{no();Zn();YT()});import{Chain as Yn,SwapKitError as L_}from"@swapkit/helpers";var Y_=(y,n)=>{switch(y){case Yn.Cosmos:case Yn.Kujira:case Yn.Noble:return Ln({chain:y,...n});case Yn.Maya:case Yn.THORChain:return Go({chain:y,...n});default:throw new L_("toolbox_cosmos_not_supported",{chain:y})}};var s1=I(()=>{YT();Wo();YT();Wo()});var BT={};yy(BT,{verifySignature:()=>h1,transferMsgAmino:()=>e0,toBase64:()=>p2,parseAminoMessageForDirectSigning:()=>sy,getSignerFromPrivateKey:()=>e2,getSignerFromPhrase:()=>_o,getMsgSendDenom:()=>dy,getFeeRateFromSwapKit:()=>y_,getDenomWithChain:()=>Qn,getDefaultChainFee:()=>by,getCosmosToolbox:()=>Y_,getCosmosAddressValidator:()=>m1,getAssetFromDenom:()=>a0,fromBase64:()=>E2,fetchFeeRateFromSwapKit:()=>Ao,estimateTransactionFee:()=>f_,depositMsgAmino:()=>yo,createTransaction:()=>fo,createThorchainToolbox:()=>Go,createStargateClient:()=>uy,createSigningStargateClient:()=>Qf,createOfflineStargateClient:()=>d0,createDefaultRegistry:()=>Zf,createDefaultAminoTypes:()=>ry,createCosmosToolbox:()=>Ln,cosmosCreateTransaction:()=>r0,convertToSignable:()=>ay,buildTransferTx:()=>F1,buildEncodedTxBody:()=>Jn,buildDepositTx:()=>$1,buildAminoMsg:()=>LT,bech32ToBase64:()=>Wn,base64ToBech32:()=>Xn,YUM_KUJIRA_FACTORY_DENOM:()=>N1,USK_KUJIRA_FACTORY_DENOM:()=>i0,THORCHAIN_GAS_VALUE:()=>h2,MAYA_GAS_VALUE:()=>m2,DEFAULT_NOBLE_FEE_MAINNET:()=>D1,DEFAULT_KUJI_FEE_MAINNET:()=>w1,DEFAULT_COSMOS_FEE_MAINNET:()=>O1});var zT=I(()=>{no();s1();Zn()});function B_({builder:y,grouping:n="na",orders:o}){return{builder:y,grouping:n,orders:o,type:"order"}}function z_({cancels:y}){return{cancels:y,type:"cancel"}}function N_({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function O_({oid:y,order:n}){return{oid:y,order:n,type:"modify"}}function w_({modifies:y}){return{modifies:y,type:"batchModify"}}function D_({asset:y,isCross:n,leverage:o}){return{asset:y,isCross:n,leverage:o,type:"updateLeverage"}}function R_({asset:y,isBuy:n,ntli:o}){return{asset:y,isBuy:n,ntli:o,type:"updateIsolatedMargin"}}function k_({asset:y,leverage:n}){return{asset:y,leverage:n,type:"topUpIsolatedOnlyMargin"}}function l_({time:y}){return{time:y,type:"scheduleCancel"}}function S_({amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T}){return{amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T,type:"usdClassTransfer"}}function x_({amount:y,destination:n,destinationDex:o,fromSubAccount:f,hyperliquidChain:T,nonce:C,signatureChainId:H,sourceDex:U,token:_}){return{amount:y,destination:n,destinationDex:o,fromSubAccount:f,hyperliquidChain:T,nonce:C,signatureChainId:H,sourceDex:U,token:_,type:"sendAsset"}}function F_({agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T}){return{agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T,type:"approveAgent"}}function $_({builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T}){return{builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T,type:"approveBuilderFee"}}function I_({hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,validator:T,wei:C}){return{hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,type:"tokenDelegate",validator:T,wei:C}}import{SwapKitError as Xo}from"@swapkit/helpers";import{keccak256 as t_,Signature as P_}from"ethers";function Qy(...y){let n=y.reduce((T,C)=>T+C.length,0),o=new Uint8Array(n),f=0;for(let T of y)o.set(T,f),f+=T.length;return o}function v_(y,n,o){if(o<n)return new Uint8Array([y+o]);if(o<=255)return new Uint8Array([y+n,o]);if(o<=65535)return new Uint8Array([y+n+1,o>>8,o&255]);return new Uint8Array([y+n+2,o>>>24&255,o>>>16&255,o>>>8&255,o&255])}function ey(y,n){let o=new Uint8Array(n),f=y;for(let T=n-1;T>=0;T-=1)o[T]=Number(f&0xffn),f>>=8n;return o}function e1(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return Qy(new Uint8Array([205]),ey(y,2));if(y<=0xffffffffn)return Qy(new Uint8Array([206]),ey(y,4));return Qy(new Uint8Array([207]),ey(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 Qy(new Uint8Array([209]),ey(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return Qy(new Uint8Array([210]),ey(BigInt.asUintN(32,y),4));return Qy(new Uint8Array([211]),ey(BigInt.asUintN(64,y),8))}function nH(y){let n=u_.encode(y);if(n.length<32)return Qy(new Uint8Array([160+n.length]),n);return Qy(v_(217,0,n.length),n)}function j_(y){let n=y.map((f)=>Qo(f)),o=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Qy(o,...n)}function K_(y){let n=Object.entries(y).filter(([,f])=>typeof f<"u"),o=n.length<16?new Uint8Array([128+n.length]):n.length<=65535?new Uint8Array([222,n.length>>8,n.length&255]):new Uint8Array([223,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return Qy(o,...n.flatMap(([f,T])=>[nH(f),Qo(T)]))}function Qo(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return nH(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new Xo("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return e1(BigInt(y))}if(typeof y==="bigint")return e1(y);if(y instanceof Uint8Array){let n=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Qy(n,y)}if(Array.isArray(y))return j_(y);if(typeof y==="object")return K_(y);throw new Xo("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function h_(y){let n=y.startsWith("0x")?y.slice(2):y;if(n.length%2!==0||/[^a-fA-F0-9]/u.test(n))throw new Xo("helpers_invalid_params",{hexValue:y});let o=new Uint8Array(n.length/2);for(let f=0;f<n.length;f+=2)o[f/2]=Number.parseInt(n.slice(f,f+2),16);return o}function TH(y){return{domain:p_,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...E_.Agent]}}}function oH(y){let n=b_[y.type],o=V_[y.type],{type:f,...T}=y;return{domain:{chainId:Number.parseInt(T.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:yH,version:"1"},message:{...T,hyperliquidChain:T.hyperliquidChain||fH},primaryType:n,types:{[n]:o}}}function CH(y){let n=P_.from(y);return{r:n.r,s:n.s,v:n.v}}function HH(y,n,{expiresAfter:o,vaultAddress:f}={}){let T=Qo(y),C=ey(BigInt(n),8),H=f?Qy(new Uint8Array([1]),h_(f.toLowerCase())):new Uint8Array([0]),U=typeof o==="number"?Qy(new Uint8Array([0]),ey(BigInt(o),8)):new Uint8Array;return t_(Qy(T,C,H,U))}function UH(y){let n=y.hyperliquidChain||fH;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:n};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:n};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:n};case"tokenDelegate":return{...y,hyperliquidChain:n,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:n};default:return y}}var yH="0x0000000000000000000000000000000000000000",p_,E_,fH="Mainnet",V_,b_,u_;var _H=I(()=>{p_={chainId:1337,name:"Exchange",verifyingContract:yH,version:"1"},E_={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},V_={approveAgent:[{name:"hyperliquidChain",type:"string"},{name:"agentAddress",type:"address"},{name:"agentName",type:"string"},{name:"nonce",type:"uint64"}],approveBuilderFee:[{name:"hyperliquidChain",type:"string"},{name:"maxFeeRate",type:"string"},{name:"builder",type:"address"},{name:"nonce",type:"uint64"}],sendAsset:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"sourceDex",type:"string"},{name:"destinationDex",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"fromSubAccount",type:"string"},{name:"nonce",type:"uint64"}],tokenDelegate:[{name:"hyperliquidChain",type:"string"},{name:"validator",type:"address"},{name:"wei",type:"uint64"},{name:"isUndelegate",type:"bool"},{name:"nonce",type:"uint64"}],usdClassTransfer:[{name:"hyperliquidChain",type:"string"},{name:"amount",type:"string"},{name:"toPerp",type:"bool"},{name:"nonce",type:"uint64"}]},b_={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},u_=new TextEncoder});import{AssetValue as Mo,Chain as m_,derivationPathToString as c_,getChainConfig as GH,getRPCUrl as g_,NetworkDerivationPath as i_,RequestClient as tf,SwapKitError as Pf,updateDerivationPath as d_}from"@swapkit/helpers";import{HDNodeWallet as r_}from"ethers";import{match as a_,P as Zo}from"ts-pattern";function wy(y,n){if(!Yo(y))throw new Pf(n,{address:y});return y.toLowerCase()}async function Mf(y){let n=await NT();return tf.post(`${n}/info`,{json:y})}function o8({dex:y,user:n}){return Mf({...y?{dex:y}:{},type:"clearinghouseState",user:wy(n,"helpers_invalid_params")})}function C8({user:y}){return Mf({type:"spotClearinghouseState",user:wy(y,"helpers_invalid_params")})}function H8({dex:y,user:n}){return Mf({...y?{dex:y}:{},type:"openOrders",user:wy(n,"helpers_invalid_params")})}function U8({dex:y,user:n}){return Mf({...y?{dex:y}:{},type:"frontendOpenOrders",user:wy(n,"helpers_invalid_params")})}function _8({oidOrCloid:y,user:n}){return Mf({oid:y,type:"orderStatus",user:wy(n,"helpers_invalid_params")})}function A8({aggregateByTime:y,user:n}){return Mf({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:wy(n,"helpers_invalid_params")})}function q8({aggregateByTime:y,endTime:n,startTime:o,user:f}){return Mf({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof n==="number"?{endTime:n}:{},startTime:o,type:"userFillsByTime",user:wy(f,"helpers_invalid_params")})}function AH({coin:y,token:n,value:o,spotMeta:f}){if(!o||Number(o)<=0)return null;let T=y?.toUpperCase()||`TOKEN-${n||"UNKNOWN"}`,C=s_[T]||WH,H=f?.tokens?.find((_)=>_.name===y||n!==void 0&&_.index===Number(n)),U=H?`${$y}.${T}-${H.name}:${H.tokenId}`:`${$y}.${T}`;return new Mo({decimal:C,identifier:U,value:o})}function G8(y){let n=new Map;for(let o of y){let f=o.toString({includeSynthProtocol:!0}),T=n.get(f);n.set(f,T?T.add(o):o)}if(![...n.values()].some((o)=>o.isGasAsset||o.ticker==="HYPE")){let o=Mo.from({chain:$y,value:0});n.set(o.toString({includeSynthProtocol:!0}),o)}return[...n.values()]}async function NT(){try{return await g_($y)}catch{let[y]=GH($y).rpcUrls;if(!y)throw new Pf("helpers_chain_no_public_or_set_rpc_url",{chain:$y});return y}}async function Lo(){return`${await NT()}/exchange`}function W8(y){let n=T8[y.type],{type:o,...f}=y,T=n8[o];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:f8,version:"1"},message:f,primaryType:n,types:{[n]:T}}}async function XH({action:y,expiresAfter:n,nonce:o,vaultAddress:f}){let T=o||Date.now(),C=f?wy(f,"helpers_invalid_params"):void 0,H=await Lo(),U=HH(y,T,{expiresAfter:n,vaultAddress:C});return{action:y,endpoint:H,expiresAfter:n,nonce:T,typedData:TH(U),vaultAddress:C}}async function QH({action:y,nonce:n,signatureChainId:o}){let f=n||y.nonce||Date.now(),T=o||y.signatureChainId||"0xa4b1",C=UH({...y,nonce:f,signatureChainId:T});return{action:C,endpoint:await Lo(),nonce:f,typedData:oH(C)}}async function Jo({assetValue:y,recipient:n,sender:o,signatureChainId:f,time:T}){let C=wy(n,"core_transaction_invalid_recipient_address"),H=wy(o,"core_transaction_invalid_sender_address"),U=await Lo(),_=y.getValue("string"),A=T||Date.now(),Z=y.address;if(!Z)throw new Pf("helpers_invalid_params",{asset:y.toString(),from:H});let M={amount:_,destination:C,hyperliquidChain:e_,signatureChainId:f||y8,time:A,token:Z,type:"spotSend"};return{action:M,endpoint:U,nonce:A,typedData:W8(M)}}async function qH(y){let n=await tf.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(n.status!=="ok")throw new Pf("core_transaction_failed",{response:n});return n}async function X8(y,n){let o=await NT(),f=n-5000;for(let T=0;T<5;T++){if(T>0)await new Promise((C)=>setTimeout(C,1000));try{let C=await tf.post(`${o}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),H=Array.isArray(C)?C.find((U)=>U.time&&U.time>=n&&(U.delta?.type==="spotTransfer"||U.delta?.type==="internalTransfer")):void 0;if(H?.hash)return H.hash}catch{}}return""}function Yo(y){return y.startsWith("0x")&&_n(y)}function Q8(y){let n=Wy($y),o=y&&"index"in y?y.index||0:0,f=c_(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:d_(i_[$y],{index:o})),T,C=!1;function H(){if(C)return T;return T=a_(y).with({phrase:Zo.string},({phrase:X})=>{return r_.fromPhrase(X,void 0,f)}).with({signer:Zo.not(Zo.nullish)},({signer:X})=>X).otherwise(()=>{return}),C=!0,T}async function U(){let X=H();return X?await X.getAddress():""}async function _(X){let G=H();if(!G)throw new Pf("toolbox_hypercore_no_signer");let W=await G.signTypedData(X.typedData.domain,X.typedData.types,X.typedData.message);return{action:X.action,endpoint:X.endpoint,nonce:X.nonce,signature:CH(W),..."expiresAfter"in X?{expiresAfter:X.expiresAfter}:{},..."vaultAddress"in X?{vaultAddress:X.vaultAddress}:{}}}async function A(X){let G=wy(X,"helpers_invalid_params");try{let W=await NT(),[Q,B,D]=await Promise.all([tf.post(`${W}/info`,{json:{type:"spotClearinghouseState",user:G}}),tf.post(`${W}/info`,{json:{type:"clearinghouseState",user:G}}),tf.post(`${W}/info`,{json:{type:"spotMeta"}})]),L=(Q.spotState?.balances||Q.balances||[]).map(({coin:N,token:z,total:J})=>AH({coin:N,spotMeta:D,token:z,value:J})).filter((N)=>!!N),w=AH({coin:"USDC",spotMeta:D,value:B.withdrawable||B.marginSummary?.accountValue||B.marginSummary?.totalRawUsd});return G8(w?[...L,w]:L)}catch{return n(G)}}async function Z(X){let G=H();if(!G)throw new Pf("toolbox_hypercore_no_signer");let W=X.sender||await G.getAddress(),Q=await Jo({...X,feeRate:0,sender:W}),B=await _(Q);return await qH(B),X8(W,Q.nonce)}function M(){return Mo.from({chain:$y,value:0})}return{broadcastTransaction:qH,createL1ActionRequest:XH,createTransaction:Jo,createUserSignedActionRequest:QH,estimateTransactionFee:M,getAddress:U,getBalance:A,getState:{clearinghouse:o8,frontendOpenOrders:U8,openOrders:H8,orderStatus:_8,spotClearinghouse:C8,userFills:A8,userFillsByTime:q8},signTransaction:_,transfer:Z,validateAddress:Yo}}var $y,WH,s_,e_="Mainnet",y8="0xa4b1",f8="0x0000000000000000000000000000000000000000",n8,T8;var ZH=I(()=>{b0();Ey();_H();$y=m_.HyperCore,{baseDecimal:WH}=GH($y),s_={HYPE:WH,USDC:6,USDT:6},n8={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},T8={spotSend:"HyperliquidTransaction:SpotSend"}});var Bo={};yy(Bo,{validateHyperCoreAddress:()=>Yo,getHyperCoreToolbox:()=>Q8,createUserSignedActionRequest:()=>QH,createTransaction:()=>Jo,createL1ActionRequest:()=>XH,buildUsdClassTransferAction:()=>S_,buildUpdateLeverageAction:()=>D_,buildUpdateIsolatedMarginAction:()=>R_,buildTopUpIsolatedOnlyMarginAction:()=>k_,buildTokenDelegateAction:()=>I_,buildSendAssetAction:()=>x_,buildScheduleCancelAction:()=>l_,buildOrderAction:()=>B_,buildModifyAction:()=>O_,buildCancelByCloidAction:()=>N_,buildCancelAction:()=>z_,buildBatchModifyAction:()=>w_,buildApproveBuilderFeeAction:()=>$_,buildApproveAgentAction:()=>F_});var zo=I(()=>{ZH()});import{PublicKey as yf}from"@solana/web3.js";import{AssetValue as OT,Chain as jy,DerivationPath as Z8,derivationPathToString as J8,getChainConfig as YH,getRPCUrl as M8,NetworkDerivationPath as L8,SwapKitError as pf,updateDerivationPath as Y8}from"@swapkit/helpers";import{match as B8,P as JH}from"ts-pattern";async function BH(y){let n=OT.from({address:y,chain:jy.Solana});if(n.symbol!=="UNKNOWN")return{decimals:n.decimal||0,id:y,logoURI:n.getIconUrl(),name:n.symbol,symbol:n.ticker};let o=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(o);if(!f.ok)return null;let T=await f.json();if(!Array.isArray(T)||T.length===0)return null;return T.find((H)=>H.id===y)||null}catch{return null}}async function z8(y){let n=await vy(),{PublicKey:o}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),T=new o(y),{baseDecimal:C}=YH(jy.Solana),H=await n.getBalance(T),U=[OT.from({chain:jy.Solana,fromBaseDecimal:C,value:H||0})],_=await n.getParsedTokenAccountsByOwner(T,{programId:f});for(let{account:A}of _.value){let Z=A.data.parsed.info,M=Z.mint,X=Z.tokenAmount.amount;if(Number(X)===0)continue;let G=await BH(M),W=G?.symbol||"UNKNOWN",Q=G?.decimals||Z.tokenAmount.decimals;U.push(OT.from({asset:`${jy.Solana}.${W}-${M}`,fromBaseDecimal:Q,value:X}))}return U}function Oo(y){try{let n=new yf(y);return yf.isOnCurve(n.toBytes())}catch{return!1}}function N8(y){let n=y&&"index"in y?y.index||0:0,o=J8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:Y8(L8[jy.Solana],{index:n})),f;async function T(){if(f)return f;return f=await B8(y).with({phrase:JH.string},({phrase:H})=>No({derivationPath:o,phrase:H})).with({signer:JH.any},({signer:H})=>H).otherwise(()=>{return}),f}async function C(){let H=await T();return H?.publicKey?LH(H.publicKey):""}return{broadcastTransaction:wT(vy),createKeysForPath:No,createTransaction:wo(vy),createTransactionFromInstructions:R8,estimateTransactionFee:O8(vy),getAddress:C,getAddressFromPubKey:LH,getBalance:Wy(jy.Solana),getBalanceFromRPC:z8,getConnection:vy,getPubkeyFromAddress:(H)=>new yf(H),signAndBroadcastTransaction:async(H)=>{let U=await MH(vy,T)(H);return wT(vy)(U)},signTransaction:MH(vy,T),transfer:k8(vy,T),validateAddress:Oo}}function O8(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let H=await y(),_=(await wo(y)({assetValue:o,isProgramDerivedAddress:T,memo:f,recipient:n,sender:C})).compileMessage(),A=await H.getFeeForMessage(_);if(A.value===null)throw new pf("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:Z}=YH(jy.Solana);return OT.from({chain:jy.Solana,fromBaseDecimal:Z,value:A.value})}}async function vy(){let{Connection:y}=await import("@solana/web3.js"),n=await M8(jy.Solana);return new y(n,{commitment:"confirmed",fetchMiddleware:(o,f,T)=>{let C={};for(let[H,U]of Object.entries(f?.headers??{})){let _=H.toLowerCase();if(_!=="pragma"&&_!=="solana-client")C[H]=U}T(o,{...f,headers:C})}})}function w8(y){return async({assetValue:n,recipient:o,sender:f,isProgramDerivedAddress:T})=>{let C=await y(),H=new yf(f);if(n.isGasAsset){let{Transaction:U,SystemProgram:_}=await import("@solana/web3.js");return new U().add(_.transfer({fromPubkey:H,lamports:n.getBaseValue("number"),toPubkey:new yf(o)}))}if(n.address)return D8({amount:n.getBaseValue("number"),connection:C,decimals:n.decimal,from:H,isProgramDerivedAddress:T,recipient:o,tokenAddress:n.address});return}}async function D8({tokenAddress:y,recipient:n,from:o,connection:f,amount:T,decimals:C,isProgramDerivedAddress:H}){let{getAssociatedTokenAddress:U,getAccount:_,createAssociatedTokenAccountInstruction:A,createTransferCheckedInstruction:Z}=await import("@solana/spl-token"),{Transaction:M}=await import("@solana/web3.js"),X=new M,G=new yf(y),W=await U(G,o),Q=new yf(n),B=await U(G,Q,H),D=!1;try{await _(f,B),D=!0}catch{}if(!D)X.add(A(o,B,Q,G));return X.add(Z(W,G,B,o,T,C)),X}function wo(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let{createMemoInstruction:H}=await import("@solana/spl-memo"),U=new yf(C);if(!(T||Oo(n)))throw new pf("core_transaction_invalid_recipient_address");let _=await y(),A=await w8(y)({assetValue:o,isProgramDerivedAddress:T,recipient:n,sender:C});if(!A)throw new pf("core_transaction_invalid_sender_address");if(f)A.add(H(f));let Z=await _.getLatestBlockhash();return A.recentBlockhash=Z.blockhash,A.feePayer=U,A}}async function R8({instructions:y}){let{Transaction:n}=await import("@solana/web3.js"),o=new n().add(...y);if(!o)throw new pf("core_transaction_invalid_sender_address");return o}function k8(y,n){return async({recipient:o,assetValue:f,memo:T,isProgramDerivedAddress:C})=>{let H=await n();if(!H)throw new pf("core_transaction_invalid_sender_address");let U=H.publicKey?.toString()??(await H.connect()).publicKey.toString(),_=await wo(y)({assetValue:f,isProgramDerivedAddress:C,memo:T,recipient:o,sender:U});if("signTransaction"in H){let A=await H.signTransaction(_);return wT(y)(A)}return _.sign(H),wT(y)(_)}}function wT(y){return async(n)=>{return(await y()).sendRawTransaction(n.serialize())}}function MH(y,n){return async(o)=>{let f=await n();if(!f)throw new pf("toolbox_solana_no_signer");let{VersionedTransaction:T}=await import("@solana/web3.js");if(!(o instanceof T)){let H=await(await y()).getLatestBlockhash();o.recentBlockhash=H.blockhash,o.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(o);return o.sign([f]),o}}async function No({phrase:y,derivationPath:n=Z8.SOL}){let{HDKey:o}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:T}=await import("@solana/web3.js"),C=f(y),H=o.fromMasterSeed(C);return T.fromSeed(H.derive(n,!0).privateKey)}function LH(y){return y.toString()}var zH=I(()=>{Ey()});var Do={};yy(Do,{validateSolanaAddress:()=>Oo,getSolanaToolbox:()=>N8,fetchTokenMetaData:()=>BH,createKeysForPath:()=>No});var Ro=I(()=>{zH()});import{AssetValue as DT,Chain as RT,DerivationPath as OH,derivationPathToString as l8,getChainConfig as S8,getRPCUrl as So,NetworkDerivationPath as x8,SwapKitError as By,updateDerivationPath as F8}from"@swapkit/helpers";import{match as ko,P as Ef}from"ts-pattern";function kT(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function lT({phrase:y,derivationPath:n=OH.STRK}){let{HDKey:o}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:T,hash:C,encode:H,CallData:U}=await import("starknet"),_=f(y),Z=o.fromMasterSeed(_).derive(n);if(!Z.privateKey)throw new By("toolbox_starknet_no_signer");let M=H.addHexPrefix(Buffer.from(Z.privateKey).toString("hex")),X=T.starkCurve.grindKey(M),G=H.addHexPrefix(X),W=T.starkCurve.getStarkKey(G),Q=U.compile([W,0]);return{address:C.calculateContractAddressFromHash(W,xo,Q,0),privateKey:G,publicKey:W}}async function Fo({phrase:y,derivationPath:n=OH.STRK}){let{Account:o,RpcProvider:f}=await import("starknet"),{privateKey:T,address:C}=await lT({derivationPath:n,phrase:y}),H=await So(RT.Starknet),U=new f({nodeUrl:H});return new o({address:C,provider:U,signer:T})}function wH(y){let n=RT.Starknet,o=y&&"index"in y?y.index||0:0,f=l8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:F8(x8[n],{index:o})),T,C,H;async function U(){if(C)return C;let{RpcProvider:z}=await import("starknet"),J=await So(n);return C=new z({nodeUrl:J}),C}async function _(z){let J=await U(),Y=z||await X();if(!Y)return!1;try{return await J.getClassHashAt(Y),!0}catch(R){if(R instanceof Error&&R.message.includes("Contract not found"))return!1;let l=R;if(l?.code===20||l?.code===19)return!1;throw R}}async function A(){let{CallData:z,hash:J}=await import("starknet"),Y=await U(),R=await M();if(!R)throw new By("toolbox_starknet_no_signer");if(!H)throw new By({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await _())return R.address;let q=z.compile([H,0]);if(J.calculateContractAddressFromHash(H,xo,q,0).toLowerCase()!==R.address.toLowerCase())throw new By({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let k={addressSalt:H,classHash:xo,constructorCalldata:q},{transaction_hash:S}=await R.deployAccount(k);return await Y.waitForTransaction(S),S}async function Z(){if(!await _()){if(!H)throw new By({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await A()}}async function M(){if(T)return T;return T=await ko(y).with({phrase:Ef.string},async({phrase:z})=>{let{Account:J,RpcProvider:Y}=await import("starknet"),{privateKey:R,address:l,publicKey:q}=await lT({derivationPath:f,phrase:z});H=q;let O=await So(RT.Starknet),k=new Y({nodeUrl:O});return new J({address:l,provider:k,signer:R})}).with({address:Ef.string,privateKey:Ef.string},async({privateKey:z,address:J})=>{let{Account:Y}=await import("starknet"),R=await U();return new Y({address:J,provider:R,signer:z})}).with({signer:Ef.instanceOf(Object)},({signer:z})=>z).otherwise(()=>{return}),T}async function X(){return(await M())?.address??""}async function G(z){let J=await U(),{uint256:Y,CallData:R}=await import("starknet"),l=[],q=[lo,NH];for(let O of q)try{let[k="0",S="0"]=await J.callContract({calldata:R.compile({account:z}),contractAddress:O,entrypoint:"balanceOf"}),x=Y.uint256ToBN({high:k,low:S});ko(O).with(lo,()=>{l.push(DT.from({chain:n,value:x}))}).with(NH,()=>{if(x>0n)l.push(DT.from({asset:`${n}.ETH-${O}`,value:x}))}).otherwise(()=>{})}catch{}return l}async function W({recipient:z,assetValue:J}){let{CallData:Y,uint256:R}=await import("starknet");if(!kT(z))throw new By("core_transaction_invalid_recipient_address",{address:z});let l=J.isGasAsset?lo:J.address;if(!l)throw new By("toolbox_starknet_invalid_address",{address:l,assetValue:J});let q=R.bnToUint256(J.getBaseValue("bigint"));return[{calldata:Y.compile([z,q]),contractAddress:l,entrypoint:"transfer"}]}async function Q({recipient:z,assetValue:J,sender:Y}){let{baseDecimal:R}=S8(RT.Starknet),l=await M(),q=await ko({sender:Y,signer:l}).with({sender:Ef.string},async({sender:O})=>{let{Account:k}=await import("starknet"),S=await U();return new k({address:O,provider:S,signer:"0x0"})}).with({signer:Ef.nonNullable},({signer:O})=>O).otherwise((O)=>{throw new By({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:O}})});try{let O=await W({assetValue:J,recipient:z}),k=await q.estimateInvokeFee(O);if(k?.overall_fee)return DT.from({chain:n,fromBaseDecimal:R,value:k.overall_fee})}catch(O){throw new By("toolbox_starknet_fee_estimation_failed",O)}return DT.from({chain:n,value:"0.00001"})}async function B({recipient:z,assetValue:J,memo:Y}){let R=await M();if(!R)throw new By("toolbox_starknet_no_signer");await Z();let l=await W({assetValue:J,memo:Y,recipient:z});return(await R.execute(l)).transaction_hash}async function D(z){let J=await M();if(!J)throw new By("toolbox_starknet_no_signer");let Y=await J.signMessage(z);return Array.isArray(Y)?Y:[Y.r.toString(),Y.s.toString()]}async function L(z){let J=await M();if(!J)throw new By("toolbox_starknet_no_signer");return await Z(),(await J.execute(z)).transaction_hash}function w(z){return L(z)}function N(z,J=!0){try{return Wy(n)(z,J)}catch{return G(z)}}return{broadcastTransaction:L,createKeysForPath:Fo,createTransaction:W,deployAccount:A,estimateTransactionFee:Q,getAddress:X,getBalance:N,getProvider:U,isAccountDeployed:_,signAndBroadcastTransaction:w,signMessage:D,transfer:B,validateAddress:kT}}var lo="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",NH="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",xo="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var DH=I(()=>{Ey()});var ST={};yy(ST,{validateStarknetAddress:()=>kT,starknetCreateKeysForPath:()=>Fo,getStarknetToolbox:()=>wH,deriveStarknetKeys:()=>lT});var xT=I(()=>{DH()});import{isValidSuiAddress as $8}from"@mysten/sui/utils";import{AssetValue as Vf,Chain as FT,getChainConfig as I8,SwapKitError as Dy}from"@swapkit/helpers";import{match as t8,P as RH}from"ts-pattern";async function lH(y,n,o,f=[],T){let C=await y.getCoins({coinType:o,cursor:T,owner:n}),H=[...f,...C.data];return C.hasNextPage?lH(y,n,o,H,C.nextCursor):H}function P8(y,n,o){let f=n.reduce((_,A)=>_+BigInt(A.balance),0n);if(f<o)throw new Dy("toolbox_sui_insufficient_balance",{available:f.toString(),required:o.toString()});let{ids:T}=n.reduce((_,A)=>{if(_.total>=o)return _;return{ids:[..._.ids,A.coinObjectId],total:_.total+BigInt(A.balance)}},{ids:[],total:0n}),C=T[0],H=T.slice(1);if(H.length>0)y.mergeCoins(C,H);let[U]=y.splitCoins(C,[o]);return U}function SH(y){try{return $8(y)}catch{return!1}}function kH(y){return"signWithIntent"in y}function p8({provider:y,...n}={}){let o;async function f(){if(o)return o;return o=await t8(n).with({phrase:RH.string},async({phrase:W})=>{let{Ed25519Keypair:Q}=await import("@mysten/sui/keypairs/ed25519");return Q.deriveKeypair(W)}).with({signer:RH.any},({signer:W})=>W).otherwise(()=>{return}),o}async function T(W=y){let{SuiClient:Q,getFullnodeUrl:B}=await import("@mysten/sui/client");return new Q({url:W||B("mainnet")})}async function C(){return(await f())?.toSuiAddress()||""}function H(W){try{let Q=Vf.from({address:W,chain:FT.Sui});return{asset:Q.toString(),decimals:Q.decimal}}catch{}return null}async function U(W){let Q=W||await C();if(!Q)throw new Dy("toolbox_sui_address_required");let{baseDecimal:B,chain:D}=I8(FT.Sui);try{let L=await T(),{totalBalance:w}=await L.getBalance({owner:Q}),N=[Vf.from({chain:D,fromBaseDecimal:B,value:w})],z=await L.getAllBalances({owner:Q});for(let{coinType:J,totalBalance:Y}of z){if(J==="0x2::sui::SUI"||Number(Y)<=0)continue;let R=H(J);if(R)N.push(Vf.from({asset:R.asset,fromBaseDecimal:R.decimals,value:Y}))}return N}catch{return[Vf.from({chain:D})]}}async function _(W){let Q=Vf.from({chain:FT.Sui,value:"0.01"});if(!W)return Q;try{let B=await T(),{txBytes:D}=await A(W),{effects:{status:L,gasUsed:w}}=await B.dryRunTransactionBlock({transactionBlock:D});if(L.status!=="success")return Q;let N=Number(w.computationCost)+Number(w.storageCost)-Number(w.storageRebate);return Vf.from({chain:FT.Sui,value:N.toString()})}catch{return Q}}async function A({recipient:W,assetValue:Q,gasBudget:B,sender:D}){let{Transaction:L}=await import("@mysten/sui/transactions"),w=D||await C();if(!w)throw new Dy("toolbox_sui_no_sender");try{let N=new L;if(N.setSender(w),Q.isGasAsset||Q.symbol==="SUI"){let[Y]=N.splitCoins(N.gas,[Q.getBaseValue("string")]);N.transferObjects([Y],W)}else{let Y=Q.address;if(!Y)throw new Dy("toolbox_sui_missing_coin_type");let R=await T(),l=Q.getBaseValue("bigint"),q=await lH(R,w,Y);if(!q.length)throw new Dy("toolbox_sui_no_coins_found",{coinType:Y});let O=P8(N,q,l);N.transferObjects([O],W)}if(B)N.setGasBudget(B);let z=await T(),J=await N.build({client:z});return{tx:N,txBytes:J}}catch(N){if(N instanceof Dy)throw N;throw new Dy("toolbox_sui_transaction_creation_error",{error:N})}}async function Z(W){let Q=await f();if(!Q)throw new Dy("toolbox_sui_no_signer");if(W instanceof Uint8Array)return Q.signTransaction(W);let{txBytes:B}="tx"in W?W:await A(W);return Q.signTransaction(B)}async function M({assetValue:W,gasBudget:Q,recipient:B}){let D=await f();if(!D)throw new Dy("toolbox_sui_no_signer");let L=D.toSuiAddress()||await C();if(!L)throw new Dy("toolbox_sui_no_sender");let{txBytes:w}=await A({assetValue:W,gasBudget:Q,recipient:B,sender:L}),N=await T();if(!kH(D)){let J=await D.signTransaction(w),{digest:Y}=await N.executeTransactionBlock({signature:J.signature,transactionBlock:J.bytes});return Y}let{digest:z}=await N.signAndExecuteTransaction({signer:D,transaction:w});return z}async function X(W){let Q=await T(),{digest:B}=await Q.executeTransactionBlock({signature:W.signature,transactionBlock:W.bytes});return B}async function G(W){let Q=await f();if(!Q)throw new Dy("toolbox_sui_no_signer");let B=await T(),D;if(typeof W==="string")D=Uint8Array.from(Buffer.from(W,"base64"));else if(W instanceof Uint8Array)D=W;else D=await W.build({client:B});if(!kH(Q)){let w=await Q.signTransaction(D),{digest:N}=await B.executeTransactionBlock({signature:w.signature,transactionBlock:w.bytes});return N}let{digest:L}=await B.signAndExecuteTransaction({signer:Q,transaction:D});return L}return{broadcastTransaction:X,createTransaction:A,estimateTransactionFee:_,getAddress:C,getBalance:U,signAndBroadcastTransaction:G,signTransaction:Z,transfer:M,validateAddress:SH}}var xH=()=>{};var $T={};yy($T,{validateSuiAddress:()=>SH,getSuiToolbox:()=>p8});var IT=I(()=>{xH()});import{getHttpEndpoint as E8}from"@orbs-network/ton-access";import{AssetValue as V8,Chain as zn,getChainConfig as b8,getRPCUrl as u8,SwapKitError as Bn,SwapKitNumber as v8}from"@swapkit/helpers";import{mnemonicToWalletKey as j8}from"@ton/crypto";import{Address as Ky,beginCell as $o,Cell as FH,external as K8,internal as h8,JettonMaster as m8,loadStateInit as c8,SendMode as $H,storeMessage as g8,TonClient as i8,toNano as pH,WalletContractV4 as d8}from"@ton/ton";import{match as IH,P as Io}from"ts-pattern";async function yA(){let y=Date.now();if(tT&&y-PH<e8)return tT;try{return tT=await E8(),PH=y,tT}catch{return u8(zn.Ton)}}function fA(y={}){let n,o,f;async function T(){if(!n){let N=y.provider??await yA();n=new i8({endpoint:N})}return n}async function C(){return(await U()).address.toString()}async function H(){if(f)return f;return f=await IH(y).with({phrase:Io.string},async({phrase:N})=>j8(N.split(" "))).with({signer:Io.any},({signer:N})=>N).otherwise(()=>{return}),f}async function U(N){if(!o||N){let z=await H(),J=await T(),Y=N||z;if(!Y)throw new Bn("core_wallet_connection_not_found");let R=d8.create({publicKey:Y.publicKey,workchain:0});o=J.open(R)}return o}let _=Wy(zn.Ton);async function A({assetValue:N,recipient:z,memo:J,sender:Y}){if(N.isGasAsset){let V=J?w(J).toBoc().toString("base64"):void 0;return[{address:z,amount:N.getBaseValue("string"),payload:V}]}let R=N.address;if(!R)throw new Bn({errorKey:"core_swap_contract_not_found",info:{asset:N.toString()}});let l=Y??await C(),q=await D({jettonMasterAddress:R,ownerAddress:l}),O=Ky.parse(z),k=Ky.parse(l),S=N.getBaseValue("bigint"),x=J?w(J):void 0,P=L({destinationAddress:O,forwardPayload:x,jettonAmount:S,responseAddress:k});return[{address:q.toString(),amount:s8.toString(),payload:P.toBoc().toString("base64")}]}function Z({sender:N,...z}){return A({...z,sender:N})}function M(N){return N.map((z)=>{let J=z.payload?FH.fromBase64(z.payload):void 0,Y=z.stateInit?c8(FH.fromBase64(z.stateInit).asSlice()):void 0,R=Ky.parse(z.address),l=Ky.isFriendly(z.address)?Ky.parseFriendly(z.address).isBounceable:!0;return h8({body:J,bounce:l,init:Y,to:R,value:BigInt(z.amount)})})}async function X(N){let z=await H(),J=await U();if(!J||!z)throw new Bn("core_wallet_connection_not_found");let Y=await T(),{state:R}=await Y.getContractState(J.address),l=R==="active",q=l?await J.getSeqno():0,O=J.createTransfer({messages:M(N),secretKey:z.secretKey,sendMode:tH,seqno:q}),k=K8({body:O,init:l?void 0:J.init,to:J.address});return $o().store(g8(k)).endCell()}async function G(N){return await(await T()).sendFile(N.toBoc()),N.hash().toString("hex")}async function W(N){let z=await X(N);return G(z)}async function Q({assetValue:N,recipient:z,memo:J}){let Y=await Z({assetValue:N,memo:J,recipient:z});return W(Y)}async function B({sender:N,...z}){let{baseDecimal:J}=b8(zn.Ton),Y=await IH(N).with(Io.string,(q)=>{return Ky.parseFriendly(q).address}).otherwise(async()=>{return(await U()).address});if(!Y)throw new Bn("toolbox_fee_estimation_failed",{chain:zn.Ton});let R=V8.from({chain:zn.Ton,value:"0.01"}),l=await T();try{let q=await Z({sender:N,...z}),O=await H(),k=await U();if(!k||!O)return R;let S=await k.getSeqno(),x=k.createTransfer({messages:M(q),secretKey:O.secretKey,sendMode:tH,seqno:S}),{source_fees:P}=await l.estimateExternalMessageFee(Y,{body:x,ignoreSignature:!0,initCode:null,initData:null}),V=P.in_fwd_fee+P.storage_fee+P.gas_fee+P.fwd_fee;return R.set(v8.fromBigInt(BigInt(V),J))}catch{return R}}async function D({jettonMasterAddress:N,ownerAddress:z}){try{let J=await T(),Y=Ky.parse(N),R=Ky.parse(z);return await J.open(m8.create(Y)).getWalletAddress(R)}catch{throw new Bn({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:N,ownerAddress:z}})}}function L({jettonAmount:N,destinationAddress:z,responseAddress:J,forwardAmount:Y=a8,forwardPayload:R}){let l=$o().storeUint(r8,32).storeUint(0,64).storeCoins(N).storeAddress(z).storeAddress(J).storeBit(0).storeCoins(Y);if(R)l.storeBit(1).storeRef(R);else l.storeBit(0);return l.endCell()}function w(N){return $o().storeUint(0,32).storeStringTail(N).endCell()}return{broadcastTransaction:G,createTransaction:Z,estimateTransactionFee:B,getAddress:C,getBalance:_,getJettonWalletAddress:D,sign:X,signAndBroadcastTransaction:W,transfer:Q,validateAddress:EH}}function EH(y){try{return Ky.parse(y),!0}catch{return!1}}var r8=260734629,a8,s8,tH,e8=60000,tT,PH=0;var VH=I(()=>{Ey();a8=pH("0.01"),s8=pH("0.05"),tH=$H.PAY_GAS_SEPARATELY+$H.IGNORE_ERRORS});var PT={};yy(PT,{validateTonAddress:()=>EH,getTONToolbox:()=>fA});var pT=I(()=>{VH()});import{NetworkDerivationPath as nA}from"@swapkit/helpers";function Ry(y,n){if(!Number.isInteger(n)||n<0)throw RangeError(`${y} must be a non-negative integer, got: ${n}`)}function ff({accountIndex:y,chain:n,derivationPath:o}){if(y!==void 0)Ry("accountIndex",y);let f=[...o?.slice(0,3)??nA[n].slice(0,3)];if(y!==void 0)f[2]=y;return f}function bf({accountIndex:y,change:n=!1,chain:o,derivationPath:f,index:T}){return Ry("index",T),[...ff({accountIndex:y,chain:o,derivationPath:f}),Number(n),T]}function Lf(y){return y[2]??0}function bH({deriveAddress:y,getBalance:n,getUtxos:o}){async function f(U){let{accountIndex:_,count:A,startIndex:Z=0,change:M=!1}=U;if(Ry("count",A),A<1)throw RangeError("count must be at least 1");Ry("startIndex",Z);let X=[];for(let G=0;G<A;G++){let W=await y({accountIndex:_,change:M,index:Z+G});if(W)X.push(W)}return X}async function T(U){let{gapLimit:_=20,change:A=!1}=U??{},Z=[],M=0,X=0;while(M<_){let G=await y({change:A,index:X});if(!G)break;if((await n(G.address)).some((B)=>B.getValue("number")>0))Z.push(G),M=0;else M++;X++}return Z}async function C(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),Z=[..._,...A],M=await Promise.all(Z.map(async(G)=>{let Q=(await n(G.address)).reduce((B,D)=>B+D.getValue("number"),0);return{...G,balance:Q}})),X=M.reduce((G,W)=>G+W.balance,0);return{addresses:M,total:X}}async function H(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),Z=[..._,...A];return(await Promise.all(Z.map(async(X)=>{return(await o(X.address)).map((W)=>({...W,address:X.address,derivationIndex:X.index,isChange:X.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:C,getAggregatedUtxos:H,scanForAddresses:T}}var Nn=()=>{};import{Chain as Cy,getRPCUrl as TA,RequestClient as ET,SKConfig as oA,SwapKitError as Iy,warnOnce as CA}from"@swapkit/helpers";import{NETWORKS as uf}from"@swapkit/utxo-signer";async function HA({chain:y,txHash:n}){let o=`${On(y)}/push/transaction`,f=JSON.stringify({data:n});try{let T=await ET.post(o,{body:f,headers:{"Content-Type":"application/json"}});if(T.context.code!==200)throw new Iy("toolbox_utxo_broadcast_failed",{error:T.context.error||"Transaction broadcast failed"});return T.data?.transaction_hash||n}catch(T){let C=await TA(y);if(C){let H=JSON.stringify({id:pC(),jsonrpc:"2.0",method:"sendrawtransaction",params:[n]}),U=await ET.post(C,{body:H,headers:{"Content-Type":"application/json"}});if(U.error)throw new Iy("toolbox_utxo_broadcast_failed",{error:U.error?.message});if(U.result.includes('"code":-26'))throw new Iy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return U.result}throw T}}function On(y){return`https://api.blockchair.com/${UA(y)}`}function uH(y){switch(y){case Cy.Bitcoin:return 5;case Cy.Dogecoin:return 1e4;case Cy.Litecoin:return 1;case Cy.Zcash:return 1;default:return 2}}function UA(y){switch(y){case Cy.BitcoinCash:return"bitcoin-cash";case Cy.Litecoin:return"litecoin";case Cy.Dash:return"dash";case Cy.Dogecoin:return"dogecoin";case Cy.Zcash:return"zcash";case Cy.Polkadot:return"polkadot";default:return"bitcoin"}}async function _A(y){try{let{feePerKb:n}=await ET.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),o=n/1000;return Math.max(o,uH(y))}catch{return uH(y)}}async function VT(y,n){let o=await ET.get(`${y}${n?`${y.includes("?")?"&":"?"}key=${n}`:""}`);if(!o||o.context.code!==200)throw new Iy("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return o.data}async function jH({address:y,chain:n,apiKey:o}){if(!y)throw new Iy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await VT(`${On(n)}/dashboards/address/${y}?transaction_details=true`,o))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function AA({address:y,chain:n,apiKey:o}){return(await jH({address:y,apiKey:o,chain:n}))?.address.balance||0}async function KH({chain:y,apiKey:n,txHash:o}){if(!o)throw new Iy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await VT(`${On(y)}/raw/transaction/${o}`,n))?.[o]?.raw_transaction||""}catch(f){let T=f instanceof Error?f.message:String(f);return console.error(`Failed to fetch raw transaction: ${T}`),""}}async function GA({chain:y,apiKey:n,txHash:o}){if(!o)throw new Iy("toolbox_utxo_invalid_params",{error:"TxHash is required"});let T=(await VT(`${On(y)}/dashboards/transaction/${o}`,n))?.[o];if(!T)throw new Iy("toolbox_utxo_tx_not_found",{txHash:o});let{transaction:C,inputs:H,outputs:U}=T,_=H.map((Z)=>Z.spending_sequence),A=C.is_rbf===!0||_.some((Z)=>Z<qA);return{blockId:C.block_id,confirmed:C.block_id!==-1,fee:C.fee,inputs:H,isRBF:A,outputs:U,sequences:_,size:C.size,txid:C.hash,weight:C.weight}}async function WA({chain:y,address:n,apiKey:o,offset:f=0,limit:T=30}){return(await VT(`${On(y)}/outputs?q=recipient(${n}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${T}&offset=${f}`,o)).map(({is_spent:_,script_hex:A,block_id:Z,transaction_hash:M,index:X,value:G,spending_signature_hex:W})=>({hash:M,index:X,is_confirmed:Z!==-1,is_spent:_,script_hex:A,txHex:W,value:G}))}function XA(y){return y.reduce((n,o)=>n+o.value,0)}function vH(y,n){let o=[...y].sort((f,T)=>T.value-f.value);if(n){let f=[],T=0;for(let C of o)if(f.push(C),T+=C.value,T>=n)break;return f}return o}async function hH({chain:y,address:n,apiKey:o,targetValue:f,accumulativeValue:T=0,offset:C=0,limit:H=30}){if(!n)throw new Iy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let U=await WA({address:n,apiKey:o,chain:y,limit:H,offset:C,targetValue:f}),A=U.length<H,Z=U.filter(({is_spent:B})=>!B),M=XA(Z),X=T+M,G=f&&X>=f;if(A||G)return vH(Z,f);let W=await hH({accumulativeValue:X,address:n,apiKey:o,chain:y,limit:H,offset:C+H,targetValue:f}),Q=[...Z,...W];return vH(Q,f)}catch(U){let _=U instanceof Error?U.message:String(U);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function QA({address:y,chain:n,apiKey:o,fetchTxHex:f=!0,targetValue:T}){let C=await hH({address:y,apiKey:o,chain:n,targetValue:T}),H=[];for(let{hash:U,index:_,script_hex:A,value:Z}of C){let M;if(f)M=await KH({apiKey:o,chain:n,txHash:U});H.push({address:y,hash:U,index:_,txHex:M,value:Z,witnessUtxo:{script:Buffer.from(A,"hex"),value:Z}})}return H}function a(y){let n=oA.get("apiKeys").blockchair||"";return CA({condition:!n,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(o)=>HA({chain:y,txHash:o}),getAddressData:(o)=>jH({address:o,apiKey:n,chain:y}),getBalance:(o)=>AA({address:o,apiKey:n,chain:y}),getRawTx:(o)=>KH({apiKey:n,chain:y,txHash:o}),getSuggestedTxFee:()=>_A(y),getTransactionDetails:(o)=>GA({apiKey:n,chain:y,txHash:o}),getUtxos:(o)=>QA({...o,apiKey:n,chain:y})}}function ZA(y){return y}function JA(){return function(n){switch(n){case Cy.Bitcoin:return uf.bitcoin;case Cy.BitcoinCash:return uf.bitcoinCash;case Cy.Dash:return uf.dash;case Cy.Litecoin:return uf.litecoin;case Cy.Dogecoin:return uf.dogecoin;case Cy.Zcash:return uf.zcash;default:throw new Iy("toolbox_utxo_not_supported",{chain:n})}}}var qA=4294967294;var mH=I(()=>{Ey()});import{CashAddrType as bT,decodeCashAddr as MA,encodeCashAddr as LA}from"@swapkit/utxo-signer";function zA(y,n,o){return LA({hash:o,prefix:y,type:YA[n]})}function NA(y){let n=MA(y),o=BA[n.type];if(!o)throw Error(`Unknown CashAddr type: ${n.type}`);return{hash:n.hash,prefix:n.prefix,type:o}}var YA,BA,to;var cH=I(()=>{YA={P2PKH:bT.P2PKH,P2SH:bT.P2SH},BA={[bT.P2PKH]:"P2PKH",[bT.P2SH]:"P2SH"};to={decode:NA,encode:zA}});import{sha256 as OA}from"@noble/hashes/sha2.js";import{createBase58check as wA}from"@scure/base";import{SwapKitError as iH}from"@swapkit/helpers";function po(y){try{return uT(y),!0}catch{return!1}}function Eo(y){return uT(y)?.network}function hy(y){let n=uT(y);if(n?.format==="legacy")return y;return kA(n)}function wn(y){let n=uT(y);return lA(n)}function uT(y){try{let n=DA(y);if(n)return n}catch{}try{let n=RA(y);if(n)return n}catch{}throw new iH("toolbox_utxo_invalid_address",{address:y})}function DA(y){try{let n=dH.decode(y);if(n.length!==21)throw new iH("toolbox_utxo_invalid_address",{address:y});let o=n[0],f=Array.prototype.slice.call(n,1);switch(o){case Yf.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case Yf.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case Yf.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case Yf.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case Yf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case Yf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function RA(y){if(y.indexOf(":")!==-1)try{return gH(y)}catch{}else{let n=["bitcoincash","bchtest","bchreg"];for(let o of n)try{return gH(`${o}:${y}`)}catch{}}return}function gH(y){try{let{hash:n,prefix:o,type:f}=to.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(n,0),network:o==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function kA(y){let n=Yf.legacy[y.network][y.type],o=Buffer.alloc(1+y.hash.length);return o[0]=n,o.set(y.hash,1),dH.encode(o)}function lA(y){let n=y.network==="mainnet"?"bitcoincash":"bchtest",o=y.type==="p2pkh"?"P2PKH":"P2SH",f=new Uint8Array(y.hash);return to.encode(n,o,f)}var dH,Po,Yf;var rH=I(()=>{cH();dH=wA(OA);((o)=>{o.Mainnet="mainnet";o.Testnet="testnet"})(Po||={});Yf={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as SA}from"@swapkit/helpers";import{Script as xA}from"@swapkit/utxo-signer";function Jy(y){let n=new Uint8Array(Buffer.from(y,"utf8"));return xA.encode(["RETURN",n])}var FA=1000,jT=10,KT=2,aH=10,$A=41,IA=107,hT,vT,Dn,vf=(y)=>{if(y.startsWith("bc1")||y.startsWith("tb1")||y.startsWith("ltc1")||y.startsWith("tltc1"))return"P2WPKH";if(y.startsWith("1")||y.startsWith("m")||y.startsWith("n")||y.startsWith("bitcoincash:q")||y.startsWith("bitcoincash:p")||y.startsWith("q")||y.startsWith("p")||y.startsWith("L")||y.startsWith("M")||y.startsWith("3")||y.startsWith("D")||y.startsWith("A")||y.startsWith("9")||y.startsWith("X")||y.startsWith("7")||y.startsWith("y")||y.startsWith("t1")||y.startsWith("t3")||y.startsWith("tm"))return"P2PKH";throw new SA("toolbox_utxo_invalid_address",{address:y})},Bf=({inputs:y,outputs:n,feeRate:o})=>{let f=y[0]&&"address"in y[0]&&y[0].address?vf(y[0].address):"P2PKH",C=(o?y.filter((A)=>A.value>=vT["type"in A&&A.type?A.type:"P2PKH"]*Math.ceil(o)):y).reduce((A,Z)=>A+nf(Z),0),H=n?.reduce((A,Z)=>A+Rn(Z),0)||Dn[f],U=jT+C+H;return f==="P2WPKH"?Math.ceil(U+KT/4):U},nf=(y)=>{if("type"in y&&y.type)return vT[y.type];if("address"in y&&y.address)return vT[vf(y.address)];return $A+IA},Rn=(y,n)=>{if(y?.script)return aH+y.script.length+(y.script.length>=74?2:1);if(n)return Dn[n];if("address"in y&&y.address)return Dn[vf(y.address)];return Dn.P2PKH};var Vo=I(()=>{((o)=>{o.P2PKH="P2PKH";o.P2WPKH="P2WPKH"})(hT||={});vT={["P2PKH"]:148,["P2WPKH"]:68},Dn={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as zf,SwapKitError as tA}from"@swapkit/helpers";function kn(y){switch(y){case zf.Bitcoin:case zf.BitcoinCash:return 550;case zf.Dash:case zf.Litecoin:return 5500;case zf.Dogecoin:return 1e5;case zf.Zcash:return 546;default:throw new tA("toolbox_utxo_not_supported",{chain:y})}}function ky({inputs:y,outputs:n,feeRate:o=1,chain:f=zf.Bitcoin,changeAddress:T=""}){let C=y[0]&&"address"in y[0]&&y[0].address?vf(y[0].address):"P2PKH",H=y.filter((W)=>nf(W)*o<=W.value),_=C==="P2WPKH"?Math.ceil(KT/4):0,A=jT+_+n.reduce((W,Q)=>W+Rn(Q),0),Z=n.reduce((W,Q)=>W+Q.value,0),M=A*o,X=0,G=[];for(let W of H){let Q=nf(W),B=o*Q;M+=B,X+=W.value,G.push(W);let D=M+Z;if(X<D)continue;let L=X-D,w=o*Rn({address:T,value:0});if(L>w){let N=w+M,z=X-(Z+Math.ceil(N));if(z>Math.max(nf({value:0})*o,kn(f)))return{fee:Math.ceil(N),inputs:G,outputs:n.concat({address:T,value:z})}}return{fee:Math.ceil(M),inputs:G,outputs:n}}return{fee:Math.ceil(o*Bf({inputs:y,outputs:n}))}}var sH=I(()=>{Vo()});var jf=I(()=>{mH();rH();sH();Vo()});import{Address as PA,ZCASH_NETWORK as pA}from"@swapkit/utxo-signer";function Nf(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function Tf(y){let n=Nf(y);return po(n)&&Eo(n)==="mainnet"}function Kf(y){try{if(y.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let o=PA(pA).decode(y);return o.type==="pkh"||o.type==="sh"}catch{return!1}}var ln=I(()=>{jf()});import{secp256k1 as EA}from"@noble/curves/secp256k1.js";import{hex as Of}from"@scure/base";import{HDKey as n5}from"@scure/bip32";import{mnemonicToSeedSync as uo}from"@scure/bip39";import{AssetValue as mT,applyFeeMultiplier as eH,Chain as s,derivationPathToString as Sn,FeeOption as ty,NetworkDerivationPath as T5,SwapKitError as m,SwapKitNumber as VA,updateDerivationPath as bA,warnOnce as uA}from"@swapkit/helpers";import{Address as vA,BCHSigHash as vo,CashAddrPrefix as jA,CashAddrType as KA,encodeCashAddr as hA,NETWORKS as hf,p2pkh as y5,p2wpkh as mA,RBF_SEQUENCE as cA,SigHash as o5,Transaction as bo,WIF as C5}from"@swapkit/utxo-signer";import{match as H5}from"ts-pattern";function jo({address:y,chain:n}){return H5(n).with(s.BitcoinCash,()=>Tf(y)).with(s.Zcash,()=>Kf(y)).otherwise(()=>{try{return vA(Ay(n)).decode(y),!0}catch{return!1}})}function Ay(y){return H5(y).with(s.Bitcoin,()=>hf.bitcoin).with(s.BitcoinCash,()=>hf.bitcoinCash).with(s.Dash,()=>hf.dash).with(s.Dogecoin,()=>hf.dogecoin).with(s.Litecoin,()=>hf.litecoin).with(s.Zcash,()=>hf.zcash).exhaustive()}function gA({phrase:y,derivationPath:n,network:o,seed:f}){let T=f??uo(y),H=n5.fromMasterSeed(T,o.bip32).derive(n);if(!H.privateKey)throw new m("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return H.privateKey}function f5(y){return EA.getPublicKey(y,!0)}function Fn({publicKey:y,chain:n,network:o}){if(n===s.BitcoinCash){let C=y5(y,o);if(!C.hash)throw new m("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return hA({hash:C.hash,prefix:jA.MAINNET,type:KA.P2PKH}).replace(/^bitcoincash:/,"")}let T=!xn.includes(n)?mA(y,o):y5(y,o);if(!T.address)throw new m("toolbox_utxo_invalid_address",{error:"Could not derive address"});return T.address}function mf({phrase:y,derivationPath:n,chain:o,wif:f,seed:T}){let C=Ay(o);if(f){let A=C5(C).decode(f),Z=f5(A);return{privateKey:A,publicKey:Z}}if(!y)throw new m("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let H=n||Sn(T5[o]),U=gA({derivationPath:H,network:C,phrase:y,seed:T}),_=f5(U);return{privateKey:U,publicKey:_}}function iA(y,n){return C5(Ay(n)).encode(y)}function dA({phrase:y,derivationPath:n,chain:o,seed:f}){let T=n.split("/");if(T.length<4)throw new m("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${T.length}): ${n}`});let C=Ay(o),H=f??uo(y),U=n5.fromMasterSeed(H,C.bip32),_=T.slice(0,4).join("/");return U.derive(_)}function of({inputs:y,outputs:n,chain:o,tx:f,sender:T,compiledMemo:C,enableRBF:H=!1}){let U=Ay(o),_=!xn.includes(o),A=H?cA:void 0,Z=new Set;for(let M of y){let X=`${M.hash}:${M.index}`;if(Z.has(X))throw new m("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});Z.add(X);let G=typeof M.hash==="string"?Of.decode(M.hash):M.hash;if(_&&M.witnessUtxo)f.addInput({index:M.index,sequence:A,txid:G,witnessUtxo:{amount:BigInt(M.witnessUtxo.value),script:M.witnessUtxo.script}});else if(M.txHex)f.addInput({index:M.index,nonWitnessUtxo:Of.decode(M.txHex),sequence:A,txid:G,...o===s.BitcoinCash?{sighashType:vo.ALL}:{}});else throw new m("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let M of n){let X="address"in M&&M.address?M.address:T;if(o===s.BitcoinCash)X=hy(X);if(M.script){if(C)f.addOutput({amount:0n,script:C})}else f.addOutputAddress(X,BigInt(M.value),U)}return{inputs:y,tx:f}}async function cf(y){let n=await a(y).getSuggestedTxFee();return{[ty.Average]:n,[ty.Fast]:eH(n,ty.Fast),[ty.Fastest]:eH(n,ty.Fastest)}}async function U5({assetValue:y,recipient:n,memo:o,sender:f,fetchTxHex:T=!1}){let C=y.chain,H=(await cf(C))[ty.Fastest],U=T||xn.includes(C),_=y.getBaseValue("number"),A=Math.ceil(_+H*5000);return{inputs:await a(C).getUtxos({address:f,fetchTxHex:U,targetValue:A}),outputs:[{address:n,value:_},...o?[{address:"",script:Jy(o),value:0}]:[]]}}async function _5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T,fetchTxHex:C=!1,enableRBF:H=!1}){let U=y.chain,_=o?Jy(o):null,A=await U5({assetValue:y,fetchTxHex:C,memo:o,recipient:n,sender:T}),{inputs:Z,outputs:M}=ky({...A,chain:U,feeRate:f});if(!(Z&&M))throw new m("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let X=new bo({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:G,tx:W}=of({chain:U,compiledMemo:_,enableRBF:H,inputs:Z,outputs:M,sender:T,tx:X});return{inputs:G,tx:W,utxos:A.inputs}}async function A5({assetValue:y,feeOptionKey:n=ty.Fast,feeRate:o,memo:f,sender:T,recipient:C}){let H=y.chain,U=await U5({assetValue:y,memo:f,recipient:C,sender:T}),_=o?Math.floor(o):(await cf(H))[n];return ky({...U,chain:H,feeRate:_})}function rA(y){return async function({from:o,memo:f,feeRate:T,feeOptionKey:C=ty.Fast,recipients:H=1}){let U=await a(y).getAddressData(o),_=T?Math.ceil(T):(await cf(y))[C],A=U?.utxo.map((Q)=>({...Q,hash:"",type:"P2PKH"})).filter((Q)=>Q.value>Math.max(kn(y),nf(Q)*_));if(!A?.length)return mT.from({chain:y});let Z=BigInt(A.reduce((Q,B)=>Q+B.value,0)),M=mT.from({chain:y,value:Z}),X=typeof H==="number"?Array.from({length:H},()=>({address:o,value:0})):H;if(f)X.push({address:o,script:Jy(f),value:0});let G=Bf({inputs:A,outputs:X}),W=mT.from({chain:y,value:BigInt(G*_)});return M.sub(W)}}function aA(y){return async function(o){let{fee:f}=await A5(o);return mT.from({chain:y,value:VA.fromBigInt(BigInt(f),8).getValue("string")})}}function sA({chain:y,phrase:n,derivationPath:o,seed:f}){let T=Ay(y),{privateKey:C,publicKey:H}=mf({chain:y,derivationPath:o,phrase:n,seed:f}),U=y===s.BitcoinCash?[vo.ALL]:[o5.ALL];return{getAddress:()=>Fn({chain:y,network:T,publicKey:H}),privateKey:C,publicKey:H,signTransaction:(_)=>{return _.sign(C,U),_}}}function eA(y,n){return async function({memo:f,recipient:T,feeOptionKey:C,feeRate:H,assetValue:U,enableRBF:_=!1}){let A=await n?.getAddress();if(!(n&&A))throw new m("toolbox_utxo_no_signer");if(!T)throw new m("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});uA({condition:_&&!cT.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let Z=_&&cT.includes(y),M=H||(await cf(y))[C||ty.Fast],{tx:X}=await _5({assetValue:U,enableRBF:Z,feeRate:M,memo:f,recipient:T,sender:A}),G=await n.signTransaction(X);return G.finalize(),a(y).broadcastTx(Of.encode(G.extract()))}}function Ko(y){return(n)=>jo({address:n,chain:y})}function ho(y){let n=Ay(y);return function(f){if(!f)throw new m("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return Fn({chain:y,network:n,publicKey:f.publicKey})}}function Cf({chain:y,...n}){let o="phrase"in n?n.phrase:void 0,f="index"in n?n.index||0:0,T=o?uo(o):void 0,C="derivationPath"in n&&n.derivationPath?n.derivationPath:bA(T5[y],{index:f}),H=Sn(C),U=o?sA({chain:y,derivationPath:H,phrase:o,seed:T}):void 0,_="signer"in n?n.signer:void 0,A=U||_,Z=o?mf({chain:y,derivationPath:H,phrase:o,seed:T}):void 0;function M(){if(A)return A.getAddress();return Promise.resolve(void 0)}function X(q){if(!o)return;let O=ff({accountIndex:q,chain:y,derivationPath:C});return dA({chain:y,derivationPath:Sn(O),phrase:o,seed:T})}let G=X();function W(){if(!G)return;return G.publicExtendedKey}function Q({accountIndex:q}={}){let O=q===void 0?G:X(q);if(!O)return;let k=ff({accountIndex:q,chain:y,derivationPath:C});return{accountIndex:Lf(k),path:Sn(k),xpub:O.publicExtendedKey}}function B({accountIndex:q,index:O,change:k=!1}){let S=q===void 0?G:X(q);if(!S)return;let x=bf({accountIndex:q,chain:y,change:k,derivationPath:C,index:O}),P=Ay(y),V=S.deriveChild(Number(k)).deriveChild(O);if(!V.publicKey)throw new m("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let b=Fn({chain:y,network:P,publicKey:V.publicKey}),j=Of.encode(V.publicKey);return{accountIndex:Lf(x),address:b,change:k,index:O,path:Sn(x),pubkey:j}}async function D(q){if(!cT.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let O=await a(y).getTransactionDetails(q);return{canReplace:O.isRBF&&!O.confirmed,confirmed:O.confirmed,enabled:O.isRBF,fee:O.fee,sequences:O.sequences,supported:!0}}async function L({txid:q,newFeeRate:O,recipient:k,memo:S}){if(!cT.includes(y))throw new m("toolbox_utxo_rbf_not_supported",{chain:y});let x=await a(y).getTransactionDetails(q);if(!x.isRBF)throw new m("toolbox_utxo_tx_not_replaceable",{txid:q});if(x.confirmed)throw new m("toolbox_utxo_tx_already_confirmed",{blockId:x.blockId,txid:q});let P=x.inputs.reduce((ny,iy)=>ny+iy.value,0),b=x.outputs.find((ny)=>ny.recipient===k)?.value||0;if(b===0)throw new m("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let j=await Promise.all(x.inputs.map(async(ny)=>{let iy=await a(y).getRawTx(ny.transaction_hash);return{hash:ny.transaction_hash,index:ny.index,txHex:iy,value:ny.value,witnessUtxo:void 0}})),e=S?Jy(S):null,_y=Bf({feeRate:O,inputs:j.map((ny)=>({...ny,type:"P2WPKH"})),outputs:[{address:k,value:b}]}),r=Math.ceil(_y*O);if(r<=x.fee)throw new m("toolbox_utxo_rbf_fee_too_low",{newFee:r,originalFee:x.fee});let Ny=r-x.fee,Gy=b-Ny;if(Gy<=0)throw new m("toolbox_utxo_rbf_insufficient_change");let xy=new bo({allowLegacyWitnessUtxo:!0,version:1}),_f=[{address:k,value:Gy},...S?[{address:"",script:Jy(S),value:0}]:[]],Af=P-Gy-r,gy=await M();if(Af>kn(y)&&gy)_f.push({address:gy,value:Af});return of({chain:y,compiledMemo:e,inputs:j,outputs:_f,sender:gy||k,tx:xy}),{feeDelta:Ny,newFee:r,originalFee:x.fee,tx:xy}}async function w({txid:q,newFeeRate:O,recipient:k,memo:S}){let{tx:x,originalFee:P,newFee:V}=await L({memo:S,newFeeRate:O,recipient:k,txid:q}),b=await R(x);b.finalize();let j=await a(y).broadcastTx(Of.encode(b.extract()));return{newFee:V,originalFee:P,txid:j}}function N({accountIndex:q,index:O,change:k=!1}){Ry("index",O);let S=q===void 0?G:X(q);if(!S)return;return S.deriveChild(Number(k)).deriveChild(O).privateKey||void 0}function z({tx:q,inputDerivations:O}){if(!G)throw new m("toolbox_utxo_no_signer");let k=y===s.BitcoinCash?[vo.ALL]:[o5.ALL];for(let S=0;S<O.length;S++){let x=O[S];if(!x)continue;let{derivationIndex:P,isChange:V}=x,b=N({change:V,index:P});if(!b)throw new m("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${S} at index ${P}`});q.signIdx(b,S,k)}return q}async function J({utxos:q,recipient:O,assetValue:k,memo:S,feeRate:x,feeOptionKey:P,changeAddress:V}){if(!G)throw new m("toolbox_utxo_no_signer");let b=x||(await cf(y))[P||ty.Fast],j=S?Jy(S):null,e=[{address:O,value:k.getBaseValue("number")}];if(j)e.push({address:"",script:j,value:0});let _y=q.map(({hash:gy,index:ny,value:iy,txHex:$U,witnessUtxo:X0})=>({hash:gy,index:ny,txHex:$U,value:iy,witnessUtxo:X0?{script:X0.script,value:X0.value}:void 0})),{inputs:r,outputs:Ny}=ky({chain:y,feeRate:b,inputs:_y,outputs:e});if(!(r&&Ny))throw new m("toolbox_utxo_insufficient_balance",{assetValue:k,sender:"multiple addresses"});let Gy=new bo({allowLegacyWitnessUtxo:!0,version:1}),xy=q[0]?.address,_f=V||await M()||xy||O;of({chain:y,compiledMemo:j,inputs:r,outputs:Ny,sender:_f,tx:Gy});let Af=r.map((gy)=>{let ny=q.find((iy)=>iy.hash===gy.hash&&iy.index===gy.index);return ny?{derivationIndex:ny.derivationIndex,isChange:ny.isChange}:{derivationIndex:0,isChange:!1}});return z({inputDerivations:Af,tx:Gy}),Gy.finalize(),a(y).broadcastTx(Of.encode(Gy.extract()))}function Y({address:q,gapLimit:O=20}){if(!G)return;for(let k=0;k<O;k++){let S=B({change:!1,index:k}),x=B({change:!0,index:k}),P=S?.address===q?!1:x?.address===q;if(S?.address===q||x?.address===q)return{change:P,index:k}}return}function R(q){if(!A)throw new m("toolbox_utxo_no_signer");return A.signTransaction(q)}async function l(q){let O=await R(q);return O.finalize(),await a(y).broadcastTx(Of.encode(O.extract()))}return{accumulative:ky,broadcastTx:(q)=>a(y).broadcastTx(q),bumpFee:w,calculateTxSize:Bf,createKeysForPath:(q)=>mf({...q,chain:y}),createReplacementTransaction:L,createTransaction:_5,deriveAddressAtIndex:B,derivePrivateKeyAtIndex:N,estimateMaxSendableAmount:rA(y),estimateTransactionFee:aA(y),getAddress:M,getAddressFromKeys:ho(y),getBalance:Wy(y),getExtendedPublicKey:W,getExtendedPublicKeyInfo:Q,getFeeRates:()=>cf(y),getInputsOutputsFee:A5,getNetworkForChain:()=>Ay(y),getPrivateKeyFromMnemonic:(q)=>iA(mf({...q,chain:y}).privateKey,y),isRBFEnabled:D,keys:Z,resolveDerivationIndex:Y,signAndBroadcastTransaction:l,signTransaction:R,signTransactionWithMultipleKeys:z,transfer:eA(y,A),transferFromMultipleAddresses:J,validateAddress:Ko(y)}}var xn,cT;var gf=I(()=>{Ey();Nn();jf();ln();xn=[s.Dash,s.Dogecoin,s.Zcash,s.BitcoinCash],cT=[s.Bitcoin]});import{hex as q5}from"@scure/base";import{Chain as yq,derivationPathToString as fq,FeeOption as nq,NetworkDerivationPath as Tq,SwapKitError as my,updateDerivationPath as oq}from"@swapkit/helpers";import{BCHSigHash as Cq,CashAddrPrefix as G5,CashAddrType as W5,encodeCashAddr as X5,NETWORKS as Hq,p2pkh as Q5,Transaction as Z5}from"@swapkit/utxo-signer";function $n(y){return Nf(wn(y))}function Uq(y){let n=Ay(Py);function o(T){return T.sign(y.privateKey,[Cq.ALL]),T}function f(){let T=Q5(y.publicKey,n);if(!T.hash)throw new my("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let C=X5({hash:T.hash,prefix:G5.MAINNET,type:W5.P2PKH});return Promise.resolve(C.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:o}}function mo(y){let n="phrase"in y?y.phrase:void 0,o="index"in y?y.index||0:0,f=fq("derivationPath"in y&&y.derivationPath?y.derivationPath:oq(Tq[Py],{index:o})),T=n?mf({chain:Py,derivationPath:f,phrase:n}):void 0,C=T?Uq(T):("signer"in y)?y.signer:void 0;function H(){return Promise.resolve(C?.getAddress())}let{getBalance:U,getFeeRates:_,broadcastTx:A,...Z}=Cf({chain:Py});function M(W,Q=!0){return U(Nf(wn(W)))}function X(W){if(!C)throw new my("toolbox_utxo_no_signer");return C.signTransaction(W)}async function G(W){let Q=await X(W);return Q.finalize(),await A(q5.encode(Q.extract()))}return{...Z,broadcastTx:A,buildTx:Aq,createTransaction:J5,getAddress:H,getAddressFromKeys:qq,getBalance:M,getFeeRates:_,signAndBroadcastTransaction:G,signTransaction:X,stripPrefix:Nf,stripToCashAddress:$n,transfer:_q({broadcastTx:A,getFeeRates:_,signer:C}),validateAddress:Tf}}async function J5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){if(!Tf(n))throw new my("toolbox_utxo_invalid_address",{address:n});let C=Math.ceil(y.getBaseValue("number")+f*7500),H=await a(Py).getUtxos({address:$n(T),fetchTxHex:!0,targetValue:C}),U=o?Jy(o):null,_=[],A=hy(n);if(_.push({address:A,value:y.getBaseValue("number")}),U)_.push({script:U,value:0});let{inputs:Z,outputs:M}=ky({chain:Py,feeRate:f,inputs:H,outputs:_});if(!(Z&&M))throw new my("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let X=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!U,version:1}),G=hy(T),{inputs:W,tx:Q}=of({chain:Py,compiledMemo:U,inputs:Z,outputs:M.map((B)=>("address"in B)&&B.address?{...B,address:hy(B.address)}:B),sender:G,tx:X});return{inputs:W,tx:Q,utxos:Z}}function _q({broadcastTx:y,getFeeRates:n,signer:o}){return async function({recipient:T,assetValue:C,feeOptionKey:H=nq.Fast,...U}){let _=await o?.getAddress();if(!(o&&_))throw new my("toolbox_utxo_no_signer");if(!T)throw new my("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let A=U.feeRate||(await n())[H],{tx:Z}=await J5({...U,assetValue:C,feeRate:A,recipient:T,sender:_}),M=await o.signTransaction(Z);return M.finalize(),y(q5.encode(M.extract()))}}async function Aq({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){let C=wn(n);if(!Tf(C))throw new my("toolbox_utxo_invalid_address",{address:C});let H=Math.ceil(y.getBaseValue("number")+f*7500),U=await a(Py).getUtxos({address:$n(T),fetchTxHex:!0,targetValue:H}),_=Number(f.toFixed(0)),A=o?Jy(o):null,Z=[];if(Z.push({address:hy(n),value:y.getBaseValue("number")}),A)Z.push({script:A,value:0});let{inputs:M,outputs:X}=ky({chain:Py,feeRate:_,inputs:U,outputs:Z});if(!(M&&X))throw new my("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let G=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:W,tx:Q}=of({chain:Py,compiledMemo:A,inputs:M,outputs:X,sender:hy(T),tx:G});return{inputs:W,tx:Q,utxos:U}}function qq(y){let n=Hq.bitcoinCash,o=Q5(y.publicKey,n);if(!o.hash)throw new my("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return X5({hash:o.hash,prefix:G5.MAINNET,type:W5.P2PKH}).replace(/^bitcoincash:/,"")}var Py;var gT=I(()=>{jf();gf();ln();Py=yq.BitcoinCash});import{createBase58check as Gq,hex as Wq}from"@scure/base";import{HDKey as Y5}from"@scure/bip32";import{mnemonicToSeedSync as B5}from"@scure/bip39";import{Chain as iT,derivationPathToString as Xq,FeeOption as Qq,NetworkDerivationPath as Zq,SKConfig as z5,SwapKitError as In,updateDerivationPath as Jq}from"@swapkit/helpers";import{Address as Mq,createZcashTransaction as Lq,OutScript as Yq,PCZT as Bq,utils as N5,WIF as zq,ZCASH_NETWORK as Nq,ZCASH_TEST_NETWORK as Oq,ZcashConsensusBranchId as wq,ZcashSigHash as M5,ZcashVersionGroupId as Dq}from"@swapkit/utxo-signer";import{match as Rq,P as co}from"ts-pattern";function O5(){let{isStagenet:y}=z5.get("envs");return y?Oq:Nq}function lq(y){return kq.encode(y)}function Sq({phrase:y,derivationPath:n}){let o=B5(y),T=Y5.fromMasterSeed(o).derive(n);if(!T.privateKey||!T.publicKey)throw new In("toolbox_utxo_invalid_params");let{privateKey:C,publicKey:H}=T,U=N5.hash160(H),{isStagenet:_}=z5.get("envs"),A=_?new Uint8Array([29,37]):new Uint8Array([28,184]),Z=new Uint8Array(A.length+U.length);Z.set(A,0),Z.set(U,A.length);let M=lq(Z);return{getAddress:()=>Promise.resolve(M),signTransaction:(X)=>{if(X instanceof Bq)return X.signAllInputs(C,H,M5.ALL),X.finalizeAllInputs(),Promise.resolve(X.extract());return X.signAllInputs(C,H,M5.ALL),Promise.resolve(X)}}}function xq({inputs:y,outputs:n,tx:o,sender:f,compiledMemo:T}){let C=O5();for(let H of y){let U=Mq(C).decode(f),_=Yq.encode(U);o.addInput({index:H.index,script:_,sequence:4294967295,txid:Wq.decode(H.hash),value:BigInt(H.value)})}for(let H of n){let U="address"in H&&H.address?H.address:f,_=H.script;if(_&&!T)continue;if(_&&T)o.addOutput({amount:0n,script:T});else o.addOutputAddress(U,BigInt(H.value),C)}return{inputs:y,tx:o}}async function L5(y){let{assetValue:n,recipient:o,memo:f,feeRate:T,sender:C,fetchTxHex:H}=y,U=f?Jy(f):null,_=await a(iT.Zcash).getUtxos({address:C,fetchTxHex:H!==!1}),A=[{address:o,value:Number(n.getBaseValue("string"))},...U?[{script:U,value:0}]:[]],{inputs:Z,outputs:M}=ky({chain:iT.Zcash,changeAddress:C,feeRate:T,inputs:_,outputs:A});if(!(Z&&M))throw new In("toolbox_utxo_insufficient_balance",{assetValue:n,sender:C});let X=Lq({consensusBranchId:wq.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:Dq.SAPLING}),{tx:G,inputs:W}=xq({compiledMemo:U,inputs:Z,outputs:M,sender:C,tx:X});return{inputs:W,outputs:M,tx:G}}function go(y){let n=Rq(y).with({signer:co.not(co.nullish)},({signer:_})=>_).with({phrase:co.string},({phrase:_,derivationPath:A,index:Z=0})=>{let M=A||Zq[iT.Zcash]||[44,133,0,0,0],X=Jq(M,{index:Z}),G=Xq(X);return Sq({derivationPath:G,phrase:_})}).otherwise(()=>{return}),o=Cf({chain:iT.Zcash,signer:n});async function f(_){if(!n)throw new In("toolbox_utxo_no_signer");return await n.signTransaction(_)}async function T(_){let A=await f(_);return o.broadcastTx(A.toHex())}async function C({recipient:_,assetValue:A,feeOptionKey:Z=Qq.Fast,...M}){let X=await n?.getAddress();if(!(n&&X))throw new In("toolbox_utxo_no_signer");let G=M.feeRate||(await o.getFeeRates())[Z],{tx:W}=await L5({...M,assetValue:A,feeRate:G,recipient:_,sender:X}),B=(await n.signTransaction(W)).toHex();return o.broadcastTx(B)}function H({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let Z=B5(_),X=Y5.fromMasterSeed(Z).derive(A);if(!X.privateKey||!X.publicKey)throw new In("toolbox_utxo_invalid_params");return{privateKey:X.privateKey,publicKey:X.publicKey}}function U({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let Z=H({derivationPath:A,phrase:_}),M=O5();return zq(M).encode(Z.privateKey)}return{...o,createKeysForPath:H,createTransaction:L5,getPrivateKeyFromMnemonic:U,signAndBroadcastTransaction:T,signTransaction:f,transfer:C,validateAddress:Kf}}var kq;var io=I(()=>{jf();gf();ln();kq=Gq(N5.sha256)});import{hex as Fq}from"@scure/base";import{HDKey as $q}from"@scure/bip32";import{derivationPathToString as Iq}from"@swapkit/helpers";function w5({xpub:y,chain:n,count:o,startIndex:f=0,accountIndex:T}){if(Ry("count",o),o<1)throw RangeError("count must be at least 1");Ry("startIndex",f);let C=Ay(n),H=$q.fromExtendedKey(y,C.bip32),U=ff({accountIndex:T,chain:n}),_=Lf(U),A=[];for(let Z of[!1,!0]){let M=H.deriveChild(Number(Z));for(let X=0;X<o;X++){let G=f+X,W=M.deriveChild(G);if(!W.publicKey)continue;let Q=bf({accountIndex:T,chain:n,change:Z,index:G});A.push({accountIndex:_,address:Fn({chain:n,network:C,publicKey:W.publicKey}),change:Z,index:G,path:Iq(Q),pubkey:Fq.encode(W.publicKey)})}}return A}var D5=I(()=>{Nn();gf()});import{Chain as df,SwapKitError as tq}from"@swapkit/helpers";function Pq(y,n){switch(y){case df.BitcoinCash:return mo(n||{});case df.Zcash:return go(n);case df.Bitcoin:case df.Dogecoin:case df.Litecoin:case df.Dash:return Cf({chain:y,...n});default:throw new tq("toolbox_utxo_not_supported",{chain:y})}}var R5=I(()=>{gT();gf();io();Nn();D5();gT();ln()});var ro={};yy(ro,{validateZcashAddress:()=>Kf,validateUtxoAddress:()=>jo,validateBchAddress:()=>Tf,toLegacyAddress:()=>hy,toCashAddress:()=>wn,stripToCashAddress:()=>$n,stripPrefix:()=>Nf,nonSegwitChains:()=>xn,isValidAddress:()=>po,getUtxoToolbox:()=>Pq,getUtxoNetwork:()=>JA,getUtxoApi:()=>a,getUTXOAddressValidator:()=>Ko,getUTXOAddressPath:()=>bf,getUTXOAccountPath:()=>ff,getUTXOAccountIndexFromPath:()=>Lf,getScriptTypeForAddress:()=>vf,getOutputSize:()=>Rn,getNetworkForChain:()=>Ay,getInputSize:()=>nf,getDustThreshold:()=>kn,detectAddressNetwork:()=>Eo,deriveAddressesFromXpub:()=>w5,createZcashToolbox:()=>go,createUTXOToolbox:()=>Cf,createHDWalletHelpers:()=>bH,createCustomUtxoApi:()=>ZA,createBCHToolbox:()=>mo,compileMemo:()=>Jy,calculateTxSize:()=>Bf,assertDerivationIndex:()=>Ry,addressFromKeysGetter:()=>ho,addInputsAndOutputs:()=>of,accumulative:()=>ky,UtxoNetwork:()=>Po,UTXOScriptType:()=>hT,TX_OVERHEAD:()=>jT,SEGWIT_MARKER_FLAG_WEIGHT:()=>KT,OutputSizes:()=>Dn,OP_RETURN_OVERHEAD:()=>aH,MIN_TX_FEE:()=>FA,InputSizes:()=>vT});var ao=I(()=>{gf();Nn();jf();R5();gT();io()});import{KeyPairSigner as pq}from"@near-js/signers";import{derivationPathToString as Eq,SwapKitError as Vq}from"@swapkit/helpers";import*as k5 from"near-seed-phrase";function tn(y){return y.length>=2&&y.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(y)}async function dT(y){let{KeyPair:n}=await import("@near-js/crypto"),o=y.index||0,f=y.derivationPath?Eq(y.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:T}=k5.parseSeedPhrase(y.phrase,f),C=n.fromString(T);return S5(C)}async function so(y){let{KeyPair:n}=await import("@near-js/crypto"),o=n.fromString(y);return S5(o)}function S5(y){return new l5(y)}async function rT(y,n){let f=(await y.query({account_id:n,finality:"final",request_type:"view_access_key_list"})).keys.find((U)=>U.access_key.permission==="FullAccess");if(!f)throw new Vq("toolbox_near_no_public_key_found");let{PublicKey:T}=await import("@near-js/crypto"),C=T.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:C}}var l5;var eo=I(()=>{l5=class l5 extends pq{#y;constructor(y){super(y);this.#y=y}getAddress(){let y=this.#y.getPublicKey(),n=Buffer.from(y.data).toString("hex");return Promise.resolve(n)}}});function yC(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function fC(y){return"contractId"in y&&"methodName"in y}function nC(y){return"actions"in y}function TC(y){return"newAccountId"in y}function oC(y){return"contractCode"in y}function CC(y){return"customEstimator"in y}function HC(y){let n=0;for(let o of y)switch(o.enum){case"transfer":n+=Number(Hy.SIMPLE_TRANSFER);break;case"functionCall":n+=Number(Hy.CONTRACT_CALL);break;case"createAccount":n+=Number(Hy.ACCOUNT_CREATION);break;case"deployContract":n+=Number(Hy.CONTRACT_DEPLOYMENT);break;case"addKey":n+=Number(Hy.ACCESS_KEY_ADDITION);break;case"deleteKey":n+=Number(Hy.ACCESS_KEY_DELETION);break;case"stake":n+=Number(Hy.STAKE);break;default:n+=Number(Hy.CONTRACT_CALL)}return n.toString()}function UC(y){if(y==="ft_transfer"||y==="ft_transfer_call")return Hy.TOKEN_TRANSFER;if(y==="storage_deposit")return Hy.STORAGE_DEPOSIT;return Hy.CONTRACT_CALL}function bq(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function uq(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var Hy;var _C=I(()=>{Hy={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function AC({account:y,contractId:n,viewMethods:o,changeMethods:f}){let{Contract:T}=await import("@near-js/accounts");return new T(y,n,{changeMethods:f,useLocalViewExecution:!0,viewMethods:o})}import{JsonRpcProvider as vq}from"@near-js/providers";import{AssetValue as qC,Chain as rf,getRPCUrl as x5,SwapKitError as Zy}from"@swapkit/helpers";import{match as F5,P as $5}from"ts-pattern";function jq(y){let n;async function o(){if(n)return n;return n=await F5(y).with({phrase:$5.string},async(q)=>{return await dT(q)}).with({signer:$5.any},({signer:q})=>q).otherwise(()=>{return}),n}async function f(){let q=await x5(rf.Near);return new vq({url:q})}async function T(q){let{Account:O}=await import("@near-js/accounts"),k=await f(),S=await o(),x=q||await C();return new O(x,k,S)}async function C(){let q=await o();if(!q)throw new Zy("toolbox_near_no_signer");return await q.getAddress()}async function H(q){return(await N({changeMethods:[],contractId:q.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:q.accountId})}async function U(q){let k=[await X({args:{account_id:q.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await X({args:{amount:q.assetValue.getBaseValue("string"),memo:q.memo||null,receiver_id:q.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return z({actions:k,receiverId:q.contractId})}async function _(q){if(!await o())throw new Zy("toolbox_near_no_signer");let{assetValue:k,recipient:S,memo:x}=q,P=await C();if(!k.isGasAsset&&k.address){if(!await H({accountId:S,contractId:k.address}))return U({assetValue:k,contractId:k.address,memo:x,recipient:S})}let V=await A({...q,sender:P});return Q(V)}async function A({recipient:q,assetValue:O,memo:k,attachedDeposit:S,sender:x,functionCall:P}){let V=await f();if(!tn(q))throw new Zy("toolbox_near_invalid_address",{recipient:q});if(!tn(x))throw new Zy("toolbox_near_invalid_address",{sender:x});if(P)return M({...P,sender:x});if(!O.isGasAsset){let Af=O.address;if(!Af)throw new Zy("toolbox_near_missing_contract_address");return M({args:{amount:O.getBaseValue("string"),memo:k||null,receiver_id:q},attachedDeposit:S||"1",contractId:Af,gas:"250000000000000",methodName:"ft_transfer",sender:x})}let{publicKey:b,nonce:j}=await rT(V,x),e=O.getBaseValue("bigint"),{actionCreators:_y,createTransaction:r}=await import("@near-js/transactions"),{baseDecode:Ny}=await import("@near-js/utils"),Gy=[_y.transfer(e)];if(k&&S)Gy.push(_y.functionCall("memo",{memo:k},BigInt("250000000000000"),BigInt(S)));let xy=await V.block({finality:"final"}),_f=Ny(xy.header.hash);return r(x,b,q,j+1,Gy,_f)}function Z(q){let O=q.encode();return Buffer.from(O).toString("base64")}async function M({args:q,attachedDeposit:O,contractId:k,gas:S,methodName:x,sender:P}){let V=await f(),{publicKey:b,nonce:j}=await rT(V,P),{createTransaction:e,actionCreators:_y}=await import("@near-js/transactions"),{baseDecode:r}=await import("@near-js/utils"),Ny=await V.block({finality:"final"}),Gy=r(Ny.header.hash),xy=[_y.functionCall(x,Buffer.from(JSON.stringify(q)),BigInt(S),BigInt(O))];return e(P,b,k,j+1,xy,Gy)}async function X(q){let{actionCreators:O}=await import("@near-js/transactions");return O.functionCall(q.methodName,Buffer.from(JSON.stringify(q.args)),BigInt(q.gas),BigInt(q.attachedDeposit))}async function G(q){let O=await o();if(!O)throw new Zy("toolbox_near_no_signer");let[k,S]=await O.signTransaction(q);return S}async function W(q){return(await(await f()).sendTransaction(q)).transaction.hash}async function Q(q){let O=await o();if(!O)throw new Zy("toolbox_near_no_signer");try{let k=await G(q);return await W(k)}catch{return O.signAndSendTransactions?.({transactions:[q]})}}async function B(q){let O=await o();if("assetValue"in q){let S=await D();try{let x=await x5(rf.Near),P=await fetch(x,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:V}}=await P.json(),{execution:b,send_sir:j}=V.transaction_costs.action_receipt_creation_config,{execution:e,send_sir:_y}=V.transaction_costs.action_creation_config.transfer_cost,r=BigInt(_y)+BigInt(e),Ny=BigInt(j)+BigInt(b),xy=(r+Ny)*BigInt(S.toString());return qC.from({chain:rf.Near,value:xy})}catch(x){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",x);let P=BigInt("115123062500"),V=BigInt("108059500000"),j=(P+V)*BigInt(S.toString());return qC.from({chain:rf.Near,value:j})}}let k=O?await T():void 0;return J(q,k)}async function D(){let q=await f();try{return await q.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function L(q,O,k){if(!await o())throw new Zy("toolbox_near_no_signer");let x=await T(),{formatNearAmount:P}=await import("@near-js/utils"),{PublicKey:V}=await import("@near-js/crypto"),b=P(k)||"0";return(await x.createAccount(q,V.fromString(O),BigInt(b))).transaction.hash}async function w(q){let O=await o();try{if(!O)throw new Zy("toolbox_near_no_signer");let{actionCreators:k}=await import("@near-js/transactions"),{contractId:S,methodName:x,args:P,deposit:V}=q,b=await T(),j=await J({args:P||{},contractId:S,methodName:x}),e=k.functionCall(x,P||{},j.getBaseValue("bigint"),BigInt(V||"1"));return(await b.signAndSendTransaction({actions:[e],receiverId:S})).transaction_outcome.id}catch(k){throw new Zy("toolbox_near_transfer_failed",{error:k})}}async function N(q){let O=await T();return AC({account:O,changeMethods:q.changeMethods,contractId:q.contractId,viewMethods:q.viewMethods})}async function z(q){if(!await o())throw new Zy("toolbox_near_no_signer");if(q.actions.length===0)throw new Zy("toolbox_near_empty_batch");return(await(await T()).signAndSendTransaction({actions:q.actions,receiverId:q.receiverId})).transaction.hash}async function J(q,O){let k=await F5(q).when(yC,()=>Hy.SIMPLE_TRANSFER).when(fC,(x)=>UC(x.methodName)).when(nC,(x)=>HC(x.actions)).when(TC,()=>Hy.ACCOUNT_CREATION).when(oC,()=>Hy.CONTRACT_DEPLOYMENT).when(CC,(x)=>{if(!O)throw new Zy("toolbox_near_no_account");return x.customEstimator(O)}).otherwise(()=>{throw new Zy("toolbox_near_invalid_gas_params")}),S=BigInt(k)*BigInt(1000000000000);return qC.from({chain:rf.Near,value:S})}function Y(q,O){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),J(q,O)}async function R(){let q=await f();try{return(await q.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function l(){let q=await o();return q?(await q.getPublicKey()).toString():""}return{broadcastTransaction:W,callFunction:w,createAction:X,createContract:N,createContractFunctionCall:M,createSubAccount:L,createTransaction:A,estimateGas:Y,estimateGasLimit:J,estimateTransactionFee:B,executeBatchTransaction:z,getAddress:C,getBalance:Wy(rf.Near),getGasPrice:R,getNearProvider:f,getPublicKey:l,getSignerFromPhrase:dT,getSignerFromPrivateKey:so,serializeTransaction:Z,signAndBroadcastTransaction:Q,signTransaction:G,transfer:_,validateAddress:tn}}var GC=I(()=>{Ey();eo();_C()});var I5=I(()=>{GC()});var WC={};yy(WC,{validateNearAddress:()=>tn,tgasToGas:()=>bq,isSimpleTransfer:()=>yC,isCustomEstimator:()=>CC,isContractDeployment:()=>oC,isContractCall:()=>fC,isBatchTransaction:()=>nC,isAccountCreation:()=>TC,getNearToolbox:()=>jq,getNearSignerFromPrivateKey:()=>so,getNearSignerFromPhrase:()=>dT,getFullAccessPublicKey:()=>rT,getContractMethodGas:()=>UC,gasToTGas:()=>uq,estimateBatchGas:()=>HC,createNearContract:()=>AC,GAS_COSTS:()=>Hy});var XC=I(()=>{eo();_C();GC();I5()});var ZC={};yy(ZC,{validateRadixAddress:()=>P5,getRadixToolbox:()=>aq});import{GatewayApiClient as Kq}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as hq}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as t5,Chain as QC,SKConfig as mq,SwapKitError as cq}from"@swapkit/helpers";function P5(y){return y.startsWith("account_rdx1")&&y.length===66}function gq({networkApi:y}){return async function(o){let f=await iq({address:o,networkApi:y}),T=await dq({networkApi:y,resources:f});if(!T.some((H)=>H.isGasAsset))return[t5.from({chain:QC.Radix}),...T];return T}}async function iq({address:y,networkApi:n}){let o=!0,f,T=[],C=await rq(n);while(o){let H={address:y,at_ledger_state:{state_version:C},cursor:f,limit_per_page:100},U=await n.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:H});if(T=T.concat(U.items),U.next_cursor)f=U.next_cursor;else o=!1}return T}async function dq({resources:y,networkApi:n}){let o=[],f=50,T=[];for(let C=0;C<y.length;C+=50)T.push(y.slice(C,C+50));for(let C of T){let H=C.map((A)=>A.resource_address),U=await n.state.getEntityDetailsVaultAggregated(H),_=new Map;for(let A of U)if(A.details!==void 0){let Z=A.metadata?.items.find((X)=>X.key==="symbol"),M=Z?.value.typed.type==="String"?Z.value.typed.value:"?";if(A.details.type==="FungibleResource")_.set(A.address,{decimals:A.details.divisibility,symbol:M})}for(let A of C)if(A.aggregation_level==="Global"){let Z=_.get(A.resource_address)||{decimals:0,symbol:"?"},M=t5.from({asset:Z.symbol!==QC.Radix?`${QC.Radix}.${Z.symbol}-${A.resource_address}`:"XRD.XRD",value:A.amount});o.push(M)}}return o}async function rq(y){return(await y.status.getCurrent()).ledger_state.state_version}function aq({dappConfig:y}={}){let n=y||mq.get("integrations").radix,o=hq({...n,networkId:n.network?.networkId||1}),f=Kq.initialize(o.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:gq({networkApi:f}),networkApi:f,signAndBroadcast:()=>{throw new cq("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:P5}}var JC=()=>{};import{SwapKitError as sq}from"@swapkit/helpers";function aT(y){return/^[0-9A-Fa-f]{40}$/.test(y)}function Pn(y){if(aT(y))return y.toUpperCase();if(y.length<=3){let o=Buffer.from(y.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${o}${"0".repeat(10)}`.toUpperCase()}let n=Buffer.from(y).toString("hex").toUpperCase();if(n.length>40)throw new sq({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return n.padEnd(40,"0")}function eq(y){if(!aT(y))return y;if(y.toUpperCase().startsWith("00")){let n=y.slice(24,30);try{let o=Buffer.from(n,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(o)&&o.length>0)return o}catch{}return y.toUpperCase()}try{let n=y.replace(/0+$/,""),o=n.length%2===0?n:`${n}0`,f=Buffer.from(o,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function af(y){if(aT(y))return y.toUpperCase();if(y.length<=3)return y;return Pn(y)}var sT=()=>{};import{RequestClient as yG,warnOnce as fG}from"@swapkit/helpers";async function nG(y,n){let o=af(y),f=eT.find((T)=>af(T.currency)===o&&T.issuer===n);if(f)return f;try{let T=await yG.get(`https://api.xrplmeta.org/token/${y}:${n}`);if(T)return{currency:y,decimals:15,description:T.desc,domain:T.domain,icon:T.icon,issuer:n,name:T.name,verified:T.self_assessment?.is_regulated||T.self_assessment?.is_licensed}}catch(T){fG({condition:!0,id:`xrpl_token_lookup_${y}_${n}`,warning:`Failed to fetch XRPL token info for ${y}:${n}: ${T}`})}return{currency:y,decimals:15,issuer:n,verified:!1}}function TG(y){return eT.filter((n)=>n.issuer===y)}function oG(y,n){let o=af(y);return eT.some((f)=>af(f.currency)===o&&f.issuer===n)}var eT;var p5=I(()=>{sT();eT=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var MC={};yy(MC,{validateRippleAddress:()=>n0,parseXrplTokenIdentifier:()=>K5,normalizeCurrency:()=>af,isKnownToken:()=>oG,isHexCurrency:()=>aT,hexToCurrency:()=>eq,hashes:()=>GG,getXrplTokenInfo:()=>nG,getRippleToolbox:()=>qG,getKnownTokensByIssuer:()=>TG,formatXrplTokenIdentifier:()=>h5,currencyToHex:()=>Pn,XRPL_TOKEN_ERROR_CODES:()=>f0,XRPL_KNOWN_TOKENS:()=>eT});import{AssetValue as y0,Chain as ly,getChainConfig as E5,getRPCUrl as CG,SwapKitError as qy}from"@swapkit/helpers";import{match as V5,P as b5}from"ts-pattern";import{Client as HG,isValidAddress as j5,Wallet as UG,xrpToDrops as _G}from"xrpl";import{hashes as GG}from"xrpl";function K5(y){let n=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!n?.[1]||!n?.[2])return null;if(!j5(n[2]))return null;return{currency:n[1],issuer:n[2]}}function h5(y,n){return`${ly.Ripple}.${y}-${n}`}function AG(y){if(y.isGasAsset)return _G(y.getValue("string"));let n=K5(y.toString());if(!n)throw new qy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:n.currency,issuer:n.issuer,value:y.getValue("string")}}function v5(y){let n=UG.fromMnemonic(y);return{getAddress:()=>Promise.resolve(n.address),signTransaction:(o)=>Promise.resolve(n.sign(o))}}function n0(y){return j5(y)}function qG(y={}){let n=V5(y).with({phrase:b5.string},({phrase:L})=>v5(L)).with({signer:b5.any},({signer:L})=>L).otherwise(()=>{return}),o;async function f(){let L=await CG(ly.Ripple);if(!L)throw new qy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:ly.Ripple}});let w=new HG(L);return await w.connect(),w}async function T(){if(o){let L=await o.catch(()=>null);if(L?.isConnected())return L}return o=f(),o}let C=()=>{if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});return n.getAddress()},H=async(L)=>{let w=L||await C(),{baseDecimal:N}=E5(ly.Ripple),z=await T();try{let[J,Y]=await Promise.all([z.request({account:w,command:"account_info"}),z.request({account:w,command:"account_lines"})]),R=J.result.account_data.Balance,l=[y0.from({chain:ly.Ripple,fromBaseDecimal:N,value:R})];for(let q of Y.result.lines){let O=h5(q.currency,q.account);if(Number.parseFloat(q.balance)!==0)l.push(y0.from({asset:O,asyncTokenLookup:!1,value:q.balance}))}return l}catch(J){if(J.data?.error_code===u5.ACCOUNT_NOT_FOUND)return[y0.from({chain:ly.Ripple,value:0})];throw new qy({errorKey:"toolbox_ripple_get_balance_error",info:{address:w,error:J}})}},U=async()=>{let{baseDecimal:L}=E5(ly.Ripple),z=(await(await T()).request({command:"fee"})).result.drops.open_ledger_fee;return y0.from({chain:ly.Ripple,fromBaseDecimal:L,value:z})};async function _(L){let w=L||await C(),N=await T();try{return(await N.request({account:w,command:"account_lines"})).result.lines.map((J)=>({account:J.account,authorized:J.authorized??!1,balance:J.balance,currency:J.currency,freeze:J.freeze??!1,freezePeer:J.freeze_peer??!1,limit:J.limit,limitPeer:J.limit_peer,noRipple:J.no_ripple??!1,noRipplePeer:J.no_ripple_peer??!1,peerAuthorized:J.peer_authorized??!1,qualityIn:J.quality_in??0,qualityOut:J.quality_out??0}))}catch(z){if(z.data?.error_code===u5.ACCOUNT_NOT_FOUND)return[];throw new qy({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:w,error:z}})}}async function A({address:L,currency:w,issuer:N}){let z=await _(L),J=Pn(w);return z.some((Y)=>{return Pn(Y.currency)===J&&Y.account===N})}async function Z({currency:L,issuer:w,limit:N,sender:z}){let J=z||await C();if(!n0(w))throw new qy({errorKey:"core_transaction_invalid_recipient_address",info:{address:w}});let Y=Number.parseFloat(N);if(Number.isNaN(Y)||Y<0)throw new qy({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:N}});let R=await T(),l={Account:J,LimitAmount:{currency:L,issuer:w,value:N},TransactionType:"TrustSet"};return R.autofill(l)}async function M({assetValue:L,recipient:w,memo:N,sender:z,destinationTag:J,extendBySeconds:Y=150}){if(!n0(w))throw new qy({errorKey:"core_transaction_invalid_recipient_address"});let R=z||await C();if(L.chain!==ly.Ripple)throw new qy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:L.toString()}});let l=AG(L),q={Account:R,Amount:l,Destination:w,TransactionType:"Payment",...J!==void 0&&{DestinationTag:J}};if(N)q.Memos=[{Memo:{MemoData:Buffer.from(N).toString("hex")}}];let k=await(await T()).autofill(q);if(k.LastLedgerSequence&&Y>0)k.LastLedgerSequence+=Math.ceil(Y/4);return k}function X(L){if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});return n.signTransaction(L)}async function G(L){let N=await(await T()).submitAndWait(L),{result:z}=N;if(z.validated)return z.hash;let J=z.meta?.TransactionResult,Y=V5(J).with(f0.tecNO_LINE,()=>"No trust line exists for this token").with(f0.tecPATH_DRY,()=>"Payment path could not deliver funds").with(f0.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new qy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:ly.Ripple,...Y?{reason:Y}:{txResult:J}}})}let W=async(L)=>{try{let w=await X(L);return G(w.tx_blob)}catch(w){if(w instanceof qy)throw w;throw new qy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:ly.Ripple,error:w}})}};async function Q(L){if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});let w=await n.getAddress(),N=await M({...L,sender:w}),z=await X(N);return G(z.tx_blob)}async function B(L){if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});let w=await n.getAddress(),N=await Z({...L,sender:w}),z=await X(N);return G(z.tx_blob)}function D(){let L=o;if(o=null,L)L.then((w)=>{if(w?.isConnected())return w.disconnect();return}).catch((w)=>{console.warn("XRPL Cleanup failed silently:",w)})}return{broadcastTransaction:G,createSigner:v5,createTransaction:M,disconnect:D,estimateTransactionFee:U,getAddress:C,getBalance:H,getTrustLines:_,hasTrustLine:A,setTrustLine:Z,setTrustLineAndBroadcast:B,signAndBroadcastTransaction:W,signTransaction:X,transfer:Q,validateAddress:n0}}var u5,f0;var LC=I(()=>{sT();sT();p5();u5={ACCOUNT_NOT_FOUND:19},f0={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});import{sha256 as WG}from"@noble/hashes/sha2.js";import{bytesToHex as m5,hexToBytes as c5}from"@noble/hashes/utils.js";import{SwapKitError as sf}from"@swapkit/helpers";function YC(y,n){let o=0n,f=0n,T=n;while(T<y.length&&T-n<10){let C=y[T++];if(C===void 0)break;if(o|=BigInt(C&127)<<f,f+=7n,(C&128)===0)return[o,T]}throw new sf("toolbox_tron_transaction_creation_failed")}function pn(y){let n=[],o=y<0n?y+2n**64n:y;while(o>=128n)n.push(Number(o&0x7fn)|128),o>>=7n;return n.push(Number(o)),n}function T0(y,n,o){let f=y.get(n);if(f)f.push(o);else y.set(n,[o])}function JG(y){let n=new Map,o=0;while(o<y.length){let[f,T]=YC(y,o);o=T;let C=Number(f>>3n),H=Number(f&7n);if(H===o0){let[U,_]=YC(y,o);o=_,T0(n,C,{data:new Uint8Array(pn(U)),wireType:o0})}else if(H===C0){let[U,_]=YC(y,o);o=_;let A=Number(U);if(A<0||o+A>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let Z=y.slice(o,o+A);o+=A,T0(n,C,{data:Z,wireType:C0})}else if(H===g5){if(o+8>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+8);o+=8,T0(n,C,{data:U,wireType:g5})}else if(H===i5){if(o+4>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+4);o+=4,T0(n,C,{data:U,wireType:i5})}else throw new sf("toolbox_tron_transaction_creation_failed")}return n}function MG(y){let n=[];for(let[C,H]of[...y.entries()].sort(([U],[_])=>U-_))for(let{wireType:U,data:_}of H){let A=BigInt(C<<3|U);if(n.push(new Uint8Array(pn(A))),U===C0)n.push(new Uint8Array(pn(BigInt(_.length))));n.push(_)}let o=n.reduce((C,H)=>C+H.length,0),f=new Uint8Array(o),T=0;for(let C of n)f.set(C,T),T+=C.length;return f}function d5(y,n){if(!y||y.length%2!==0)throw new sf("toolbox_tron_transaction_creation_failed");let o=c5(y),f=JG(o);if(n.expiration!==void 0)f.set(XG,[{data:new Uint8Array(pn(BigInt(n.expiration))),wireType:o0}]);if(n.data!==void 0)f.set(QG,[{data:c5(n.data),wireType:C0}]);if(n.fee_limit!==void 0)f.set(ZG,[{data:new Uint8Array(pn(BigInt(n.fee_limit))),wireType:o0}]);let T=MG(f),C=m5(T),H=m5(WG(T));return{raw_data_hex:C,txID:H}}var o0=0,g5=1,C0=2,i5=5,XG=8,QG=10,ZG=18;var r5=()=>{};import{secp256k1 as a5}from"@noble/curves/secp256k1.js";import{sha256 as s5}from"@noble/hashes/sha2.js";import{keccak_256 as LG}from"@noble/hashes/sha3.js";import{bytesToHex as ef,hexToBytes as H0}from"@noble/hashes/utils.js";import{createBase58check as YG}from"@scure/base";import{SwapKitError as e5}from"@swapkit/helpers";function Sy(y){if(typeof y!=="string")return!1;try{let n=U0.decode(y);return n.length===21&&n[0]===yU}catch{return!1}}function fU(y){return ef(U0.decode(y))}function zG(y){return U0.decode(y).slice(1)}function nU(y){let n=a5.getPublicKey(H0(y),!1),o=LG(n.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=yU,f.set(o,1),U0.encode(f)}function TU({txID:y,privateKey:n}){let o=a5.sign(H0(y),H0(n),{format:"recovered",prehash:!1}),f=o[0]??0,T=ef(o.slice(1,33)),C=ef(o.slice(33,65)),H=(f+27).toString(16).padStart(2,"0");return T+C+H}function yn({txID:y,raw_data_hex:n}){let o=ef(s5(H0(n)));if(y!==o)throw new e5("toolbox_tron_invalid_transaction_integrity",{expected:o,txID:y})}function NG(y){return`000000000000000000000000${ef(zG(y))}`}function OG(y){let n=typeof y==="bigint"?y:BigInt(y);if(n<0n||n>=BG)throw new e5("toolbox_tron_invalid_token_identifier",{identifier:n.toString()});return n.toString(16).padStart(64,"0")}function fn(y){return y.map(({type:n,value:o})=>n==="address"?NG(o):OG(BigInt(o))).join("")}function oU(y){return ef(new TextEncoder().encode(y))}var U0,yU=65,BG;var BC=I(()=>{U0=YG(s5),BG=2n**256n});import{Chain as wG,getRPCUrlSync as DG,SwapKitError as My,warnOnce as _0}from"@swapkit/helpers";function HU(){try{return DG(wG.Tron)}catch{return CU}}function UU(){let y=new AbortController,n=setTimeout(()=>y.abort(),xG);return{cleanup:()=>clearTimeout(n),signal:y.signal}}async function wf(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${HU()}${y}`,{body:JSON.stringify(n),headers:{"Content-Type":"application/json"},method:"POST",signal:o});if(!T.ok)throw new My("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function _U(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${n??HU()}${y}`,{headers:{"Content-Type":"application/json"},signal:o});if(!T.ok)throw new My("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function AU(y){if(!Sy(y))throw new My("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let n=await _U(`/v1/accounts/${y}`,CU);if(!(n.success&&n.data)||n.data.length===0)return;let o;try{o=fU(y).toLowerCase()}catch{o=y.toLowerCase()}let f=n.data.find((T)=>T.address.toLowerCase()===o);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(n){if(n instanceof My)throw n;throw new My("toolbox_tron_trongrid_api_error",{address:y,message:n instanceof Error?n.message:"Unknown error"})}}async function qU({from:y,to:n,amount:o}){let T=await wf("/wallet/createtransaction",{amount:o,owner_address:y,to_address:n,visible:!0});if(!T.txID||!T.raw_data_hex||!T.raw_data)throw new My("toolbox_tron_transaction_creation_failed");let H=T.raw_data?.contract?.[0]?.parameter?.value;if(H?.to_address!==n||H?.owner_address!==y||H?.amount!==o)throw new My("toolbox_tron_transaction_creation_failed");return yn(T),T}async function GU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f,feeLimit:T,callValue:C=0}){let H=await wf("/wallet/triggersmartcontract",{call_value:C,contract_address:n,fee_limit:T,function_selector:o,owner_address:y,parameter:f,visible:!0});if(!H.result.result||!H.transaction?.txID||!H.transaction?.raw_data_hex)throw new My("toolbox_tron_transaction_creation_failed");let _=H.transaction.raw_data?.contract?.[0]?.parameter?.value;if(_?.contract_address!==n||_?.owner_address!==y)throw new My("toolbox_tron_transaction_creation_failed");return yn(H.transaction),H.transaction}function WU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return wf("/wallet/triggerconstantcontract",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}function FG({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return wf("/wallet/estimateenergy",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}async function En(y){try{let{result:n,txid:o}=await wf("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!n||!o)throw new My("toolbox_tron_token_transfer_failed");return o}catch(n){throw new My("toolbox_tron_broadcast_failed",{error:n})}}async function Vn(){let y={};try{let{chainParameter:n}=await _U("/wallet/getchainparameters");for(let o of n)y[o.key]=o.value}catch(n){_0({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${n instanceof Error?n.message:n}`})}return{bandwidthFee:y.getTransactionFee??RG,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??kG,energyFee:y.getEnergyFee??lG,memoFee:y.getMemoFee??SG}}async function zC(y){try{let n=await wf("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(n.freeNetLimit??600)-(n.freeNetUsed??0),total:n.NetLimit??0,used:n.NetUsed??0},energy:{total:n.EnergyLimit??0,used:n.EnergyUsed??0}}}catch(n){return _0({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${n instanceof Error?n.message:n}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function bn(y){try{let n=await wf("/wallet/getaccount",{address:y,visible:!0});return n&&Object.keys(n).length>0}catch{return!1}}async function NC(y){try{let n=await FG({...y,ownerAddress:y.sender}),o=n.energy_required??n.energyRequired;if(n.result&&!n.result.result)throw new My("toolbox_tron_trongrid_api_error",{message:n.result.message||"estimateenergy failed"});if(o!==void 0){if(Number.isFinite(o)&&o>0)return o;throw new My("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(n){_0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${n instanceof Error?n.message:n}`})}try{let{energy_used:n}=await WU({...y,ownerAddress:y.sender});return n}catch(n){return _0({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy, using default: ${n instanceof Error?n.message:n}`}),65000}}async function XU({assetAddress:y,owner:n,spender:o}){let f=fn([{type:"address",value:n},{type:"address",value:o}]),C=(await WU({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:o,parameter:f})).constant_result?.[0];if(!C)return 0n;try{return BigInt(`0x${C}`)}catch{return 0n}}var CU="https://api.trongrid.io",RG=1000,kG=1e6,lG=420,SG=1e6,xG=30000;var QU=I(()=>{BC()});import{bytesToHex as $G}from"@noble/hashes/utils.js";import{HDKey as IG}from"@scure/bip32";import{mnemonicToSeedSync as tG}from"@scure/bip39";import{AssetValue as cy,BaseDecimal as A0,Chain as zy,derivationPathToString as BU,getRPCUrl as PG,NetworkDerivationPath as zU,SwapKitError as Uy,updateDerivationPath as NU,warnOnce as ZU}from"@swapkit/helpers";import{match as pG,P as OC}from"ts-pattern";function wU({phrase:y,derivationPath:n}){let o=IG.fromMasterSeed(tG(y)).derive(n);if(!o.privateKey)throw new Uy("toolbox_tron_no_signer");return $G(o.privateKey)}function DU({phrase:y,derivationPath:n,index:o}){let f=n||BU(NU(zU[zy.Tron],{index:o||0}));return wU({derivationPath:f,phrase:y})}function VG({phrase:y,derivationPath:n}){let o=wU({derivationPath:n,phrase:y}),f=nU(o);return{getAddress:()=>Promise.resolve(f),signTransaction:(T)=>{yn(T);let C=TU({privateKey:o,txID:T.txID});return Promise.resolve({...T,signature:[C]})}}}function YU({transaction:y,memo:n,expiration:o,feeLimit:f}){let T={},C={};if(f!==void 0&&y.raw_data)T.fee_limit=f,C.fee_limit=f;if(n){let _=oU(n);T.data=_,C.data=_}if(o){let _=y.raw_data.expiration+o*1000;T.expiration=_,C.expiration=_}if(Object.keys(T).length===0)return y;let{raw_data_hex:H,txID:U}=d5(y.raw_data_hex,T);return{...y,raw_data:{...y.raw_data,...C},raw_data_hex:H,txID:U}}function RU(y={}){let n="index"in y?y.index||0:0,o=BU("derivationPath"in y&&y.derivationPath?y.derivationPath:NU(zU[zy.Tron],{index:n})),f,T=!1;function C(){if(T)return Promise.resolve(f);return f=pG(y).with({phrase:OC.string},({phrase:J})=>VG({derivationPath:o,phrase:J})).with({signer:OC.not(OC.nullish)},({signer:J})=>J).otherwise(()=>{return}),T=!0,Promise.resolve(f)}async function H(){let J=await C();if(!J)throw new Uy("toolbox_tron_no_signer");return J.getAddress()}async function U(J,Y){let R=J||MU,l=Y??(await Vn()).energyFee,q=R*l,O=Math.ceil(q*1.5);return Math.min(Math.max(O,1e7),150000000)}async function _({contractAddress:J,functionSelector:Y,parameter:R,sender:l,memo:q,expiration:O,extraEnergy:k=0}){let S=await NC({contractAddress:J,functionSelector:Y,parameter:R,sender:l}),x=await U(S+k),P=await GU({contractAddress:J,feeLimit:x,functionSelector:Y,ownerAddress:l,parameter:R});return YU({expiration:O,feeLimit:x,memo:q,transaction:P})}async function A(J){if(!Sy(J))return[cy.from({chain:zy.Tron})];try{let Y=await AU(J);if(!Y)return[cy.from({chain:zy.Tron})];let R=[cy.from({chain:zy.Tron,fromBaseDecimal:6,value:String(Y.balance)})],l=Y.trc20?.find((q)=>(DC in q));if(l){let q=l[DC];R.push(cy.from({asset:`TRON.USDT-${DC}`,fromBaseDecimal:6,value:q}))}return R}catch(Y){return ZU({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${Y instanceof Error?Y.message:Y}`}),[cy.from({chain:zy.Tron})]}}async function Z({recipient:J,assetValue:Y,memo:R,expiration:l}){if(!Sy(J))throw new Uy("toolbox_tron_token_transfer_failed",{message:"invalid address"});let q=await C();if(!q)throw new Uy("toolbox_tron_no_signer");try{let O=await H(),k=await B({assetValue:Y,expiration:l,memo:R,recipient:J,sender:O}),S=await q.signTransaction(k),x=await En(S);if(!x)throw new Uy("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return x}catch(O){throw new Uy("toolbox_tron_token_transfer_failed",{message:O instanceof Error?O.message:String(O)})}}function M({requiredBandwidth:J,resources:Y,feePerUnit:R}){let l=Math.max(0,Y.free+Y.total-Y.used);return J>l?(J-l)*R:0}async function X({memo:J,recipient:Y,senderAddress:R}){let[l,q,O]=await Promise.all([Vn(),bn(Y),zC(R)]),k=q?0:l.createAccountFee,S=M({feePerUnit:l.bandwidthFee,requiredBandwidth:JU,resources:O.bandwidth}),x=J?l.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:k+S+x})}async function G({assetValue:J,memo:Y,recipient:R,senderAddress:l}){let q=J.address;if(!q)throw new Uy("toolbox_tron_invalid_token_identifier",{identifier:J.toString()});let[O,k,S,x]=await Promise.all([Vn(),bn(R),zC(l),NC({contractAddress:q,functionSelector:"transfer(address,uint256)",parameter:fn([{type:"address",value:R},{type:"uint256",value:J.getBaseValue("string")}]),sender:l})]),V=x+(k?0:wC),b=M({feePerUnit:O.bandwidthFee,requiredBandwidth:LU,resources:S.bandwidth}),j=Math.max(0,S.energy.total-S.energy.used),e=V>j?(V-j)*O.energyFee:0,_y=Y?O.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:b+e+_y})}async function W({assetValue:J,memo:Y,recipient:R}){let[l,q]=await Promise.all([Vn(),bn(R)]);if(J.isGasAsset){let x=q?0:l.createAccountFee,P=Y?l.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:x+JU*l.bandwidthFee+P})}let k=await U(MU+(q?0:wC),l.energyFee),S=Y?l.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:k+LU*l.bandwidthFee+S})}async function Q({assetValue:J,memo:Y,recipient:R,sender:l}){let q=await C();try{let O=l?l:q?await H():void 0;if(!O)return W({assetValue:J,memo:Y,recipient:R});return J.isGasAsset?X({memo:Y,recipient:R,senderAddress:O}):G({assetValue:J,memo:Y,recipient:R,senderAddress:O})}catch(O){throw ZU({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${O instanceof Error?O.message:O}`}),new Uy("toolbox_fee_estimation_failed",{chain:zy.Tron,error:O})}}async function B({recipient:J,assetValue:Y,memo:R,sender:l,expiration:q}){if(!Sy(J)||!Sy(l))throw new Uy("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(Y.isGasAsset){let S=await qU({amount:Y.getBaseValue("number"),from:l,to:J});return YU({expiration:q,memo:R,transaction:S})}let O=Y.address;if(!O)throw new Uy("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let k=await bn(J);return _({contractAddress:O,expiration:q,extraEnergy:k?0:wC,functionSelector:"transfer(address,uint256)",memo:R,parameter:fn([{type:"address",value:J},{type:"uint256",value:Y.getBaseValue("string")}]),sender:l})}async function D(J){yn(J);let Y=await C();if(!Y)throw new Uy("toolbox_tron_no_signer");return Y.signTransaction(J)}async function L(J){let Y=await D(J);return En(Y)}function w({assetAddress:J,spenderAddress:Y,from:R}){return XU({assetAddress:J,owner:R,spender:Y})}async function N({assetAddress:J,spenderAddress:Y,from:R,amount:l}){let q=await w({assetAddress:J,from:R,spenderAddress:Y});if(!l)return q>0n;return q>=BigInt(l)}async function z({assetAddress:J,spenderAddress:Y,amount:R,from:l}){if(!Sy(J)||!Sy(Y))throw new Uy("toolbox_tron_approve_failed");let q=await C();if(!q)throw new Uy("toolbox_tron_no_signer");let O=l||await H(),k=R!==void 0?BigInt(R).toString():EG;try{let S=await _({contractAddress:J,functionSelector:"approve(address,uint256)",parameter:fn([{type:"address",value:Y},{type:"uint256",value:k}]),sender:O}),x=await q.signTransaction(S),P=await En(x);if(!P)throw new Uy("toolbox_tron_approve_failed");return P}catch(S){if(S instanceof Uy)throw S;throw new Uy("toolbox_tron_approve_failed",{error:S})}}return{approve:z,broadcastTransaction:En,createTransaction:B,estimateTransactionFee:Q,getAddress:H,getApprovedAmount:w,getBalance:A,getRpcUrl:()=>PG(zy.Tron),isApproved:N,signAndBroadcastTransaction:L,signTransaction:D,transfer:Z,validateAddress:Sy}}var OU,JU=268,MU=65000,wC=25000,LU=345,DC="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",EG="115792089237316195423570985008687907853269984665640564039457584007913129639935";var kU=I(()=>{r5();QU();BC();OU=Sy});var RC={};yy(RC,{validateTronAddress:()=>OU,getTronToolbox:()=>RU,getTronPrivateKeyFromMnemonic:()=>DU});var kC=I(()=>{kU()});import{AssetValue as un,Chain as Hf,derivationPathToString as bG,getChainConfig as uG,getRPCUrl as vG,NetworkDerivationPath as jG,SwapKitError as Uf}from"@swapkit/helpers";import{match as KG,P as hG}from"ts-pattern";function q0(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return mG.test(y)}async function cG(y){if(!q0(y))return!1;try{let{StrKey:n}=await import("@stellar/stellar-sdk");return n.isValidEd25519PublicKey(y)}catch{return!1}}function lU(y={}){let n,o=y.derivationPath||jG[Hf.Stellar],f=bG(o.slice(0,3));async function T({phrase:Q,path:B}){let{HDKey:D}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),{Keypair:w}=await import("@stellar/stellar-sdk"),N=L(Q),J=D.fromMasterSeed(N).derive(B,!0);return w.fromRawEd25519Seed(Buffer.from(J.privateKey))}async function C(){if(n)return n;let Q=KG(y).with({phrase:hG.string},({phrase:B})=>B).otherwise(()=>{return});if(!Q)throw new Uf("toolbox_stellar_no_signer");return n=await T({path:f,phrase:Q}),n}async function H(){let{Horizon:Q}=await import("@stellar/stellar-sdk"),B=await vG(Hf.Stellar);return new Q.Server(B)}async function U(){try{return(await C()).publicKey()}catch{return""}}async function _(Q){let B=Q||await U();if(!B)throw new Uf("toolbox_stellar_account_not_found");try{return(await(await H()).loadAccount(B)).balances.map((w)=>{if(w.asset_type==="native")return un.from({chain:Hf.Stellar,value:w.balance});let N="asset_code"in w?w.asset_code:"",z="asset_issuer"in w?w.asset_issuer:"";return un.from({asset:`${Hf.Stellar}.${N}-${z}`,asyncTokenLookup:!1,value:w.balance})})}catch{return[un.from({chain:Hf.Stellar,value:0})]}}async function A({recipient:Q,assetValue:B,memo:D,sender:L}){if(D){if(new TextEncoder().encode(D).length>28)throw new Uf("helpers_invalid_memo_type")}if(!await cG(Q))throw new Uf("core_transaction_invalid_recipient_address");let N=L||await U();if(!N)throw new Uf("toolbox_stellar_no_signer");let{Asset:z,Memo:J,Networks:Y,Operation:R,TransactionBuilder:l}=await import("@stellar/stellar-sdk"),q=await H(),O=await q.fetchBaseFee(),k=await q.loadAccount(N),S=new l(k,{fee:String(O),networkPassphrase:Y.PUBLIC});if(B.isGasAsset)try{await q.loadAccount(Q),S.addOperation(R.payment({amount:B.getValue("string"),asset:z.native(),destination:Q}))}catch{S.addOperation(R.createAccount({destination:Q,startingBalance:B.getValue("string")}))}else S.addOperation(R.payment({amount:B.getValue("string"),asset:new z(B.symbol,B.address),destination:Q}));if(D)S.addMemo(J.text(D));return S.setTimeout(30).build()}async function Z(Q){let{TransactionBuilder:B,Networks:D}=await import("@stellar/stellar-sdk"),L=await C(),w=B.fromXDR(Q.toXDR(),D.PUBLIC);return w.sign(L),w}async function M(Q){try{let B=await H(),{hash:D}=await B.submitTransaction(Q);return D}catch(B){throw new Uf("toolbox_stellar_broadcast_error",B)}}async function X({recipient:Q,assetValue:B,memo:D}){let L=await C(),w=L.publicKey(),N=await A({assetValue:B,memo:D,recipient:Q,sender:w});N.sign(L);try{return(await(await H()).submitTransaction(N)).hash}catch(z){if(z instanceof Uf)throw z;throw new Uf("toolbox_stellar_transaction_failed",z)}}async function G(Q){let B=await Z(Q);return M(B)}async function W(){let{baseDecimal:Q}=uG(Hf.Stellar);try{let L=(await(await H()).feeStats()).fee_charged.p50;return un.from({chain:Hf.Stellar,fromBaseDecimal:Q,value:L})}catch{return un.from({chain:Hf.Stellar,fromBaseDecimal:Q,value:"100"})}}return{broadcastTransaction:M,createTransaction:A,estimateTransactionFee:W,getAddress:U,getBalance:_,signAndBroadcastTransaction:G,signTransaction:Z,transfer:X,validateAddress:q0}}var mG;var SU=I(()=>{mG=/^G[A-Z2-7]{55}$/});var G0={};yy(G0,{validateStellarAddress:()=>q0,getStellarToolbox:()=>lU});var W0=I(()=>{SU()});import{AssetValue as gG,Chain as E,CosmosChains as lC,EVMChains as SC,FeeOption as iG,SwapKitError as dG,UTXOChains as FU}from"@swapkit/helpers";async function QQ(){let{match:y}=await import("ts-pattern"),{validateAptosAddress:n}=await Promise.resolve().then(() => (jn(),vn)),{validateEVMAddress:o}=await Promise.resolve().then(() => (b0(),W1)),{validateCardanoAddress:f}=await Promise.resolve().then(() => (m0(),h0)),{getCosmosAddressValidator:T}=await Promise.resolve().then(() => (zT(),BT)),{validateHyperCoreAddress:C}=await Promise.resolve().then(() => (zo(),Bo)),{validateSolanaAddress:H}=await Promise.resolve().then(() => (Ro(),Do)),{validateStarknetAddress:U}=await Promise.resolve().then(() => (xT(),ST)),{validateSuiAddress:_}=await Promise.resolve().then(() => (IT(),$T)),{validateTonAddress:A}=await Promise.resolve().then(() => (pT(),PT)),{getUTXOAddressValidator:Z}=await Promise.resolve().then(() => (ao(),ro)),{validateNearAddress:M}=await Promise.resolve().then(() => (XC(),WC)),{validateRadixAddress:X}=await Promise.resolve().then(() => (JC(),ZC)),{validateRippleAddress:G}=await Promise.resolve().then(() => (LC(),MC)),{validateTronAddress:W}=await Promise.resolve().then(() => (kC(),RC)),{validateStellarAddress:Q}=await Promise.resolve().then(() => (W0(),G0));return function({address:D,chain:L}){return y(L).with(...SC,()=>o(D)).with(...FU,(N)=>{return Z(N)(D)}).with(...lC,(N)=>{return T(N)(D)}).with(E.Aptos,()=>n(D)).with(E.Radix,()=>X(D)).with(E.HyperCore,()=>C(D)).with(E.Near,()=>M(D)).with(E.Ripple,()=>G(D)).with(E.Solana,()=>H(D)).with(E.Stellar,()=>Q(D)).with(E.Starknet,()=>U(D)).with(E.Sui,()=>_(D)).with(E.Ton,()=>A(D)).with(E.Tron,()=>W(D)).with(E.Cardano,()=>f(D)).otherwise(()=>!1)}}function ZQ(y){return async function(o){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...SC,async(T)=>{let C=await xU(T),H=await C.createTransaction(o),U="feeOptionKey"in o?o.feeOptionKey:iG.Fast;return C.estimateTransactionFee({...H,feeOption:U})}).with(E.Bitcoin,E.BitcoinCash,E.Dogecoin,E.Dash,E.Litecoin,E.Solana,E.Ripple,E.Tron,E.Near,E.Cardano,E.HyperCore,async(T)=>{return(await xU(T)).estimateTransactionFee(o)}).with(E.Aptos,async()=>{let{getAptosToolbox:T}=await Promise.resolve().then(() => (jn(),vn));return T().estimateTransactionFee(o)}).with(E.Starknet,async()=>{let{getStarknetToolbox:T}=await Promise.resolve().then(() => (xT(),ST));return(await T()).estimateTransactionFee(o)}).with(E.Stellar,async()=>{let{getStellarToolbox:T}=await Promise.resolve().then(() => (W0(),G0));return T().estimateTransactionFee()}).with(E.Sui,async()=>{let{getSuiToolbox:T}=await Promise.resolve().then(() => (IT(),$T));return T().estimateTransactionFee(o)}).with(E.Ton,async()=>{let{getTONToolbox:T}=await Promise.resolve().then(() => (pT(),PT));return T().estimateTransactionFee(o)}).with(...lC,async()=>{let{estimateTransactionFee:T}=await Promise.resolve().then(() => (zT(),BT));return T(o)}).otherwise(async()=>gG.from({chain:y}))}}async function xU(y,n){let{match:o}=await import("ts-pattern");return o(y).returnType().with(...SC,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (V0(),A1));return await f(y,n)}).with(...FU,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (ao(),ro));return f(y,n)}).with(...lC,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (zT(),BT));return f(y,n)}).with(E.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (jn(),vn));return f(n)}).with(E.HyperCore,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (zo(),Bo));return f(n)}).with(E.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (JC(),ZC));return f(n)}).with(E.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (LC(),MC));return f(n)}).with(E.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => (Ro(),Do));return f(n)}).with(E.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (W0(),G0));return f(n)}).with(E.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (xT(),ST));return f(n)}).with(E.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (IT(),$T));return f(n)}).with(E.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (kC(),RC));return f(n)}).with(E.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (XC(),WC));return f(n)}).with(E.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (m0(),h0));return f(n)}).with(E.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (pT(),PT));return f(n)}).otherwise(()=>{throw new dG("toolbox_not_supported",{chain:y})})}export{xU as getToolbox,ZQ as getFeeEstimator,QQ as getAddressValidator};
|