@swapkit/toolboxes 4.17.1 → 4.17.3
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.cjs +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/sui/index.cjs +1 -1
- package/dist/src/sui/index.js +1 -1
- package/dist/src/utxo/index.cjs +1 -1
- package/dist/src/utxo/index.js +1 -1
- package/package.json +2 -2
package/dist/src/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var PU=Object.defineProperty;var pU=(y)=>y;function EU(y,n){this[y]=pU.bind(null,n)}var ny=(y,n)=>{for(var o in n)PU(y,o,{get:n[o],enumerable:!0,configurable:!0,set:EU.bind(n,o)})};var P=(y,n)=>()=>(y&&(n=y(y=0)),n);var $=((y)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(y,{get:(n,o)=>(typeof require<"u"?require:n)[o]}):y)(function(y){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+y+'" is not supported')});import{AssetValue as nn,Chain as uy,derivationPathToString as VU,getChainConfig as Q0,getRPCUrlSync as lC,NetworkDerivationPath as tU,SwapKitError as Cy}from"@swapkit/helpers";import{match as $C,P as J0}from"ts-pattern";function wf(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let n=y.slice(2);if(n.length===0||n.length>64)return!1;return bU.test(n)}function IC({derivationPath:y,provider:n,...o}={}){let f,T=VU(y||tU[uy.Aptos],{allHardened:!0});async function C(){if(f)return f;return f=await $C(o).with({phrase:J0.string},async({phrase:M})=>{let{Ed25519Account:w}=await import("@aptos-labs/ts-sdk");return w.fromDerivationPath({mnemonic:M,path:T})}).with({signer:J0.any},({signer:M})=>M).otherwise(()=>{return}),f}async function H(){let{Aptos:M,AptosConfig:w}=await import("@aptos-labs/ts-sdk"),N=new w({fullnode:n||lC(uy.Aptos)});return new M(N)}async function U(){return(await C())?.accountAddress.toString()||""}async function _(M){let w=M||await U();if(!w)throw new Cy("toolbox_aptos_address_required");let{baseDecimal:N,chain:Q}=Q0(uy.Aptos);try{let O=await H(),B=await O.getAccountAPTAmount({accountAddress:w}),Y=[nn.from({chain:Q,fromBaseDecimal:N,value:B.toString()})],X=await O.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:w}}}});for(let Z of X){if(Z.asset_type===Af.COIN_TYPE||Number(Z.amount)<=0)continue;let D=Z.asset_type;if(D){let R=("metadata"in Z&&typeof Z.metadata==="object"&&Z.metadata!==null?Z.metadata:void 0)?.decimals??N;Y.push(nn.from({asset:`${uy.Aptos}.APT-${D}`,fromBaseDecimal:R,value:String(Z.amount)}))}}return Y}catch{return[nn.from({chain:Q})]}}async function A(M){if(!M){let{baseDecimal:X}=Q0(uy.Aptos),Z=n||lC(uy.Aptos),D=await fetch(`${Z}/estimate_gas_price`),{gas_estimate:k}=await D.json();return nn.from({chain:uy.Aptos,fromBaseDecimal:X,value:String(k)})}let w=await C();if(!w)throw new Cy("toolbox_aptos_no_signer");let N=await J(M),Q=await H(),[O]=await Q.transaction.simulate.simple({signerPublicKey:w.publicKey,transaction:N});if(!O)throw new Cy("toolbox_aptos_transaction_creation_error");let B=BigInt(O.gas_used)*BigInt(O.gas_unit_price),{baseDecimal:Y}=Q0(uy.Aptos);return nn.from({chain:uy.Aptos,fromBaseDecimal:Y,value:B.toString()})}async function J({recipient:M,assetValue:w,maxGasAmount:N,sender:Q}){if(!wf(M))throw new Cy("core_transaction_invalid_recipient_address");let O=Q||await U();if(!O)throw new Cy("toolbox_aptos_no_sender");let{AccountAddress:B}=await import("@aptos-labs/ts-sdk"),Y=await H(),X=B.from(O);try{let Z=w.isGasAsset?Af.TRANSFER:Af.FUNGIBLE_STORE_TRANSFER,D=$C({address:w?.address,isGasAsset:w.isGasAsset}).with({isGasAsset:!0},()=>[B.from(M),w.getBaseValue("bigint")]).with({address:J0.string},({address:k})=>[B.from(k),B.from(M),w.getBaseValue("bigint")]).otherwise(()=>null);if(!D)throw new Cy("toolbox_aptos_missing_asset_type");return Y.transaction.build.simple({data:{function:Z,functionArguments:D,typeArguments:w.isGasAsset?[]:[Af.FUNGIBLE_ASSET_METADATA]},options:N?{maxGasAmount:N}:void 0,sender:X})}catch(Z){if(Z instanceof Cy)throw Z;throw new Cy("toolbox_aptos_transaction_creation_error",Z)}}async function L(M){let w=await C();if(!w)throw new Cy("toolbox_aptos_no_signer");return(await H()).transaction.sign({signer:w,transaction:M})}async function G({assetValue:M,maxGasAmount:w,recipient:N}){let Q=await C();if(!Q)throw new Cy("toolbox_aptos_no_signer");if(!wf(N))throw new Cy("core_transaction_invalid_recipient_address");try{let O=Q.accountAddress.toString(),B=await J({assetValue:M,maxGasAmount:w,recipient:N,sender:O});return(await(await H()).signAndSubmitTransaction({signer:Q,transaction:B})).hash}catch(O){if(O instanceof Cy)throw O;throw new Cy("toolbox_aptos_transaction_creation_error",O)}}async function q({senderAuthenticator:M,transaction:w}){try{return(await(await H()).transaction.submit.simple({senderAuthenticator:M,transaction:w})).hash}catch(N){throw new Cy("toolbox_aptos_broadcast_error",N)}}async function W(M){let w=await L(M);return q({senderAuthenticator:w,transaction:M})}return{broadcastTransaction:q,createTransaction:J,estimateTransactionFee:A,getAddress:U,getBalance:_,signAndBroadcastTransaction:W,signTransaction:L,transfer:G,validateAddress:wf}}function PC({provider:y}){return async function({assetValue:o,recipient:f}){if(!wf(f))throw new Cy("core_transaction_invalid_recipient_address");let{AccountAddress:T}=await import("@aptos-labs/ts-sdk");if(o.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[T.from(f).toString(),o.getBaseValue("string")],function:Af.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let C=o.address;if(!C)throw new Cy("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[C,T.from(f).toString(),o.getBaseValue("string")],function:Af.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[Af.FUNGIBLE_ASSET_METADATA]})).hash}}var Af,bU;var pC=P(()=>{Af={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},bU=/^[0-9a-fA-F]+$/});var un={};ny(un,{validateAptosAddress:()=>wf,getAptosToolbox:()=>IC,createAptosExtensionTransfer:()=>PC});var jn=P(()=>{pC()});import{AssetValue as EC,getChainConfig as vU}from"@swapkit/helpers";import{SwapKitApi as uU}from"@swapkit/helpers/api";function VC(){function y(){let n=Date.now(),o=Z0||n;return Z0=o,n>Z0?n:o+1}return jU+y().toString(36)}function Qy(y){return async function(o,f=!0){let T=await uU.getChainBalance({address:o,chain:y,scamFilter:f}),{baseDecimal:C}=vU(y),H=T.map(({identifier:_,value:A,decimal:J})=>{return new EC({decimal:J||C,identifier:_,value:A})});if(!H.some((_)=>_.isGasAsset))return[EC.from({chain:y}),...H];return H}}var jU,Z0=0;var jy=P(()=>{jU=typeof process<"u"&&process.pid?process.pid.toString(36):""});function Tn(y){return{getBalance:Qy(y)}}function KU(y){return y}var Kn=P(()=>{jy()});import{Chain as i,getChainConfig as B0,getRPCUrl as hU,SwapKitError as hn}from"@swapkit/helpers";import{getAddress as bC,Interface as mU,JsonRpcProvider as cU}from"ethers";import{match as vC}from"ts-pattern";function uC(y){return new cU(y)}async function z0(y,n){return uC(n||await hU(y))}function on(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function N0(y){let{explorerUrl:n,chainIdHex:o,rpcUrls:f}=B0(y);return function(){return y!==i.Ethereum?{...gU({chain:y}),blockExplorerUrls:[n],chainId:o,rpcUrls:f}:void 0}}function O0(y){return![i.Adi,i.Arbitrum,i.BinanceSmartChain].includes(y)}function gU({chain:y}){let{name:n,nativeCurrency:o,baseDecimal:f}=B0(y);return vC(y).with(i.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(i.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(i.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(i.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(i.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(i.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:i.Polygon}})).otherwise(()=>({chainName:n,nativeCurrency:{decimals:f,name:o,symbol:o}}))}async function w0(y,n){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let o={...n,nonce:n.nonce!==void 0?BigInt(n.nonce):void 0};return await y.authorize(o)}function jC(y,n){let o=n!==void 0?`index ${n}: `:"",f=(T,C)=>{throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:T,message:`${o}${C}`}})};vC(y).when(({chainId:T})=>typeof T!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:T})=>!iU(T),()=>f("address","address must be a valid checksummed address")).when(({nonce:T})=>typeof T!=="bigint"||T<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:T})=>!T,()=>f("signature","signature is required")).when(({signature:T})=>typeof T?.yParity!=="number"||![0,1].includes(T.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:T})=>!tC(T?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:T})=>!tC(T?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function KC(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:n})=>y[n]!=null).map(({key:n,type:o})=>({name:n,type:o}))}function L0(y){return y.charAt(0).toUpperCase()+y.slice(1)}function M0(y,n){if(y.isTuple()&&y.components){let o=L0(y.name);return n[o]=y.components.map((f)=>({name:f.name,type:M0(f,n)})),o}if(y.isArray()){let o=y.arrayChildren;if(o?.isTuple()&&o.components){let f=L0(y.name.replace(/s$/,""));return n[f]=o.components.map((T)=>({name:T.name,type:M0(T,n)})),`${f}[]`}return`${o?.type??"bytes"}[]`}return y.type}function Y0(y,n){if(typeof y==="bigint")return y;if(n?.isTuple()&&typeof y?.toObject==="function"){let o=y.toObject(),f={};for(let[T,C]of(n.components??[]).entries())f[C.name]=Y0(o[C.name]??y[T],C);return f}if(Array.isArray(y)){let o=n?.arrayChildren;return y.map((f)=>Y0(f,o??void 0))}return y}function dU({chain:y,abi:n,data:o,to:f}){let C=new mU(n).parseTransaction({data:o});if(!C)throw new hn({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let H={},U=L0(C.name);H[U]=C.fragment.inputs.map((G)=>({name:G.name,type:M0(G,H)}));let _={};for(let[G,q]of C.fragment.inputs.entries())_[q.name]=Y0(C.args[G],q);let{chainId:A}=B0(y),J={chainId:Number(A),verifyingContract:bC(f)},L=KC(J);return{domain:J,message:_,primaryType:U,types:{EIP712Domain:L,...H}}}function D0(y,n){if(!Array.isArray(y)||y.length===0)throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[o,f]of y.entries())if(jC(f,o),n!==void 0&&f.chainId!==n)throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${o}: authorization chainId (${f.chainId}) does not match transaction chainId (${n})`}})}var tC=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),iU=(y)=>{try{return typeof y==="string"&&!!bC(y)}catch{return!1}};var Cn=()=>{};var hC;var mC=P(()=>{hC=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as rU,applyFeeMultiplierToBigInt as Jy,Chain as Dy,EVMChains as aU,FeeOption as j,isGasAsset as sU,SwapKitError as c,SwapKitNumber as mn}from"@swapkit/helpers";import{erc20ABI as Hn}from"@swapkit/helpers/contracts";import{BrowserProvider as eU,Contract as cC,getAddress as cn,Interface as gC}from"ethers";import{match as iC}from"ts-pattern";function Df({chain:y=Dy.Ethereum,provider:n,signer:o,isEIP1559Compatible:f=!0}){return{approve:o2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),approvedAmount:aC({chain:y,provider:n}),broadcastTransaction:n.broadcastTransaction,call:x0({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),createApprovalTx:_2({chain:y,provider:n,signer:o}),createContract:k0({chain:y,provider:n}),createContractTxObject:qf({chain:y,provider:n}),createTransaction:R0({chain:y,provider:n,signer:o}),createTransferTx:R0({chain:y,provider:n,signer:o}),EIP1193SendTransaction:kf(n),estimateCall:sC({provider:n,signer:o}),estimateGasLimit:H2({chain:y,provider:n,signer:o}),estimateGasPrices:Gf({chain:y,isEIP1559Compatible:f,provider:n}),estimateTransactionFee:A2({chain:y,isEIP1559Compatible:f,provider:n}),getAddress:()=>{return o?o.getAddress():void 0},getBalance:Tn(y).getBalance,getNetworkParams:N0(y),isApproved:T2({chain:y,provider:n}),sendTransaction:eC({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),signAuthorization:U2({signer:o}),signMessage:o?(T)=>o.signMessage(T):void 0,signTypedData:o?({domain:T,types:C,value:H})=>o.signTypedData(T,C,H):void 0,transfer:C2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),validateAddress:_n}}function _n(y){try{return cn(y),!0}catch{return!1}}function Rf(y){return y instanceof eU}function An(y,n,o){return new cC(y,gC.from(n),o)}function k0({provider:y}){return function(o,f){return new cC(o,gC.from(f),y)}}function S0({abi:y,funcName:n}){let o=y.find((f)=>f.name===n);if(!o)throw new c("toolbox_evm_no_abi_fragment",{funcName:n});return o.stateMutability&&y2.includes(o.stateMutability)}function dC(y){return cn(y)}function kf(y){return function({value:o,...f}){if(!Rf(y))throw new c("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:T,gasPrice:C,maxFeePerGas:H,maxPriorityFeePerGas:U,..._}=f;return y.send("eth_sendTransaction",[{..._,value:on(BigInt(o||0))}])}}function rC(y,n){let o=Sf(y,n);if(o)return cn(o.toLowerCase());throw new c("toolbox_evm_invalid_gas_asset_address")}function Sf({chain:y,symbol:n,ticker:o},f){try{let T=y===Dy.BinanceSmartChain&&n==="BNB"&&o==="BNB",C=y===Dy.Hyperevm&&n==="HYPE"&&o==="HYPE",H=y===f&&n===f&&o===f,U=n2.includes(y)&&n==="ETH"&&o==="ETH";if(H||T||C||U)return F0[f];return cn(n.slice(o.length+1).replace(/^0X/,""))}catch{return null}}function qf({provider:y}){return async({contractAddress:n,abi:o,funcName:f,funcParams:T=[],txOverrides:C})=>An(n,o,y).getFunction(f).populateTransaction(...T.concat(C).filter((H)=>typeof H<"u"))}function Gf({chain:y,provider:n,isEIP1559Compatible:o=!0}){return iC(y).with(Dy.Gnosis,()=>{return async function(){try{let{gasPrice:T,maxPriorityFeePerGas:C}=await n.getFeeData();if(!T||C===null)throw new c("toolbox_evm_no_fee_data");return{[j.Average]:{maxFeePerGas:Jy(T,j.Average),maxPriorityFeePerGas:Jy(C,j.Average)},[j.Fast]:{maxFeePerGas:Jy(T,j.Fast),maxPriorityFeePerGas:Jy(C,j.Fast)},[j.Fastest]:{maxFeePerGas:Jy(T,j.Fastest),maxPriorityFeePerGas:Jy(C,j.Fastest)}}}catch(T){throw new c("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).with(Dy.Arbitrum,()=>{return async function(){try{let{gasPrice:T}=await n.getFeeData();if(!T)throw new c("toolbox_evm_no_fee_data");let C=T*12n/10n;return{[j.Average]:{gasPrice:C},[j.Fast]:{gasPrice:Jy(C,j.Fast)},[j.Fastest]:{gasPrice:Jy(C,j.Fastest)}}}catch(T){throw new c("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:C,gasPrice:H}=await n.getFeeData();if(o){if(T===null||C===null)throw new c("toolbox_evm_no_fee_data");return{[j.Average]:{maxFeePerGas:T,maxPriorityFeePerGas:C},[j.Fast]:{maxFeePerGas:Jy(T,j.Fast),maxPriorityFeePerGas:Jy(C,j.Fast)},[j.Fastest]:{maxFeePerGas:Jy(T,j.Fastest),maxPriorityFeePerGas:Jy(C,j.Fastest)}}}if(!H)throw new c("toolbox_evm_no_gas_price");return{[j.Average]:{gasPrice:H},[j.Fast]:{gasPrice:Jy(H,j.Fast)},[j.Fastest]:{gasPrice:Jy(H,j.Fastest)}}}catch(T){throw new c("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}})}function x0({provider:y,isEIP1559Compatible:n,signer:o,chain:f}){return async function({callProvider:C,contractAddress:H,abi:U,funcName:_,funcParams:A=[],txOverrides:J={},feeOption:L=j.Fast}){let G=C||y;if(!H)throw new c("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let q=S0({abi:U,funcName:_});if(q&&Rf(G)&&o){let w=qf({chain:f,provider:G}),N=J?.from||await o?.getAddress(),Q=await w({abi:U,contractAddress:H,funcName:_,funcParams:A,txOverrides:{...J,from:N}});return kf(G)(Q)}let W=An(H,U,G);if(q){if(!o)throw new c("toolbox_evm_no_signer");let w=J?.from||await o.getAddress();if(!w)throw new c("toolbox_evm_no_signer_address");let N=W.connect(o),Q=Gf({chain:f,isEIP1559Compatible:n,provider:y}),{maxFeePerGas:O,maxPriorityFeePerGas:B,gasPrice:Y}=(await Q())[L],X=await W.getFunction(_).estimateGas(...A,J),Z=await N[_](...A,{...J,gasLimit:X,gasPrice:Y,maxFeePerGas:O,maxPriorityFeePerGas:B,nonce:J?.nonce||await G.getTransactionCount(w)});return typeof Z?.hash==="string"?Z?.hash:Z}let M=await W[_]?.(...A);return typeof M?.hash==="string"?M?.hash:M}}function aC({provider:y,chain:n}){return function({assetAddress:f,spenderAddress:T,from:C}){return x0({chain:n,isEIP1559Compatible:!0,provider:y})({abi:Hn,contractAddress:f,funcName:"allowance",funcParams:[C,T]})}}function T2({provider:y,chain:n}){return async function({assetAddress:f,spenderAddress:T,from:C,amount:H=Un}){let U=await aC({chain:n,provider:y})({assetAddress:f,from:C,spenderAddress:T});return mn.fromBigInt(U).gte(mn.fromBigInt(BigInt(H)))}}function o2({signer:y,isEIP1559Compatible:n=!0,provider:o,chain:f}){return async function({assetAddress:C,spenderAddress:H,feeOptionKey:U=j.Fast,amount:_,gasLimitFallback:A,from:J,nonce:L}){let G=[H,BigInt(_||Un)],q=await y?.getAddress()||J,W={abi:Hn,contractAddress:C,funcName:"approve",funcParams:G,signer:y,txOverrides:{from:q}};if(Rf(o)){let w=qf({chain:f,provider:o}),N=kf(o),Q=await w(W);return N(Q)}return x0({chain:f,isEIP1559Compatible:n,provider:o,signer:y})({...W,feeOption:U,funcParams:G,txOverrides:{from:q,gasLimit:A?BigInt(A.toString()):void 0,nonce:L}})}}function C2({signer:y,isEIP1559Compatible:n=!0,provider:o}){return async function({assetValue:T,memo:C,recipient:H,feeOptionKey:U=j.Fast,sender:_,...A}){let{hexlify:J,toUtf8Bytes:L}=await import("ethers"),G=T.getBaseValue("bigint"),q=T.chain,W=_||await y?.getAddress(),M=eC({chain:q,isEIP1559Compatible:n,provider:o,signer:y});if(!W)throw new c("toolbox_evm_no_from_address");if(T.isGasAsset){let Y={...A,data:J(L(C||"")),feeOptionKey:U,from:W,to:H,value:G};return M(Y)}if(!Sf(T,q))throw new c("toolbox_evm_no_contract_address");let{maxFeePerGas:N,maxPriorityFeePerGas:Q,gasPrice:O}=(await Gf({chain:q,isEIP1559Compatible:n,provider:o})())[U],B=await R0({chain:q,provider:o,signer:y})({assetValue:T,data:J(L(C||"")),gasPrice:O,maxFeePerGas:N,maxPriorityFeePerGas:Q,memo:C,recipient:H,sender:W});return M(B)}}function sC({provider:y,signer:n}){return function({contractAddress:f,abi:T,funcName:C,funcParams:H=[],txOverrides:U}){if(!f)throw new c("toolbox_evm_no_contract_address");let _=An(f,T,y);return n?_.connect(n).getFunction(C).estimateGas(...H,U):_.getFunction(C).estimateGas(...H,U)}}function H2({provider:y,signer:n}){return async function({assetValue:f,recipient:T,memo:C,data:H,sender:U,funcName:_,funcParams:A,txOverrides:J}){let L=f.bigIntValue,G=f.isGasAsset?null:Sf(f,f.chain);if(G&&_)return sC({provider:y,signer:n})({abi:Hn,contractAddress:G,funcName:_,funcParams:A,txOverrides:J});let{hexlify:q,toUtf8Bytes:W}=await import("ethers");return y.estimateGas({data:H?H:C?q(W(C)):void 0,from:U,to:T,value:L})}}function U2({signer:y}){if(!y)return;return(n)=>w0(y,n)}function eC({provider:y,signer:n,isEIP1559Compatible:o=!0,chain:f}){return async function({feeOptionKey:C=j.Fast,...H}){let{from:U,to:_,data:A,value:J,...L}=H;if(!n)throw new c("toolbox_evm_no_signer");if(!_)throw new c("toolbox_evm_no_to_address");let G={...L,data:A||"0x",from:U,to:_,value:BigInt(J||0)};if(Rf(y))return kf(y)(G);let q=U||await n.getAddress(),W=H.nonce||await y.getTransactionCount(q),M=(await y.getNetwork()).chainId,w=$0(G,o);if(w==="eip7702")D0(G.authorizations||[],M);let N=iC(w).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),Q={...G,chainId:M,nonce:W,type:N,...w==="eip7702"&&{authorizationList:G.authorizations}},O=Gf({chain:f,isEIP1559Compatible:o,provider:y}),Y=w!=="legacy"&&!(G.maxFeePerGas&&G.maxPriorityFeePerGas)||!G.gasPrice?Object.entries((await O())[C]).reduce((Z,[D,k])=>({...Z,[D]:on(BigInt(k))}),{}):{},X;try{X=on(G.gasLimit||await y.estimateGas(Q)*11n/10n)}catch(Z){throw new c("toolbox_evm_error_estimating_gas_limit",{error:Z})}try{let Z={...Q,gasLimit:X,...Y};try{return(await n.sendTransaction(Z)).hash}catch{let D=await n.signTransaction({...Z,from:q});return(await y.broadcastTransaction(D)).hash}}catch(Z){throw new c("toolbox_evm_error_sending_transaction",{error:Z})}}}function R0({provider:y,signer:n}){return async function({assetValue:f,memo:T,recipient:C,data:H,sender:U,maxFeePerGas:_,maxPriorityFeePerGas:A,gasPrice:J,...L}){let G=f.getBaseValue("bigint"),q=f.chain,W=U||await n?.getAddress();if(!W)throw new c("toolbox_evm_no_from_address");if(sU(f)){let{hexlify:N,toUtf8Bytes:Q}=await import("ethers");return{...L,data:H||N(Q(T||"")),from:W,to:C,value:G}}let M=Sf(f,q);if(!M)throw new c("toolbox_evm_no_contract_address");return qf({chain:f.chain,provider:y})({abi:Hn,contractAddress:M,funcName:"transfer",funcParams:[C,G],txOverrides:{from:W,gasPrice:J,maxFeePerGas:_,maxPriorityFeePerGas:A}})}}function _2({provider:y,signer:n,chain:o}){return async function({assetAddress:T,spenderAddress:C,amount:H,from:U}){let _=await n?.getAddress()||U,A=qf({chain:o,provider:y}),J=["bigint","number"].includes(typeof H)?H:H||Un;return await A({abi:Hn,contractAddress:T,funcName:"approve",funcParams:[C,BigInt(J)],txOverrides:{from:_}})}}function A2({provider:y,isEIP1559Compatible:n=!0,chain:o}){return async function({feeOption:T=j.Fast,...C}){let U=await Gf({chain:o,isEIP1559Compatible:n,provider:y})(),_=await y.estimateGas(C),A=rU.from({chain:o}),{gasPrice:J,maxFeePerGas:L,maxPriorityFeePerGas:G}=U[T];if(!n&&J)return A.set(mn.fromBigInt(J*_,A.decimal));if(L&&G){let q=(L+G)*_;return A.set(mn.fromBigInt(q,A.decimal))}throw new c("toolbox_evm_no_gas_price")}}var Un,y2,f2,F0,n2,gn=(y)=>y.type===4||(y.authorizations?.length??0)>0,l0=(y)=>!gn(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),$0=(y,n=!0)=>{if(gn(y))return"eip7702";if(l0(y)||n)return"eip1559";return"legacy"};var dn=P(()=>{Kn();Cn();Un=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");y2=["payable","nonpayable"];f2=aU.reduce((y,n)=>{return y[n]="0x0000000000000000000000000000000000000000",y},{}),F0={...f2,[Dy.Optimism]:"0x4200000000000000000000000000000000000042",[Dy.Polygon]:"0x0000000000000000000000000000000000001010"},n2=[Dy.Arbitrum,Dy.Aurora,Dy.Base,Dy.Optimism]});import{Chain as r,FeeOption as q2}from"@swapkit/helpers";import{HDNodeWallet as G2}from"ethers";import{match as W2,P as y1}from"ts-pattern";function rn(y){let n=a(r.Ethereum)(y);async function o(f,T="0x5ba1e12693dc8f9c48aad8770482f4739beed696",C="aggregate",H=q2.Fast){let U=await n.createContractTxObject({abi:hC,contractAddress:T,funcName:C,funcParams:[f]});return n.sendTransaction({...U,feeOptionKey:H})}return{...n,multicall:o}}function a(y){return function({provider:o,...f}){let T=O0(y),C=W2(f).with({phrase:y1.string},({phrase:U})=>G2.fromPhrase(U).connect(o)).with({signer:y1.any},({signer:U})=>U).otherwise(()=>{return});return Df({chain:y,isEIP1559Compatible:T,provider:o,signer:C})}}var an,sn,en,yT,fT,nT,TT,f1,oT,CT,HT,UT,_T,AT,qn,qT,GT,WT,XT;var I0=P(()=>{mC();Cn();dn();an=a(r.Adi),sn=a(r.Arbitrum),en=a(r.Aurora),yT=a(r.Avalanche),fT=a(r.Base),nT=a(r.Berachain),TT=a(r.BinanceSmartChain),f1=a(r.Botanix),oT=a(r.Core),CT=a(r.Corn),HT=a(r.Cronos),UT=a(r.Gnosis),_T=a(r.Hyperevm),AT=a(r.Polygon),qn=a(r.Sonic),qT=a(r.Unichain),GT=a(r.XLayer),WT=a(r.Monad),XT=a(r.MegaETH)});var n1;var T1=P(()=>{n1=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as Ff,Chain as Q2,FeeOption as Ky,SwapKitError as P0}from"@swapkit/helpers";import{Contract as J2,HDNodeWallet as Z2}from"ethers";import{match as L2,P as o1}from"ts-pattern";function p0(y){return new J2(M2,n1,y)}function C1(y){return async function(){let o=p0(y);if(o&&"l1BaseFee"in o)return await o?.l1BaseFee();return}}function H1(y){return async function({from:o,to:f,nonce:T,...C}){let{Transaction:H}=await import("ethers");if(!f)throw new P0("toolbox_evm_invalid_transaction",{error:"Missing to address"});return H.from({...C,authorizationList:C.authorizationList,nonce:T?T:o?await y.getTransactionCount(o):0,to:f}).serialized}}function U1(y){return async function(o){let f=p0(y),T=await H1(y)(o);if(f&&"getL1Fee"in f)return f.getL1Fee(T)}}function _1(y){return async function(o){let T=(await y.getFeeData()).gasPrice??0n,C=await y.estimateGas(o);return T*C}}function Y2(y){return async function(o){let f=await U1(y)(o)??0n,T=await _1(y)(o);return f+T}}function B2(y){return async function(o){let f=p0(y),T=await H1(y)(o);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(T)}}function z2(y){return async function(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:f,gasPrice:T}=await y.getFeeData(),C=await C1(y)(),H=T;if(!(o&&f))throw new P0("toolbox_evm_no_fee_data");return{[Ky.Average]:{gasPrice:H,l1GasPrice:C,maxFeePerGas:o,maxPriorityFeePerGas:f},[Ky.Fast]:{gasPrice:Ff(H,Ky.Fast),l1GasPrice:Ff(C||0n,Ky.Fast),maxFeePerGas:o,maxPriorityFeePerGas:Ff(f,Ky.Fast)},[Ky.Fastest]:{gasPrice:Ff(H,Ky.Fastest),l1GasPrice:Ff(C||0n,Ky.Fastest),maxFeePerGas:o,maxPriorityFeePerGas:Ff(f,Ky.Fastest)}}}catch(o){throw new P0("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}}function QT({provider:y,...n}){let o=L2(n).with({phrase:o1.string},({phrase:C})=>Z2.fromPhrase(C).connect(y)).with({signer:o1.any},({signer:C})=>C).otherwise(()=>{return}),f=Df({provider:y,signer:o}),T=C1(y);return{...f,estimateGasPrices:z2(y),estimateL1Gas:B2(y),estimateL1GasCost:U1(y),estimateL2GasCost:_1(y),estimateTotalGasCost:Y2(y),getBalance:Tn(Q2.Optimism).getBalance,getL1GasPrice:T}}var M2="0x420000000000000000000000000000000000000f";var E0=P(()=>{Kn();T1();dn()});var q1={};ny(q1,{validateEVMAddress:()=>_n,toChecksumAddress:()=>dC,isStateChangingCall:()=>S0,isEIP7702Transaction:()=>gn,isEIP1559Transaction:()=>l0,isBrowserProvider:()=>Rf,getTokenAddress:()=>Sf,getEvmToolboxAsync:()=>A1,getEvmToolbox:()=>V0,getEstimateGasPrices:()=>Gf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>kf,getCreateContractTxObject:()=>qf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>rC,createContract:()=>An,XLayerToolbox:()=>GT,UNIToolbox:()=>qT,SONICToolbox:()=>qn,OPToolbox:()=>QT,MONADToolbox:()=>WT,MEGAETHToolbox:()=>XT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>AT,HYPEREVMToolbox:()=>_T,GNOToolbox:()=>UT,ETHToolbox:()=>rn,ContractAddress:()=>F0,CROToolbox:()=>HT,CORNToolbox:()=>CT,COREToolbox:()=>oT,BotanixToolbox:()=>f1,BaseEVMToolbox:()=>Df,BSCToolbox:()=>TT,BERAToolbox:()=>nT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>en,ARBToolbox:()=>sn,ADIToolbox:()=>an});import{Chain as d}from"@swapkit/helpers";import{match as N2}from"ts-pattern";function V0(y,n){return N2(y).with(d.Adi,()=>an(n)).with(d.Arbitrum,()=>sn(n)).with(d.Aurora,()=>en(n)).with(d.Avalanche,()=>yT(n)).with(d.Base,()=>fT(n)).with(d.Berachain,()=>nT(n)).with(d.BinanceSmartChain,()=>TT(n)).with(d.Botanix,()=>qn(n)).with(d.Core,()=>oT(n)).with(d.Corn,()=>CT(n)).with(d.Cronos,()=>HT(n)).with(d.Ethereum,()=>rn(n)).with(d.Gnosis,()=>UT(n)).with(d.Hyperevm,()=>_T(n)).with(d.Optimism,()=>QT(n)).with(d.Polygon,()=>AT(n)).with(d.Sonic,()=>qn(n)).with(d.Unichain,()=>qT(n)).with(d.XLayer,()=>GT(n)).with(d.Monad,()=>WT(n)).with(d.MegaETH,()=>XT(n)).exhaustive()}async function A1(y,n){let o={...n,provider:n?.provider||await z0(y)};return V0(y,o)}var t0=P(()=>{Cn();I0();E0();dn();I0();E0()});var G1;var W1=P(()=>{((o)=>{o.Test="goerli";o.Main="homestead"})(G1||={})});var X1={};ny(X1,{validateEVMAddress:()=>_n,validateAuthorizations:()=>D0,validateAuthorization:()=>jC,toHexString:()=>on,toChecksumAddress:()=>dC,signAuthorization:()=>w0,parseEIP712FromEVMTx:()=>dU,isStateChangingCall:()=>S0,isEIP7702Transaction:()=>gn,isEIP1559Transaction:()=>l0,isBrowserProvider:()=>Rf,getTokenAddress:()=>Sf,getProviderSync:()=>uC,getProvider:()=>z0,getNetworkParams:()=>N0,getIsEIP1559Compatible:()=>O0,getEvmToolboxAsync:()=>A1,getEvmToolbox:()=>V0,getEvmApi:()=>Tn,getEstimateGasPrices:()=>Gf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>kf,getCreateContractTxObject:()=>qf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>rC,createCustomEvmApi:()=>KU,createContract:()=>An,buildEIP712DomainType:()=>KC,XLayerToolbox:()=>GT,UNIToolbox:()=>qT,SONICToolbox:()=>qn,OPToolbox:()=>QT,MONADToolbox:()=>WT,MEGAETHToolbox:()=>XT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>AT,HYPEREVMToolbox:()=>_T,GNOToolbox:()=>UT,EthNetwork:()=>G1,ETHToolbox:()=>rn,ContractAddress:()=>F0,CROToolbox:()=>HT,CORNToolbox:()=>CT,COREToolbox:()=>oT,BotanixToolbox:()=>f1,BaseEVMToolbox:()=>Df,BSCToolbox:()=>TT,BERAToolbox:()=>nT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>en,ARBToolbox:()=>sn,ADIToolbox:()=>an});var b0=P(()=>{Kn();Cn();t0();W1()});import{bech32 as O2}from"@scure/base";import{mnemonicToEntropy as w2}from"@scure/bip39";import{wordlist as D2}from"@scure/bip39/wordlists/english.js";import{Bip32PrivateKey as R2}from"@stricahq/bip32ed25519";import{Transaction as k2,types as j0,address as S2,crypto as v0,utils as Q1}from"@stricahq/typhonjs";import{AssetValue as xf,Chain as Wf,getChainConfig as F2,SwapKitError as Gn}from"@swapkit/helpers";import By from"bignumber.js";async function K0(y,n){let o=await fetch(`${M1}${y}`,{...n,headers:{project_id:L1,...n?.headers}});if(!o.ok)throw Error(`Blockfrost API error: ${o.status} ${o.statusText}`);return o.json()}async function Y1(y){try{return await K0(`/addresses/${y}/utxos`)}catch{return[]}}async function l2(){return(await K0("/blocks/latest")).slot}async function $2(){let y=await K0("/epochs/latest/parameters"),n={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new By(y.collateral_percent),languageView:n,maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new By(y.min_fee_a),minFeeB:new By(y.min_fee_b),minFeeRefScriptCostPerByte:new By(15),priceMem:new By(y.price_mem),priceSteps:new By(y.price_step),stakeKeyDeposit:new By(2000000),utxoCostPerByte:new By(y.coins_per_utxo_size)}}async function Z1(y){let n=await fetch(`${M1}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:L1},method:"POST"});if(!n.ok){let o=await n.text();throw Error(`Transaction submission failed: ${o}`)}return n.json()}function I2(y,n){return y.map((o)=>{let f=o.amount.find((H)=>H.unit==="lovelace"),T=f?new By(f.quantity):new By(0),C=o.amount.filter((H)=>H.unit!=="lovelace").map((H)=>({amount:new By(H.quantity),assetName:H.unit.slice(56),policyId:H.unit.slice(0,56)}));return{address:n,amount:T,index:o.output_index,tokens:C,txId:o.tx_hash}})}async function P2(y){try{let n=await Y1(y),o=0n,f=new Map;for(let H of n){if(!H.amount||!Array.isArray(H.amount))continue;for(let U of H.amount){let{unit:_,quantity:A}=U;if(_==="lovelace")o+=BigInt(A);else{let J=f.get(_)||0n;f.set(_,J+BigInt(A))}}}let T=[],{baseDecimal:C}=F2(Wf.Cardano);if(o>0n)T.push(xf.from({chain:Wf.Cardano,fromBaseDecimal:C,value:o.toString()}));for(let[H,U]of f)T.push(xf.from({asset:`${Wf.Cardano}.${H}`,value:U.toString()}));if(T.length===0)return[xf.from({chain:Wf.Cardano})];return T}catch(n){let o=n instanceof Error?n.message:String(n);return console.error(`Cardano balance fetch error: ${o}`),[xf.from({chain:Wf.Cardano})]}}function B1(y){if(!y||typeof y!=="string")return!1;try{let n=O2.decode(y,120);return n.prefix==="addr"||n.prefix==="addr_test"}catch{return!1}}async function p2(y,n=0,o=0){let f=w2(y,D2),C=(await R2.fromEntropy(Buffer.from(Array.from(f)))).derive(u0+1852).derive(u0+1815).derive(u0+n),H=C.derive(0).derive(o),U=H.toBip32PublicKey().toPublicKey().toBytes(),_=v0.hash28(U),J=C.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),L=v0.hash28(J),G={hash:_,type:j0.HashType.ADDRESS},q={hash:L,type:j0.HashType.ADDRESS},M=new S2.BaseAddress(x2,G,q).getBech32(),w=H.toPrivateKey();return{getAddress:()=>M,publicKey:U,publicKeyHash:_,signTransaction:async(N)=>{try{let Q=await import("@stricahq/cbors"),O=Buffer.from(N,"hex"),B=Q.Decoder.decode(O),[Y,X,Z,D]=B.value,k=Q.Encoder.encode(Y),R=v0.hash32(k),S=w.sign(R),x=X instanceof Map?X:new Map,z=x.get(J1)||[];z.push([U,S]),x.set(J1,z);let F=[Y,x,Z,D];return Q.Encoder.encode(F).toString("hex")}catch(Q){throw new Gn("toolbox_cardano_sign_transaction_failed",{message:String(Q)})}}}}function E2(y){let n,o,f;async function T(){if(!f)f=await $2();return f}async function C(){if(n!==void 0)return n;if(y&&"phrase"in y&&y.phrase){let q=y.index??0;return n=await p2(y.phrase,0,q),n}if(y&&"signer"in y&&y.signer)return n=y.signer,n;return}async function H(){if(o)return o;let q=await C();if(!q)return"";if("getAddress"in q)return o=await q.getAddress(),o;return""}async function U(q){let W=q||await H();if(!W)throw new Gn("core_wallet_connection_not_found");return P2(W)}async function _(q){if(q)try{let{tx:N}=await A(q),Q=N.getFee();return xf.from({chain:Wf.Cardano,fromBaseDecimal:6,value:Q.toString()})}catch{}let W=await T(),M=400,w=W.minFeeB.plus(W.minFeeA.times(M));return xf.from({chain:Wf.Cardano,fromBaseDecimal:6,value:w.toString()})}async function A({sender:q="",recipient:W,assetValue:M,memo:w,pureLovelaceOnly:N=!1}){let Q=q||await H();if(!Q)throw new Gn("core_wallet_connection_not_found");let[O,B,Y]=await Promise.all([Y1(Q),l2(),T()]),X=O.filter((p)=>N?p.amount.every((b)=>b.unit==="lovelace"):p.amount.some((b)=>b.unit==="lovelace")).sort((p,b)=>{let K=p.amount.some((m)=>m.unit!=="lovelace"),s=b.amount.some((m)=>m.unit!=="lovelace");if(K===s)return 0;return K?1:-1}),Z=Q1.getAddressFromString(Q),D=Q1.getAddressFromString(W),k=I2(X,Z),R=new By(M.getBaseValue("string")),S=[{address:D,amount:R,tokens:[]}],x;if(w){let p=new Map;p.set("msg",[w]),x={metadata:[{data:p,label:674}]}}let z={...Y,minFeeB:Y.minFeeB.plus(Y.minFeeA.times(4))},l=new k2({protocolParams:z}).paymentTransaction({auxiliaryData:x,changeAddress:Z,inputs:k,outputs:S,ttl:B+3600}),{payload:V}=l.buildTransaction();return{tx:l,unsignedTx:V}}async function J(q){let W=await C();if(!W||!("signTransaction"in W))throw new Gn("core_wallet_connection_not_found");return W.signTransaction(q)}async function L({recipient:q,assetValue:W,memo:M}){let w=await C();if(!w||!("signTransaction"in w))throw new Gn("core_wallet_connection_not_found");let{unsignedTx:N}=await A({assetValue:W,memo:M,recipient:q,sender:await H()}),Q=await J(N);return await Z1(Q)}async function G(q){let W=await J(q);return await Z1(W)}return{createTransaction:A,estimateTransactionFee:_,getAddress:H,getBalance:U,signAndBroadcastTransaction:G,signTransaction:J,transfer:L,validateAddress:B1}}var L1="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",M1="https://cardano-mainnet.blockfrost.io/api/v0",x2,u0=2147483648,J1=0;var z1=P(()=>{x2=j0.NetworkId.MAINNET});var h0={};ny(h0,{validateCardanoAddress:()=>B1,getCardanoToolbox:()=>E2});var m0=P(()=>{z1()});import{base64 as ZT,bech32 as JT}from"@scure/base";import{SwapKitError as V2}from"@swapkit/helpers";function Wn(y){return ZT.encode(Uint8Array.from(JT.fromWords(JT.decode(y).words)))}function Xn(y,n="thor"){return JT.encode(n,JT.toWords(ZT.decode(y)))}function t2(y){return ZT.encode(y)}function b2(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new V2("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return ZT.decode(y)}var c0=()=>{};import{AssetValue as g0,Chain as u,getChainConfig as py,getRPCUrl as v2,SwapKitError as N1}from"@swapkit/helpers";function hy(y){switch(y){case u.Maya:return{amount:[],gas:"10000000000"};case u.THORChain:return{amount:[],gas:"500000000"};case u.Kujira:return D1;case u.Noble:return R1;default:return w1}}async function my(y){let n=await import("@cosmjs/stargate"),o=n.StargateClient??n.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return o.connect({headers:f,url:y})}async function Xf(y,n,o={}){let f=await import("@cosmjs/stargate"),T=f.SigningStargateClient??f.default?.SigningStargateClient,C=f.GasPrice??f.default?.GasPrice,H=typeof o==="string"?o:"0.0003uatom",U=typeof o==="string"?{}:o;return T.connectWithSigner(y,n,{gasPrice:C.fromString(H),...U})}async function d0(y,n){let o=await import("@cosmjs/stargate");return(o.SigningStargateClient??o.default?.SigningStargateClient).offline(y,n)}async function r0({sender:y,recipient:n,assetValue:o,memo:f="",feeRate:T,sequence:C,accountNumber:H}){let{chain:U,chainId:_}=o,A=await v2(U),L=await(await my(A)).getAccount(y);if(!L)throw new N1("toolbox_cosmos_account_not_found",{sender:y});let G=g0.from({chain:U}),q=sy(G.symbol),W=hy(U),M=q&&T?{amount:[{amount:T.toString(),denom:q}],gas:W.gas}:W,w={amount:[{amount:o.getBaseValue("string"),denom:sy(o.symbol)}],fromAddress:y,toAddress:n};return{accountNumber:H??Number(L.accountNumber),chainId:_,fee:M,memo:f,msgs:[{typeUrl:u2(U),value:w}],sequence:C??L.sequence}}var i0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",O1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",w1,D1,R1,sy=(y,n=!1)=>{if(n)return y.toLowerCase();switch(y){case"uUSK":case"USK":return i0;case"uYUM":case"YUM":return O1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return y}},Qn=({symbol:y,chain:n})=>{if(n===u.Maya)return(y.toUpperCase()!=="CACAO"?y:`${u.Maya}.${y}`).toUpperCase();if(n===u.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${u.THORChain}.${y}`:y).toUpperCase();return sy(y,!1)},u2=(y)=>{switch(y){case u.Maya:case u.THORChain:return"/types.MsgSend";case u.Cosmos:case u.Kujira:case u.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new N1("toolbox_cosmos_not_supported",{chain:y})}},j2,a0=(y,n)=>{let o=j2[y.toLowerCase()];if(!o)return g0.from({asset:y,fromBaseDecimal:8,value:n});let{chain:f,asset:T,decimals:C}=o,H=f?{chain:f}:{asset:T};return g0.from({...H,fromBaseDecimal:C,value:n})};var Jn=P(()=>{w1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},D1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},R1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};j2={atom:{chain:u.Cosmos,decimals:py(u.Cosmos).baseDecimal},cacao:{chain:u.Maya,decimals:10},kuji:{chain:u.Kujira,decimals:py(u.Kujira).baseDecimal},maya:{asset:`${u.Maya}.${u.Maya}`,decimals:4},rune:{chain:u.THORChain,decimals:py(u.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:py(u.THORChain).baseDecimal},uatom:{chain:u.Cosmos,decimals:py(u.Cosmos).baseDecimal},ukuji:{chain:u.Kujira,decimals:py(u.Kujira).baseDecimal},usdc:{chain:u.Noble,decimals:py(u.Noble).baseDecimal},uusdc:{chain:u.Noble,decimals:py(u.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:py(u.THORChain).baseDecimal},[i0.toLowerCase()]:{asset:`${u.Kujira}.USK`,decimals:py(u.Kujira).baseDecimal}}});var k1={};ny(k1,{$root:()=>I});import Ty from"protobufjs/minimal.js";var t,zy,E,I;var S1=P(()=>{t=Ty.Reader,zy=Ty.Writer,E=Ty.util,I=Ty.roots.default||(Ty.roots.default={});I.common=(()=>{let y={};return y.Asset=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.chain="",n.prototype.symbol="",n.prototype.ticker="",n.prototype.synth=!1,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))T.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))T.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))T.uint32(32).bool(f.synth);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Asset;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.chain=f.string();break;case 2:H.symbol=f.string();break;case 3:H.ticker=f.string();break;case 4:H.synth=f.bool();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!E.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!E.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!E.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Asset)return f;let T=new I.common.Asset;if(f.chain!=null)T.chain=String(f.chain);if(f.symbol!=null)T.symbol=String(f.symbol);if(f.ticker!=null)T.ticker=String(f.ticker);if(f.synth!=null)T.synth=Boolean(f.synth);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.chain="",C.symbol="",C.ticker="",C.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))C.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))C.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))C.synth=f.synth;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.Coin=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.asset=null,n.prototype.amount="",n.prototype.decimals=E.Long?E.Long.fromBits(0,0,!1):0,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))I.common.Asset.encode(f.asset,T.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))T.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))T.uint32(24).int64(f.decimals);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Coin;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.asset=I.common.Asset.decode(f,f.uint32());break;case 2:H.amount=f.string();break;case 3:H.decimals=f.int64();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let T=I.common.Asset.verify(f.asset);if(T)return"asset."+T}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!E.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!E.isInteger(f.decimals)&&!(f.decimals&&E.isInteger(f.decimals.low)&&E.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Coin)return f;let T=new I.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");T.asset=I.common.Asset.fromObject(f.asset)}if(f.amount!=null)T.amount=String(f.amount);if(f.decimals!=null){if(E.Long)(T.decimals=E.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")T.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")T.decimals=f.decimals;else if(typeof f.decimals==="object")T.decimals=new E.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)if(C.asset=null,C.amount="",E.Long){let H=new E.Long(0,0,!1);C.decimals=T.longs===String?H.toString():T.longs===Number?H.toNumber():H}else C.decimals=T.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))C.asset=I.common.Asset.toObject(f.asset,T);if(f.amount!=null&&f.hasOwnProperty("amount"))C.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")C.decimals=T.longs===String?String(f.decimals):f.decimals;else C.decimals=T.longs===String?E.Long.prototype.toString.call(f.decimals):T.longs===Number?new E.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.PubKeySet=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.secp256k1="",n.prototype.ed25519="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))T.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))T.uint32(18).string(f.ed25519);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.PubKeySet;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.secp256k1=f.string();break;case 2:H.ed25519=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!E.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!E.isString(f.ed25519))return"ed25519: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.PubKeySet)return f;let T=new I.common.PubKeySet;if(f.secp256k1!=null)T.secp256k1=String(f.secp256k1);if(f.ed25519!=null)T.ed25519=String(f.ed25519);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.secp256k1="",C.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))C.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))C.ed25519=f.ed25519;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.Tx=(()=>{function n(o){if(this.coins=[],this.gas=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.id="",n.prototype.chain="",n.prototype.fromAddress="",n.prototype.toAddress="",n.prototype.coins=E.emptyArray,n.prototype.gas=E.emptyArray,n.prototype.memo="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))T.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(34).string(f.toAddress);if(f.coins?.length)for(let C=0;C<f.coins.length;++C)I.common.Coin.encode(f.coins[C],T.uint32(42).fork()).ldelim();if(f.gas?.length)for(let C=0;C<f.gas.length;++C)I.common.Coin.encode(f.gas[C],T.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(58).string(f.memo);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Tx;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.id=f.string();break;case 2:H.chain=f.string();break;case 3:H.fromAddress=f.string();break;case 4:H.toAddress=f.string();break;case 5:if(!H.coins?.length)H.coins=[];H.coins.push(I.common.Coin.decode(f,f.uint32()));break;case 6:if(!H.gas?.length)H.gas=[];H.gas.push(I.common.Coin.decode(f,f.uint32()));break;case 7:H.memo=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!E.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!E.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!E.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!E.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=I.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let T=0;T<f.gas.length;++T){let C=I.common.Coin.verify(f.gas[T]);if(C)return"gas."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!E.isString(f.memo))return"memo: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Tx)return f;let T=new I.common.Tx;if(f.id!=null)T.id=String(f.id);if(f.chain!=null)T.chain=String(f.chain);if(f.fromAddress!=null)T.fromAddress=String(f.fromAddress);if(f.toAddress!=null)T.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Tx.coins: object expected");T.coins[C]=I.common.Coin.fromObject(f.coins[C])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");T.gas=[];for(let C=0;C<f.gas.length;++C){if(typeof f.gas[C]!=="object")throw TypeError(".common.Tx.gas: object expected");T.gas[C]=I.common.Coin.fromObject(f.gas[C])}}if(f.memo!=null)T.memo=String(f.memo);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[],C.gas=[];if(T.defaults)C.id="",C.chain="",C.fromAddress="",C.toAddress="",C.memo="";if(f.id!=null&&f.hasOwnProperty("id"))C.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=f.toAddress;if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=I.common.Coin.toObject(f.coins[H],T)}if(f.gas?.length){C.gas=[];for(let H=0;H<f.gas.length;++H)C.gas[H]=I.common.Coin.toObject(f.gas[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.Fee=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=E.emptyArray,n.prototype.poolDeduct="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)I.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))T.uint32(18).string(f.poolDeduct);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Fee;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push(I.common.Coin.decode(f,f.uint32()));break;case 2:H.poolDeduct=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=I.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!E.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Fee)return f;let T=new I.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Fee.coins: object expected");T.coins[C]=I.common.Coin.fromObject(f.coins[C])}}if(f.poolDeduct!=null)T.poolDeduct=String(f.poolDeduct);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults)C.poolDeduct="";if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=I.common.Coin.toObject(f.coins[H],T)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))C.poolDeduct=f.poolDeduct;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.ProtoUint=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.value="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))T.uint32(10).string(f.value);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.ProtoUint;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.value=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!E.isString(f.value))return"value: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.ProtoUint)return f;let T=new I.common.ProtoUint;if(f.value!=null)T.value=String(f.value);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.value="";if(f.value!=null&&f.hasOwnProperty("value"))C.value=f.value;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y})();I.types=(()=>{let y={};return y.MsgDeposit=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=E.emptyArray,n.prototype.memo="",n.prototype.signer=E.newBuffer([]),n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)I.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))T.uint32(26).bytes(f.signer);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.types.MsgDeposit;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push(I.common.Coin.decode(f,f.uint32()));break;case 2:H.memo=f.string();break;case 3:H.signer=f.bytes();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=I.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!E.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||E.isString(f.signer)))return"signer: buffer expected"}return null},n.fromObject=function(f){if(f instanceof I.types.MsgDeposit)return f;let T=new I.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");T.coins[C]=I.common.Coin.fromObject(f.coins[C])}}if(f.memo!=null)T.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")E.base64.decode(f.signer,T.signer=E.newBuffer(E.base64.length(f.signer)),0);else if(f.signer.length)T.signer=f.signer}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults){if(C.memo="",T.bytes===String)C.signer="";else if(C.signer=[],T.bytes!==Array)C.signer=E.newBuffer(C.signer)}if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=I.common.Coin.toObject(f.coins[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))C.signer=T.bytes===String?E.base64.encode(f.signer,0,f.signer.length):T.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.MsgSend=(()=>{function n(o){if(this.amount=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.fromAddress=E.newBuffer([]),n.prototype.toAddress=E.newBuffer([]),n.prototype.amount=E.emptyArray,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let C=0;C<f.amount.length;++C)I.cosmos.base.v1beta1.Coin.encode(f.amount[C],T.uint32(26).fork()).ldelim();return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.types.MsgSend;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.fromAddress=f.bytes();break;case 2:H.toAddress=f.bytes();break;case 3:if(!H.amount?.length)H.amount=[];H.amount.push(I.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||E.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||E.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let T=0;T<f.amount.length;++T){let C=I.cosmos.base.v1beta1.Coin.verify(f.amount[T]);if(C)return"amount."+C}}return null},n.fromObject=function(f){if(f instanceof I.types.MsgSend)return f;let T=new I.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")E.base64.decode(f.fromAddress,T.fromAddress=E.newBuffer(E.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)T.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")E.base64.decode(f.toAddress,T.toAddress=E.newBuffer(E.base64.length(f.toAddress)),0);else if(f.toAddress.length)T.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");T.amount=[];for(let C=0;C<f.amount.length;++C){if(typeof f.amount[C]!=="object")throw TypeError(".types.MsgSend.amount: object expected");T.amount[C]=I.cosmos.base.v1beta1.Coin.fromObject(f.amount[C])}}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.amount=[];if(T.defaults){if(T.bytes===String)C.fromAddress="";else if(C.fromAddress=[],T.bytes!==Array)C.fromAddress=E.newBuffer(C.fromAddress);if(T.bytes===String)C.toAddress="";else if(C.toAddress=[],T.bytes!==Array)C.toAddress=E.newBuffer(C.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=T.bytes===String?E.base64.encode(f.fromAddress,0,f.fromAddress.length):T.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=T.bytes===String?E.base64.encode(f.toAddress,0,f.toAddress.length):T.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){C.amount=[];for(let H=0;H<f.amount.length;++H)C.amount[H]=I.cosmos.base.v1beta1.Coin.toObject(f.amount[H],T)}return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y})();I.cosmos=(()=>{let y={};return y.base=(()=>{let n={};return n.v1beta1=(()=>{let o={};return o.Coin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof t))C=t.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.Coin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof t))C=new t(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!E.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!E.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.Coin)return C;let H=new I.cosmos.base.v1beta1.Coin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o.DecCoin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof t))C=t.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.DecCoin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof t))C=new t(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!E.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!E.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.DecCoin)return C;let H=new I.cosmos.base.v1beta1.DecCoin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o.IntProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.int="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.int!=null&&Object.hasOwnProperty.call(C,"int"))H.uint32(10).string(C.int);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof t))C=t.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.IntProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.int=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof t))C=new t(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.int!=null&&C.hasOwnProperty("int")){if(!E.isString(C.int))return"int: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.IntProto)return C;let H=new I.cosmos.base.v1beta1.IntProto;if(C.int!=null)H.int=String(C.int);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.int="";if(C.int!=null&&C.hasOwnProperty("int"))U.int=C.int;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o.DecProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.dec="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.dec!=null&&Object.hasOwnProperty.call(C,"dec"))H.uint32(10).string(C.dec);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof t))C=t.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.DecProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.dec=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof t))C=new t(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.dec!=null&&C.hasOwnProperty("dec")){if(!E.isString(C.dec))return"dec: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.DecProto)return C;let H=new I.cosmos.base.v1beta1.DecProto;if(C.dec!=null)H.dec=String(C.dec);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.dec="";if(C.dec!=null&&C.hasOwnProperty("dec"))U.dec=C.dec;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o})(),n})(),y})()});import{Chain as K2}from"@swapkit/helpers";async function Qf(){let{$root:y}=await Promise.resolve().then(() => (S1(),k1)),n=await import("@cosmjs/proto-signing"),o=n.Registry??n.default?.Registry,f=await import("@cosmjs/stargate"),T=f.defaultRegistryTypes??f.default?.defaultRegistryTypes;return new o([...T,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function ey(y){let n=await import("@cosmjs/stargate"),o=n.AminoTypes??n.default?.AminoTypes,f=y===K2.THORChain?"thorchain":"mayachain";return new o({"/types.MsgDeposit":{aminoType:`${f}/MsgDeposit`,fromAmino:({signer:T,...C})=>({...C,signer:Wn(T)}),toAmino:({signer:T,...C})=>({...C,signer:Xn(T)})},"/types.MsgSend":{aminoType:`${f}/MsgSend`,fromAmino:({from_address:T,to_address:C,...H})=>({...H,fromAddress:Wn(T),toAddress:Wn(C)}),toAmino:({fromAddress:T,toAddress:C,...H})=>({...H,from_address:Xn(T),to_address:Xn(C)})}})}var s0=P(()=>{c0()});import{AssetValue as h2,Chain as LT,getChainConfig as F1,getRPCUrl as x1,SwapKitError as m2}from"@swapkit/helpers";function fo(y){let{assetValue:n,recipient:o,memo:f,sender:T,asSignable:C,asAminoMessage:H}=y;if(o)return $1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,recipient:o,sender:T});return I1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,sender:T})}async function $1({sender:y,recipient:n,assetValue:o,memo:f="",asSignable:T=!0,asAminoMessage:C=!1,sequence:H,accountNumber:U}){let _=o.chain,A=await x1(_),J=await l1({rpcUrl:A,sender:y}),{chainId:L}=F1(_),G=e0({assetValue:o,recipient:n,sender:y}),q=T?await yf(C?G:ff(G),_):G;return{accountNumber:U||Number(J.accountNumber),chainId:L,fee:hy(_),memo:f,msgs:[q],sequence:H||J.sequence}}async function I1({sender:y,assetValue:n,memo:o="",asSignable:f=!0,asAminoMessage:T=!1,sequence:C,accountNumber:H}){let U=n.chain,_=await x1(U),A=await l1({rpcUrl:_,sender:y}),{chainId:J}=F1(U),L=yo({assetValue:n,memo:o,sender:y}),G=f?await yf(T?L:ff(L),U):L;return{accountNumber:H||Number(A.accountNumber),chainId:J,fee:hy(U),memo:o,msgs:[G],sequence:C||A.sequence}}function ff(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((n)=>{let o=h2.from({asset:n.asset}),f=(o.isSynthetic?o.symbol.split("/")?.[1]:o.symbol)?.toUpperCase(),T=(o.isSynthetic?o.symbol.split("/")?.[0]:o.chain)?.toUpperCase();return{...n,asset:{chain:T,symbol:f,synth:o.isSynthetic,ticker:o.ticker}}})}}}async function Zn({chain:y,memo:n,msgs:o}){let f=await Qf(),T=await ey(y),C={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:n,messages:o.map((H)=>T.fromAmino(H))}};return f.encode(C)}var c2,g2,e0=({sender:y,recipient:n,assetValue:o})=>{return{type:`${o.chain===LT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:o.getBaseValue("string"),denom:sy(o.symbol,!0)}],from_address:y,to_address:n}}},yo=({sender:y,assetValue:n,memo:o=""})=>{return{type:`${n.chain===LT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:n.getBaseValue("string"),asset:Qn(n)}],memo:o,signer:y}}},MT=({sender:y,recipient:n,assetValue:o,memo:f})=>{return!n?yo({assetValue:o,memo:f,sender:y}):e0({assetValue:o,recipient:n,sender:y})},yf=async(y,n)=>{return(await ey(n)).fromAmino(y)},l1=async({rpcUrl:y,sender:n})=>{let f=await(await my(y)).getAccount(n);if(!f)throw new m2("toolbox_cosmos_account_not_found",{sender:n});return f};var P1=P(()=>{Jn();s0();c2=hy(LT.THORChain).gas,g2=hy(LT.Maya).gas});var p1=()=>{};var E1=P(()=>{p1()});var no=P(()=>{c0();P1();s0();E1()});import{stringToPath as i2}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as d2}from"@cosmjs/proto-signing";import{base64 as Co,bech32 as To}from"@scure/base";import{AssetValue as Ho,applyFeeMultiplier as V1,Chain as Hy,CosmosChainPrefixes as K1,DerivationPath as r2,derivationPathToString as t1,FeeOption as Uo,getChainConfig as a2,getRPCUrl as Ln,NetworkDerivationPath as s2,SwapKitError as lf,SwapKitNumber as oo,updateDerivationPath as e2}from"@swapkit/helpers";import{SwapKitApi as h1}from"@swapkit/helpers/api";import{match as y_,P as b1}from"ts-pattern";async function Ao(y,n){try{let f=(await h1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}async function _o({phrase:y,prefix:n,...o}){let f="derivationPath"in o?o.derivationPath:`${r2[o.chain]}/${o.index}`;return await d2.fromMnemonic(y,{hdPaths:[i2(f)],prefix:n})}async function f_({privateKey:y,prefix:n}){let o=await import("@cosmjs/proto-signing");return(o.DirectSecp256k1Wallet??o.default?.DirectSecp256k1Wallet).fromKey(y,n)}function m1(y){return async function({signature:o,message:f,address:T}){let C=await y(T);if(!C?.pubkey)throw new lf("toolbox_cosmos_verify_signature_no_pubkey");let H=await import("@cosmjs/crypto"),U=H.Secp256k1Signature??H.default?.Secp256k1Signature,_=H.Secp256k1??H.default?.Secp256k1,A=U.fromFixedLength(Co.decode(o));return _.verifySignature(A,Co.decode(f),C.pubkey.value)}}function Mn({chain:y,...n}){let o=K1[y],f="index"in n?n.index||0:0,T=t1("derivationPath"in n&&n.derivationPath?n.derivationPath:e2(s2[y],{index:f})),C;async function H(){if(C)return C;return C=await y_(n).with({phrase:b1.string},({phrase:q})=>_o({derivationPath:T,phrase:q,prefix:o})).with({signer:b1.any},({signer:q})=>q).otherwise(()=>{return}),C}async function U(q){let W=await Ln(y);return(await my(W)).getAccount(q)}async function _(){let q=await H(),[W]=await q?.getAccounts()||[];return W?.address}async function A(){let q=await H(),[W]=await q?.getAccounts()||[];if(!W?.pubkey)throw new lf("toolbox_cosmos_signer_not_defined");return Co.encode(W?.pubkey)}async function J(q){let W=await H(),M=await _(),w=await Ln(y);if(!(W&&M))throw new lf("toolbox_cosmos_signer_not_defined");return await(await Xf(w,W)).sign(M,q.msgs,q.fee,q.memo,{accountNumber:BigInt(q.accountNumber),chainId:q.chainId,sequence:q.sequence})}async function L(q){let W=await H(),M=await _(),w=await Ln(y);if(!(W&&M))throw new lf("toolbox_cosmos_signer_not_defined");let Q=await(await Xf(w,W)).signAndBroadcast(M,q.msgs,q.fee,q.memo);if(Q.code!==0)throw new lf("core_swap_transaction_error",{code:Q.code,message:Q.rawLog});return Q.transactionHash}async function G({recipient:q,assetValue:W,memo:M="",feeRate:w,feeOptionKey:N=Uo.Fast}){let Q=await H(),O=await _();if(!(Q&&O))throw new lf("toolbox_cosmos_signer_not_defined");let B=await Ln(y),Y=Ho.from({chain:y}),X=Qn(Y),Z=w||o_((await u1(y,v1[y]))[N],X),D=await Xf(B,Q),k=sy(W.symbol),R=[{amount:W.getBaseValue("string"),denom:k}],{transactionHash:S}=await D.sendTokens(O,q,R,Z,M);return S}return{createPrivateKeyFromPhrase:H_(T),createTransaction:r0,fetchFeeRateFromSwapKit:Ao,getAccount:U,getAddress:_,getBalance:async(q,W)=>{let M=await j1(y)(q),w=await Promise.all(M.filter(({denom:N})=>N&&!N.includes("IBC/")&&!([Hy.THORChain,Hy.Maya].includes(y)&&N.split("-").length>2)).map(({denom:N,amount:Q})=>{let O=[Hy.THORChain,Hy.Maya].includes(y)&&(N.includes("/")||N.includes("˜"))?`${y}.${N}`:N;return a0(O,Q)}));if(w.length===0)return[Ho.from({chain:y})];return w},getBalanceAsDenoms:j1(y),getFees:()=>u1(y,v1[y]),getPubKey:A,getSignerFromPhrase:({phrase:q,derivationPath:W})=>_o({derivationPath:t1(W),index:f,phrase:q,prefix:o}),getSignerFromPrivateKey:async(q)=>{let W=await import("@cosmjs/proto-signing");return(W.DirectSecp256k1Wallet??W.default?.DirectSecp256k1Wallet).fromKey(q,o)},signAndBroadcastTransaction:L,signTransaction:J,transfer:G,validateAddress:c1(y),verifySignature:m1(U)}}async function n_(y,n){try{let f=(await h1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}function T_({assetValue:{chain:y}}){return Ho.from({chain:y,value:C_(y)})}async function u1(y,n){let{chainId:o,baseDecimal:f}=a2(y),T=await Ao(o,n);return{average:oo.fromBigInt(BigInt(T),f),fast:oo.fromBigInt(BigInt(V1(T,Uo.Fast,!0)),f),fastest:oo.fromBigInt(BigInt(V1(T,Uo.Fastest,!0)),f)}}function o_(y,n){return{amount:[{amount:y.getBaseValue("string"),denom:n}],gas:"200000"}}function C_(y){return{[Hy.Cosmos]:0.007,[Hy.Kujira]:0.02,[Hy.Noble]:0.01,[Hy.THORChain]:0.02,[Hy.Maya]:0.02,[Hy.Harbor]:0.02}[y]||0}function c1(y){let n=K1[y];return function(f){if(!f.startsWith(n))return!1;try{let{prefix:T,words:C}=To.decode(f);return To.encode(T,C)===f.toLocaleLowerCase()}catch{return!1}}}function j1(y){return async function(o){let f=await Ln(y);return(await(await my(f)).getAllBalances(o)).map((U)=>({...U,denom:U.denom.includes("/")?U.denom.toUpperCase():U.denom}))}}function H_(y){return async function(o){let f=await import("@cosmjs/crypto"),T=f.stringToPath??f.default?.stringToPath,C=f.Slip10Curve??f.default?.Slip10Curve,H=f.Slip10??f.default?.Slip10,U=f.EnglishMnemonic??f.default?.EnglishMnemonic,_=f.Bip39??f.default?.Bip39,A=new U(o),J=await _.mnemonicToSeed(A),{privkey:L}=H.derivePath(C.Secp256k1,J,T(y));return L}}var v1;var YT=P(()=>{Jn();v1={[Hy.Cosmos]:1000,[Hy.Kujira]:1000,[Hy.Noble]:1000,[Hy.THORChain]:5000000,[Hy.Maya]:5000000,[Hy.Harbor]:5000000}});import{base64 as Jf}from"@scure/base";import{Chain as U_,CosmosChainPrefixes as __,derivationPathToString as A_,FeeOption as qo,getChainConfig as q_,getRPCUrl as a1,NetworkDerivationPath as G_,RequestClient as W_,SKConfig as g1,SwapKitError as $f,SwapKitNumber as i1,updateDerivationPath as X_}from"@swapkit/helpers";import{match as d1,P as r1}from"ts-pattern";function Q_({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 J_(y){return Jf.encode(y)}function Z_(y){return async function({wallet:o,tx:f}){let{msgs:T,accountNumber:C,sequence:H,chainId:U,fee:_,memo:A}=typeof f==="string"?JSON.parse(f):f,J=(await o.getAccounts())?.[0]?.address||"",L=await ey(y),G=await Qf(),q=await d0(o,{aminoTypes:L,registry:G}),W=[];for(let N of T){let Q=await yf(N,y);W.push(Q)}let{signatures:[M]}=await q.sign(J,W,_,A,{accountNumber:BigInt(C),chainId:U,sequence:H});return{bodyBytes:await Zn({chain:y,memo:A,msgs:T.map(ff)}),signature:J_(M)}}}function L_({prefix:y,chain:n}){return async function(f,T,C,H,U){let _=await a1(n),{encodeSecp256k1Pubkey:A,pubkeyToAddress:J}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:L}=(await import("@cosmjs/stargate")).default,{sequence:G,fee:q}=JSON.parse(f),W=await s1(C,H),M=T.map((Q)=>[J(A(Jf.decode(Q.pubKey)),y),Jf.decode(Q.signature)]),w=await my(_),{transactionHash:N}=await w.broadcastTx(L(W,G,q,U,new Map(M)));return N}}async function s1(y,n,o=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:T}=(await import("@cosmjs/amino")).default;return f(y.map((C)=>T(Jf.decode(C))),n,o)}function M_(y){return Jf.decode(y)}async function Y_({privateKey:y,message:n}){let{Secp256k1:o}=(await import("@cosmjs/crypto")).default,f=await o.createSignature(Jf.decode(n),y);return Jf.encode(Buffer.concat([f.r(32),f.s(32)]))}function Go({chain:y,...n}){let{isStagenet:o}=g1.get("envs"),f=g1.get("thornodeUrls"),T=y===U_.Maya,C=d1({isMayachain:T,isStagenet:o}).with({isMayachain:!0},({isStagenet:Q})=>Q?f.MAYA_STAGENET:f.MAYA).otherwise(({isStagenet:Q})=>Q?f.THOR_STAGENET:f.THOR),H=`${o?"s":""}${__[y]}`,U="index"in n?n.index||0:0,_="derivationPath"in n&&n.derivationPath?n.derivationPath:X_(G_[y],{index:U}),A=Mn({chain:y,...n}),J=hy(y),L;function G(){return L??=d1(n).with({phrase:r1.string},({phrase:Q})=>A.getSignerFromPhrase({derivationPath:_,phrase:Q})).with({signer:r1.any},({signer:Q})=>Promise.resolve(Q)).otherwise(()=>Promise.resolve(void 0)),L}async function q(){let Q=await a1(y),O=await G();if(!O)throw new $f("toolbox_cosmos_no_signer");let B=await Qf(),Y=await ey(y),X=await Xf(Q,O,{aminoTypes:Y,registry:B});return{signer:O,signingClient:X}}async function W({fee:Q,memo:O,msgs:B}){let{signer:Y,signingClient:X}=await q(),Z=(await Y.getAccounts())?.[0]?.address;if(!Z)throw new $f("toolbox_cosmos_signer_not_defined");let D=await X.signAndBroadcast(Z,B,Q,O);if(D.code!==0)throw new $f("core_swap_transaction_error",{code:D.code,message:D.rawLog});return D.transactionHash}async function M(){let Q,O=`${C}/${T?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:B}}=await W_.get(O);if(!B||Number.isNaN(B)||B<0)throw new $f("toolbox_cosmos_invalid_fee",{nativeFee:B.toString()});Q=new i1(B)}catch{Q=new i1({decimal:q_(y).baseDecimal,value:T?1:0.02})}return{[qo.Average]:Q,[qo.Fast]:Q,[qo.Fastest]:Q}}async function w({assetValue:Q,memo:O="",recipient:B}){let{TxRaw:Y}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:X,signingClient:Z}=await q(),D=(await X.getAccounts())?.[0]?.address;if(!D)throw new $f("toolbox_cosmos_no_signer");let k="signAmino"in X,R=MT({assetValue:Q,memo:O,recipient:B,sender:D});if(k){let z=await yf(R,y),{signatures:F,authInfoBytes:l}=await Z.sign(D,[z],J,O),V=Y.encode({authInfoBytes:l,bodyBytes:await Zn({chain:y,memo:O,msgs:[R].map(ff)}),signatures:F}).finish();return(await Z.broadcastTx(V)).transactionHash}let S=ff(R),x=await yf(S,y);return W({fee:J,memo:O,msgs:[x]})}async function N(Q){let{signer:O,signingClient:B}=await q(),Y=(await O.getAccounts())?.[0]?.address;if(!Y)throw new $f("toolbox_cosmos_signer_not_defined");return B.sign(Y,Q.msgs,Q.fee,Q.memo,{accountNumber:BigInt(Q.accountNumber),chainId:Q.chainId,sequence:Q.sequence})}return{...A,broadcastMultisigTx:L_({chain:y,prefix:H}),buildAminoMsg:MT,buildEncodedTxBody:Zn,convertToSignable:yf,createDefaultAminoTypes:()=>ey(y),createDefaultRegistry:Qf,createMultisig:s1,createTransaction:fo,deposit:w,getFees:M,importSignature:M_,parseAminoMessageForDirectSigning:ff,pubkeyToAddress:async(Q)=>{let{pubkeyToAddress:O}=(await import("@cosmjs/amino")).default;return O(Q,H)},secp256k1HdWalletFromMnemonic:Q_({derivationPath:A_(_),prefix:H}),signAndBroadcastTransaction:W,signMultisigTx:Z_(y),signTransaction:N,signWithPrivateKey:Y_,transfer:w}}var Wo=P(()=>{no();Jn();YT()});import{Chain as Yn,SwapKitError as B_}from"@swapkit/helpers";var z_=(y,n)=>{switch(y){case Yn.Cosmos:case Yn.Kujira:case Yn.Noble:return Mn({chain:y,...n});case Yn.Maya:case Yn.THORChain:return Go({chain:y,...n});default:throw new B_("toolbox_cosmos_not_supported",{chain:y})}};var e1=P(()=>{YT();Wo();YT();Wo()});var BT={};ny(BT,{verifySignature:()=>m1,transferMsgAmino:()=>e0,toBase64:()=>t2,parseAminoMessageForDirectSigning:()=>ff,getSignerFromPrivateKey:()=>f_,getSignerFromPhrase:()=>_o,getMsgSendDenom:()=>sy,getFeeRateFromSwapKit:()=>n_,getDenomWithChain:()=>Qn,getDefaultChainFee:()=>hy,getCosmosToolbox:()=>z_,getCosmosAddressValidator:()=>c1,getAssetFromDenom:()=>a0,fromBase64:()=>b2,fetchFeeRateFromSwapKit:()=>Ao,estimateTransactionFee:()=>T_,depositMsgAmino:()=>yo,createTransaction:()=>fo,createThorchainToolbox:()=>Go,createStargateClient:()=>my,createSigningStargateClient:()=>Xf,createOfflineStargateClient:()=>d0,createDefaultRegistry:()=>Qf,createDefaultAminoTypes:()=>ey,createCosmosToolbox:()=>Mn,cosmosCreateTransaction:()=>r0,convertToSignable:()=>yf,buildTransferTx:()=>$1,buildEncodedTxBody:()=>Zn,buildDepositTx:()=>I1,buildAminoMsg:()=>MT,bech32ToBase64:()=>Wn,base64ToBech32:()=>Xn,YUM_KUJIRA_FACTORY_DENOM:()=>O1,USK_KUJIRA_FACTORY_DENOM:()=>i0,THORCHAIN_GAS_VALUE:()=>c2,MAYA_GAS_VALUE:()=>g2,DEFAULT_NOBLE_FEE_MAINNET:()=>R1,DEFAULT_KUJI_FEE_MAINNET:()=>D1,DEFAULT_COSMOS_FEE_MAINNET:()=>w1});var zT=P(()=>{no();e1();Jn()});function N_({builder:y,grouping:n="na",orders:o}){return{builder:y,grouping:n,orders:o,type:"order"}}function O_({cancels:y}){return{cancels:y,type:"cancel"}}function w_({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function D_({oid:y,order:n}){return{oid:y,order:n,type:"modify"}}function R_({modifies:y}){return{modifies:y,type:"batchModify"}}function k_({asset:y,isCross:n,leverage:o}){return{asset:y,isCross:n,leverage:o,type:"updateLeverage"}}function S_({asset:y,isBuy:n,ntli:o}){return{asset:y,isBuy:n,ntli:o,type:"updateIsolatedMargin"}}function F_({asset:y,leverage:n}){return{asset:y,leverage:n,type:"topUpIsolatedOnlyMargin"}}function x_({time:y}){return{time:y,type:"scheduleCancel"}}function l_({amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T}){return{amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T,type:"usdClassTransfer"}}function $_({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 I_({agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T}){return{agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T,type:"approveAgent"}}function P_({builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T}){return{builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T,type:"approveBuilderFee"}}function p_({hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,validator:T,wei:C}){return{hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,type:"tokenDelegate",validator:T,wei:C}}import{SwapKitError as Xo}from"@swapkit/helpers";import{keccak256 as E_,Signature as V_}from"ethers";function Zy(...y){let n=y.reduce((T,C)=>T+C.length,0),o=new Uint8Array(n),f=0;for(let T of y)o.set(T,f),f+=T.length;return o}function K_(y,n,o){if(o<n)return new Uint8Array([y+o]);if(o<=255)return new Uint8Array([y+n,o]);if(o<=65535)return new Uint8Array([y+n+1,o>>8,o&255]);return new Uint8Array([y+n+2,o>>>24&255,o>>>16&255,o>>>8&255,o&255])}function nf(y,n){let o=new Uint8Array(n),f=y;for(let T=n-1;T>=0;T-=1)o[T]=Number(f&0xffn),f>>=8n;return o}function yH(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return Zy(new Uint8Array([205]),nf(y,2));if(y<=0xffffffffn)return Zy(new Uint8Array([206]),nf(y,4));return Zy(new Uint8Array([207]),nf(y,8))}if(y>=-32n)return new Uint8Array([256+Number(y)]);if(y>=-128n)return new Uint8Array([208,256+Number(y)]);if(y>=-32768n)return Zy(new Uint8Array([209]),nf(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return Zy(new Uint8Array([210]),nf(BigInt.asUintN(32,y),4));return Zy(new Uint8Array([211]),nf(BigInt.asUintN(64,y),8))}function TH(y){let n=j_.encode(y);if(n.length<32)return Zy(new Uint8Array([160+n.length]),n);return Zy(K_(217,0,n.length),n)}function h_(y){let n=y.map((f)=>Qo(f)),o=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Zy(o,...n)}function m_(y){let n=Object.entries(y).filter(([,f])=>typeof f<"u"),o=n.length<16?new Uint8Array([128+n.length]):n.length<=65535?new Uint8Array([222,n.length>>8,n.length&255]):new Uint8Array([223,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return Zy(o,...n.flatMap(([f,T])=>[TH(f),Qo(T)]))}function Qo(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return TH(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new Xo("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return yH(BigInt(y))}if(typeof y==="bigint")return yH(y);if(y instanceof Uint8Array){let n=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Zy(n,y)}if(Array.isArray(y))return h_(y);if(typeof y==="object")return m_(y);throw new Xo("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function c_(y){let n=y.startsWith("0x")?y.slice(2):y;if(n.length%2!==0||/[^a-fA-F0-9]/u.test(n))throw new Xo("helpers_invalid_params",{hexValue:y});let o=new Uint8Array(n.length/2);for(let f=0;f<n.length;f+=2)o[f/2]=Number.parseInt(n.slice(f,f+2),16);return o}function oH(y){return{domain:t_,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...b_.Agent]}}}function CH(y){let n=u_[y.type],o=v_[y.type],{type:f,...T}=y;return{domain:{chainId:Number.parseInt(T.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:fH,version:"1"},message:{...T,hyperliquidChain:T.hyperliquidChain||nH},primaryType:n,types:{[n]:o}}}function HH(y){let n=V_.from(y);return{r:n.r,s:n.s,v:n.v}}function UH(y,n,{expiresAfter:o,vaultAddress:f}={}){let T=Qo(y),C=nf(BigInt(n),8),H=f?Zy(new Uint8Array([1]),c_(f.toLowerCase())):new Uint8Array([0]),U=typeof o==="number"?Zy(new Uint8Array([0]),nf(BigInt(o),8)):new Uint8Array;return E_(Zy(T,C,H,U))}function _H(y){let n=y.hyperliquidChain||nH;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:n};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:n};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:n};case"tokenDelegate":return{...y,hyperliquidChain:n,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:n};default:return y}}var fH="0x0000000000000000000000000000000000000000",t_,b_,nH="Mainnet",v_,u_,j_;var AH=P(()=>{t_={chainId:1337,name:"Exchange",verifyingContract:fH,version:"1"},b_={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"}]},u_={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},j_=new TextEncoder});import{AssetValue as Lo,Chain as g_,derivationPathToString as i_,getChainConfig as WH,getRPCUrl as d_,NetworkDerivationPath as r_,RequestClient as If,SwapKitError as Pf,updateDerivationPath as a_}from"@swapkit/helpers";import{HDNodeWallet as s_}from"ethers";import{match as e_,P as Jo}from"ts-pattern";function Ry(y,n){if(!Yo(y))throw new Pf(n,{address:y});return y.toLowerCase()}async function Zf(y){let n=await NT();return If.post(`${n}/info`,{json:y})}function H8({dex:y,user:n}){return Zf({...y?{dex:y}:{},type:"clearinghouseState",user:Ry(n,"helpers_invalid_params")})}function U8({user:y}){return Zf({type:"spotClearinghouseState",user:Ry(y,"helpers_invalid_params")})}function _8({dex:y,user:n}){return Zf({...y?{dex:y}:{},type:"openOrders",user:Ry(n,"helpers_invalid_params")})}function A8({dex:y,user:n}){return Zf({...y?{dex:y}:{},type:"frontendOpenOrders",user:Ry(n,"helpers_invalid_params")})}function q8({oidOrCloid:y,user:n}){return Zf({oid:y,type:"orderStatus",user:Ry(n,"helpers_invalid_params")})}function G8({aggregateByTime:y,user:n}){return Zf({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:Ry(n,"helpers_invalid_params")})}function W8({aggregateByTime:y,endTime:n,startTime:o,user:f}){return Zf({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof n==="number"?{endTime:n}:{},startTime:o,type:"userFillsByTime",user:Ry(f,"helpers_invalid_params")})}function qH({coin:y,token:n,value:o,spotMeta:f}){if(!o||Number(o)<=0)return null;let T=y?.toUpperCase()||`TOKEN-${n||"UNKNOWN"}`,C=y8[T]||XH,H=f?.tokens?.find((_)=>_.name===y||n!==void 0&&_.index===Number(n)),U=H?`${Ey}.${T}-${H.name}:${H.tokenId}`:`${Ey}.${T}`;return new Lo({decimal:C,identifier:U,value:o})}function X8(y){let n=new Map;for(let o of y){let f=o.toString({includeSynthProtocol:!0}),T=n.get(f);n.set(f,T?T.add(o):o)}if(![...n.values()].some((o)=>o.isGasAsset||o.ticker==="HYPE")){let o=Lo.from({chain:Ey,value:0});n.set(o.toString({includeSynthProtocol:!0}),o)}return[...n.values()]}async function NT(){try{return await d_(Ey)}catch{let[y]=WH(Ey).rpcUrls;if(!y)throw new Pf("helpers_chain_no_public_or_set_rpc_url",{chain:Ey});return y}}async function Mo(){return`${await NT()}/exchange`}function Q8(y){let n=C8[y.type],{type:o,...f}=y,T=o8[o];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:T8,version:"1"},message:f,primaryType:n,types:{[n]:T}}}async function QH({action:y,expiresAfter:n,nonce:o,vaultAddress:f}){let T=o||Date.now(),C=f?Ry(f,"helpers_invalid_params"):void 0,H=await Mo(),U=UH(y,T,{expiresAfter:n,vaultAddress:C});return{action:y,endpoint:H,expiresAfter:n,nonce:T,typedData:oH(U),vaultAddress:C}}async function JH({action:y,nonce:n,signatureChainId:o}){let f=n||y.nonce||Date.now(),T=o||y.signatureChainId||"0xa4b1",C=_H({...y,nonce:f,signatureChainId:T});return{action:C,endpoint:await Mo(),nonce:f,typedData:CH(C)}}async function Zo({assetValue:y,recipient:n,sender:o,signatureChainId:f,time:T}){let C=Ry(n,"core_transaction_invalid_recipient_address"),H=Ry(o,"core_transaction_invalid_sender_address"),U=await Mo(),_=y.getValue("string"),A=T||Date.now(),J=y.address;if(!J)throw new Pf("helpers_invalid_params",{asset:y.toString(),from:H});let L={amount:_,destination:C,hyperliquidChain:f8,signatureChainId:f||n8,time:A,token:J,type:"spotSend"};return{action:L,endpoint:U,nonce:A,typedData:Q8(L)}}async function GH(y){let n=await If.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(n.status!=="ok")throw new Pf("core_transaction_failed",{response:n});return n}async function J8(y,n){let o=await NT(),f=n-5000;for(let T=0;T<5;T++){if(T>0)await new Promise((C)=>setTimeout(C,1000));try{let C=await If.post(`${o}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),H=Array.isArray(C)?C.find((U)=>U.time&&U.time>=n&&(U.delta?.type==="spotTransfer"||U.delta?.type==="internalTransfer")):void 0;if(H?.hash)return H.hash}catch{}}return""}function Yo(y){return y.startsWith("0x")&&_n(y)}function Z8(y){let n=Qy(Ey),o=y&&"index"in y?y.index||0:0,f=i_(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:a_(r_[Ey],{index:o})),T,C=!1;function H(){if(C)return T;return T=e_(y).with({phrase:Jo.string},({phrase:G})=>{return s_.fromPhrase(G,void 0,f)}).with({signer:Jo.not(Jo.nullish)},({signer:G})=>G).otherwise(()=>{return}),C=!0,T}async function U(){let G=H();return G?await G.getAddress():""}async function _(G){let q=H();if(!q)throw new Pf("toolbox_hypercore_no_signer");let W=await q.signTypedData(G.typedData.domain,G.typedData.types,G.typedData.message);return{action:G.action,endpoint:G.endpoint,nonce:G.nonce,signature:HH(W),..."expiresAfter"in G?{expiresAfter:G.expiresAfter}:{},..."vaultAddress"in G?{vaultAddress:G.vaultAddress}:{}}}async function A(G){let q=Ry(G,"helpers_invalid_params");try{let W=await NT(),[M,w,N]=await Promise.all([If.post(`${W}/info`,{json:{type:"spotClearinghouseState",user:q}}),If.post(`${W}/info`,{json:{type:"clearinghouseState",user:q}}),If.post(`${W}/info`,{json:{type:"spotMeta"}})]),Q=(M.spotState?.balances||M.balances||[]).map(({coin:B,token:Y,total:X})=>qH({coin:B,spotMeta:N,token:Y,value:X})).filter((B)=>!!B),O=qH({coin:"USDC",spotMeta:N,value:w.withdrawable||w.marginSummary?.accountValue||w.marginSummary?.totalRawUsd});return X8(O?[...Q,O]:Q)}catch{return n(q)}}async function J(G){let q=H();if(!q)throw new Pf("toolbox_hypercore_no_signer");let W=G.sender||await q.getAddress(),M=await Zo({...G,feeRate:0,sender:W}),w=await _(M);return await GH(w),J8(W,M.nonce)}function L(){return Lo.from({chain:Ey,value:0})}return{broadcastTransaction:GH,createL1ActionRequest:QH,createTransaction:Zo,createUserSignedActionRequest:JH,estimateTransactionFee:L,getAddress:U,getBalance:A,getState:{clearinghouse:H8,frontendOpenOrders:A8,openOrders:_8,orderStatus:q8,spotClearinghouse:U8,userFills:G8,userFillsByTime:W8},signTransaction:_,transfer:J,validateAddress:Yo}}var Ey,XH,y8,f8="Mainnet",n8="0xa4b1",T8="0x0000000000000000000000000000000000000000",o8,C8;var ZH=P(()=>{b0();jy();AH();Ey=g_.Hype,{baseDecimal:XH}=WH(Ey),y8={HYPE:XH,USDC:6,USDT:6},o8={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},C8={spotSend:"HyperliquidTransaction:SpotSend"}});var Bo={};ny(Bo,{validateHyperCoreAddress:()=>Yo,getHyperCoreToolbox:()=>Z8,createUserSignedActionRequest:()=>JH,createTransaction:()=>Zo,createL1ActionRequest:()=>QH,buildUsdClassTransferAction:()=>l_,buildUpdateLeverageAction:()=>k_,buildUpdateIsolatedMarginAction:()=>S_,buildTopUpIsolatedOnlyMarginAction:()=>F_,buildTokenDelegateAction:()=>p_,buildSendAssetAction:()=>$_,buildScheduleCancelAction:()=>x_,buildOrderAction:()=>N_,buildModifyAction:()=>D_,buildCancelByCloidAction:()=>w_,buildCancelAction:()=>O_,buildBatchModifyAction:()=>R_,buildApproveBuilderFeeAction:()=>P_,buildApproveAgentAction:()=>I_});var zo=P(()=>{ZH()});import{PublicKey as Tf}from"@solana/web3.js";import{AssetValue as OT,Chain as gy,DerivationPath as L8,derivationPathToString as M8,getChainConfig as BH,getRPCUrl as Y8,NetworkDerivationPath as B8,SwapKitError as pf,updateDerivationPath as z8}from"@swapkit/helpers";import{match as N8,P as LH}from"ts-pattern";async function zH(y){let n=OT.from({address:y,chain:gy.Solana});if(n.symbol!=="UNKNOWN")return{decimals:n.decimal||0,id:y,logoURI:n.getIconUrl(),name:n.symbol,symbol:n.ticker};let o=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(o);if(!f.ok)return null;let T=await f.json();if(!Array.isArray(T)||T.length===0)return null;return T.find((H)=>H.id===y)||null}catch{return null}}async function O8(y){let n=await cy(),{PublicKey:o}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),T=new o(y),{baseDecimal:C}=BH(gy.Solana),H=await n.getBalance(T),U=[OT.from({chain:gy.Solana,fromBaseDecimal:C,value:H||0})],_=await n.getParsedTokenAccountsByOwner(T,{programId:f});for(let{account:A}of _.value){let J=A.data.parsed.info,L=J.mint,G=J.tokenAmount.amount;if(Number(G)===0)continue;let q=await zH(L),W=q?.symbol||"UNKNOWN",M=q?.decimals||J.tokenAmount.decimals;U.push(OT.from({asset:`${gy.Solana}.${W}-${L}`,fromBaseDecimal:M,value:G}))}return U}function Oo(y){try{let n=new Tf(y);return Tf.isOnCurve(n.toBytes())}catch{return!1}}function w8(y){let n=y&&"index"in y?y.index||0:0,o=M8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:z8(B8[gy.Solana],{index:n})),f;async function T(){if(f)return f;return f=await N8(y).with({phrase:LH.string},({phrase:H})=>No({derivationPath:o,phrase:H})).with({signer:LH.any},({signer:H})=>H).otherwise(()=>{return}),f}async function C(){let H=await T();return H?.publicKey?YH(H.publicKey):""}return{broadcastTransaction:wT(cy),createKeysForPath:No,createTransaction:wo(cy),createTransactionFromInstructions:S8,estimateTransactionFee:D8(cy),getAddress:C,getAddressFromPubKey:YH,getBalance:Qy(gy.Solana),getBalanceFromRPC:O8,getConnection:cy,getPubkeyFromAddress:(H)=>new Tf(H),signAndBroadcastTransaction:async(H)=>{let U=await MH(cy,T)(H);return wT(cy)(U)},signTransaction:MH(cy,T),transfer:F8(cy,T),validateAddress:Oo}}function D8(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let H=await y(),_=(await wo(y)({assetValue:o,isProgramDerivedAddress:T,memo:f,recipient:n,sender:C})).compileMessage(),A=await H.getFeeForMessage(_);if(A.value===null)throw new pf("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:J}=BH(gy.Solana);return OT.from({chain:gy.Solana,fromBaseDecimal:J,value:A.value})}}async function cy(){let{Connection:y}=await import("@solana/web3.js"),n=await Y8(gy.Solana);return new y(n,{commitment:"confirmed",fetchMiddleware:(o,f,T)=>{let C={};for(let[H,U]of Object.entries(f?.headers??{})){let _=H.toLowerCase();if(_!=="pragma"&&_!=="solana-client")C[H]=U}T(o,{...f,headers:C})}})}function R8(y){return async({assetValue:n,recipient:o,sender:f,isProgramDerivedAddress:T})=>{let C=await y(),H=new Tf(f);if(n.isGasAsset){let{Transaction:U,SystemProgram:_}=await import("@solana/web3.js");return new U().add(_.transfer({fromPubkey:H,lamports:n.getBaseValue("number"),toPubkey:new Tf(o)}))}if(n.address)return k8({amount:n.getBaseValue("number"),connection:C,decimals:n.decimal,from:H,isProgramDerivedAddress:T,recipient:o,tokenAddress:n.address});return}}async function k8({tokenAddress:y,recipient:n,from:o,connection:f,amount:T,decimals:C,isProgramDerivedAddress:H}){let{getAssociatedTokenAddress:U,getAccount:_,createAssociatedTokenAccountInstruction:A,createTransferCheckedInstruction:J}=await import("@solana/spl-token"),{Transaction:L}=await import("@solana/web3.js"),G=new L,q=new Tf(y),W=await U(q,o),M=new Tf(n),w=await U(q,M,H),N=!1;try{await _(f,w),N=!0}catch{}if(!N)G.add(A(o,w,M,q));return G.add(J(W,q,w,o,T,C)),G}function wo(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let{createMemoInstruction:H}=await import("@solana/spl-memo"),U=new Tf(C);if(!(T||Oo(n)))throw new pf("core_transaction_invalid_recipient_address");let _=await y(),A=await R8(y)({assetValue:o,isProgramDerivedAddress:T,recipient:n,sender:C});if(!A)throw new pf("core_transaction_invalid_sender_address");if(f)A.add(H(f));let J=await _.getLatestBlockhash();return A.recentBlockhash=J.blockhash,A.feePayer=U,A}}async function S8({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 F8(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=L8.SOL}){let{HDKey:o}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:T}=await import("@solana/web3.js"),C=f(y),H=o.fromMasterSeed(C);return T.fromSeed(H.derive(n,!0).privateKey)}function YH(y){return y.toString()}var NH=P(()=>{jy()});var Do={};ny(Do,{validateSolanaAddress:()=>Oo,getSolanaToolbox:()=>w8,fetchTokenMetaData:()=>zH,createKeysForPath:()=>No});var Ro=P(()=>{NH()});import{AssetValue as DT,Chain as RT,DerivationPath as wH,derivationPathToString as x8,getChainConfig as l8,getRPCUrl as Fo,NetworkDerivationPath as $8,SwapKitError as Ny,updateDerivationPath as I8}from"@swapkit/helpers";import{match as ko,P as Ef}from"ts-pattern";function kT(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function ST({phrase:y,derivationPath:n=wH.STRK}){let{HDKey:o}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:T,hash:C,encode:H,CallData:U}=await import("starknet"),_=f(y),J=o.fromMasterSeed(_).derive(n);if(!J.privateKey)throw new Ny("toolbox_starknet_no_signer");let L=H.addHexPrefix(Buffer.from(J.privateKey).toString("hex")),G=T.starkCurve.grindKey(L),q=H.addHexPrefix(G),W=T.starkCurve.getStarkKey(q),M=U.compile([W,0]);return{address:C.calculateContractAddressFromHash(W,xo,M,0),privateKey:q,publicKey:W}}async function lo({phrase:y,derivationPath:n=wH.STRK}){let{Account:o,RpcProvider:f}=await import("starknet"),{privateKey:T,address:C}=await ST({derivationPath:n,phrase:y}),H=await Fo(RT.Starknet),U=new f({nodeUrl:H});return new o({address:C,provider:U,signer:T})}function DH(y){let n=RT.Starknet,o=y&&"index"in y?y.index||0:0,f=x8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:I8($8[n],{index:o})),T,C,H;async function U(){if(C)return C;let{RpcProvider:Y}=await import("starknet"),X=await Fo(n);return C=new Y({nodeUrl:X}),C}async function _(Y){let X=await U(),Z=Y||await G();if(!Z)return!1;try{return await X.getClassHashAt(Z),!0}catch(D){if(D instanceof Error&&D.message.includes("Contract not found"))return!1;let k=D;if(k?.code===20||k?.code===19)return!1;throw D}}async function A(){let{CallData:Y,hash:X}=await import("starknet"),Z=await U(),D=await L();if(!D)throw new Ny("toolbox_starknet_no_signer");if(!H)throw new Ny({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await _())return D.address;let R=Y.compile([H,0]);if(X.calculateContractAddressFromHash(H,xo,R,0).toLowerCase()!==D.address.toLowerCase())throw new Ny({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let x={addressSalt:H,classHash:xo,constructorCalldata:R},{transaction_hash:z}=await D.deployAccount(x);return await Z.waitForTransaction(z),z}async function J(){if(!await _()){if(!H)throw new Ny({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await A()}}async function L(){if(T)return T;return T=await ko(y).with({phrase:Ef.string},async({phrase:Y})=>{let{Account:X,RpcProvider:Z}=await import("starknet"),{privateKey:D,address:k,publicKey:R}=await ST({derivationPath:f,phrase:Y});H=R;let S=await Fo(RT.Starknet),x=new Z({nodeUrl:S});return new X({address:k,provider:x,signer:D})}).with({address:Ef.string,privateKey:Ef.string},async({privateKey:Y,address:X})=>{let{Account:Z}=await import("starknet"),D=await U();return new Z({address:X,provider:D,signer:Y})}).with({signer:Ef.instanceOf(Object)},({signer:Y})=>Y).otherwise(()=>{return}),T}async function G(){return(await L())?.address??""}async function q(Y){let X=await U(),{uint256:Z,CallData:D}=await import("starknet"),k=[],R=[So,OH];for(let S of R)try{let[x="0",z="0"]=await X.callContract({calldata:D.compile({account:Y}),contractAddress:S,entrypoint:"balanceOf"}),F=Z.uint256ToBN({high:x,low:z});ko(S).with(So,()=>{k.push(DT.from({chain:n,value:F}))}).with(OH,()=>{if(F>0n)k.push(DT.from({asset:`${n}.ETH-${S}`,value:F}))}).otherwise(()=>{})}catch{}return k}async function W({recipient:Y,assetValue:X}){let{CallData:Z,uint256:D}=await import("starknet");if(!kT(Y))throw new Ny("core_transaction_invalid_recipient_address",{address:Y});let k=X.isGasAsset?So:X.address;if(!k)throw new Ny("toolbox_starknet_invalid_address",{address:k,assetValue:X});let R=D.bnToUint256(X.getBaseValue("bigint"));return[{calldata:Z.compile([Y,R]),contractAddress:k,entrypoint:"transfer"}]}async function M({recipient:Y,assetValue:X,sender:Z}){let{baseDecimal:D}=l8(RT.Starknet),k=await L(),R=await ko({sender:Z,signer:k}).with({sender:Ef.string},async({sender:S})=>{let{Account:x}=await import("starknet"),z=await U();return new x({address:S,provider:z,signer:"0x0"})}).with({signer:Ef.nonNullable},({signer:S})=>S).otherwise((S)=>{throw new Ny({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:S}})});try{let S=await W({assetValue:X,recipient:Y}),x=await R.estimateInvokeFee(S);if(x?.overall_fee)return DT.from({chain:n,fromBaseDecimal:D,value:x.overall_fee})}catch(S){throw new Ny("toolbox_starknet_fee_estimation_failed",S)}return DT.from({chain:n,value:"0.00001"})}async function w({recipient:Y,assetValue:X,memo:Z}){let D=await L();if(!D)throw new Ny("toolbox_starknet_no_signer");await J();let k=await W({assetValue:X,memo:Z,recipient:Y});return(await D.execute(k)).transaction_hash}async function N(Y){let X=await L();if(!X)throw new Ny("toolbox_starknet_no_signer");let Z=await X.signMessage(Y);return Array.isArray(Z)?Z:[Z.r.toString(),Z.s.toString()]}async function Q(Y){let X=await L();if(!X)throw new Ny("toolbox_starknet_no_signer");return await J(),(await X.execute(Y)).transaction_hash}function O(Y){return Q(Y)}function B(Y,X=!0){try{return Qy(n)(Y,X)}catch{return q(Y)}}return{broadcastTransaction:Q,createKeysForPath:lo,createTransaction:W,deployAccount:A,estimateTransactionFee:M,getAddress:G,getBalance:B,getProvider:U,isAccountDeployed:_,signAndBroadcastTransaction:O,signMessage:N,transfer:w,validateAddress:kT}}var So="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",OH="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",xo="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var RH=P(()=>{jy()});var FT={};ny(FT,{validateStarknetAddress:()=>kT,starknetCreateKeysForPath:()=>lo,getStarknetToolbox:()=>DH,deriveStarknetKeys:()=>ST});var xT=P(()=>{RH()});import{isValidSuiAddress as P8}from"@mysten/sui/utils";import{AssetValue as Vf,Chain as lT,getChainConfig as p8,SwapKitError as ky}from"@swapkit/helpers";import{match as E8,P as kH}from"ts-pattern";async function FH(y,n,o,f=[],T){let C=await y.getCoins({coinType:o,cursor:T,owner:n}),H=[...f,...C.data];return C.hasNextPage?FH(y,n,o,H,C.nextCursor):H}function V8(y,n,o){let f=n.reduce((_,A)=>_+BigInt(A.balance),0n);if(f<o)throw new ky("toolbox_sui_insufficient_balance",{available:f.toString(),required:o.toString()});let{ids:T}=n.reduce((_,A)=>{if(_.total>=o)return _;return{ids:[..._.ids,A.coinObjectId],total:_.total+BigInt(A.balance)}},{ids:[],total:0n}),C=T[0],H=T.slice(1);if(H.length>0)y.mergeCoins(C,H);let[U]=y.splitCoins(C,[o]);return U}function xH(y){try{return P8(y)}catch{return!1}}function SH(y){return"signWithIntent"in y}function t8({provider:y,...n}={}){let o;async function f(){if(o)return o;return o=await E8(n).with({phrase:kH.string},async({phrase:W})=>{let{Ed25519Keypair:M}=await import("@mysten/sui/keypairs/ed25519");return M.deriveKeypair(W)}).with({signer:kH.any},({signer:W})=>W).otherwise(()=>{return}),o}async function T(W=y){let{SuiClient:M,getFullnodeUrl:w}=await import("@mysten/sui/client");return new M({url:W||w("mainnet")})}async function C(){return(await f())?.toSuiAddress()||""}function H(W){try{let M=Vf.from({address:W,chain:lT.Sui});return{asset:M.toString(),decimals:M.decimal}}catch{}return null}async function U(W){let M=W||await C();if(!M)throw new ky("toolbox_sui_address_required");let{baseDecimal:w,chain:N}=p8(lT.Sui);try{let Q=await T(),{totalBalance:O}=await Q.getBalance({owner:M}),B=[Vf.from({chain:N,fromBaseDecimal:w,value:O})],Y=await Q.getAllBalances({owner:M});for(let{coinType:X,totalBalance:Z}of Y){if(X==="0x2::sui::SUI"||Number(Z)<=0)continue;let D=H(X);if(D)B.push(Vf.from({asset:D.asset,fromBaseDecimal:D.decimals,value:Z}))}return B}catch{return[Vf.from({chain:N})]}}async function _(W){let M=Vf.from({chain:lT.Sui,value:"0.01"});if(!W)return M;try{let w=await T(),{txBytes:N}=await A(W),{effects:{status:Q,gasUsed:O}}=await w.dryRunTransactionBlock({transactionBlock:N});if(Q.status!=="success")return M;let B=Number(O.computationCost)+Number(O.storageCost)-Number(O.storageRebate);return Vf.from({chain:lT.Sui,value:B.toString()})}catch{return M}}async function A({recipient:W,assetValue:M,gasBudget:w,sender:N}){let{Transaction:Q}=await import("@mysten/sui/transactions"),O=N||await C();if(!O)throw new ky("toolbox_sui_no_sender");try{let B=new Q;if(B.setSender(O),M.isGasAsset||M.symbol==="SUI"){let[Z]=B.splitCoins(B.gas,[M.getBaseValue("string")]);B.transferObjects([Z],W)}else{let Z=M.address;if(!Z)throw new ky("toolbox_sui_missing_coin_type");let D=await T(),k=M.getBaseValue("bigint"),R=await FH(D,O,Z);if(!R.length)throw new ky("toolbox_sui_no_coins_found",{coinType:Z});let S=V8(B,R,k);B.transferObjects([S],W)}if(w)B.setGasBudget(w);let Y=await T(),X=await B.build({client:Y});return{tx:B,txBytes:X}}catch(B){if(B instanceof ky)throw B;throw new ky("toolbox_sui_transaction_creation_error",{error:B})}}async function J(W){let M=await f();if(!M)throw new ky("toolbox_sui_no_signer");if(W instanceof Uint8Array)return M.signTransaction(W);let{txBytes:w}="tx"in W?W:await A(W);return M.signTransaction(w)}async function L({assetValue:W,gasBudget:M,recipient:w}){let N=await f();if(!N)throw new ky("toolbox_sui_no_signer");let Q=N.toSuiAddress()||await C();if(!Q)throw new ky("toolbox_sui_no_sender");let{txBytes:O}=await A({assetValue:W,gasBudget:M,recipient:w,sender:Q}),B=await T();if(!SH(N)){let X=await N.signTransaction(O),{digest:Z}=await B.executeTransactionBlock({signature:X.signature,transactionBlock:X.bytes});return Z}let{digest:Y}=await B.signAndExecuteTransaction({signer:N,transaction:O});return Y}async function G(W){let M=await T(),{digest:w}=await M.executeTransactionBlock({signature:W.signature,transactionBlock:W.bytes});return w}async function q(W){let M=await f();if(!M)throw new ky("toolbox_sui_no_signer");let w=await T(),N;if(typeof W==="string")N=Uint8Array.from(Buffer.from(W,"base64"));else if(W instanceof Uint8Array)N=W;else N=await W.build({client:w});if(!SH(M)){let O=await M.signTransaction(N),{digest:B}=await w.executeTransactionBlock({signature:O.signature,transactionBlock:O.bytes});return B}let{digest:Q}=await w.signAndExecuteTransaction({signer:M,transaction:N});return Q}return{broadcastTransaction:G,createTransaction:A,estimateTransactionFee:_,getAddress:C,getBalance:U,signAndBroadcastTransaction:q,signTransaction:J,transfer:L,validateAddress:xH}}var lH=()=>{};var $T={};ny($T,{validateSuiAddress:()=>xH,getSuiToolbox:()=>t8});var IT=P(()=>{lH()});import{getHttpEndpoint as b8}from"@orbs-network/ton-access";import{AssetValue as v8,Chain as zn,getChainConfig as u8,getRPCUrl as j8,SwapKitError as Bn,SwapKitNumber as K8}from"@swapkit/helpers";import{mnemonicToWalletKey as h8}from"@ton/crypto";import{Address as iy,beginCell as $o,Cell as $H,external as m8,internal as c8,JettonMaster as g8,loadStateInit as i8,SendMode as IH,storeMessage as d8,TonClient as r8,toNano as VH,WalletContractV4 as a8}from"@ton/ton";import{match as PH,P as Io}from"ts-pattern";async function nA(){let y=Date.now();if(PT&&y-EH<fA)return PT;try{return PT=await b8(),EH=y,PT}catch{return j8(zn.Ton)}}function TA(y={}){let n,o,f;async function T(){if(!n){let B=y.provider??await nA();n=new r8({endpoint:B})}return n}async function C(){return(await U()).address.toString()}async function H(){if(f)return f;return f=await PH(y).with({phrase:Io.string},async({phrase:B})=>h8(B.split(" "))).with({signer:Io.any},({signer:B})=>B).otherwise(()=>{return}),f}async function U(B){if(!o||B){let Y=await H(),X=await T(),Z=B||Y;if(!Z)throw new Bn("core_wallet_connection_not_found");let D=a8.create({publicKey:Z.publicKey,workchain:0});o=X.open(D)}return o}let _=Qy(zn.Ton);async function A({assetValue:B,recipient:Y,memo:X,sender:Z}){if(B.isGasAsset){let V=X?O(X).toBoc().toString("base64"):void 0;return[{address:Y,amount:B.getBaseValue("string"),payload:V}]}let D=B.address;if(!D)throw new Bn({errorKey:"core_swap_contract_not_found",info:{asset:B.toString()}});let k=Z??await C(),R=await N({jettonMasterAddress:D,ownerAddress:k}),S=iy.parse(Y),x=iy.parse(k),z=B.getBaseValue("bigint"),F=X?O(X):void 0,l=Q({destinationAddress:S,forwardPayload:F,jettonAmount:z,responseAddress:x});return[{address:R.toString(),amount:yA.toString(),payload:l.toBoc().toString("base64")}]}function J({sender:B,...Y}){return A({...Y,sender:B})}function L(B){return B.map((Y)=>{let X=Y.payload?$H.fromBase64(Y.payload):void 0,Z=Y.stateInit?i8($H.fromBase64(Y.stateInit).asSlice()):void 0,D=iy.parse(Y.address),k=iy.isFriendly(Y.address)?iy.parseFriendly(Y.address).isBounceable:!0;return c8({body:X,bounce:k,init:Z,to:D,value:BigInt(Y.amount)})})}async function G(B){let Y=await H(),X=await U();if(!X||!Y)throw new Bn("core_wallet_connection_not_found");let Z=await T(),{state:D}=await Z.getContractState(X.address),k=D==="active",R=k?await X.getSeqno():0,S=X.createTransfer({messages:L(B),secretKey:Y.secretKey,sendMode:pH,seqno:R}),x=m8({body:S,init:k?void 0:X.init,to:X.address});return $o().store(d8(x)).endCell()}async function q(B){return await(await T()).sendFile(B.toBoc()),B.hash().toString("hex")}async function W(B){let Y=await G(B);return q(Y)}async function M({assetValue:B,recipient:Y,memo:X}){let Z=await J({assetValue:B,memo:X,recipient:Y});return W(Z)}async function w({sender:B,...Y}){let{baseDecimal:X}=u8(zn.Ton),Z=await PH(B).with(Io.string,(R)=>{return iy.parseFriendly(R).address}).otherwise(async()=>{return(await U()).address});if(!Z)throw new Bn("toolbox_fee_estimation_failed",{chain:zn.Ton});let D=v8.from({chain:zn.Ton,value:"0.01"}),k=await T();try{let R=await J({sender:B,...Y}),S=await H(),x=await U();if(!x||!S)return D;let z=await x.getSeqno(),F=x.createTransfer({messages:L(R),secretKey:S.secretKey,sendMode:pH,seqno:z}),{source_fees:l}=await k.estimateExternalMessageFee(Z,{body:F,ignoreSignature:!0,initCode:null,initData:null}),V=l.in_fwd_fee+l.storage_fee+l.gas_fee+l.fwd_fee;return D.set(K8.fromBigInt(BigInt(V),X))}catch{return D}}async function N({jettonMasterAddress:B,ownerAddress:Y}){try{let X=await T(),Z=iy.parse(B),D=iy.parse(Y);return await X.open(g8.create(Z)).getWalletAddress(D)}catch{throw new Bn({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:B,ownerAddress:Y}})}}function Q({jettonAmount:B,destinationAddress:Y,responseAddress:X,forwardAmount:Z=e8,forwardPayload:D}){let k=$o().storeUint(s8,32).storeUint(0,64).storeCoins(B).storeAddress(Y).storeAddress(X).storeBit(0).storeCoins(Z);if(D)k.storeBit(1).storeRef(D);else k.storeBit(0);return k.endCell()}function O(B){return $o().storeUint(0,32).storeStringTail(B).endCell()}return{broadcastTransaction:q,createTransaction:J,estimateTransactionFee:w,getAddress:C,getBalance:_,getJettonWalletAddress:N,sign:G,signAndBroadcastTransaction:W,transfer:M,validateAddress:tH}}function tH(y){try{return iy.parse(y),!0}catch{return!1}}var s8=260734629,e8,yA,pH,fA=60000,PT,EH=0;var bH=P(()=>{jy();e8=VH("0.01"),yA=VH("0.05"),pH=IH.PAY_GAS_SEPARATELY+IH.IGNORE_ERRORS});var pT={};ny(pT,{validateTonAddress:()=>tH,getTONToolbox:()=>TA});var ET=P(()=>{bH()});import{NetworkDerivationPath as oA}from"@swapkit/helpers";function Sy(y,n){if(!Number.isInteger(n)||n<0)throw RangeError(`${y} must be a non-negative integer, got: ${n}`)}function of({accountIndex:y,chain:n,derivationPath:o}){if(y!==void 0)Sy("accountIndex",y);let f=[...o?.slice(0,3)??oA[n].slice(0,3)];if(y!==void 0)f[2]=y;return f}function tf({accountIndex:y,change:n=!1,chain:o,derivationPath:f,index:T}){return Sy("index",T),[...of({accountIndex:y,chain:o,derivationPath:f}),Number(n),T]}function Lf(y){return y[2]??0}function vH({deriveAddress:y,getBalance:n,getUtxos:o}){async function f(U){let{accountIndex:_,count:A,startIndex:J=0,change:L=!1}=U;if(Sy("count",A),A<1)throw RangeError("count must be at least 1");Sy("startIndex",J);let G=[];for(let q=0;q<A;q++){let W=await y({accountIndex:_,change:L,index:J+q});if(W)G.push(W)}return G}async function T(U){let{gapLimit:_=20,change:A=!1}=U??{},J=[],L=0,G=0;while(L<_){let q=await y({change:A,index:G});if(!q)break;if((await n(q.address)).some((w)=>w.getValue("number")>0))J.push(q),L=0;else L++;G++}return J}async function C(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),J=[..._,...A],L=await Promise.all(J.map(async(q)=>{let M=(await n(q.address)).reduce((w,N)=>w+N.getValue("number"),0);return{...q,balance:M}})),G=L.reduce((q,W)=>q+W.balance,0);return{addresses:L,total:G}}async function H(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),J=[..._,...A];return(await Promise.all(J.map(async(G)=>{return(await o(G.address)).map((W)=>({...W,address:G.address,derivationIndex:G.index,isChange:G.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:C,getAggregatedUtxos:H,scanForAddresses:T}}var Nn=()=>{};import{Chain as Uy,getRPCUrl as CA,RequestClient as VT,SKConfig as HA,SwapKitError as Vy,warnOnce as UA}from"@swapkit/helpers";import{NETWORKS as bf}from"@swapkit/utxo-signer";async function _A({chain:y,txHash:n}){let o=`${On(y)}/push/transaction`,f=JSON.stringify({data:n});try{let T=await VT.post(o,{body:f,headers:{"Content-Type":"application/json"}});if(T.context.code!==200)throw new Vy("toolbox_utxo_broadcast_failed",{error:T.context.error||"Transaction broadcast failed"});return T.data?.transaction_hash||n}catch(T){let C=await CA(y);if(C){let H=JSON.stringify({id:VC(),jsonrpc:"2.0",method:"sendrawtransaction",params:[n]}),U=await VT.post(C,{body:H,headers:{"Content-Type":"application/json"}});if(U.error)throw new Vy("toolbox_utxo_broadcast_failed",{error:U.error?.message});if(U.result.includes('"code":-26'))throw new Vy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return U.result}throw T}}function On(y){return`https://api.blockchair.com/${AA(y)}`}function uH(y){switch(y){case Uy.Bitcoin:return 5;case Uy.Dogecoin:return 1e4;case Uy.Litecoin:return 1;case Uy.Zcash:return 1;default:return 2}}function AA(y){switch(y){case Uy.BitcoinCash:return"bitcoin-cash";case Uy.Litecoin:return"litecoin";case Uy.Dash:return"dash";case Uy.Dogecoin:return"dogecoin";case Uy.Zcash:return"zcash";case Uy.Polkadot:return"polkadot";default:return"bitcoin"}}async function qA(y){try{let{feePerKb:n}=await VT.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),o=n/1000;return Math.max(o,uH(y))}catch{return uH(y)}}async function tT(y,n){let o=await VT.get(`${y}${n?`${y.includes("?")?"&":"?"}key=${n}`:""}`);if(!o||o.context.code!==200)throw new Vy("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return o.data}async function KH({address:y,chain:n,apiKey:o}){if(!y)throw new Vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await tT(`${On(n)}/dashboards/address/${y}?transaction_details=true`,o))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function GA({address:y,chain:n,apiKey:o}){return(await KH({address:y,apiKey:o,chain:n}))?.address.balance||0}async function hH({chain:y,apiKey:n,txHash:o}){if(!o)throw new Vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await tT(`${On(y)}/raw/transaction/${o}`,n))?.[o]?.raw_transaction||""}catch(f){let T=f instanceof Error?f.message:String(f);return console.error(`Failed to fetch raw transaction: ${T}`),""}}async function XA({chain:y,apiKey:n,txHash:o}){if(!o)throw new Vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});let T=(await tT(`${On(y)}/dashboards/transaction/${o}`,n))?.[o];if(!T)throw new Vy("toolbox_utxo_tx_not_found",{txHash:o});let{transaction:C,inputs:H,outputs:U}=T,_=H.map((J)=>J.spending_sequence),A=C.is_rbf===!0||_.some((J)=>J<WA);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 QA({chain:y,address:n,apiKey:o,offset:f=0,limit:T=30}){return(await tT(`${On(y)}/outputs?q=recipient(${n}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${T}&offset=${f}`,o)).map(({is_spent:_,script_hex:A,block_id:J,transaction_hash:L,index:G,value:q,spending_signature_hex:W})=>({hash:L,index:G,is_confirmed:J!==-1,is_spent:_,script_hex:A,txHex:W,value:q}))}function JA(y){return y.reduce((n,o)=>n+o.value,0)}function jH(y,n){let o=[...y].sort((f,T)=>T.value-f.value);if(n){let f=[],T=0;for(let C of o)if(f.push(C),T+=C.value,T>=n)break;return f}return o}async function mH({chain:y,address:n,apiKey:o,targetValue:f,accumulativeValue:T=0,offset:C=0,limit:H=30}){if(!n)throw new Vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let U=await QA({address:n,apiKey:o,chain:y,limit:H,offset:C,targetValue:f}),A=U.length<H,J=U.filter(({is_spent:w})=>!w),L=JA(J),G=T+L,q=f&&G>=f;if(A||q)return jH(J,f);let W=await mH({accumulativeValue:G,address:n,apiKey:o,chain:y,limit:H,offset:C+H,targetValue:f}),M=[...J,...W];return jH(M,f)}catch(U){let _=U instanceof Error?U.message:String(U);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function ZA({address:y,chain:n,apiKey:o,fetchTxHex:f=!0,targetValue:T}){let C=await mH({address:y,apiKey:o,chain:n,targetValue:T}),H=[];for(let{hash:U,index:_,script_hex:A,value:J}of C){let L;if(f)L=await hH({apiKey:o,chain:n,txHash:U});H.push({address:y,hash:U,index:_,txHex:L,value:J,witnessUtxo:{script:Buffer.from(A,"hex"),value:J}})}return H}function yy(y){let n=HA.get("apiKeys").blockchair||"";return UA({condition:!n,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(o)=>_A({chain:y,txHash:o}),getAddressData:(o)=>KH({address:o,apiKey:n,chain:y}),getBalance:(o)=>GA({address:o,apiKey:n,chain:y}),getRawTx:(o)=>hH({apiKey:n,chain:y,txHash:o}),getSuggestedTxFee:()=>qA(y),getTransactionDetails:(o)=>XA({apiKey:n,chain:y,txHash:o}),getUtxos:(o)=>ZA({...o,apiKey:n,chain:y})}}function LA(y){return y}function MA(){return function(n){switch(n){case Uy.Bitcoin:return bf.bitcoin;case Uy.BitcoinCash:return bf.bitcoinCash;case Uy.Dash:return bf.dash;case Uy.Litecoin:return bf.litecoin;case Uy.Dogecoin:return bf.dogecoin;case Uy.Zcash:return bf.zcash;default:throw new Vy("toolbox_utxo_not_supported",{chain:n})}}}var WA=4294967294;var cH=P(()=>{jy()});import{CashAddrType as bT,decodeCashAddr as YA,encodeCashAddr as BA}from"@swapkit/utxo-signer";function OA(y,n,o){return BA({hash:o,prefix:y,type:zA[n]})}function wA(y){let n=YA(y),o=NA[n.type];if(!o)throw Error(`Unknown CashAddr type: ${n.type}`);return{hash:n.hash,prefix:n.prefix,type:o}}var zA,NA,Po;var gH=P(()=>{zA={P2PKH:bT.P2PKH,P2SH:bT.P2SH},NA={[bT.P2PKH]:"P2PKH",[bT.P2SH]:"P2SH"};Po={decode:wA,encode:OA}});import{sha256 as DA}from"@noble/hashes/sha2.js";import{createBase58check as RA}from"@scure/base";import{SwapKitError as dH}from"@swapkit/helpers";function Eo(y){try{return vT(y),!0}catch{return!1}}function Vo(y){return vT(y)?.network}function dy(y){let n=vT(y);if(n?.format==="legacy")return y;return FA(n)}function wn(y){let n=vT(y);return xA(n)}function vT(y){try{let n=kA(y);if(n)return n}catch{}try{let n=SA(y);if(n)return n}catch{}throw new dH("toolbox_utxo_invalid_address",{address:y})}function kA(y){try{let n=rH.decode(y);if(n.length!==21)throw new dH("toolbox_utxo_invalid_address",{address:y});let o=n[0],f=Array.prototype.slice.call(n,1);switch(o){case Mf.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case Mf.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case Mf.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case Mf.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case Mf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case Mf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function SA(y){if(y.indexOf(":")!==-1)try{return iH(y)}catch{}else{let n=["bitcoincash","bchtest","bchreg"];for(let o of n)try{return iH(`${o}:${y}`)}catch{}}return}function iH(y){try{let{hash:n,prefix:o,type:f}=Po.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(n,0),network:o==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function FA(y){let n=Mf.legacy[y.network][y.type],o=Buffer.alloc(1+y.hash.length);return o[0]=n,o.set(y.hash,1),rH.encode(o)}function xA(y){let n=y.network==="mainnet"?"bitcoincash":"bchtest",o=y.type==="p2pkh"?"P2PKH":"P2SH",f=new Uint8Array(y.hash);return Po.encode(n,o,f)}var rH,po,Mf;var aH=P(()=>{gH();rH=RA(DA);((o)=>{o.Mainnet="mainnet";o.Testnet="testnet"})(po||={});Mf={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as lA}from"@swapkit/helpers";import{Script as $A}from"@swapkit/utxo-signer";function My(y){let n=new Uint8Array(Buffer.from(y,"utf8"));return $A.encode(["RETURN",n])}var IA=1000,jT=10,KT=2,sH=10,PA=41,pA=107,hT,uT,Dn,vf=(y)=>{if(y.startsWith("bc1")||y.startsWith("tb1")||y.startsWith("ltc1")||y.startsWith("tltc1"))return"P2WPKH";if(y.startsWith("1")||y.startsWith("m")||y.startsWith("n")||y.startsWith("bitcoincash:q")||y.startsWith("bitcoincash:p")||y.startsWith("q")||y.startsWith("p")||y.startsWith("L")||y.startsWith("M")||y.startsWith("3")||y.startsWith("D")||y.startsWith("A")||y.startsWith("9")||y.startsWith("X")||y.startsWith("7")||y.startsWith("y")||y.startsWith("t1")||y.startsWith("t3")||y.startsWith("tm"))return"P2PKH";throw new lA("toolbox_utxo_invalid_address",{address:y})},Yf=({inputs:y,outputs:n,feeRate:o})=>{let f=y[0]&&"address"in y[0]&&y[0].address?vf(y[0].address):"P2PKH",C=(o?y.filter((A)=>A.value>=uT["type"in A&&A.type?A.type:"P2PKH"]*Math.ceil(o)):y).reduce((A,J)=>A+Cf(J),0),H=n?.reduce((A,J)=>A+Rn(J),0)||Dn[f],U=jT+C+H;return f==="P2WPKH"?Math.ceil(U+KT/4):U},Cf=(y)=>{if("type"in y&&y.type)return uT[y.type];if("address"in y&&y.address)return uT[vf(y.address)];return PA+pA},Rn=(y,n)=>{if(y?.script)return sH+y.script.length+(y.script.length>=74?2:1);if(n)return Dn[n];if("address"in y&&y.address)return Dn[vf(y.address)];return Dn.P2PKH};var to=P(()=>{((o)=>{o.P2PKH="P2PKH";o.P2WPKH="P2WPKH"})(hT||={});uT={["P2PKH"]:148,["P2WPKH"]:68},Dn={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as Bf,SwapKitError as EA}from"@swapkit/helpers";function kn(y){switch(y){case Bf.Bitcoin:case Bf.BitcoinCash:return 550;case Bf.Dash:case Bf.Litecoin:return 5500;case Bf.Dogecoin:return 1e5;case Bf.Zcash:return 546;default:throw new EA("toolbox_utxo_not_supported",{chain:y})}}function Fy({inputs:y,outputs:n,feeRate:o=1,chain:f=Bf.Bitcoin,changeAddress:T=""}){let C=y[0]&&"address"in y[0]&&y[0].address?vf(y[0].address):"P2PKH",H=y.filter((W)=>Cf(W)*o<=W.value),_=C==="P2WPKH"?Math.ceil(KT/4):0,A=jT+_+n.reduce((W,M)=>W+Rn(M),0),J=n.reduce((W,M)=>W+M.value,0),L=A*o,G=0,q=[];for(let W of H){let M=Cf(W),w=o*M;L+=w,G+=W.value,q.push(W);let N=L+J;if(G<N)continue;let Q=G-N,O=o*Rn({address:T,value:0});if(Q>O){let B=O+L,Y=G-(J+Math.ceil(B));if(Y>Math.max(Cf({value:0})*o,kn(f)))return{fee:Math.ceil(B),inputs:q,outputs:n.concat({address:T,value:Y})}}return{fee:Math.ceil(L),inputs:q,outputs:n}}return{fee:Math.ceil(o*Yf({inputs:y,outputs:n}))}}var eH=P(()=>{to()});var uf=P(()=>{cH();aH();eH();to()});import{Address as VA,ZCASH_NETWORK as tA}from"@swapkit/utxo-signer";function zf(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function Hf(y){let n=zf(y);return Eo(n)&&Vo(n)==="mainnet"}function jf(y){try{if(y.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let o=VA(tA).decode(y);return o.type==="pkh"||o.type==="sh"}catch{return!1}}var Sn=P(()=>{uf()});import{secp256k1 as bA}from"@noble/curves/secp256k1.js";import{hex as Nf}from"@scure/base";import{HDKey as T5}from"@scure/bip32";import{mnemonicToSeedSync as vo}from"@scure/bip39";import{AssetValue as mT,applyFeeMultiplier as y5,Chain as fy,derivationPathToString as Fn,FeeOption as ty,NetworkDerivationPath as o5,SwapKitError as g,SwapKitNumber as vA,updateDerivationPath as uA,warnOnce as jA}from"@swapkit/helpers";import{Address as KA,BCHSigHash as uo,CashAddrPrefix as hA,CashAddrType as mA,encodeCashAddr as cA,NETWORKS as Kf,p2pkh as f5,p2wpkh as gA,RBF_SEQUENCE as iA,SigHash as C5,Transaction as bo,WIF as H5}from"@swapkit/utxo-signer";import{match as U5}from"ts-pattern";function jo({address:y,chain:n}){return U5(n).with(fy.BitcoinCash,()=>Hf(y)).with(fy.Zcash,()=>jf(y)).otherwise(()=>{try{return KA(Gy(n)).decode(y),!0}catch{return!1}})}function Gy(y){return U5(y).with(fy.Bitcoin,()=>Kf.bitcoin).with(fy.BitcoinCash,()=>Kf.bitcoinCash).with(fy.Dash,()=>Kf.dash).with(fy.Dogecoin,()=>Kf.dogecoin).with(fy.Litecoin,()=>Kf.litecoin).with(fy.Zcash,()=>Kf.zcash).exhaustive()}function dA({phrase:y,derivationPath:n,network:o,seed:f}){let T=f??vo(y),H=T5.fromMasterSeed(T,o.bip32).derive(n);if(!H.privateKey)throw new g("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return H.privateKey}function n5(y){return bA.getPublicKey(y,!0)}function ln({publicKey:y,chain:n,network:o}){if(n===fy.BitcoinCash){let C=f5(y,o);if(!C.hash)throw new g("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return cA({hash:C.hash,prefix:hA.MAINNET,type:mA.P2PKH}).replace(/^bitcoincash:/,"")}let T=!xn.includes(n)?gA(y,o):f5(y,o);if(!T.address)throw new g("toolbox_utxo_invalid_address",{error:"Could not derive address"});return T.address}function hf({phrase:y,derivationPath:n,chain:o,wif:f,seed:T}){let C=Gy(o);if(f){let A=H5(C).decode(f),J=n5(A);return{privateKey:A,publicKey:J}}if(!y)throw new g("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let H=n||Fn(o5[o]),U=dA({derivationPath:H,network:C,phrase:y,seed:T}),_=n5(U);return{privateKey:U,publicKey:_}}function rA(y,n){return H5(Gy(n)).encode(y)}function aA({phrase:y,derivationPath:n,chain:o,seed:f}){let T=n.split("/");if(T.length<4)throw new g("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${T.length}): ${n}`});let C=Gy(o),H=f??vo(y),U=T5.fromMasterSeed(H,C.bip32),_=T.slice(0,4).join("/");return U.derive(_)}function Uf({inputs:y,outputs:n,chain:o,tx:f,sender:T,compiledMemo:C,enableRBF:H=!1}){let U=Gy(o),_=!xn.includes(o),A=H?iA:void 0,J=new Set;for(let L of y){let G=`${L.hash}:${L.index}`;if(J.has(G))throw new g("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});J.add(G);let q=typeof L.hash==="string"?Nf.decode(L.hash):L.hash;if(_&&L.witnessUtxo)f.addInput({index:L.index,sequence:A,txid:q,witnessUtxo:{amount:BigInt(L.witnessUtxo.value),script:L.witnessUtxo.script}});else if(L.txHex)f.addInput({index:L.index,nonWitnessUtxo:Nf.decode(L.txHex),sequence:A,txid:q,...o===fy.BitcoinCash?{sighashType:uo.ALL}:{}});else throw new g("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let L of n){let G="address"in L&&L.address?L.address:T;if(o===fy.BitcoinCash)G=dy(G);if(L.script){if(C)f.addOutput({amount:0n,script:C})}else f.addOutputAddress(G,BigInt(L.value),U)}return{inputs:y,tx:f}}async function mf(y){let n=await yy(y).getSuggestedTxFee();return{[ty.Average]:n,[ty.Fast]:y5(n,ty.Fast),[ty.Fastest]:y5(n,ty.Fastest)}}async function _5({assetValue:y,recipient:n,memo:o,sender:f,fetchTxHex:T=!1}){let C=y.chain,H=(await mf(C))[ty.Fastest],U=T||xn.includes(C),_=y.getBaseValue("number"),A=Math.ceil(_+H*5000);return{inputs:await yy(C).getUtxos({address:f,fetchTxHex:U,targetValue:A}),outputs:[{address:n,value:_},...o?[{address:"",script:My(o),value:0}]:[]]}}async function A5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T,fetchTxHex:C=!1,enableRBF:H=!1}){let U=y.chain,_=o?My(o):null,A=await _5({assetValue:y,fetchTxHex:C,memo:o,recipient:n,sender:T}),{inputs:J,outputs:L}=Fy({...A,chain:U,feeRate:f});if(!(J&&L))throw new g("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let G=new bo({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:q,tx:W}=Uf({chain:U,compiledMemo:_,enableRBF:H,inputs:J,outputs:L,sender:T,tx:G});return{inputs:q,tx:W,utxos:A.inputs}}async function q5({assetValue:y,feeOptionKey:n=ty.Fast,feeRate:o,memo:f,sender:T,recipient:C}){let H=y.chain,U=await _5({assetValue:y,memo:f,recipient:C,sender:T}),_=o?Math.floor(o):(await mf(H))[n];return Fy({...U,chain:H,feeRate:_})}function sA(y){return async function({from:o,memo:f,feeRate:T,feeOptionKey:C=ty.Fast,recipients:H=1}){let U=await yy(y).getAddressData(o),_=T?Math.ceil(T):(await mf(y))[C],A=U?.utxo.map((M)=>({...M,hash:"",type:"P2PKH"})).filter((M)=>M.value>Math.max(kn(y),Cf(M)*_));if(!A?.length)return mT.from({chain:y});let J=BigInt(A.reduce((M,w)=>M+w.value,0)),L=mT.from({chain:y,value:J}),G=typeof H==="number"?Array.from({length:H},()=>({address:o,value:0})):H;if(f)G.push({address:o,script:My(f),value:0});let q=Yf({inputs:A,outputs:G}),W=mT.from({chain:y,value:BigInt(q*_)});return L.sub(W)}}function eA(y){return async function(o){let{fee:f}=await q5(o);return mT.from({chain:y,value:vA.fromBigInt(BigInt(f),8).getValue("string")})}}function yq({chain:y,phrase:n,derivationPath:o,seed:f}){let T=Gy(y),{privateKey:C,publicKey:H}=hf({chain:y,derivationPath:o,phrase:n,seed:f}),U=y===fy.BitcoinCash?[uo.ALL]:[C5.ALL];return{getAddress:()=>ln({chain:y,network:T,publicKey:H}),privateKey:C,publicKey:H,signTransaction:(_)=>{return _.sign(C,U),_}}}function fq(y,n){return async function({memo:f,recipient:T,feeOptionKey:C,feeRate:H,assetValue:U,enableRBF:_=!1}){let A=await n?.getAddress();if(!(n&&A))throw new g("toolbox_utxo_no_signer");if(!T)throw new g("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});jA({condition:_&&!cT.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let J=_&&cT.includes(y),L=H||(await mf(y))[C||ty.Fast],{tx:G}=await A5({assetValue:U,enableRBF:J,feeRate:L,memo:f,recipient:T,sender:A}),q=await n.signTransaction(G);return q.finalize(),yy(y).broadcastTx(Nf.encode(q.extract()))}}function Ko(y){return(n)=>jo({address:n,chain:y})}function ho(y){let n=Gy(y);return function(f){if(!f)throw new g("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return ln({chain:y,network:n,publicKey:f.publicKey})}}function _f({chain:y,...n}){let o="phrase"in n?n.phrase:void 0,f="index"in n?n.index||0:0,T=o?vo(o):void 0,C="derivationPath"in n&&n.derivationPath?n.derivationPath:uA(o5[y],{index:f}),H=Fn(C),U=o?yq({chain:y,derivationPath:H,phrase:o,seed:T}):void 0,_="signer"in n?n.signer:void 0,A=U||_,J=o?hf({chain:y,derivationPath:H,phrase:o,seed:T}):void 0;function L(){if(A)return A.getAddress();return Promise.resolve(void 0)}function G(R){if(!o)return;let S=of({accountIndex:R,chain:y,derivationPath:C});return aA({chain:y,derivationPath:Fn(S),phrase:o,seed:T})}let q=G();function W(){if(!q)return;return q.publicExtendedKey}function M({accountIndex:R}={}){let S=R===void 0?q:G(R);if(!S)return;let x=of({accountIndex:R,chain:y,derivationPath:C});return{accountIndex:Lf(x),path:Fn(x),xpub:S.publicExtendedKey}}function w({accountIndex:R,index:S,change:x=!1}){let z=R===void 0?q:G(R);if(!z)return;let F=tf({accountIndex:R,chain:y,change:x,derivationPath:C,index:S}),l=Gy(y),V=z.deriveChild(Number(x)).deriveChild(S);if(!V.publicKey)throw new g("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let p=ln({chain:y,network:l,publicKey:V.publicKey}),b=Nf.encode(V.publicKey);return{accountIndex:Lf(F),address:p,change:x,index:S,path:Fn(F),pubkey:b}}async function N(R){if(!cT.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let S=await yy(y).getTransactionDetails(R);return{canReplace:S.isRBF&&!S.confirmed,confirmed:S.confirmed,enabled:S.isRBF,fee:S.fee,sequences:S.sequences,supported:!0}}async function Q({txid:R,newFeeRate:S,recipient:x,memo:z}){if(!cT.includes(y))throw new g("toolbox_utxo_rbf_not_supported",{chain:y});let F=await yy(y).getTransactionDetails(R);if(!F.isRBF)throw new g("toolbox_utxo_tx_not_replaceable",{txid:R});if(F.confirmed)throw new g("toolbox_utxo_tx_already_confirmed",{blockId:F.blockId,txid:R});let l=F.inputs.reduce((e,wy)=>e+wy.value,0),p=F.outputs.find((e)=>e.recipient===x)?.value||0;if(p===0)throw new g("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let b=await Promise.all(F.inputs.map(async(e)=>{let wy=await yy(y).getRawTx(e.transaction_hash);return{hash:e.transaction_hash,index:e.index,txHex:wy,value:e.value,witnessUtxo:void 0}})),K=z?My(z):null,s=Yf({feeRate:S,inputs:b.map((e)=>({...e,type:"P2WPKH"})),outputs:[{address:x,value:p}]}),m=Math.ceil(s*S);if(m<=F.fee)throw new g("toolbox_utxo_rbf_fee_too_low",{newFee:m,originalFee:F.fee});let Ly=m-F.fee,oy=p-Ly;if(oy<=0)throw new g("toolbox_utxo_rbf_insufficient_change");let $y=new bo({allowLegacyWitnessUtxo:!0,version:1}),Iy=[{address:x,value:oy},...z?[{address:"",script:My(z),value:0}]:[]],Py=l-oy-m,Xy=await L();if(Py>kn(y)&&Xy)Iy.push({address:Xy,value:Py});return Uf({chain:y,compiledMemo:K,inputs:b,outputs:Iy,sender:Xy||x,tx:$y}),{feeDelta:Ly,newFee:m,originalFee:F.fee,tx:$y}}async function O({txid:R,newFeeRate:S,recipient:x,memo:z}){let{tx:F,originalFee:l,newFee:V}=await Q({memo:z,newFeeRate:S,recipient:x,txid:R}),p=await D(F);p.finalize();let b=await yy(y).broadcastTx(Nf.encode(p.extract()));return{newFee:V,originalFee:l,txid:b}}function B({accountIndex:R,index:S,change:x=!1}){Sy("index",S);let z=R===void 0?q:G(R);if(!z)return;return z.deriveChild(Number(x)).deriveChild(S).privateKey||void 0}function Y({tx:R,inputDerivations:S}){if(!q)throw new g("toolbox_utxo_no_signer");let x=y===fy.BitcoinCash?[uo.ALL]:[C5.ALL];for(let z=0;z<S.length;z++){let F=S[z];if(!F)continue;let{derivationIndex:l,isChange:V}=F,p=B({change:V,index:l});if(!p)throw new g("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${z} at index ${l}`});R.signIdx(p,z,x)}return R}async function X({utxos:R,recipient:S,assetValue:x,memo:z,feeRate:F,feeOptionKey:l,changeAddress:V}){if(!q)throw new g("toolbox_utxo_no_signer");let p=F||(await mf(y))[l||ty.Fast],b=z?My(z):null,K=[{address:S,value:x.getBaseValue("number")}];if(b)K.push({address:"",script:b,value:0});let s=R.map(({hash:Xy,index:e,value:wy,txHex:IU,witnessUtxo:X0})=>({hash:Xy,index:e,txHex:IU,value:wy,witnessUtxo:X0?{script:X0.script,value:X0.value}:void 0})),{inputs:m,outputs:Ly}=Fy({chain:y,feeRate:p,inputs:s,outputs:K});if(!(m&&Ly))throw new g("toolbox_utxo_insufficient_balance",{assetValue:x,sender:"multiple addresses"});let oy=new bo({allowLegacyWitnessUtxo:!0,version:1}),$y=R[0]?.address,Iy=V||await L()||$y||S;Uf({chain:y,compiledMemo:b,inputs:m,outputs:Ly,sender:Iy,tx:oy});let Py=m.map((Xy)=>{let e=R.find((wy)=>wy.hash===Xy.hash&&wy.index===Xy.index);return e?{derivationIndex:e.derivationIndex,isChange:e.isChange}:{derivationIndex:0,isChange:!1}});return Y({inputDerivations:Py,tx:oy}),oy.finalize(),yy(y).broadcastTx(Nf.encode(oy.extract()))}function Z({address:R,gapLimit:S=20}){if(!q)return;for(let x=0;x<S;x++){let z=w({change:!1,index:x}),F=w({change:!0,index:x}),l=z?.address===R?!1:F?.address===R;if(z?.address===R||F?.address===R)return{change:l,index:x}}return}function D(R){if(!A)throw new g("toolbox_utxo_no_signer");return A.signTransaction(R)}async function k(R){let S=await D(R);return S.finalize(),await yy(y).broadcastTx(Nf.encode(S.extract()))}return{accumulative:Fy,broadcastTx:(R)=>yy(y).broadcastTx(R),bumpFee:O,calculateTxSize:Yf,createKeysForPath:(R)=>hf({...R,chain:y}),createReplacementTransaction:Q,createTransaction:A5,deriveAddressAtIndex:w,derivePrivateKeyAtIndex:B,estimateMaxSendableAmount:sA(y),estimateTransactionFee:eA(y),getAddress:L,getAddressFromKeys:ho(y),getBalance:Qy(y),getExtendedPublicKey:W,getExtendedPublicKeyInfo:M,getFeeRates:()=>mf(y),getInputsOutputsFee:q5,getNetworkForChain:()=>Gy(y),getPrivateKeyFromMnemonic:(R)=>rA(hf({...R,chain:y}).privateKey,y),isRBFEnabled:N,keys:J,resolveDerivationIndex:Z,signAndBroadcastTransaction:k,signTransaction:D,signTransactionWithMultipleKeys:Y,transfer:fq(y,A),transferFromMultipleAddresses:X,validateAddress:Ko(y)}}var xn,cT;var cf=P(()=>{jy();Nn();uf();Sn();xn=[fy.Dash,fy.Dogecoin,fy.Zcash,fy.BitcoinCash],cT=[fy.Bitcoin]});import{hex as G5}from"@scure/base";import{Chain as nq,derivationPathToString as Tq,FeeOption as oq,NetworkDerivationPath as Cq,SwapKitError as ry,updateDerivationPath as Hq}from"@swapkit/helpers";import{BCHSigHash as Uq,CashAddrPrefix as W5,CashAddrType as X5,encodeCashAddr as Q5,NETWORKS as _q,p2pkh as J5,Transaction as Z5}from"@swapkit/utxo-signer";function $n(y){return zf(wn(y))}function Aq(y){let n=Gy(by);function o(T){return T.sign(y.privateKey,[Uq.ALL]),T}function f(){let T=J5(y.publicKey,n);if(!T.hash)throw new ry("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let C=Q5({hash:T.hash,prefix:W5.MAINNET,type:X5.P2PKH});return Promise.resolve(C.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:o}}function mo(y){let n="phrase"in y?y.phrase:void 0,o="index"in y?y.index||0:0,f=Tq("derivationPath"in y&&y.derivationPath?y.derivationPath:Hq(Cq[by],{index:o})),T=n?hf({chain:by,derivationPath:f,phrase:n}):void 0,C=T?Aq(T):("signer"in y)?y.signer:void 0;function H(){return Promise.resolve(C?.getAddress())}let{getBalance:U,getFeeRates:_,broadcastTx:A,...J}=_f({chain:by});function L(W,M=!0){return U(zf(wn(W)))}function G(W){if(!C)throw new ry("toolbox_utxo_no_signer");return C.signTransaction(W)}async function q(W){let M=await G(W);return M.finalize(),await A(G5.encode(M.extract()))}return{...J,broadcastTx:A,buildTx:Gq,createTransaction:L5,getAddress:H,getAddressFromKeys:Wq,getBalance:L,getFeeRates:_,signAndBroadcastTransaction:q,signTransaction:G,stripPrefix:zf,stripToCashAddress:$n,transfer:qq({broadcastTx:A,getFeeRates:_,signer:C}),validateAddress:Hf}}async function L5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){if(!Hf(n))throw new ry("toolbox_utxo_invalid_address",{address:n});let C=Math.ceil(y.getBaseValue("number")+f*7500),H=await yy(by).getUtxos({address:$n(T),fetchTxHex:!0,targetValue:C}),U=o?My(o):null,_=[],A=dy(n);if(_.push({address:A,value:y.getBaseValue("number")}),U)_.push({script:U,value:0});let{inputs:J,outputs:L}=Fy({chain:by,feeRate:f,inputs:H,outputs:_});if(!(J&&L))throw new ry("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let G=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!U,version:1}),q=dy(T),{inputs:W,tx:M}=Uf({chain:by,compiledMemo:U,inputs:J,outputs:L.map((w)=>("address"in w)&&w.address?{...w,address:dy(w.address)}:w),sender:q,tx:G});return{inputs:W,tx:M,utxos:J}}function qq({broadcastTx:y,getFeeRates:n,signer:o}){return async function({recipient:T,assetValue:C,feeOptionKey:H=oq.Fast,...U}){let _=await o?.getAddress();if(!(o&&_))throw new ry("toolbox_utxo_no_signer");if(!T)throw new ry("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let A=U.feeRate||(await n())[H],{tx:J}=await L5({...U,assetValue:C,feeRate:A,recipient:T,sender:_}),L=await o.signTransaction(J);return L.finalize(),y(G5.encode(L.extract()))}}async function Gq({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){let C=wn(n);if(!Hf(C))throw new ry("toolbox_utxo_invalid_address",{address:C});let H=Math.ceil(y.getBaseValue("number")+f*7500),U=await yy(by).getUtxos({address:$n(T),fetchTxHex:!0,targetValue:H}),_=Number(f.toFixed(0)),A=o?My(o):null,J=[];if(J.push({address:dy(n),value:y.getBaseValue("number")}),A)J.push({script:A,value:0});let{inputs:L,outputs:G}=Fy({chain:by,feeRate:_,inputs:U,outputs:J});if(!(L&&G))throw new ry("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let q=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:W,tx:M}=Uf({chain:by,compiledMemo:A,inputs:L,outputs:G,sender:dy(T),tx:q});return{inputs:W,tx:M,utxos:U}}function Wq(y){let n=_q.bitcoinCash,o=J5(y.publicKey,n);if(!o.hash)throw new ry("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return Q5({hash:o.hash,prefix:W5.MAINNET,type:X5.P2PKH}).replace(/^bitcoincash:/,"")}var by;var gT=P(()=>{uf();cf();Sn();by=nq.BitcoinCash});import{createBase58check as Xq,hex as Qq}from"@scure/base";import{HDKey as Y5}from"@scure/bip32";import{mnemonicToSeedSync as B5}from"@scure/bip39";import{Chain as iT,derivationPathToString as Jq,FeeOption as Zq,NetworkDerivationPath as Lq,SKConfig as z5,SwapKitError as In,updateDerivationPath as Mq}from"@swapkit/helpers";import{Address as Yq,createZcashTransaction as Bq,OutScript as zq,PCZT as Nq,utils as N5,WIF as Oq,ZCASH_NETWORK as wq,ZCASH_TEST_NETWORK as Dq,ZcashConsensusBranchId as Rq,ZcashPSBT as kq,ZcashSigHash as co,ZcashVersionGroupId as Sq}from"@swapkit/utxo-signer";import{match as Fq,P as go}from"ts-pattern";function O5(){let{isStagenet:y}=z5.get("envs");return y?Dq:wq}function lq(y){return xq.encode(y)}function $q({phrase:y,derivationPath:n}){let o=B5(y),T=Y5.fromMasterSeed(o).derive(n);if(!T.privateKey||!T.publicKey)throw new In("toolbox_utxo_invalid_params");let{privateKey:C,publicKey:H}=T,U=N5.hash160(H),{isStagenet:_}=z5.get("envs"),A=_?new Uint8Array([29,37]):new Uint8Array([28,184]),J=new Uint8Array(A.length+U.length);J.set(A,0),J.set(U,A.length);let L=lq(J);return{getAddress:()=>Promise.resolve(L),signTransaction:(G)=>{if(G instanceof kq){let q=G.toPCZT();return q.signAllInputs(C,H,co.ALL),q.finalizeAllInputs(),Promise.resolve(q.extract())}if(G instanceof Nq)return G.signAllInputs(C,H,co.ALL),G.finalizeAllInputs(),Promise.resolve(G.extract());return G.signAllInputs(C,H,co.ALL),Promise.resolve(G)}}}function Iq({inputs:y,outputs:n,tx:o,sender:f,compiledMemo:T}){let C=O5();for(let H of y){let U=Yq(C).decode(f),_=zq.encode(U);o.addInput({index:H.index,script:_,sequence:4294967295,txid:Qq.decode(H.hash),value:BigInt(H.value)})}for(let H of n){let U="address"in H&&H.address?H.address:f,_=H.script;if(_&&!T)continue;if(_&&T)o.addOutput({amount:0n,script:T});else o.addOutputAddress(U,BigInt(H.value),C)}return{inputs:y,tx:o}}async function M5(y){let{assetValue:n,recipient:o,memo:f,feeRate:T,sender:C,fetchTxHex:H}=y,U=f?My(f):null,_=await yy(iT.Zcash).getUtxos({address:C,fetchTxHex:H!==!1}),A=[{address:o,value:Number(n.getBaseValue("string"))},...U?[{script:U,value:0}]:[]],{inputs:J,outputs:L}=Fy({chain:iT.Zcash,changeAddress:C,feeRate:T,inputs:_,outputs:A});if(!(J&&L))throw new In("toolbox_utxo_insufficient_balance",{assetValue:n,sender:C});let G=Bq({consensusBranchId:Rq.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:Sq.SAPLING}),{tx:q,inputs:W}=Iq({compiledMemo:U,inputs:J,outputs:L,sender:C,tx:G});return{inputs:W,outputs:L,tx:q}}function io(y){let n=Fq(y).with({signer:go.not(go.nullish)},({signer:_})=>_).with({phrase:go.string},({phrase:_,derivationPath:A,index:J=0})=>{let L=A||Lq[iT.Zcash]||[44,133,0,0,0],G=Mq(L,{index:J}),q=Jq(G);return $q({derivationPath:q,phrase:_})}).otherwise(()=>{return}),o=_f({chain:iT.Zcash,signer:n});async function f(_){if(!n)throw new In("toolbox_utxo_no_signer");return await n.signTransaction(_)}async function T(_){let A=await f(_);return o.broadcastTx(A.toHex())}async function C({recipient:_,assetValue:A,feeOptionKey:J=Zq.Fast,...L}){let G=await n?.getAddress();if(!(n&&G))throw new In("toolbox_utxo_no_signer");let q=L.feeRate||(await o.getFeeRates())[J],{tx:W}=await M5({...L,assetValue:A,feeRate:q,recipient:_,sender:G}),w=(await n.signTransaction(W)).toHex();return o.broadcastTx(w)}function H({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let J=B5(_),G=Y5.fromMasterSeed(J).derive(A);if(!G.privateKey||!G.publicKey)throw new In("toolbox_utxo_invalid_params");return{privateKey:G.privateKey,publicKey:G.publicKey}}function U({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let J=H({derivationPath:A,phrase:_}),L=O5();return Oq(L).encode(J.privateKey)}return{...o,createKeysForPath:H,createTransaction:M5,getPrivateKeyFromMnemonic:U,signAndBroadcastTransaction:T,signTransaction:f,transfer:C,validateAddress:jf}}var xq;var ro=P(()=>{uf();cf();Sn();xq=Xq(N5.sha256)});import{hex as Pq}from"@scure/base";import{HDKey as pq}from"@scure/bip32";import{derivationPathToString as Eq}from"@swapkit/helpers";function w5({xpub:y,chain:n,count:o,startIndex:f=0,accountIndex:T}){if(Sy("count",o),o<1)throw RangeError("count must be at least 1");Sy("startIndex",f);let C=Gy(n),H=pq.fromExtendedKey(y,C.bip32),U=of({accountIndex:T,chain:n}),_=Lf(U),A=[];for(let J of[!1,!0]){let L=H.deriveChild(Number(J));for(let G=0;G<o;G++){let q=f+G,W=L.deriveChild(q);if(!W.publicKey)continue;let M=tf({accountIndex:T,chain:n,change:J,index:q});A.push({accountIndex:_,address:ln({chain:n,network:C,publicKey:W.publicKey}),change:J,index:q,path:Eq(M),pubkey:Pq.encode(W.publicKey)})}}return A}var D5=P(()=>{Nn();cf()});import{Chain as gf,SwapKitError as Vq}from"@swapkit/helpers";function tq(y,n){switch(y){case gf.BitcoinCash:return mo(n||{});case gf.Zcash:return io(n);case gf.Bitcoin:case gf.Dogecoin:case gf.Litecoin:case gf.Dash:return _f({chain:y,...n});default:throw new Vq("toolbox_utxo_not_supported",{chain:y})}}var R5=P(()=>{gT();cf();ro();Nn();D5();gT();Sn()});var ao={};ny(ao,{validateZcashAddress:()=>jf,validateUtxoAddress:()=>jo,validateBchAddress:()=>Hf,toLegacyAddress:()=>dy,toCashAddress:()=>wn,stripToCashAddress:()=>$n,stripPrefix:()=>zf,nonSegwitChains:()=>xn,isValidAddress:()=>Eo,getUtxoToolbox:()=>tq,getUtxoNetwork:()=>MA,getUtxoApi:()=>yy,getUTXOAddressValidator:()=>Ko,getUTXOAddressPath:()=>tf,getUTXOAccountPath:()=>of,getUTXOAccountIndexFromPath:()=>Lf,getScriptTypeForAddress:()=>vf,getOutputSize:()=>Rn,getNetworkForChain:()=>Gy,getInputSize:()=>Cf,getDustThreshold:()=>kn,detectAddressNetwork:()=>Vo,deriveAddressesFromXpub:()=>w5,createZcashToolbox:()=>io,createUTXOToolbox:()=>_f,createHDWalletHelpers:()=>vH,createCustomUtxoApi:()=>LA,createBCHToolbox:()=>mo,compileMemo:()=>My,calculateTxSize:()=>Yf,assertDerivationIndex:()=>Sy,addressFromKeysGetter:()=>ho,addInputsAndOutputs:()=>Uf,accumulative:()=>Fy,UtxoNetwork:()=>po,UTXOScriptType:()=>hT,TX_OVERHEAD:()=>jT,SEGWIT_MARKER_FLAG_WEIGHT:()=>KT,OutputSizes:()=>Dn,OP_RETURN_OVERHEAD:()=>sH,MIN_TX_FEE:()=>IA,InputSizes:()=>uT});var so=P(()=>{cf();Nn();uf();R5();gT();ro()});import{KeyPairSigner as bq}from"@near-js/signers";import{derivationPathToString as vq,SwapKitError as uq}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?vq(y.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:T}=k5.parseSeedPhrase(y.phrase,f),C=n.fromString(T);return F5(C)}async function eo(y){let{KeyPair:n}=await import("@near-js/crypto"),o=n.fromString(y);return F5(o)}function F5(y){return new S5(y)}async function rT(y,n){let f=(await y.query({account_id:n,finality:"final",request_type:"view_access_key_list"})).keys.find((U)=>U.access_key.permission==="FullAccess");if(!f)throw new uq("toolbox_near_no_public_key_found");let{PublicKey:T}=await import("@near-js/crypto"),C=T.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:C}}var S5;var yC=P(()=>{S5=class S5 extends bq{#y;constructor(y){super(y);this.#y=y}getAddress(){let y=this.#y.getPublicKey(),n=Buffer.from(y.data).toString("hex");return Promise.resolve(n)}}});function fC(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function nC(y){return"contractId"in y&&"methodName"in y}function TC(y){return"actions"in y}function oC(y){return"newAccountId"in y}function CC(y){return"contractCode"in y}function HC(y){return"customEstimator"in y}function UC(y){let n=0;for(let o of y)switch(o.enum){case"transfer":n+=Number(_y.SIMPLE_TRANSFER);break;case"functionCall":n+=Number(_y.CONTRACT_CALL);break;case"createAccount":n+=Number(_y.ACCOUNT_CREATION);break;case"deployContract":n+=Number(_y.CONTRACT_DEPLOYMENT);break;case"addKey":n+=Number(_y.ACCESS_KEY_ADDITION);break;case"deleteKey":n+=Number(_y.ACCESS_KEY_DELETION);break;case"stake":n+=Number(_y.STAKE);break;default:n+=Number(_y.CONTRACT_CALL)}return n.toString()}function _C(y){if(y==="ft_transfer"||y==="ft_transfer_call")return _y.TOKEN_TRANSFER;if(y==="storage_deposit")return _y.STORAGE_DEPOSIT;return _y.CONTRACT_CALL}function jq(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function Kq(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var _y;var AC=P(()=>{_y={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function qC({account:y,contractId:n,viewMethods:o,changeMethods:f}){let{Contract:T}=await import("@near-js/accounts");return new T(y,n,{changeMethods:f,useLocalViewExecution:!0,viewMethods:o})}import{JsonRpcProvider as hq}from"@near-js/providers";import{AssetValue as GC,Chain as df,getRPCUrl as x5,SwapKitError as Ay}from"@swapkit/helpers";import{match as l5,P as $5}from"ts-pattern";function mq(y){let n;async function o(){if(n)return n;return n=await l5(y).with({phrase:$5.string},async(z)=>{return await dT(z)}).with({signer:$5.any},({signer:z})=>z).otherwise(()=>{return}),n}async function f(){let z=await x5(df.Near);return new hq({url:z})}async function T(z){let{Account:F}=await import("@near-js/accounts"),l=await f(),V=await o(),p=z||await C();return new F(p,l,V)}async function C(){let z=await o();if(!z)throw new Ay("toolbox_near_no_signer");return await z.getAddress()}async function H(z){return(await Z({changeMethods:[],contractId:z.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:z.accountId})}async function U(z){let l=[await G({args:{account_id:z.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await G({args:{amount:z.assetValue.getBaseValue("string"),memo:z.memo||null,receiver_id:z.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return D({actions:l,receiverId:z.contractId})}async function _(z){if(!await o())throw new Ay("toolbox_near_no_signer");let{assetValue:l,recipient:V,memo:p}=z,b=await C();if(!l.isGasAsset&&l.address){if(!await H({accountId:V,contractId:l.address}))return U({assetValue:l,contractId:l.address,memo:p,recipient:V})}let K=await A({...z,sender:b});return Q(K)}async function A({recipient:z,assetValue:F,memo:l,attachedDeposit:V,sender:p,functionCall:b}){let K=await f();if(!Pn(z))throw new Ay("toolbox_near_invalid_address",{recipient:z});if(!Pn(p))throw new Ay("toolbox_near_invalid_address",{sender:p});if(b)return L({...b,sender:p});if(!F.isGasAsset){let wy=F.address;if(!wy)throw new Ay("toolbox_near_missing_contract_address");return L({args:{amount:F.getBaseValue("string"),memo:l||null,receiver_id:z},attachedDeposit:V||"1",contractId:wy,gas:"250000000000000",methodName:"ft_transfer",sender:p})}let{publicKey:s,nonce:m}=await rT(K,p),Ly=F.getBaseValue("bigint"),{actionCreators:oy,createTransaction:$y}=await import("@near-js/transactions"),{baseDecode:Iy}=await import("@near-js/utils"),Py=[oy.transfer(Ly)];if(l&&V)Py.push(oy.functionCall("memo",{memo:l},BigInt("250000000000000"),BigInt(V)));let Xy=await K.block({finality:"final"}),e=Iy(Xy.header.hash);return $y(p,s,z,m+1,Py,e)}function J(z){let F=z.encode();return Buffer.from(F).toString("base64")}async function L({args:z,attachedDeposit:F,contractId:l,gas:V,methodName:p,sender:b}){let K=await f(),{publicKey:s,nonce:m}=await rT(K,b),{createTransaction:Ly,actionCreators:oy}=await import("@near-js/transactions"),{baseDecode:$y}=await import("@near-js/utils"),Iy=await K.block({finality:"final"}),Py=$y(Iy.header.hash),Xy=[oy.functionCall(p,Buffer.from(JSON.stringify(z)),BigInt(V),BigInt(F))];return Ly(b,s,l,m+1,Xy,Py)}async function G(z){let{actionCreators:F}=await import("@near-js/transactions");return F.functionCall(z.methodName,Buffer.from(JSON.stringify(z.args)),BigInt(z.gas),BigInt(z.attachedDeposit))}async function q(z){let F=await o();if(!F)throw new Ay("toolbox_near_no_signer");await W(z);let[l,V]=await F.signTransaction(z);return V}async function W(z){let F=z.publicKey;if(F.toString?.().startsWith("ed25519:")||F.toString?.().startsWith("secp256k1:"))return;let{KeyType:l,PublicKey:V}=await import("@near-js/crypto"),p=F.data||F.ed25519Key?.data,b=F.secp256k1Key?.data;if(p){z.publicKey=new V({data:Uint8Array.from(p),keyType:l.ED25519});return}if(b)z.publicKey=new V({data:Uint8Array.from(b),keyType:l.SECP256K1})}function M(z){if(typeof z==="string")return z;if(Array.isArray(z))return z.map(M).find(Boolean);if(!(z&&typeof z==="object"))return;let F=z;return F.transaction?.hash||F.transaction_outcome?.id}function w(z){return z instanceof Error?z.message:String(z)}async function N(z){let l=await(await f()).sendTransaction(z),V=M(l);if(!V)throw new Ay("toolbox_near_transfer_failed",{result:l});return V}async function Q(z){let F=await o();if(!F)throw new Ay("toolbox_near_no_signer");let l;try{l=await q(z)}catch(V){let p;try{p=F.signAndSendTransaction?await F.signAndSendTransaction({actions:z.actions,receiverId:z.receiverId,signerId:z.signerId}):await F.signAndSendTransactions?.({transactions:[z]})}catch(K){throw new Ay({errorKey:"toolbox_near_sign_transaction_failed",info:{directSignError:w(V),signAndSendError:w(K)}},K)}let b=M(p);if(b)return b;throw V}return N(l)}async function O(z){let F=await o();if("assetValue"in z){let V=await B();try{let p=await x5(df.Near),b=await fetch(p,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:K}}=await b.json(),{execution:s,send_sir:m}=K.transaction_costs.action_receipt_creation_config,{execution:Ly,send_sir:oy}=K.transaction_costs.action_creation_config.transfer_cost,$y=BigInt(oy)+BigInt(Ly),Iy=BigInt(m)+BigInt(s),Xy=($y+Iy)*BigInt(V.toString());return GC.from({chain:df.Near,value:Xy})}catch(p){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",p);let b=BigInt("115123062500"),K=BigInt("108059500000"),m=(b+K)*BigInt(V.toString());return GC.from({chain:df.Near,value:m})}}let l=F?await T():void 0;return k(z,l)}async function B(){let z=await f();try{return await z.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Y(z,F,l){if(!await o())throw new Ay("toolbox_near_no_signer");let p=await T(),{formatNearAmount:b}=await import("@near-js/utils"),{PublicKey:K}=await import("@near-js/crypto"),s=b(l)||"0";return(await p.createAccount(z,K.fromString(F),BigInt(s))).transaction.hash}async function X(z){let F=await o();try{if(!F)throw new Ay("toolbox_near_no_signer");let{actionCreators:l}=await import("@near-js/transactions"),{contractId:V,methodName:p,args:b,deposit:K}=z,s=await T(),m=await k({args:b||{},contractId:V,methodName:p}),Ly=l.functionCall(p,b||{},m.getBaseValue("bigint"),BigInt(K||"1"));return(await s.signAndSendTransaction({actions:[Ly],receiverId:V})).transaction_outcome.id}catch(l){throw new Ay("toolbox_near_transfer_failed",{error:l})}}async function Z(z){let F=await T();return qC({account:F,changeMethods:z.changeMethods,contractId:z.contractId,viewMethods:z.viewMethods})}async function D(z){if(!await o())throw new Ay("toolbox_near_no_signer");if(z.actions.length===0)throw new Ay("toolbox_near_empty_batch");return(await(await T()).signAndSendTransaction({actions:z.actions,receiverId:z.receiverId})).transaction.hash}async function k(z,F){let l=await l5(z).when(fC,()=>_y.SIMPLE_TRANSFER).when(nC,(p)=>_C(p.methodName)).when(TC,(p)=>UC(p.actions)).when(oC,()=>_y.ACCOUNT_CREATION).when(CC,()=>_y.CONTRACT_DEPLOYMENT).when(HC,(p)=>{if(!F)throw new Ay("toolbox_near_no_account");return p.customEstimator(F)}).otherwise(()=>{throw new Ay("toolbox_near_invalid_gas_params")}),V=BigInt(l)*BigInt(1000000000000);return GC.from({chain:df.Near,value:V})}function R(z,F){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),k(z,F)}async function S(){let z=await f();try{return(await z.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function x(){let z=await o();return z?(await z.getPublicKey()).toString():""}return{broadcastTransaction:N,callFunction:X,createAction:G,createContract:Z,createContractFunctionCall:L,createSubAccount:Y,createTransaction:A,estimateGas:R,estimateGasLimit:k,estimateTransactionFee:O,executeBatchTransaction:D,getAddress:C,getBalance:Qy(df.Near),getGasPrice:S,getNearProvider:f,getPublicKey:x,getSignerFromPhrase:dT,getSignerFromPrivateKey:eo,serializeTransaction:J,signAndBroadcastTransaction:Q,signTransaction:q,transfer:_,validateAddress:Pn}}var WC=P(()=>{jy();yC();AC()});var I5=P(()=>{WC()});var XC={};ny(XC,{validateNearAddress:()=>Pn,tgasToGas:()=>jq,isSimpleTransfer:()=>fC,isCustomEstimator:()=>HC,isContractDeployment:()=>CC,isContractCall:()=>nC,isBatchTransaction:()=>TC,isAccountCreation:()=>oC,getNearToolbox:()=>mq,getNearSignerFromPrivateKey:()=>eo,getNearSignerFromPhrase:()=>dT,getFullAccessPublicKey:()=>rT,getContractMethodGas:()=>_C,gasToTGas:()=>Kq,estimateBatchGas:()=>UC,createNearContract:()=>qC,GAS_COSTS:()=>_y});var QC=P(()=>{yC();AC();WC();I5()});var ZC={};ny(ZC,{validateRadixAddress:()=>p5,getRadixToolbox:()=>yG});import{GatewayApiClient as cq}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as gq}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as P5,Chain as JC,SKConfig as iq,SwapKitError as dq}from"@swapkit/helpers";function p5(y){return y.startsWith("account_rdx1")&&y.length===66}function rq({networkApi:y}){return async function(o){let f=await aq({address:o,networkApi:y}),T=await sq({networkApi:y,resources:f});if(!T.some((H)=>H.isGasAsset))return[P5.from({chain:JC.Radix}),...T];return T}}async function aq({address:y,networkApi:n}){let o=!0,f,T=[],C=await eq(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 sq({resources:y,networkApi:n}){let o=[],f=50,T=[];for(let C=0;C<y.length;C+=50)T.push(y.slice(C,C+50));for(let C of T){let H=C.map((A)=>A.resource_address),U=await n.state.getEntityDetailsVaultAggregated(H),_=new Map;for(let A of U)if(A.details!==void 0){let J=A.metadata?.items.find((G)=>G.key==="symbol"),L=J?.value.typed.type==="String"?J.value.typed.value:"?";if(A.details.type==="FungibleResource")_.set(A.address,{decimals:A.details.divisibility,symbol:L})}for(let A of C)if(A.aggregation_level==="Global"){let J=_.get(A.resource_address)||{decimals:0,symbol:"?"},L=P5.from({asset:J.symbol!==JC.Radix?`${JC.Radix}.${J.symbol}-${A.resource_address}`:"XRD.XRD",value:A.amount});o.push(L)}}return o}async function eq(y){return(await y.status.getCurrent()).ledger_state.state_version}function yG({dappConfig:y}={}){let n=y||iq.get("integrations").radix,o=gq({...n,networkId:n.network?.networkId||1}),f=cq.initialize(o.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:rq({networkApi:f}),networkApi:f,signAndBroadcast:()=>{throw new dq("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:p5}}var LC=()=>{};import{SwapKitError as fG}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 fG({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return n.padEnd(40,"0")}function nG(y){if(!aT(y))return y;if(y.toUpperCase().startsWith("00")){let n=y.slice(24,30);try{let o=Buffer.from(n,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(o)&&o.length>0)return o}catch{}return y.toUpperCase()}try{let n=y.replace(/0+$/,""),o=n.length%2===0?n:`${n}0`,f=Buffer.from(o,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function rf(y){if(aT(y))return y.toUpperCase();if(y.length<=3)return y;return pn(y)}var sT=()=>{};import{RequestClient as TG,warnOnce as oG}from"@swapkit/helpers";async function CG(y,n){let o=rf(y),f=eT.find((T)=>rf(T.currency)===o&&T.issuer===n);if(f)return f;try{let T=await TG.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){oG({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 HG(y){return eT.filter((n)=>n.issuer===y)}function UG(y,n){let o=rf(y);return eT.some((f)=>rf(f.currency)===o&&f.issuer===n)}var eT;var E5=P(()=>{sT();eT=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var MC={};ny(MC,{validateRippleAddress:()=>n0,parseXrplTokenIdentifier:()=>K5,normalizeCurrency:()=>rf,isKnownToken:()=>UG,isHexCurrency:()=>aT,hexToCurrency:()=>nG,hashes:()=>QG,getXrplTokenInfo:()=>CG,getRippleToolbox:()=>XG,getKnownTokensByIssuer:()=>HG,formatXrplTokenIdentifier:()=>h5,currencyToHex:()=>pn,XRPL_TOKEN_ERROR_CODES:()=>f0,XRPL_KNOWN_TOKENS:()=>eT});import{AssetValue as y0,Chain as xy,getChainConfig as V5,getRPCUrl as _G,SwapKitError as Wy}from"@swapkit/helpers";import{match as t5,P as b5}from"ts-pattern";import{Client as AG,isValidAddress as j5,Wallet as qG,xrpToDrops as GG}from"xrpl";import{hashes as QG}from"xrpl";function K5(y){let n=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!n?.[1]||!n?.[2])return null;if(!j5(n[2]))return null;return{currency:n[1],issuer:n[2]}}function h5(y,n){return`${xy.Ripple}.${y}-${n}`}function WG(y){if(y.isGasAsset)return GG(y.getValue("string"));let n=K5(y.toString());if(!n)throw new Wy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:n.currency,issuer:n.issuer,value:y.getValue("string")}}function u5(y){let n=qG.fromMnemonic(y);return{getAddress:()=>Promise.resolve(n.address),signTransaction:(o)=>Promise.resolve(n.sign(o))}}function n0(y){return j5(y)}function XG(y={}){let n=t5(y).with({phrase:b5.string},({phrase:Q})=>u5(Q)).with({signer:b5.any},({signer:Q})=>Q).otherwise(()=>{return}),o;async function f(){let Q=await _G(xy.Ripple);if(!Q)throw new Wy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:xy.Ripple}});let O=new AG(Q);return await O.connect(),O}async function T(){if(o){let Q=await o.catch(()=>null);if(Q?.isConnected())return Q}return o=f(),o}let C=()=>{if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});return n.getAddress()},H=async(Q)=>{let O=Q||await C(),{baseDecimal:B}=V5(xy.Ripple),Y=await T();try{let[X,Z]=await Promise.all([Y.request({account:O,command:"account_info"}),Y.request({account:O,command:"account_lines"})]),D=X.result.account_data.Balance,k=[y0.from({chain:xy.Ripple,fromBaseDecimal:B,value:D})];for(let R of Z.result.lines){let S=h5(R.currency,R.account);if(Number.parseFloat(R.balance)!==0)k.push(y0.from({asset:S,asyncTokenLookup:!1,value:R.balance}))}return k}catch(X){if(X.data?.error_code===v5.ACCOUNT_NOT_FOUND)return[y0.from({chain:xy.Ripple,value:0})];throw new Wy({errorKey:"toolbox_ripple_get_balance_error",info:{address:O,error:X}})}},U=async()=>{let{baseDecimal:Q}=V5(xy.Ripple),Y=(await(await T()).request({command:"fee"})).result.drops.open_ledger_fee;return y0.from({chain:xy.Ripple,fromBaseDecimal:Q,value:Y})};async function _(Q){let O=Q||await C(),B=await T();try{return(await B.request({account:O,command:"account_lines"})).result.lines.map((X)=>({account:X.account,authorized:X.authorized??!1,balance:X.balance,currency:X.currency,freeze:X.freeze??!1,freezePeer:X.freeze_peer??!1,limit:X.limit,limitPeer:X.limit_peer,noRipple:X.no_ripple??!1,noRipplePeer:X.no_ripple_peer??!1,peerAuthorized:X.peer_authorized??!1,qualityIn:X.quality_in??0,qualityOut:X.quality_out??0}))}catch(Y){if(Y.data?.error_code===v5.ACCOUNT_NOT_FOUND)return[];throw new Wy({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:O,error:Y}})}}async function A({address:Q,currency:O,issuer:B}){let Y=await _(Q),X=pn(O);return Y.some((Z)=>{return pn(Z.currency)===X&&Z.account===B})}async function J({currency:Q,issuer:O,limit:B,sender:Y}){let X=Y||await C();if(!n0(O))throw new Wy({errorKey:"core_transaction_invalid_recipient_address",info:{address:O}});let Z=Number.parseFloat(B);if(Number.isNaN(Z)||Z<0)throw new Wy({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:B}});let D=await T(),k={Account:X,LimitAmount:{currency:Q,issuer:O,value:B},TransactionType:"TrustSet"};return D.autofill(k)}async function L({assetValue:Q,recipient:O,memo:B,sender:Y,destinationTag:X,extendBySeconds:Z=150}){if(!n0(O))throw new Wy({errorKey:"core_transaction_invalid_recipient_address"});let D=Y||await C();if(Q.chain!==xy.Ripple)throw new Wy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:Q.toString()}});let k=WG(Q),R={Account:D,Amount:k,Destination:O,TransactionType:"Payment",...X!==void 0&&{DestinationTag:X}};if(B)R.Memos=[{Memo:{MemoData:Buffer.from(B).toString("hex")}}];let x=await(await T()).autofill(R);if(x.LastLedgerSequence&&Z>0)x.LastLedgerSequence+=Math.ceil(Z/4);return x}function G(Q){if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});return n.signTransaction(Q)}async function q(Q){let B=await(await T()).submitAndWait(Q),{result:Y}=B;if(Y.validated)return Y.hash;let X=Y.meta?.TransactionResult,Z=t5(X).with(f0.tecNO_LINE,()=>"No trust line exists for this token").with(f0.tecPATH_DRY,()=>"Payment path could not deliver funds").with(f0.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new Wy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:xy.Ripple,...Z?{reason:Z}:{txResult:X}}})}let W=async(Q)=>{try{let O=await G(Q);return q(O.tx_blob)}catch(O){if(O instanceof Wy)throw O;throw new Wy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:xy.Ripple,error:O}})}};async function M(Q){if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});let O=await n.getAddress(),B=await L({...Q,sender:O}),Y=await G(B);return q(Y.tx_blob)}async function w(Q){if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});let O=await n.getAddress(),B=await J({...Q,sender:O}),Y=await G(B);return q(Y.tx_blob)}function N(){let Q=o;if(o=null,Q)Q.then((O)=>{if(O?.isConnected())return O.disconnect();return}).catch((O)=>{console.warn("XRPL Cleanup failed silently:",O)})}return{broadcastTransaction:q,createSigner:u5,createTransaction:L,disconnect:N,estimateTransactionFee:U,getAddress:C,getBalance:H,getTrustLines:_,hasTrustLine:A,setTrustLine:J,setTrustLineAndBroadcast:w,signAndBroadcastTransaction:W,signTransaction:G,transfer:M,validateAddress:n0}}var v5,f0;var YC=P(()=>{sT();sT();E5();v5={ACCOUNT_NOT_FOUND:19},f0={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});import{sha256 as JG}from"@noble/hashes/sha2.js";import{bytesToHex as m5,hexToBytes as c5}from"@noble/hashes/utils.js";import{SwapKitError as af}from"@swapkit/helpers";function BC(y,n){let o=0n,f=0n,T=n;while(T<y.length&&T-n<10){let C=y[T++];if(C===void 0)break;if(o|=BigInt(C&127)<<f,f+=7n,(C&128)===0)return[o,T]}throw new af("toolbox_tron_transaction_creation_failed")}function En(y){let n=[],o=y<0n?y+2n**64n:y;while(o>=128n)n.push(Number(o&0x7fn)|128),o>>=7n;return n.push(Number(o)),n}function T0(y,n,o){let f=y.get(n);if(f)f.push(o);else y.set(n,[o])}function YG(y){let n=new Map,o=0;while(o<y.length){let[f,T]=BC(y,o);o=T;let C=Number(f>>3n),H=Number(f&7n);if(H===o0){let[U,_]=BC(y,o);o=_,T0(n,C,{data:new Uint8Array(En(U)),wireType:o0})}else if(H===C0){let[U,_]=BC(y,o);o=_;let A=Number(U);if(A<0||o+A>y.length)throw new af("toolbox_tron_transaction_creation_failed");let J=y.slice(o,o+A);o+=A,T0(n,C,{data:J,wireType:C0})}else if(H===g5){if(o+8>y.length)throw new af("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+8);o+=8,T0(n,C,{data:U,wireType:g5})}else if(H===i5){if(o+4>y.length)throw new af("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+4);o+=4,T0(n,C,{data:U,wireType:i5})}else throw new af("toolbox_tron_transaction_creation_failed")}return n}function BG(y){let n=[];for(let[C,H]of[...y.entries()].sort(([U],[_])=>U-_))for(let{wireType:U,data:_}of H){let A=BigInt(C<<3|U);if(n.push(new Uint8Array(En(A))),U===C0)n.push(new Uint8Array(En(BigInt(_.length))));n.push(_)}let o=n.reduce((C,H)=>C+H.length,0),f=new Uint8Array(o),T=0;for(let C of n)f.set(C,T),T+=C.length;return f}function d5(y,n){if(!y||y.length%2!==0)throw new af("toolbox_tron_transaction_creation_failed");let o=c5(y),f=YG(o);if(n.expiration!==void 0)f.set(ZG,[{data:new Uint8Array(En(BigInt(n.expiration))),wireType:o0}]);if(n.data!==void 0)f.set(LG,[{data:c5(n.data),wireType:C0}]);if(n.fee_limit!==void 0)f.set(MG,[{data:new Uint8Array(En(BigInt(n.fee_limit))),wireType:o0}]);let T=BG(f),C=m5(T),H=m5(JG(T));return{raw_data_hex:C,txID:H}}var o0=0,g5=1,C0=2,i5=5,ZG=8,LG=10,MG=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 zG}from"@noble/hashes/sha3.js";import{bytesToHex as sf,hexToBytes as H0}from"@noble/hashes/utils.js";import{createBase58check as NG}from"@scure/base";import{SwapKitError as e5}from"@swapkit/helpers";function ly(y){if(typeof y!=="string")return!1;try{let n=U0.decode(y);return n.length===21&&n[0]===yU}catch{return!1}}function fU(y){return sf(U0.decode(y))}function wG(y){return U0.decode(y).slice(1)}function nU(y){let n=a5.getPublicKey(H0(y),!1),o=zG(n.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=yU,f.set(o,1),U0.encode(f)}function TU({txID:y,privateKey:n}){let o=a5.sign(H0(y),H0(n),{format:"recovered",prehash:!1}),f=o[0]??0,T=sf(o.slice(1,33)),C=sf(o.slice(33,65)),H=(f+27).toString(16).padStart(2,"0");return T+C+H}function ef({txID:y,raw_data_hex:n}){let o=sf(s5(H0(n)));if(y!==o)throw new e5("toolbox_tron_invalid_transaction_integrity",{expected:o,txID:y})}function DG(y){return`000000000000000000000000${sf(wG(y))}`}function RG(y){let n=typeof y==="bigint"?y:BigInt(y);if(n<0n||n>=OG)throw new e5("toolbox_tron_invalid_token_identifier",{identifier:n.toString()});return n.toString(16).padStart(64,"0")}function yn(y){return y.map(({type:n,value:o})=>n==="address"?DG(o):RG(BigInt(o))).join("")}function oU(y){return sf(new TextEncoder().encode(y))}var U0,yU=65,OG;var zC=P(()=>{U0=NG(s5),OG=2n**256n});import{Chain as kG,getRPCUrlSync as SG,SwapKitError as Yy,warnOnce as _0}from"@swapkit/helpers";function HU(){try{return SG(kG.Tron)}catch{return CU}}function UU(){let y=new AbortController,n=setTimeout(()=>y.abort(),IG);return{cleanup:()=>clearTimeout(n),signal:y.signal}}async function Of(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${HU()}${y}`,{body:JSON.stringify(n),headers:{"Content-Type":"application/json"},method:"POST",signal:o});if(!T.ok)throw new Yy("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function _U(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${n??HU()}${y}`,{headers:{"Content-Type":"application/json"},signal:o});if(!T.ok)throw new Yy("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function AU(y){if(!ly(y))throw new Yy("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let n=await _U(`/v1/accounts/${y}`,CU);if(!(n.success&&n.data)||n.data.length===0)return;let o;try{o=fU(y).toLowerCase()}catch{o=y.toLowerCase()}let f=n.data.find((T)=>T.address.toLowerCase()===o);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(n){if(n instanceof Yy)throw n;throw new Yy("toolbox_tron_trongrid_api_error",{address:y,message:n instanceof Error?n.message:"Unknown error"})}}async function qU({from:y,to:n,amount:o}){let T=await Of("/wallet/createtransaction",{amount:o,owner_address:y,to_address:n,visible:!0});if(!T.txID||!T.raw_data_hex||!T.raw_data)throw new Yy("toolbox_tron_transaction_creation_failed");let H=T.raw_data?.contract?.[0]?.parameter?.value;if(H?.to_address!==n||H?.owner_address!==y||H?.amount!==o)throw new Yy("toolbox_tron_transaction_creation_failed");return ef(T),T}async function GU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f,feeLimit:T,callValue:C=0}){let H=await Of("/wallet/triggersmartcontract",{call_value:C,contract_address:n,fee_limit:T,function_selector:o,owner_address:y,parameter:f,visible:!0});if(!H.result.result||!H.transaction?.txID||!H.transaction?.raw_data_hex)throw new Yy("toolbox_tron_transaction_creation_failed");let _=H.transaction.raw_data?.contract?.[0]?.parameter?.value;if(_?.contract_address!==n||_?.owner_address!==y)throw new Yy("toolbox_tron_transaction_creation_failed");return ef(H.transaction),H.transaction}function WU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return Of("/wallet/triggerconstantcontract",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}function PG({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return Of("/wallet/estimateenergy",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}async function Vn(y){try{let{result:n,txid:o}=await Of("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!n||!o)throw new Yy("toolbox_tron_token_transfer_failed");return o}catch(n){throw new Yy("toolbox_tron_broadcast_failed",{error:n})}}async function tn(){let y={};try{let{chainParameter:n}=await _U("/wallet/getchainparameters");for(let o of n)y[o.key]=o.value}catch(n){_0({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${n instanceof Error?n.message:n}`})}return{bandwidthFee:y.getTransactionFee??FG,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??xG,energyFee:y.getEnergyFee??lG,memoFee:y.getMemoFee??$G}}async function NC(y){try{let n=await Of("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(n.freeNetLimit??600)-(n.freeNetUsed??0),total:n.NetLimit??0,used:n.NetUsed??0},energy:{total:n.EnergyLimit??0,used:n.EnergyUsed??0}}}catch(n){return _0({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${n instanceof Error?n.message:n}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function bn(y){try{let n=await Of("/wallet/getaccount",{address:y,visible:!0});return n&&Object.keys(n).length>0}catch{return!1}}async function OC(y){try{let n=await PG({...y,ownerAddress:y.sender}),o=n.energy_required??n.energyRequired;if(n.result&&!n.result.result)throw new Yy("toolbox_tron_trongrid_api_error",{message:n.result.message||"estimateenergy failed"});if(o!==void 0){if(Number.isFinite(o)&&o>0)return o;throw new Yy("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(n){_0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${n instanceof Error?n.message:n}`})}try{let{energy_used:n}=await WU({...y,ownerAddress:y.sender});return n}catch(n){return _0({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy, using default: ${n instanceof Error?n.message:n}`}),65000}}async function XU({assetAddress:y,owner:n,spender:o}){let f=yn([{type:"address",value:n},{type:"address",value:o}]),C=(await WU({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:o,parameter:f})).constant_result?.[0];if(!C)return 0n;try{return BigInt(`0x${C}`)}catch{return 0n}}var CU="https://api.trongrid.io",FG=1000,xG=1e6,lG=420,$G=1e6,IG=30000;var QU=P(()=>{zC()});import{bytesToHex as pG}from"@noble/hashes/utils.js";import{HDKey as EG}from"@scure/bip32";import{mnemonicToSeedSync as VG}from"@scure/bip39";import{AssetValue as ay,BaseDecimal as A0,Chain as Oy,derivationPathToString as BU,getRPCUrl as tG,NetworkDerivationPath as zU,SwapKitError as qy,updateDerivationPath as NU,warnOnce as JU}from"@swapkit/helpers";import{match as bG,P as wC}from"ts-pattern";function wU({phrase:y,derivationPath:n}){let o=EG.fromMasterSeed(VG(y)).derive(n);if(!o.privateKey)throw new qy("toolbox_tron_no_signer");return pG(o.privateKey)}function DU({phrase:y,derivationPath:n,index:o}){let f=n||BU(NU(zU[Oy.Tron],{index:o||0}));return wU({derivationPath:f,phrase:y})}function uG({phrase:y,derivationPath:n}){let o=wU({derivationPath:n,phrase:y}),f=nU(o);return{getAddress:()=>Promise.resolve(f),signTransaction:(T)=>{ef(T);let C=TU({privateKey:o,txID:T.txID});return Promise.resolve({...T,signature:[C]})}}}function YU({transaction:y,memo:n,expiration:o,feeLimit:f}){let T={},C={};if(f!==void 0&&y.raw_data)T.fee_limit=f,C.fee_limit=f;if(n){let _=oU(n);T.data=_,C.data=_}if(o){let _=y.raw_data.expiration+o*1000;T.expiration=_,C.expiration=_}if(Object.keys(T).length===0)return y;let{raw_data_hex:H,txID:U}=d5(y.raw_data_hex,T);return{...y,raw_data:{...y.raw_data,...C},raw_data_hex:H,txID:U}}function RU(y={}){let n="index"in y?y.index||0:0,o=BU("derivationPath"in y&&y.derivationPath?y.derivationPath:NU(zU[Oy.Tron],{index:n})),f,T=!1;function C(){if(T)return Promise.resolve(f);return f=bG(y).with({phrase:wC.string},({phrase:X})=>uG({derivationPath:o,phrase:X})).with({signer:wC.not(wC.nullish)},({signer:X})=>X).otherwise(()=>{return}),T=!0,Promise.resolve(f)}async function H(){let X=await C();if(!X)throw new qy("toolbox_tron_no_signer");return X.getAddress()}async function U(X,Z){let D=X||LU,k=Z??(await tn()).energyFee,R=D*k,S=Math.ceil(R*1.5);return Math.min(Math.max(S,1e7),150000000)}async function _({contractAddress:X,functionSelector:Z,parameter:D,sender:k,memo:R,expiration:S,extraEnergy:x=0}){let z=await OC({contractAddress:X,functionSelector:Z,parameter:D,sender:k}),F=await U(z+x),l=await GU({contractAddress:X,feeLimit:F,functionSelector:Z,ownerAddress:k,parameter:D});return YU({expiration:S,feeLimit:F,memo:R,transaction:l})}async function A(X){if(!ly(X))return[ay.from({chain:Oy.Tron})];try{let Z=await AU(X);if(!Z)return[ay.from({chain:Oy.Tron})];let D=[ay.from({chain:Oy.Tron,fromBaseDecimal:6,value:String(Z.balance)})],k=Z.trc20?.find((R)=>(RC in R));if(k){let R=k[RC];D.push(ay.from({asset:`TRON.USDT-${RC}`,fromBaseDecimal:6,value:R}))}return D}catch(Z){return JU({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${Z instanceof Error?Z.message:Z}`}),[ay.from({chain:Oy.Tron})]}}async function J({recipient:X,assetValue:Z,memo:D,expiration:k}){if(!ly(X))throw new qy("toolbox_tron_token_transfer_failed",{message:"invalid address"});let R=await C();if(!R)throw new qy("toolbox_tron_no_signer");try{let S=await H(),x=await w({assetValue:Z,expiration:k,memo:D,recipient:X,sender:S}),z=await R.signTransaction(x),F=await Vn(z);if(!F)throw new qy("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return F}catch(S){throw new qy("toolbox_tron_token_transfer_failed",{message:S instanceof Error?S.message:String(S)})}}function L({requiredBandwidth:X,resources:Z,feePerUnit:D}){let k=Math.max(0,Z.free+Z.total-Z.used);return X>k?(X-k)*D:0}async function G({memo:X,recipient:Z,senderAddress:D}){let[k,R,S]=await Promise.all([tn(),bn(Z),NC(D)]),x=R?0:k.createAccountFee,z=L({feePerUnit:k.bandwidthFee,requiredBandwidth:ZU,resources:S.bandwidth}),F=X?k.memoFee:0;return ay.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:x+z+F})}async function q({assetValue:X,memo:Z,recipient:D,senderAddress:k}){let R=X.address;if(!R)throw new qy("toolbox_tron_invalid_token_identifier",{identifier:X.toString()});let[S,x,z,F]=await Promise.all([tn(),bn(D),NC(k),OC({contractAddress:R,functionSelector:"transfer(address,uint256)",parameter:yn([{type:"address",value:D},{type:"uint256",value:X.getBaseValue("string")}]),sender:k})]),V=F+(x?0:DC),p=L({feePerUnit:S.bandwidthFee,requiredBandwidth:MU,resources:z.bandwidth}),b=Math.max(0,z.energy.total-z.energy.used),K=V>b?(V-b)*S.energyFee:0,s=Z?S.memoFee:0;return ay.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:p+K+s})}async function W({assetValue:X,memo:Z,recipient:D}){let[k,R]=await Promise.all([tn(),bn(D)]);if(X.isGasAsset){let F=R?0:k.createAccountFee,l=Z?k.memoFee:0;return ay.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:F+ZU*k.bandwidthFee+l})}let x=await U(LU+(R?0:DC),k.energyFee),z=Z?k.memoFee:0;return ay.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:x+MU*k.bandwidthFee+z})}async function M({assetValue:X,memo:Z,recipient:D,sender:k}){let R=await C();try{let S=k?k:R?await H():void 0;if(!S)return W({assetValue:X,memo:Z,recipient:D});return X.isGasAsset?G({memo:Z,recipient:D,senderAddress:S}):q({assetValue:X,memo:Z,recipient:D,senderAddress:S})}catch(S){throw JU({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${S instanceof Error?S.message:S}`}),new qy("toolbox_fee_estimation_failed",{chain:Oy.Tron,error:S})}}async function w({recipient:X,assetValue:Z,memo:D,sender:k,expiration:R}){if(!ly(X)||!ly(k))throw new qy("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(Z.isGasAsset){let z=await qU({amount:Z.getBaseValue("number"),from:k,to:X});return YU({expiration:R,memo:D,transaction:z})}let S=Z.address;if(!S)throw new qy("toolbox_tron_invalid_token_identifier",{identifier:Z.toString()});let x=await bn(X);return _({contractAddress:S,expiration:R,extraEnergy:x?0:DC,functionSelector:"transfer(address,uint256)",memo:D,parameter:yn([{type:"address",value:X},{type:"uint256",value:Z.getBaseValue("string")}]),sender:k})}async function N(X){ef(X);let Z=await C();if(!Z)throw new qy("toolbox_tron_no_signer");return Z.signTransaction(X)}async function Q(X){let Z=await N(X);return Vn(Z)}function O({assetAddress:X,spenderAddress:Z,from:D}){return XU({assetAddress:X,owner:D,spender:Z})}async function B({assetAddress:X,spenderAddress:Z,from:D,amount:k}){let R=await O({assetAddress:X,from:D,spenderAddress:Z});if(!k)return R>0n;return R>=BigInt(k)}async function Y({assetAddress:X,spenderAddress:Z,amount:D,from:k}){if(!ly(X)||!ly(Z))throw new qy("toolbox_tron_approve_failed");let R=await C();if(!R)throw new qy("toolbox_tron_no_signer");let S=k||await H(),x=D!==void 0?BigInt(D).toString():vG;try{let z=await _({contractAddress:X,functionSelector:"approve(address,uint256)",parameter:yn([{type:"address",value:Z},{type:"uint256",value:x}]),sender:S}),F=await R.signTransaction(z),l=await Vn(F);if(!l)throw new qy("toolbox_tron_approve_failed");return l}catch(z){if(z instanceof qy)throw z;throw new qy("toolbox_tron_approve_failed",{error:z})}}return{approve:Y,broadcastTransaction:Vn,createTransaction:w,estimateTransactionFee:M,getAddress:H,getApprovedAmount:O,getBalance:A,getRpcUrl:()=>tG(Oy.Tron),isApproved:B,signAndBroadcastTransaction:Q,signTransaction:N,transfer:J,validateAddress:ly}}var OU,ZU=268,LU=65000,DC=25000,MU=345,RC="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",vG="115792089237316195423570985008687907853269984665640564039457584007913129639935";var kU=P(()=>{r5();QU();zC();OU=ly});var kC={};ny(kC,{validateTronAddress:()=>OU,getTronToolbox:()=>RU,getTronPrivateKeyFromMnemonic:()=>DU});var SC=P(()=>{kU()});import{AssetValue as vn,Chain as vy,derivationPathToString as jG,getChainConfig as KG,getRPCUrl as SU,NetworkDerivationPath as hG,SKConfig as mG,SwapKitError as fn}from"@swapkit/helpers";import{match as cG,P as gG}from"ts-pattern";function q0(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return iG.test(y)}function dG(y){if(typeof y!=="object"||y===null)return;let n="response"in y?y.response:void 0;return typeof n?.status==="number"?n.status:void 0}function rG(y){return dG(y)===504}function aG(y){return y.hash?.().toString("hex")}function sG(y){return[...new Set([y,...mG.get("rpcUrls")[vy.Stellar]])].filter(Boolean)}async function eG(y){if(!q0(y))return!1;try{let{StrKey:n}=await import("@stellar/stellar-sdk");return n.isValidEd25519PublicKey(y)}catch{return!1}}function FU(y={}){let n,o=y.derivationPath||hG[vy.Stellar],f=jG(o.slice(0,3));async function T({phrase:N,path:Q}){let{HDKey:O}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:B}=await import("@scure/bip39"),{Keypair:Y}=await import("@stellar/stellar-sdk"),X=B(N),D=O.fromMasterSeed(X).derive(Q,!0);return Y.fromRawEd25519Seed(Buffer.from(D.privateKey))}async function C(){if(n)return n;let N=cG(y).with({phrase:gG.string},({phrase:Q})=>Q).otherwise(()=>{return});if(!N)throw new fn("toolbox_stellar_no_signer");return n=await T({path:f,phrase:N}),n}async function H(N){let{Horizon:Q}=await import("@stellar/stellar-sdk"),O=N||await SU(vy.Stellar);return new Q.Server(O)}async function U(N,Q){for(let O of Q)try{return(await(await H(O)).transactions().transaction(N).call()).hash||N}catch{}return}async function _(N,Q){let O=await SU(vy.Stellar),B=sG(O),Y=aG(N),X;for(let Z of B)try{let D=await H(Z),{hash:k}=await D.submitTransaction(N);return k}catch(D){if(X=D,!rG(D))break;let k=Y?await U(Y,B):void 0;if(k)return k}throw new fn(Q,X)}async function A(){try{return(await C()).publicKey()}catch{return""}}async function J(N){let Q=N||await A();if(!Q)throw new fn("toolbox_stellar_account_not_found");try{return(await(await H()).loadAccount(Q)).balances.map((Y)=>{if(Y.asset_type==="native")return vn.from({chain:vy.Stellar,value:Y.balance});let X="asset_code"in Y?Y.asset_code:"",Z="asset_issuer"in Y?Y.asset_issuer:"";return vn.from({asset:`${vy.Stellar}.${X}-${Z}`,asyncTokenLookup:!1,value:Y.balance})})}catch{return[vn.from({chain:vy.Stellar,value:0})]}}async function L({recipient:N,assetValue:Q,memo:O,sender:B}){if(O){if(new TextEncoder().encode(O).length>28)throw new fn("helpers_invalid_memo_type")}if(!await eG(N))throw new fn("core_transaction_invalid_recipient_address");let X=B||await A();if(!X)throw new fn("toolbox_stellar_no_signer");let{Asset:Z,Memo:D,Networks:k,Operation:R,TransactionBuilder:S}=await import("@stellar/stellar-sdk"),x=await H(),z=await x.fetchBaseFee(),F=await x.loadAccount(X),l=new S(F,{fee:String(z),networkPassphrase:k.PUBLIC});if(Q.isGasAsset)try{await x.loadAccount(N),l.addOperation(R.payment({amount:Q.getValue("string"),asset:Z.native(),destination:N}))}catch{l.addOperation(R.createAccount({destination:N,startingBalance:Q.getValue("string")}))}else l.addOperation(R.payment({amount:Q.getValue("string"),asset:new Z(Q.symbol,Q.address),destination:N}));if(O)l.addMemo(D.text(O));return l.setTimeout(30).build()}async function G(N){let{TransactionBuilder:Q,Networks:O}=await import("@stellar/stellar-sdk"),B=await C(),Y=Q.fromXDR(N.toXDR(),O.PUBLIC);return Y.sign(B),Y}function q(N){return _(N,"toolbox_stellar_broadcast_error")}async function W({recipient:N,assetValue:Q,memo:O}){let B=await C(),Y=B.publicKey(),X=await L({assetValue:Q,memo:O,recipient:N,sender:Y});return X.sign(B),_(X,"toolbox_stellar_transaction_failed")}async function M(N){let Q=await G(N);return q(Q)}async function w(){let{baseDecimal:N}=KG(vy.Stellar);try{let B=(await(await H()).feeStats()).fee_charged.p50;return vn.from({chain:vy.Stellar,fromBaseDecimal:N,value:B})}catch{return vn.from({chain:vy.Stellar,fromBaseDecimal:N,value:"100"})}}return{broadcastTransaction:q,createTransaction:L,estimateTransactionFee:w,getAddress:A,getBalance:J,signAndBroadcastTransaction:M,signTransaction:G,transfer:W,validateAddress:q0}}var iG;var xU=P(()=>{iG=/^G[A-Z2-7]{55}$/});var G0={};ny(G0,{validateStellarAddress:()=>q0,getStellarToolbox:()=>FU});var W0=P(()=>{xU()});import{AssetValue as y4,Chain as v,CosmosChains as FC,EVMChains as xC,FeeOption as f4,SwapKitError as n4,UTXOChains as $U}from"@swapkit/helpers";async function NQ(){let{match:y}=await import("ts-pattern"),{validateAptosAddress:n}=await Promise.resolve().then(() => (jn(),un)),{validateEVMAddress:o}=await Promise.resolve().then(() => (b0(),X1)),{validateCardanoAddress:f}=await Promise.resolve().then(() => (m0(),h0)),{getCosmosAddressValidator:T}=await Promise.resolve().then(() => (zT(),BT)),{validateHyperCoreAddress:C}=await Promise.resolve().then(() => (zo(),Bo)),{validateSolanaAddress:H}=await Promise.resolve().then(() => (Ro(),Do)),{validateStarknetAddress:U}=await Promise.resolve().then(() => (xT(),FT)),{validateSuiAddress:_}=await Promise.resolve().then(() => (IT(),$T)),{validateTonAddress:A}=await Promise.resolve().then(() => (ET(),pT)),{getUTXOAddressValidator:J}=await Promise.resolve().then(() => (so(),ao)),{validateNearAddress:L}=await Promise.resolve().then(() => (QC(),XC)),{validateRadixAddress:G}=await Promise.resolve().then(() => (LC(),ZC)),{validateRippleAddress:q}=await Promise.resolve().then(() => (YC(),MC)),{validateTronAddress:W}=await Promise.resolve().then(() => (SC(),kC)),{validateStellarAddress:M}=await Promise.resolve().then(() => (W0(),G0));return function({address:N,chain:Q}){return y(Q).with(...xC,()=>o(N)).with(...$U,(B)=>{return J(B)(N)}).with(...FC,(B)=>{return T(B)(N)}).with(v.Aptos,()=>n(N)).with(v.Radix,()=>G(N)).with(v.Hype,()=>C(N)).with(v.Near,()=>L(N)).with(v.Ripple,()=>q(N)).with(v.Solana,()=>H(N)).with(v.Stellar,()=>M(N)).with(v.Starknet,()=>U(N)).with(v.Sui,()=>_(N)).with(v.Ton,()=>A(N)).with(v.Tron,()=>W(N)).with(v.Cardano,()=>f(N)).otherwise(()=>!1)}}function OQ(y){return async function(o){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...xC,async(T)=>{let C=await lU(T),H=await C.createTransaction(o),U="feeOptionKey"in o?o.feeOptionKey:f4.Fast;return C.estimateTransactionFee({...H,feeOption:U})}).with(v.Bitcoin,v.BitcoinCash,v.Dogecoin,v.Dash,v.Litecoin,v.Solana,v.Ripple,v.Tron,v.Near,v.Cardano,v.Hype,async(T)=>{return(await lU(T)).estimateTransactionFee(o)}).with(v.Aptos,async()=>{let{getAptosToolbox:T}=await Promise.resolve().then(() => (jn(),un));return T().estimateTransactionFee(o)}).with(v.Starknet,async()=>{let{getStarknetToolbox:T}=await Promise.resolve().then(() => (xT(),FT));return(await T()).estimateTransactionFee(o)}).with(v.Stellar,async()=>{let{getStellarToolbox:T}=await Promise.resolve().then(() => (W0(),G0));return T().estimateTransactionFee()}).with(v.Sui,async()=>{let{getSuiToolbox:T}=await Promise.resolve().then(() => (IT(),$T));return T().estimateTransactionFee(o)}).with(v.Ton,async()=>{let{getTONToolbox:T}=await Promise.resolve().then(() => (ET(),pT));return T().estimateTransactionFee(o)}).with(...FC,async()=>{let{estimateTransactionFee:T}=await Promise.resolve().then(() => (zT(),BT));return T(o)}).otherwise(async()=>y4.from({chain:y}))}}async function lU(y,n){let{match:o}=await import("ts-pattern");return o(y).returnType().with(...xC,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (t0(),q1));return await f(y,n)}).with(...$U,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (so(),ao));return f(y,n)}).with(...FC,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (zT(),BT));return f(y,n)}).with(v.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (jn(),un));return f(n)}).with(v.Hype,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (zo(),Bo));return f(n)}).with(v.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (LC(),ZC));return f(n)}).with(v.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (YC(),MC));return f(n)}).with(v.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => (Ro(),Do));return f(n)}).with(v.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (W0(),G0));return f(n)}).with(v.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (xT(),FT));return f(n)}).with(v.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (IT(),$T));return f(n)}).with(v.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (SC(),kC));return f(n)}).with(v.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (QC(),XC));return f(n)}).with(v.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (m0(),h0));return f(n)}).with(v.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (ET(),pT));return f(n)}).otherwise(()=>{throw new n4("toolbox_not_supported",{chain:y})})}export{lU as getToolbox,OQ as getFeeEstimator,NQ as getAddressValidator};
|
|
1
|
+
var PU=Object.defineProperty;var pU=(y)=>y;function EU(y,n){this[y]=pU.bind(null,n)}var ny=(y,n)=>{for(var o in n)PU(y,o,{get:n[o],enumerable:!0,configurable:!0,set:EU.bind(n,o)})};var P=(y,n)=>()=>(y&&(n=y(y=0)),n);var $=((y)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(y,{get:(n,o)=>(typeof require<"u"?require:n)[o]}):y)(function(y){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+y+'" is not supported')});import{AssetValue as nn,Chain as uy,derivationPathToString as VU,getChainConfig as Q0,getRPCUrlSync as lC,NetworkDerivationPath as tU,SwapKitError as Cy}from"@swapkit/helpers";import{match as $C,P as J0}from"ts-pattern";function wf(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let n=y.slice(2);if(n.length===0||n.length>64)return!1;return bU.test(n)}function IC({derivationPath:y,provider:n,...o}={}){let f,T=VU(y||tU[uy.Aptos],{allHardened:!0});async function C(){if(f)return f;return f=await $C(o).with({phrase:J0.string},async({phrase:M})=>{let{Ed25519Account:w}=await import("@aptos-labs/ts-sdk");return w.fromDerivationPath({mnemonic:M,path:T})}).with({signer:J0.any},({signer:M})=>M).otherwise(()=>{return}),f}async function H(){let{Aptos:M,AptosConfig:w}=await import("@aptos-labs/ts-sdk"),N=new w({fullnode:n||lC(uy.Aptos)});return new M(N)}async function U(){return(await C())?.accountAddress.toString()||""}async function _(M){let w=M||await U();if(!w)throw new Cy("toolbox_aptos_address_required");let{baseDecimal:N,chain:Q}=Q0(uy.Aptos);try{let O=await H(),B=await O.getAccountAPTAmount({accountAddress:w}),Y=[nn.from({chain:Q,fromBaseDecimal:N,value:B.toString()})],X=await O.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:w}}}});for(let Z of X){if(Z.asset_type===Af.COIN_TYPE||Number(Z.amount)<=0)continue;let D=Z.asset_type;if(D){let R=("metadata"in Z&&typeof Z.metadata==="object"&&Z.metadata!==null?Z.metadata:void 0)?.decimals??N;Y.push(nn.from({asset:`${uy.Aptos}.APT-${D}`,fromBaseDecimal:R,value:String(Z.amount)}))}}return Y}catch{return[nn.from({chain:Q})]}}async function A(M){if(!M){let{baseDecimal:X}=Q0(uy.Aptos),Z=n||lC(uy.Aptos),D=await fetch(`${Z}/estimate_gas_price`),{gas_estimate:k}=await D.json();return nn.from({chain:uy.Aptos,fromBaseDecimal:X,value:String(k)})}let w=await C();if(!w)throw new Cy("toolbox_aptos_no_signer");let N=await J(M),Q=await H(),[O]=await Q.transaction.simulate.simple({signerPublicKey:w.publicKey,transaction:N});if(!O)throw new Cy("toolbox_aptos_transaction_creation_error");let B=BigInt(O.gas_used)*BigInt(O.gas_unit_price),{baseDecimal:Y}=Q0(uy.Aptos);return nn.from({chain:uy.Aptos,fromBaseDecimal:Y,value:B.toString()})}async function J({recipient:M,assetValue:w,maxGasAmount:N,sender:Q}){if(!wf(M))throw new Cy("core_transaction_invalid_recipient_address");let O=Q||await U();if(!O)throw new Cy("toolbox_aptos_no_sender");let{AccountAddress:B}=await import("@aptos-labs/ts-sdk"),Y=await H(),X=B.from(O);try{let Z=w.isGasAsset?Af.TRANSFER:Af.FUNGIBLE_STORE_TRANSFER,D=$C({address:w?.address,isGasAsset:w.isGasAsset}).with({isGasAsset:!0},()=>[B.from(M),w.getBaseValue("bigint")]).with({address:J0.string},({address:k})=>[B.from(k),B.from(M),w.getBaseValue("bigint")]).otherwise(()=>null);if(!D)throw new Cy("toolbox_aptos_missing_asset_type");return Y.transaction.build.simple({data:{function:Z,functionArguments:D,typeArguments:w.isGasAsset?[]:[Af.FUNGIBLE_ASSET_METADATA]},options:N?{maxGasAmount:N}:void 0,sender:X})}catch(Z){if(Z instanceof Cy)throw Z;throw new Cy("toolbox_aptos_transaction_creation_error",Z)}}async function L(M){let w=await C();if(!w)throw new Cy("toolbox_aptos_no_signer");return(await H()).transaction.sign({signer:w,transaction:M})}async function G({assetValue:M,maxGasAmount:w,recipient:N}){let Q=await C();if(!Q)throw new Cy("toolbox_aptos_no_signer");if(!wf(N))throw new Cy("core_transaction_invalid_recipient_address");try{let O=Q.accountAddress.toString(),B=await J({assetValue:M,maxGasAmount:w,recipient:N,sender:O});return(await(await H()).signAndSubmitTransaction({signer:Q,transaction:B})).hash}catch(O){if(O instanceof Cy)throw O;throw new Cy("toolbox_aptos_transaction_creation_error",O)}}async function q({senderAuthenticator:M,transaction:w}){try{return(await(await H()).transaction.submit.simple({senderAuthenticator:M,transaction:w})).hash}catch(N){throw new Cy("toolbox_aptos_broadcast_error",N)}}async function W(M){let w=await L(M);return q({senderAuthenticator:w,transaction:M})}return{broadcastTransaction:q,createTransaction:J,estimateTransactionFee:A,getAddress:U,getBalance:_,signAndBroadcastTransaction:W,signTransaction:L,transfer:G,validateAddress:wf}}function PC({provider:y}){return async function({assetValue:o,recipient:f}){if(!wf(f))throw new Cy("core_transaction_invalid_recipient_address");let{AccountAddress:T}=await import("@aptos-labs/ts-sdk");if(o.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[T.from(f).toString(),o.getBaseValue("string")],function:Af.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let C=o.address;if(!C)throw new Cy("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[C,T.from(f).toString(),o.getBaseValue("string")],function:Af.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[Af.FUNGIBLE_ASSET_METADATA]})).hash}}var Af,bU;var pC=P(()=>{Af={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},bU=/^[0-9a-fA-F]+$/});var jn={};ny(jn,{validateAptosAddress:()=>wf,getAptosToolbox:()=>IC,createAptosExtensionTransfer:()=>PC});var Kn=P(()=>{pC()});import{AssetValue as EC,getChainConfig as vU}from"@swapkit/helpers";import{SwapKitApi as uU}from"@swapkit/helpers/api";function VC(){function y(){let n=Date.now(),o=Z0||n;return Z0=o,n>Z0?n:o+1}return jU+y().toString(36)}function Qy(y){return async function(o,f=!0){let T=await uU.getChainBalance({address:o,chain:y,scamFilter:f}),{baseDecimal:C}=vU(y),H=T.map(({identifier:_,value:A,decimal:J})=>{return new EC({decimal:J||C,identifier:_,value:A})});if(!H.some((_)=>_.isGasAsset))return[EC.from({chain:y}),...H];return H}}var jU,Z0=0;var jy=P(()=>{jU=typeof process<"u"&&process.pid?process.pid.toString(36):""});function Tn(y){return{getBalance:Qy(y)}}function KU(y){return y}var hn=P(()=>{jy()});import{Chain as i,getChainConfig as B0,getRPCUrl as hU,SwapKitError as mn}from"@swapkit/helpers";import{getAddress as bC,Interface as mU,JsonRpcProvider as cU}from"ethers";import{match as vC}from"ts-pattern";function uC(y){return new cU(y)}async function z0(y,n){return uC(n||await hU(y))}function on(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function N0(y){let{explorerUrl:n,chainIdHex:o,rpcUrls:f}=B0(y);return function(){return y!==i.Ethereum?{...gU({chain:y}),blockExplorerUrls:[n],chainId:o,rpcUrls:f}:void 0}}function O0(y){return![i.Adi,i.Arbitrum,i.BinanceSmartChain].includes(y)}function gU({chain:y}){let{name:n,nativeCurrency:o,baseDecimal:f}=B0(y);return vC(y).with(i.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(i.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(i.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(i.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(i.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(i.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:i.Polygon}})).otherwise(()=>({chainName:n,nativeCurrency:{decimals:f,name:o,symbol:o}}))}async function w0(y,n){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let o={...n,nonce:n.nonce!==void 0?BigInt(n.nonce):void 0};return await y.authorize(o)}function jC(y,n){let o=n!==void 0?`index ${n}: `:"",f=(T,C)=>{throw new mn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:T,message:`${o}${C}`}})};vC(y).when(({chainId:T})=>typeof T!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:T})=>!iU(T),()=>f("address","address must be a valid checksummed address")).when(({nonce:T})=>typeof T!=="bigint"||T<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:T})=>!T,()=>f("signature","signature is required")).when(({signature:T})=>typeof T?.yParity!=="number"||![0,1].includes(T.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:T})=>!tC(T?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:T})=>!tC(T?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function KC(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:n})=>y[n]!=null).map(({key:n,type:o})=>({name:n,type:o}))}function L0(y){return y.charAt(0).toUpperCase()+y.slice(1)}function M0(y,n){if(y.isTuple()&&y.components){let o=L0(y.name);return n[o]=y.components.map((f)=>({name:f.name,type:M0(f,n)})),o}if(y.isArray()){let o=y.arrayChildren;if(o?.isTuple()&&o.components){let f=L0(y.name.replace(/s$/,""));return n[f]=o.components.map((T)=>({name:T.name,type:M0(T,n)})),`${f}[]`}return`${o?.type??"bytes"}[]`}return y.type}function Y0(y,n){if(typeof y==="bigint")return y;if(n?.isTuple()&&typeof y?.toObject==="function"){let o=y.toObject(),f={};for(let[T,C]of(n.components??[]).entries())f[C.name]=Y0(o[C.name]??y[T],C);return f}if(Array.isArray(y)){let o=n?.arrayChildren;return y.map((f)=>Y0(f,o??void 0))}return y}function dU({chain:y,abi:n,data:o,to:f}){let C=new mU(n).parseTransaction({data:o});if(!C)throw new mn({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let H={},U=L0(C.name);H[U]=C.fragment.inputs.map((G)=>({name:G.name,type:M0(G,H)}));let _={};for(let[G,q]of C.fragment.inputs.entries())_[q.name]=Y0(C.args[G],q);let{chainId:A}=B0(y),J={chainId:Number(A),verifyingContract:bC(f)},L=KC(J);return{domain:J,message:_,primaryType:U,types:{EIP712Domain:L,...H}}}function D0(y,n){if(!Array.isArray(y)||y.length===0)throw new mn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[o,f]of y.entries())if(jC(f,o),n!==void 0&&f.chainId!==n)throw new mn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${o}: authorization chainId (${f.chainId}) does not match transaction chainId (${n})`}})}var tC=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),iU=(y)=>{try{return typeof y==="string"&&!!bC(y)}catch{return!1}};var Cn=()=>{};var hC;var mC=P(()=>{hC=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as rU,applyFeeMultiplierToBigInt as Jy,Chain as Dy,EVMChains as aU,FeeOption as j,isGasAsset as sU,SwapKitError as c,SwapKitNumber as cn}from"@swapkit/helpers";import{erc20ABI as Hn}from"@swapkit/helpers/contracts";import{BrowserProvider as eU,Contract as cC,getAddress as gn,Interface as gC}from"ethers";import{match as iC}from"ts-pattern";function Df({chain:y=Dy.Ethereum,provider:n,signer:o,isEIP1559Compatible:f=!0}){return{approve:o2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),approvedAmount:aC({chain:y,provider:n}),broadcastTransaction:n.broadcastTransaction,call:x0({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),createApprovalTx:_2({chain:y,provider:n,signer:o}),createContract:k0({chain:y,provider:n}),createContractTxObject:qf({chain:y,provider:n}),createTransaction:R0({chain:y,provider:n,signer:o}),createTransferTx:R0({chain:y,provider:n,signer:o}),EIP1193SendTransaction:kf(n),estimateCall:sC({provider:n,signer:o}),estimateGasLimit:H2({chain:y,provider:n,signer:o}),estimateGasPrices:Gf({chain:y,isEIP1559Compatible:f,provider:n}),estimateTransactionFee:A2({chain:y,isEIP1559Compatible:f,provider:n}),getAddress:()=>{return o?o.getAddress():void 0},getBalance:Tn(y).getBalance,getNetworkParams:N0(y),isApproved:T2({chain:y,provider:n}),sendTransaction:eC({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),signAuthorization:U2({signer:o}),signMessage:o?(T)=>o.signMessage(T):void 0,signTypedData:o?({domain:T,types:C,value:H})=>o.signTypedData(T,C,H):void 0,transfer:C2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),validateAddress:_n}}function _n(y){try{return gn(y),!0}catch{return!1}}function Rf(y){return y instanceof eU}function An(y,n,o){return new cC(y,gC.from(n),o)}function k0({provider:y}){return function(o,f){return new cC(o,gC.from(f),y)}}function S0({abi:y,funcName:n}){let o=y.find((f)=>f.name===n);if(!o)throw new c("toolbox_evm_no_abi_fragment",{funcName:n});return o.stateMutability&&y2.includes(o.stateMutability)}function dC(y){return gn(y)}function kf(y){return function({value:o,...f}){if(!Rf(y))throw new c("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:T,gasPrice:C,maxFeePerGas:H,maxPriorityFeePerGas:U,..._}=f;return y.send("eth_sendTransaction",[{..._,value:on(BigInt(o||0))}])}}function rC(y,n){let o=Sf(y,n);if(o)return gn(o.toLowerCase());throw new c("toolbox_evm_invalid_gas_asset_address")}function Sf({chain:y,symbol:n,ticker:o},f){try{let T=y===Dy.BinanceSmartChain&&n==="BNB"&&o==="BNB",C=y===Dy.Hyperevm&&n==="HYPE"&&o==="HYPE",H=y===f&&n===f&&o===f,U=n2.includes(y)&&n==="ETH"&&o==="ETH";if(H||T||C||U)return F0[f];return gn(n.slice(o.length+1).replace(/^0X/,""))}catch{return null}}function qf({provider:y}){return async({contractAddress:n,abi:o,funcName:f,funcParams:T=[],txOverrides:C})=>An(n,o,y).getFunction(f).populateTransaction(...T.concat(C).filter((H)=>typeof H<"u"))}function Gf({chain:y,provider:n,isEIP1559Compatible:o=!0}){return iC(y).with(Dy.Gnosis,()=>{return async function(){try{let{gasPrice:T,maxPriorityFeePerGas:C}=await n.getFeeData();if(!T||C===null)throw new c("toolbox_evm_no_fee_data");return{[j.Average]:{maxFeePerGas:Jy(T,j.Average),maxPriorityFeePerGas:Jy(C,j.Average)},[j.Fast]:{maxFeePerGas:Jy(T,j.Fast),maxPriorityFeePerGas:Jy(C,j.Fast)},[j.Fastest]:{maxFeePerGas:Jy(T,j.Fastest),maxPriorityFeePerGas:Jy(C,j.Fastest)}}}catch(T){throw new c("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).with(Dy.Arbitrum,()=>{return async function(){try{let{gasPrice:T}=await n.getFeeData();if(!T)throw new c("toolbox_evm_no_fee_data");let C=T*12n/10n;return{[j.Average]:{gasPrice:C},[j.Fast]:{gasPrice:Jy(C,j.Fast)},[j.Fastest]:{gasPrice:Jy(C,j.Fastest)}}}catch(T){throw new c("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:C,gasPrice:H}=await n.getFeeData();if(o){if(T===null||C===null)throw new c("toolbox_evm_no_fee_data");return{[j.Average]:{maxFeePerGas:T,maxPriorityFeePerGas:C},[j.Fast]:{maxFeePerGas:Jy(T,j.Fast),maxPriorityFeePerGas:Jy(C,j.Fast)},[j.Fastest]:{maxFeePerGas:Jy(T,j.Fastest),maxPriorityFeePerGas:Jy(C,j.Fastest)}}}if(!H)throw new c("toolbox_evm_no_gas_price");return{[j.Average]:{gasPrice:H},[j.Fast]:{gasPrice:Jy(H,j.Fast)},[j.Fastest]:{gasPrice:Jy(H,j.Fastest)}}}catch(T){throw new c("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}})}function x0({provider:y,isEIP1559Compatible:n,signer:o,chain:f}){return async function({callProvider:C,contractAddress:H,abi:U,funcName:_,funcParams:A=[],txOverrides:J={},feeOption:L=j.Fast}){let G=C||y;if(!H)throw new c("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let q=S0({abi:U,funcName:_});if(q&&Rf(G)&&o){let w=qf({chain:f,provider:G}),N=J?.from||await o?.getAddress(),Q=await w({abi:U,contractAddress:H,funcName:_,funcParams:A,txOverrides:{...J,from:N}});return kf(G)(Q)}let W=An(H,U,G);if(q){if(!o)throw new c("toolbox_evm_no_signer");let w=J?.from||await o.getAddress();if(!w)throw new c("toolbox_evm_no_signer_address");let N=W.connect(o),Q=Gf({chain:f,isEIP1559Compatible:n,provider:y}),{maxFeePerGas:O,maxPriorityFeePerGas:B,gasPrice:Y}=(await Q())[L],X=await W.getFunction(_).estimateGas(...A,J),Z=await N[_](...A,{...J,gasLimit:X,gasPrice:Y,maxFeePerGas:O,maxPriorityFeePerGas:B,nonce:J?.nonce||await G.getTransactionCount(w)});return typeof Z?.hash==="string"?Z?.hash:Z}let M=await W[_]?.(...A);return typeof M?.hash==="string"?M?.hash:M}}function aC({provider:y,chain:n}){return function({assetAddress:f,spenderAddress:T,from:C}){return x0({chain:n,isEIP1559Compatible:!0,provider:y})({abi:Hn,contractAddress:f,funcName:"allowance",funcParams:[C,T]})}}function T2({provider:y,chain:n}){return async function({assetAddress:f,spenderAddress:T,from:C,amount:H=Un}){let U=await aC({chain:n,provider:y})({assetAddress:f,from:C,spenderAddress:T});return cn.fromBigInt(U).gte(cn.fromBigInt(BigInt(H)))}}function o2({signer:y,isEIP1559Compatible:n=!0,provider:o,chain:f}){return async function({assetAddress:C,spenderAddress:H,feeOptionKey:U=j.Fast,amount:_,gasLimitFallback:A,from:J,nonce:L}){let G=[H,BigInt(_||Un)],q=await y?.getAddress()||J,W={abi:Hn,contractAddress:C,funcName:"approve",funcParams:G,signer:y,txOverrides:{from:q}};if(Rf(o)){let w=qf({chain:f,provider:o}),N=kf(o),Q=await w(W);return N(Q)}return x0({chain:f,isEIP1559Compatible:n,provider:o,signer:y})({...W,feeOption:U,funcParams:G,txOverrides:{from:q,gasLimit:A?BigInt(A.toString()):void 0,nonce:L}})}}function C2({signer:y,isEIP1559Compatible:n=!0,provider:o}){return async function({assetValue:T,memo:C,recipient:H,feeOptionKey:U=j.Fast,sender:_,...A}){let{hexlify:J,toUtf8Bytes:L}=await import("ethers"),G=T.getBaseValue("bigint"),q=T.chain,W=_||await y?.getAddress(),M=eC({chain:q,isEIP1559Compatible:n,provider:o,signer:y});if(!W)throw new c("toolbox_evm_no_from_address");if(T.isGasAsset){let Y={...A,data:J(L(C||"")),feeOptionKey:U,from:W,to:H,value:G};return M(Y)}if(!Sf(T,q))throw new c("toolbox_evm_no_contract_address");let{maxFeePerGas:N,maxPriorityFeePerGas:Q,gasPrice:O}=(await Gf({chain:q,isEIP1559Compatible:n,provider:o})())[U],B=await R0({chain:q,provider:o,signer:y})({assetValue:T,data:J(L(C||"")),gasPrice:O,maxFeePerGas:N,maxPriorityFeePerGas:Q,memo:C,recipient:H,sender:W});return M(B)}}function sC({provider:y,signer:n}){return function({contractAddress:f,abi:T,funcName:C,funcParams:H=[],txOverrides:U}){if(!f)throw new c("toolbox_evm_no_contract_address");let _=An(f,T,y);return n?_.connect(n).getFunction(C).estimateGas(...H,U):_.getFunction(C).estimateGas(...H,U)}}function H2({provider:y,signer:n}){return async function({assetValue:f,recipient:T,memo:C,data:H,sender:U,funcName:_,funcParams:A,txOverrides:J}){let L=f.bigIntValue,G=f.isGasAsset?null:Sf(f,f.chain);if(G&&_)return sC({provider:y,signer:n})({abi:Hn,contractAddress:G,funcName:_,funcParams:A,txOverrides:J});let{hexlify:q,toUtf8Bytes:W}=await import("ethers");return y.estimateGas({data:H?H:C?q(W(C)):void 0,from:U,to:T,value:L})}}function U2({signer:y}){if(!y)return;return(n)=>w0(y,n)}function eC({provider:y,signer:n,isEIP1559Compatible:o=!0,chain:f}){return async function({feeOptionKey:C=j.Fast,...H}){let{from:U,to:_,data:A,value:J,...L}=H;if(!n)throw new c("toolbox_evm_no_signer");if(!_)throw new c("toolbox_evm_no_to_address");let G={...L,data:A||"0x",from:U,to:_,value:BigInt(J||0)};if(Rf(y))return kf(y)(G);let q=U||await n.getAddress(),W=H.nonce||await y.getTransactionCount(q),M=(await y.getNetwork()).chainId,w=$0(G,o);if(w==="eip7702")D0(G.authorizations||[],M);let N=iC(w).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),Q={...G,chainId:M,nonce:W,type:N,...w==="eip7702"&&{authorizationList:G.authorizations}},O=Gf({chain:f,isEIP1559Compatible:o,provider:y}),Y=w!=="legacy"&&!(G.maxFeePerGas&&G.maxPriorityFeePerGas)||!G.gasPrice?Object.entries((await O())[C]).reduce((Z,[D,k])=>({...Z,[D]:on(BigInt(k))}),{}):{},X;try{X=on(G.gasLimit||await y.estimateGas(Q)*11n/10n)}catch(Z){throw new c("toolbox_evm_error_estimating_gas_limit",{error:Z})}try{let Z={...Q,gasLimit:X,...Y};try{return(await n.sendTransaction(Z)).hash}catch{let D=await n.signTransaction({...Z,from:q});return(await y.broadcastTransaction(D)).hash}}catch(Z){throw new c("toolbox_evm_error_sending_transaction",{error:Z})}}}function R0({provider:y,signer:n}){return async function({assetValue:f,memo:T,recipient:C,data:H,sender:U,maxFeePerGas:_,maxPriorityFeePerGas:A,gasPrice:J,...L}){let G=f.getBaseValue("bigint"),q=f.chain,W=U||await n?.getAddress();if(!W)throw new c("toolbox_evm_no_from_address");if(sU(f)){let{hexlify:N,toUtf8Bytes:Q}=await import("ethers");return{...L,data:H||N(Q(T||"")),from:W,to:C,value:G}}let M=Sf(f,q);if(!M)throw new c("toolbox_evm_no_contract_address");return qf({chain:f.chain,provider:y})({abi:Hn,contractAddress:M,funcName:"transfer",funcParams:[C,G],txOverrides:{from:W,gasPrice:J,maxFeePerGas:_,maxPriorityFeePerGas:A}})}}function _2({provider:y,signer:n,chain:o}){return async function({assetAddress:T,spenderAddress:C,amount:H,from:U}){let _=await n?.getAddress()||U,A=qf({chain:o,provider:y}),J=["bigint","number"].includes(typeof H)?H:H||Un;return await A({abi:Hn,contractAddress:T,funcName:"approve",funcParams:[C,BigInt(J)],txOverrides:{from:_}})}}function A2({provider:y,isEIP1559Compatible:n=!0,chain:o}){return async function({feeOption:T=j.Fast,...C}){let U=await Gf({chain:o,isEIP1559Compatible:n,provider:y})(),_=await y.estimateGas(C),A=rU.from({chain:o}),{gasPrice:J,maxFeePerGas:L,maxPriorityFeePerGas:G}=U[T];if(!n&&J)return A.set(cn.fromBigInt(J*_,A.decimal));if(L&&G){let q=(L+G)*_;return A.set(cn.fromBigInt(q,A.decimal))}throw new c("toolbox_evm_no_gas_price")}}var Un,y2,f2,F0,n2,dn=(y)=>y.type===4||(y.authorizations?.length??0)>0,l0=(y)=>!dn(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),$0=(y,n=!0)=>{if(dn(y))return"eip7702";if(l0(y)||n)return"eip1559";return"legacy"};var rn=P(()=>{hn();Cn();Un=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");y2=["payable","nonpayable"];f2=aU.reduce((y,n)=>{return y[n]="0x0000000000000000000000000000000000000000",y},{}),F0={...f2,[Dy.Optimism]:"0x4200000000000000000000000000000000000042",[Dy.Polygon]:"0x0000000000000000000000000000000000001010"},n2=[Dy.Arbitrum,Dy.Aurora,Dy.Base,Dy.Optimism]});import{Chain as r,FeeOption as q2}from"@swapkit/helpers";import{HDNodeWallet as G2}from"ethers";import{match as W2,P as y1}from"ts-pattern";function an(y){let n=a(r.Ethereum)(y);async function o(f,T="0x5ba1e12693dc8f9c48aad8770482f4739beed696",C="aggregate",H=q2.Fast){let U=await n.createContractTxObject({abi:hC,contractAddress:T,funcName:C,funcParams:[f]});return n.sendTransaction({...U,feeOptionKey:H})}return{...n,multicall:o}}function a(y){return function({provider:o,...f}){let T=O0(y),C=W2(f).with({phrase:y1.string},({phrase:U})=>G2.fromPhrase(U).connect(o)).with({signer:y1.any},({signer:U})=>U).otherwise(()=>{return});return Df({chain:y,isEIP1559Compatible:T,provider:o,signer:C})}}var sn,en,yT,fT,nT,TT,oT,f1,CT,HT,UT,_T,AT,qT,qn,GT,WT,XT,QT;var I0=P(()=>{mC();Cn();rn();sn=a(r.Adi),en=a(r.Arbitrum),yT=a(r.Aurora),fT=a(r.Avalanche),nT=a(r.Base),TT=a(r.Berachain),oT=a(r.BinanceSmartChain),f1=a(r.Botanix),CT=a(r.Core),HT=a(r.Corn),UT=a(r.Cronos),_T=a(r.Gnosis),AT=a(r.Hyperevm),qT=a(r.Polygon),qn=a(r.Sonic),GT=a(r.Unichain),WT=a(r.XLayer),XT=a(r.Monad),QT=a(r.MegaETH)});var n1;var T1=P(()=>{n1=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as Ff,Chain as Q2,FeeOption as Ky,SwapKitError as P0}from"@swapkit/helpers";import{Contract as J2,HDNodeWallet as Z2}from"ethers";import{match as L2,P as o1}from"ts-pattern";function p0(y){return new J2(M2,n1,y)}function C1(y){return async function(){let o=p0(y);if(o&&"l1BaseFee"in o)return await o?.l1BaseFee();return}}function H1(y){return async function({from:o,to:f,nonce:T,...C}){let{Transaction:H}=await import("ethers");if(!f)throw new P0("toolbox_evm_invalid_transaction",{error:"Missing to address"});return H.from({...C,authorizationList:C.authorizationList,nonce:T?T:o?await y.getTransactionCount(o):0,to:f}).serialized}}function U1(y){return async function(o){let f=p0(y),T=await H1(y)(o);if(f&&"getL1Fee"in f)return f.getL1Fee(T)}}function _1(y){return async function(o){let T=(await y.getFeeData()).gasPrice??0n,C=await y.estimateGas(o);return T*C}}function Y2(y){return async function(o){let f=await U1(y)(o)??0n,T=await _1(y)(o);return f+T}}function B2(y){return async function(o){let f=p0(y),T=await H1(y)(o);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(T)}}function z2(y){return async function(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:f,gasPrice:T}=await y.getFeeData(),C=await C1(y)(),H=T;if(!(o&&f))throw new P0("toolbox_evm_no_fee_data");return{[Ky.Average]:{gasPrice:H,l1GasPrice:C,maxFeePerGas:o,maxPriorityFeePerGas:f},[Ky.Fast]:{gasPrice:Ff(H,Ky.Fast),l1GasPrice:Ff(C||0n,Ky.Fast),maxFeePerGas:o,maxPriorityFeePerGas:Ff(f,Ky.Fast)},[Ky.Fastest]:{gasPrice:Ff(H,Ky.Fastest),l1GasPrice:Ff(C||0n,Ky.Fastest),maxFeePerGas:o,maxPriorityFeePerGas:Ff(f,Ky.Fastest)}}}catch(o){throw new P0("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}}function JT({provider:y,...n}){let o=L2(n).with({phrase:o1.string},({phrase:C})=>Z2.fromPhrase(C).connect(y)).with({signer:o1.any},({signer:C})=>C).otherwise(()=>{return}),f=Df({provider:y,signer:o}),T=C1(y);return{...f,estimateGasPrices:z2(y),estimateL1Gas:B2(y),estimateL1GasCost:U1(y),estimateL2GasCost:_1(y),estimateTotalGasCost:Y2(y),getBalance:Tn(Q2.Optimism).getBalance,getL1GasPrice:T}}var M2="0x420000000000000000000000000000000000000f";var E0=P(()=>{hn();T1();rn()});var q1={};ny(q1,{validateEVMAddress:()=>_n,toChecksumAddress:()=>dC,isStateChangingCall:()=>S0,isEIP7702Transaction:()=>dn,isEIP1559Transaction:()=>l0,isBrowserProvider:()=>Rf,getTokenAddress:()=>Sf,getEvmToolboxAsync:()=>A1,getEvmToolbox:()=>V0,getEstimateGasPrices:()=>Gf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>kf,getCreateContractTxObject:()=>qf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>rC,createContract:()=>An,XLayerToolbox:()=>WT,UNIToolbox:()=>GT,SONICToolbox:()=>qn,OPToolbox:()=>JT,MONADToolbox:()=>XT,MEGAETHToolbox:()=>QT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>qT,HYPEREVMToolbox:()=>AT,GNOToolbox:()=>_T,ETHToolbox:()=>an,ContractAddress:()=>F0,CROToolbox:()=>UT,CORNToolbox:()=>HT,COREToolbox:()=>CT,BotanixToolbox:()=>f1,BaseEVMToolbox:()=>Df,BSCToolbox:()=>oT,BERAToolbox:()=>TT,BASEToolbox:()=>nT,AVAXToolbox:()=>fT,AURORAToolbox:()=>yT,ARBToolbox:()=>en,ADIToolbox:()=>sn});import{Chain as d}from"@swapkit/helpers";import{match as N2}from"ts-pattern";function V0(y,n){return N2(y).with(d.Adi,()=>sn(n)).with(d.Arbitrum,()=>en(n)).with(d.Aurora,()=>yT(n)).with(d.Avalanche,()=>fT(n)).with(d.Base,()=>nT(n)).with(d.Berachain,()=>TT(n)).with(d.BinanceSmartChain,()=>oT(n)).with(d.Botanix,()=>qn(n)).with(d.Core,()=>CT(n)).with(d.Corn,()=>HT(n)).with(d.Cronos,()=>UT(n)).with(d.Ethereum,()=>an(n)).with(d.Gnosis,()=>_T(n)).with(d.Hyperevm,()=>AT(n)).with(d.Optimism,()=>JT(n)).with(d.Polygon,()=>qT(n)).with(d.Sonic,()=>qn(n)).with(d.Unichain,()=>GT(n)).with(d.XLayer,()=>WT(n)).with(d.Monad,()=>XT(n)).with(d.MegaETH,()=>QT(n)).exhaustive()}async function A1(y,n){let o={...n,provider:n?.provider||await z0(y)};return V0(y,o)}var t0=P(()=>{Cn();I0();E0();rn();I0();E0()});var G1;var W1=P(()=>{((o)=>{o.Test="goerli";o.Main="homestead"})(G1||={})});var X1={};ny(X1,{validateEVMAddress:()=>_n,validateAuthorizations:()=>D0,validateAuthorization:()=>jC,toHexString:()=>on,toChecksumAddress:()=>dC,signAuthorization:()=>w0,parseEIP712FromEVMTx:()=>dU,isStateChangingCall:()=>S0,isEIP7702Transaction:()=>dn,isEIP1559Transaction:()=>l0,isBrowserProvider:()=>Rf,getTokenAddress:()=>Sf,getProviderSync:()=>uC,getProvider:()=>z0,getNetworkParams:()=>N0,getIsEIP1559Compatible:()=>O0,getEvmToolboxAsync:()=>A1,getEvmToolbox:()=>V0,getEvmApi:()=>Tn,getEstimateGasPrices:()=>Gf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>kf,getCreateContractTxObject:()=>qf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>rC,createCustomEvmApi:()=>KU,createContract:()=>An,buildEIP712DomainType:()=>KC,XLayerToolbox:()=>WT,UNIToolbox:()=>GT,SONICToolbox:()=>qn,OPToolbox:()=>JT,MONADToolbox:()=>XT,MEGAETHToolbox:()=>QT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>qT,HYPEREVMToolbox:()=>AT,GNOToolbox:()=>_T,EthNetwork:()=>G1,ETHToolbox:()=>an,ContractAddress:()=>F0,CROToolbox:()=>UT,CORNToolbox:()=>HT,COREToolbox:()=>CT,BotanixToolbox:()=>f1,BaseEVMToolbox:()=>Df,BSCToolbox:()=>oT,BERAToolbox:()=>TT,BASEToolbox:()=>nT,AVAXToolbox:()=>fT,AURORAToolbox:()=>yT,ARBToolbox:()=>en,ADIToolbox:()=>sn});var b0=P(()=>{hn();Cn();t0();W1()});import{bech32 as O2}from"@scure/base";import{mnemonicToEntropy as w2}from"@scure/bip39";import{wordlist as D2}from"@scure/bip39/wordlists/english.js";import{Bip32PrivateKey as R2}from"@stricahq/bip32ed25519";import{Transaction as k2,types as j0,address as S2,crypto as v0,utils as Q1}from"@stricahq/typhonjs";import{AssetValue as xf,Chain as Wf,getChainConfig as F2,SwapKitError as Gn}from"@swapkit/helpers";import By from"bignumber.js";async function K0(y,n){let o=await fetch(`${M1}${y}`,{...n,headers:{project_id:L1,...n?.headers}});if(!o.ok)throw Error(`Blockfrost API error: ${o.status} ${o.statusText}`);return o.json()}async function Y1(y){try{return await K0(`/addresses/${y}/utxos`)}catch{return[]}}async function l2(){return(await K0("/blocks/latest")).slot}async function $2(){let y=await K0("/epochs/latest/parameters"),n={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new By(y.collateral_percent),languageView:n,maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new By(y.min_fee_a),minFeeB:new By(y.min_fee_b),minFeeRefScriptCostPerByte:new By(15),priceMem:new By(y.price_mem),priceSteps:new By(y.price_step),stakeKeyDeposit:new By(2000000),utxoCostPerByte:new By(y.coins_per_utxo_size)}}async function Z1(y){let n=await fetch(`${M1}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:L1},method:"POST"});if(!n.ok){let o=await n.text();throw Error(`Transaction submission failed: ${o}`)}return n.json()}function I2(y,n){return y.map((o)=>{let f=o.amount.find((H)=>H.unit==="lovelace"),T=f?new By(f.quantity):new By(0),C=o.amount.filter((H)=>H.unit!=="lovelace").map((H)=>({amount:new By(H.quantity),assetName:H.unit.slice(56),policyId:H.unit.slice(0,56)}));return{address:n,amount:T,index:o.output_index,tokens:C,txId:o.tx_hash}})}async function P2(y){try{let n=await Y1(y),o=0n,f=new Map;for(let H of n){if(!H.amount||!Array.isArray(H.amount))continue;for(let U of H.amount){let{unit:_,quantity:A}=U;if(_==="lovelace")o+=BigInt(A);else{let J=f.get(_)||0n;f.set(_,J+BigInt(A))}}}let T=[],{baseDecimal:C}=F2(Wf.Cardano);if(o>0n)T.push(xf.from({chain:Wf.Cardano,fromBaseDecimal:C,value:o.toString()}));for(let[H,U]of f)T.push(xf.from({asset:`${Wf.Cardano}.${H}`,value:U.toString()}));if(T.length===0)return[xf.from({chain:Wf.Cardano})];return T}catch(n){let o=n instanceof Error?n.message:String(n);return console.error(`Cardano balance fetch error: ${o}`),[xf.from({chain:Wf.Cardano})]}}function B1(y){if(!y||typeof y!=="string")return!1;try{let n=O2.decode(y,120);return n.prefix==="addr"||n.prefix==="addr_test"}catch{return!1}}async function p2(y,n=0,o=0){let f=w2(y,D2),C=(await R2.fromEntropy(Buffer.from(Array.from(f)))).derive(u0+1852).derive(u0+1815).derive(u0+n),H=C.derive(0).derive(o),U=H.toBip32PublicKey().toPublicKey().toBytes(),_=v0.hash28(U),J=C.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),L=v0.hash28(J),G={hash:_,type:j0.HashType.ADDRESS},q={hash:L,type:j0.HashType.ADDRESS},M=new S2.BaseAddress(x2,G,q).getBech32(),w=H.toPrivateKey();return{getAddress:()=>M,publicKey:U,publicKeyHash:_,signTransaction:async(N)=>{try{let Q=await import("@stricahq/cbors"),O=Buffer.from(N,"hex"),B=Q.Decoder.decode(O),[Y,X,Z,D]=B.value,k=Q.Encoder.encode(Y),R=v0.hash32(k),S=w.sign(R),x=X instanceof Map?X:new Map,z=x.get(J1)||[];z.push([U,S]),x.set(J1,z);let F=[Y,x,Z,D];return Q.Encoder.encode(F).toString("hex")}catch(Q){throw new Gn("toolbox_cardano_sign_transaction_failed",{message:String(Q)})}}}}function E2(y){let n,o,f;async function T(){if(!f)f=await $2();return f}async function C(){if(n!==void 0)return n;if(y&&"phrase"in y&&y.phrase){let q=y.index??0;return n=await p2(y.phrase,0,q),n}if(y&&"signer"in y&&y.signer)return n=y.signer,n;return}async function H(){if(o)return o;let q=await C();if(!q)return"";if("getAddress"in q)return o=await q.getAddress(),o;return""}async function U(q){let W=q||await H();if(!W)throw new Gn("core_wallet_connection_not_found");return P2(W)}async function _(q){if(q)try{let{tx:N}=await A(q),Q=N.getFee();return xf.from({chain:Wf.Cardano,fromBaseDecimal:6,value:Q.toString()})}catch{}let W=await T(),M=400,w=W.minFeeB.plus(W.minFeeA.times(M));return xf.from({chain:Wf.Cardano,fromBaseDecimal:6,value:w.toString()})}async function A({sender:q="",recipient:W,assetValue:M,memo:w,pureLovelaceOnly:N=!1}){let Q=q||await H();if(!Q)throw new Gn("core_wallet_connection_not_found");let[O,B,Y]=await Promise.all([Y1(Q),l2(),T()]),X=O.filter((p)=>N?p.amount.every((b)=>b.unit==="lovelace"):p.amount.some((b)=>b.unit==="lovelace")).sort((p,b)=>{let K=p.amount.some((m)=>m.unit!=="lovelace"),s=b.amount.some((m)=>m.unit!=="lovelace");if(K===s)return 0;return K?1:-1}),Z=Q1.getAddressFromString(Q),D=Q1.getAddressFromString(W),k=I2(X,Z),R=new By(M.getBaseValue("string")),S=[{address:D,amount:R,tokens:[]}],x;if(w){let p=new Map;p.set("msg",[w]),x={metadata:[{data:p,label:674}]}}let z={...Y,minFeeB:Y.minFeeB.plus(Y.minFeeA.times(4))},l=new k2({protocolParams:z}).paymentTransaction({auxiliaryData:x,changeAddress:Z,inputs:k,outputs:S,ttl:B+3600}),{payload:V}=l.buildTransaction();return{tx:l,unsignedTx:V}}async function J(q){let W=await C();if(!W||!("signTransaction"in W))throw new Gn("core_wallet_connection_not_found");return W.signTransaction(q)}async function L({recipient:q,assetValue:W,memo:M}){let w=await C();if(!w||!("signTransaction"in w))throw new Gn("core_wallet_connection_not_found");let{unsignedTx:N}=await A({assetValue:W,memo:M,recipient:q,sender:await H()}),Q=await J(N);return await Z1(Q)}async function G(q){let W=await J(q);return await Z1(W)}return{createTransaction:A,estimateTransactionFee:_,getAddress:H,getBalance:U,signAndBroadcastTransaction:G,signTransaction:J,transfer:L,validateAddress:B1}}var L1="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",M1="https://cardano-mainnet.blockfrost.io/api/v0",x2,u0=2147483648,J1=0;var z1=P(()=>{x2=j0.NetworkId.MAINNET});var h0={};ny(h0,{validateCardanoAddress:()=>B1,getCardanoToolbox:()=>E2});var m0=P(()=>{z1()});import{base64 as LT,bech32 as ZT}from"@scure/base";import{SwapKitError as V2}from"@swapkit/helpers";function Wn(y){return LT.encode(Uint8Array.from(ZT.fromWords(ZT.decode(y).words)))}function Xn(y,n="thor"){return ZT.encode(n,ZT.toWords(LT.decode(y)))}function t2(y){return LT.encode(y)}function b2(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new V2("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return LT.decode(y)}var c0=()=>{};import{AssetValue as g0,Chain as u,getChainConfig as py,getRPCUrl as v2,SwapKitError as N1}from"@swapkit/helpers";function hy(y){switch(y){case u.Maya:return{amount:[],gas:"10000000000"};case u.THORChain:return{amount:[],gas:"500000000"};case u.Kujira:return D1;case u.Noble:return R1;default:return w1}}async function my(y){let n=await import("@cosmjs/stargate"),o=n.StargateClient??n.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return o.connect({headers:f,url:y})}async function Xf(y,n,o={}){let f=await import("@cosmjs/stargate"),T=f.SigningStargateClient??f.default?.SigningStargateClient,C=f.GasPrice??f.default?.GasPrice,H=typeof o==="string"?o:"0.0003uatom",U=typeof o==="string"?{}:o;return T.connectWithSigner(y,n,{gasPrice:C.fromString(H),...U})}async function d0(y,n){let o=await import("@cosmjs/stargate");return(o.SigningStargateClient??o.default?.SigningStargateClient).offline(y,n)}async function r0({sender:y,recipient:n,assetValue:o,memo:f="",feeRate:T,sequence:C,accountNumber:H}){let{chain:U,chainId:_}=o,A=await v2(U),L=await(await my(A)).getAccount(y);if(!L)throw new N1("toolbox_cosmos_account_not_found",{sender:y});let G=g0.from({chain:U}),q=sy(G.symbol),W=hy(U),M=q&&T?{amount:[{amount:T.toString(),denom:q}],gas:W.gas}:W,w={amount:[{amount:o.getBaseValue("string"),denom:sy(o.symbol)}],fromAddress:y,toAddress:n};return{accountNumber:H??Number(L.accountNumber),chainId:_,fee:M,memo:f,msgs:[{typeUrl:u2(U),value:w}],sequence:C??L.sequence}}var i0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",O1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",w1,D1,R1,sy=(y,n=!1)=>{if(n)return y.toLowerCase();switch(y){case"uUSK":case"USK":return i0;case"uYUM":case"YUM":return O1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return y}},Qn=({symbol:y,chain:n})=>{if(n===u.Maya)return(y.toUpperCase()!=="CACAO"?y:`${u.Maya}.${y}`).toUpperCase();if(n===u.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${u.THORChain}.${y}`:y).toUpperCase();return sy(y,!1)},u2=(y)=>{switch(y){case u.Maya:case u.THORChain:return"/types.MsgSend";case u.Cosmos:case u.Kujira:case u.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new N1("toolbox_cosmos_not_supported",{chain:y})}},j2,a0=(y,n)=>{let o=j2[y.toLowerCase()];if(!o)return g0.from({asset:y,fromBaseDecimal:8,value:n});let{chain:f,asset:T,decimals:C}=o,H=f?{chain:f}:{asset:T};return g0.from({...H,fromBaseDecimal:C,value:n})};var Jn=P(()=>{w1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},D1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},R1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};j2={atom:{chain:u.Cosmos,decimals:py(u.Cosmos).baseDecimal},cacao:{chain:u.Maya,decimals:10},kuji:{chain:u.Kujira,decimals:py(u.Kujira).baseDecimal},maya:{asset:`${u.Maya}.${u.Maya}`,decimals:4},rune:{chain:u.THORChain,decimals:py(u.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:py(u.THORChain).baseDecimal},uatom:{chain:u.Cosmos,decimals:py(u.Cosmos).baseDecimal},ukuji:{chain:u.Kujira,decimals:py(u.Kujira).baseDecimal},usdc:{chain:u.Noble,decimals:py(u.Noble).baseDecimal},uusdc:{chain:u.Noble,decimals:py(u.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:py(u.THORChain).baseDecimal},[i0.toLowerCase()]:{asset:`${u.Kujira}.USK`,decimals:py(u.Kujira).baseDecimal}}});var k1={};ny(k1,{$root:()=>I});import Ty from"protobufjs/minimal.js";var t,zy,E,I;var S1=P(()=>{t=Ty.Reader,zy=Ty.Writer,E=Ty.util,I=Ty.roots.default||(Ty.roots.default={});I.common=(()=>{let y={};return y.Asset=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.chain="",n.prototype.symbol="",n.prototype.ticker="",n.prototype.synth=!1,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))T.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))T.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))T.uint32(32).bool(f.synth);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Asset;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.chain=f.string();break;case 2:H.symbol=f.string();break;case 3:H.ticker=f.string();break;case 4:H.synth=f.bool();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!E.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!E.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!E.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Asset)return f;let T=new I.common.Asset;if(f.chain!=null)T.chain=String(f.chain);if(f.symbol!=null)T.symbol=String(f.symbol);if(f.ticker!=null)T.ticker=String(f.ticker);if(f.synth!=null)T.synth=Boolean(f.synth);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.chain="",C.symbol="",C.ticker="",C.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))C.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))C.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))C.synth=f.synth;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.Coin=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.asset=null,n.prototype.amount="",n.prototype.decimals=E.Long?E.Long.fromBits(0,0,!1):0,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))I.common.Asset.encode(f.asset,T.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))T.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))T.uint32(24).int64(f.decimals);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Coin;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.asset=I.common.Asset.decode(f,f.uint32());break;case 2:H.amount=f.string();break;case 3:H.decimals=f.int64();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let T=I.common.Asset.verify(f.asset);if(T)return"asset."+T}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!E.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!E.isInteger(f.decimals)&&!(f.decimals&&E.isInteger(f.decimals.low)&&E.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Coin)return f;let T=new I.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");T.asset=I.common.Asset.fromObject(f.asset)}if(f.amount!=null)T.amount=String(f.amount);if(f.decimals!=null){if(E.Long)(T.decimals=E.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")T.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")T.decimals=f.decimals;else if(typeof f.decimals==="object")T.decimals=new E.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)if(C.asset=null,C.amount="",E.Long){let H=new E.Long(0,0,!1);C.decimals=T.longs===String?H.toString():T.longs===Number?H.toNumber():H}else C.decimals=T.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))C.asset=I.common.Asset.toObject(f.asset,T);if(f.amount!=null&&f.hasOwnProperty("amount"))C.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")C.decimals=T.longs===String?String(f.decimals):f.decimals;else C.decimals=T.longs===String?E.Long.prototype.toString.call(f.decimals):T.longs===Number?new E.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.PubKeySet=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.secp256k1="",n.prototype.ed25519="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))T.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))T.uint32(18).string(f.ed25519);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.PubKeySet;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.secp256k1=f.string();break;case 2:H.ed25519=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!E.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!E.isString(f.ed25519))return"ed25519: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.PubKeySet)return f;let T=new I.common.PubKeySet;if(f.secp256k1!=null)T.secp256k1=String(f.secp256k1);if(f.ed25519!=null)T.ed25519=String(f.ed25519);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.secp256k1="",C.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))C.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))C.ed25519=f.ed25519;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.Tx=(()=>{function n(o){if(this.coins=[],this.gas=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.id="",n.prototype.chain="",n.prototype.fromAddress="",n.prototype.toAddress="",n.prototype.coins=E.emptyArray,n.prototype.gas=E.emptyArray,n.prototype.memo="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))T.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(34).string(f.toAddress);if(f.coins?.length)for(let C=0;C<f.coins.length;++C)I.common.Coin.encode(f.coins[C],T.uint32(42).fork()).ldelim();if(f.gas?.length)for(let C=0;C<f.gas.length;++C)I.common.Coin.encode(f.gas[C],T.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(58).string(f.memo);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Tx;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.id=f.string();break;case 2:H.chain=f.string();break;case 3:H.fromAddress=f.string();break;case 4:H.toAddress=f.string();break;case 5:if(!H.coins?.length)H.coins=[];H.coins.push(I.common.Coin.decode(f,f.uint32()));break;case 6:if(!H.gas?.length)H.gas=[];H.gas.push(I.common.Coin.decode(f,f.uint32()));break;case 7:H.memo=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!E.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!E.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!E.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!E.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=I.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let T=0;T<f.gas.length;++T){let C=I.common.Coin.verify(f.gas[T]);if(C)return"gas."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!E.isString(f.memo))return"memo: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Tx)return f;let T=new I.common.Tx;if(f.id!=null)T.id=String(f.id);if(f.chain!=null)T.chain=String(f.chain);if(f.fromAddress!=null)T.fromAddress=String(f.fromAddress);if(f.toAddress!=null)T.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Tx.coins: object expected");T.coins[C]=I.common.Coin.fromObject(f.coins[C])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");T.gas=[];for(let C=0;C<f.gas.length;++C){if(typeof f.gas[C]!=="object")throw TypeError(".common.Tx.gas: object expected");T.gas[C]=I.common.Coin.fromObject(f.gas[C])}}if(f.memo!=null)T.memo=String(f.memo);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[],C.gas=[];if(T.defaults)C.id="",C.chain="",C.fromAddress="",C.toAddress="",C.memo="";if(f.id!=null&&f.hasOwnProperty("id"))C.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=f.toAddress;if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=I.common.Coin.toObject(f.coins[H],T)}if(f.gas?.length){C.gas=[];for(let H=0;H<f.gas.length;++H)C.gas[H]=I.common.Coin.toObject(f.gas[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.Fee=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=E.emptyArray,n.prototype.poolDeduct="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)I.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))T.uint32(18).string(f.poolDeduct);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Fee;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push(I.common.Coin.decode(f,f.uint32()));break;case 2:H.poolDeduct=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=I.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!E.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Fee)return f;let T=new I.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Fee.coins: object expected");T.coins[C]=I.common.Coin.fromObject(f.coins[C])}}if(f.poolDeduct!=null)T.poolDeduct=String(f.poolDeduct);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults)C.poolDeduct="";if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=I.common.Coin.toObject(f.coins[H],T)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))C.poolDeduct=f.poolDeduct;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.ProtoUint=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.value="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))T.uint32(10).string(f.value);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.ProtoUint;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.value=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!E.isString(f.value))return"value: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.ProtoUint)return f;let T=new I.common.ProtoUint;if(f.value!=null)T.value=String(f.value);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.value="";if(f.value!=null&&f.hasOwnProperty("value"))C.value=f.value;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y})();I.types=(()=>{let y={};return y.MsgDeposit=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=E.emptyArray,n.prototype.memo="",n.prototype.signer=E.newBuffer([]),n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)I.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))T.uint32(26).bytes(f.signer);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.types.MsgDeposit;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push(I.common.Coin.decode(f,f.uint32()));break;case 2:H.memo=f.string();break;case 3:H.signer=f.bytes();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=I.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!E.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||E.isString(f.signer)))return"signer: buffer expected"}return null},n.fromObject=function(f){if(f instanceof I.types.MsgDeposit)return f;let T=new I.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");T.coins[C]=I.common.Coin.fromObject(f.coins[C])}}if(f.memo!=null)T.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")E.base64.decode(f.signer,T.signer=E.newBuffer(E.base64.length(f.signer)),0);else if(f.signer.length)T.signer=f.signer}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults){if(C.memo="",T.bytes===String)C.signer="";else if(C.signer=[],T.bytes!==Array)C.signer=E.newBuffer(C.signer)}if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=I.common.Coin.toObject(f.coins[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))C.signer=T.bytes===String?E.base64.encode(f.signer,0,f.signer.length):T.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.MsgSend=(()=>{function n(o){if(this.amount=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.fromAddress=E.newBuffer([]),n.prototype.toAddress=E.newBuffer([]),n.prototype.amount=E.emptyArray,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let C=0;C<f.amount.length;++C)I.cosmos.base.v1beta1.Coin.encode(f.amount[C],T.uint32(26).fork()).ldelim();return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.types.MsgSend;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.fromAddress=f.bytes();break;case 2:H.toAddress=f.bytes();break;case 3:if(!H.amount?.length)H.amount=[];H.amount.push(I.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||E.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||E.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let T=0;T<f.amount.length;++T){let C=I.cosmos.base.v1beta1.Coin.verify(f.amount[T]);if(C)return"amount."+C}}return null},n.fromObject=function(f){if(f instanceof I.types.MsgSend)return f;let T=new I.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")E.base64.decode(f.fromAddress,T.fromAddress=E.newBuffer(E.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)T.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")E.base64.decode(f.toAddress,T.toAddress=E.newBuffer(E.base64.length(f.toAddress)),0);else if(f.toAddress.length)T.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");T.amount=[];for(let C=0;C<f.amount.length;++C){if(typeof f.amount[C]!=="object")throw TypeError(".types.MsgSend.amount: object expected");T.amount[C]=I.cosmos.base.v1beta1.Coin.fromObject(f.amount[C])}}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.amount=[];if(T.defaults){if(T.bytes===String)C.fromAddress="";else if(C.fromAddress=[],T.bytes!==Array)C.fromAddress=E.newBuffer(C.fromAddress);if(T.bytes===String)C.toAddress="";else if(C.toAddress=[],T.bytes!==Array)C.toAddress=E.newBuffer(C.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=T.bytes===String?E.base64.encode(f.fromAddress,0,f.fromAddress.length):T.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=T.bytes===String?E.base64.encode(f.toAddress,0,f.toAddress.length):T.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){C.amount=[];for(let H=0;H<f.amount.length;++H)C.amount[H]=I.cosmos.base.v1beta1.Coin.toObject(f.amount[H],T)}return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y})();I.cosmos=(()=>{let y={};return y.base=(()=>{let n={};return n.v1beta1=(()=>{let o={};return o.Coin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof t))C=t.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.Coin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof t))C=new t(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!E.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!E.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.Coin)return C;let H=new I.cosmos.base.v1beta1.Coin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o.DecCoin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof t))C=t.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.DecCoin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof t))C=new t(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!E.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!E.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.DecCoin)return C;let H=new I.cosmos.base.v1beta1.DecCoin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o.IntProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.int="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.int!=null&&Object.hasOwnProperty.call(C,"int"))H.uint32(10).string(C.int);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof t))C=t.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.IntProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.int=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof t))C=new t(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.int!=null&&C.hasOwnProperty("int")){if(!E.isString(C.int))return"int: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.IntProto)return C;let H=new I.cosmos.base.v1beta1.IntProto;if(C.int!=null)H.int=String(C.int);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.int="";if(C.int!=null&&C.hasOwnProperty("int"))U.int=C.int;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o.DecProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.dec="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.dec!=null&&Object.hasOwnProperty.call(C,"dec"))H.uint32(10).string(C.dec);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof t))C=t.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.DecProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.dec=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof t))C=new t(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.dec!=null&&C.hasOwnProperty("dec")){if(!E.isString(C.dec))return"dec: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.DecProto)return C;let H=new I.cosmos.base.v1beta1.DecProto;if(C.dec!=null)H.dec=String(C.dec);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.dec="";if(C.dec!=null&&C.hasOwnProperty("dec"))U.dec=C.dec;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o})(),n})(),y})()});import{Chain as K2}from"@swapkit/helpers";async function Qf(){let{$root:y}=await Promise.resolve().then(() => (S1(),k1)),n=await import("@cosmjs/proto-signing"),o=n.Registry??n.default?.Registry,f=await import("@cosmjs/stargate"),T=f.defaultRegistryTypes??f.default?.defaultRegistryTypes;return new o([...T,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function ey(y){let n=await import("@cosmjs/stargate"),o=n.AminoTypes??n.default?.AminoTypes,f=y===K2.THORChain?"thorchain":"mayachain";return new o({"/types.MsgDeposit":{aminoType:`${f}/MsgDeposit`,fromAmino:({signer:T,...C})=>({...C,signer:Wn(T)}),toAmino:({signer:T,...C})=>({...C,signer:Xn(T)})},"/types.MsgSend":{aminoType:`${f}/MsgSend`,fromAmino:({from_address:T,to_address:C,...H})=>({...H,fromAddress:Wn(T),toAddress:Wn(C)}),toAmino:({fromAddress:T,toAddress:C,...H})=>({...H,from_address:Xn(T),to_address:Xn(C)})}})}var s0=P(()=>{c0()});import{AssetValue as h2,Chain as MT,getChainConfig as F1,getRPCUrl as x1,SwapKitError as m2}from"@swapkit/helpers";function fo(y){let{assetValue:n,recipient:o,memo:f,sender:T,asSignable:C,asAminoMessage:H}=y;if(o)return $1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,recipient:o,sender:T});return I1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,sender:T})}async function $1({sender:y,recipient:n,assetValue:o,memo:f="",asSignable:T=!0,asAminoMessage:C=!1,sequence:H,accountNumber:U}){let _=o.chain,A=await x1(_),J=await l1({rpcUrl:A,sender:y}),{chainId:L}=F1(_),G=e0({assetValue:o,recipient:n,sender:y}),q=T?await yf(C?G:ff(G),_):G;return{accountNumber:U||Number(J.accountNumber),chainId:L,fee:hy(_),memo:f,msgs:[q],sequence:H||J.sequence}}async function I1({sender:y,assetValue:n,memo:o="",asSignable:f=!0,asAminoMessage:T=!1,sequence:C,accountNumber:H}){let U=n.chain,_=await x1(U),A=await l1({rpcUrl:_,sender:y}),{chainId:J}=F1(U),L=yo({assetValue:n,memo:o,sender:y}),G=f?await yf(T?L:ff(L),U):L;return{accountNumber:H||Number(A.accountNumber),chainId:J,fee:hy(U),memo:o,msgs:[G],sequence:C||A.sequence}}function ff(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((n)=>{let o=h2.from({asset:n.asset}),f=(o.isSynthetic?o.symbol.split("/")?.[1]:o.symbol)?.toUpperCase(),T=(o.isSynthetic?o.symbol.split("/")?.[0]:o.chain)?.toUpperCase();return{...n,asset:{chain:T,symbol:f,synth:o.isSynthetic,ticker:o.ticker}}})}}}async function Zn({chain:y,memo:n,msgs:o}){let f=await Qf(),T=await ey(y),C={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:n,messages:o.map((H)=>T.fromAmino(H))}};return f.encode(C)}var c2,g2,e0=({sender:y,recipient:n,assetValue:o})=>{return{type:`${o.chain===MT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:o.getBaseValue("string"),denom:sy(o.symbol,!0)}],from_address:y,to_address:n}}},yo=({sender:y,assetValue:n,memo:o=""})=>{return{type:`${n.chain===MT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:n.getBaseValue("string"),asset:Qn(n)}],memo:o,signer:y}}},YT=({sender:y,recipient:n,assetValue:o,memo:f})=>{return!n?yo({assetValue:o,memo:f,sender:y}):e0({assetValue:o,recipient:n,sender:y})},yf=async(y,n)=>{return(await ey(n)).fromAmino(y)},l1=async({rpcUrl:y,sender:n})=>{let f=await(await my(y)).getAccount(n);if(!f)throw new m2("toolbox_cosmos_account_not_found",{sender:n});return f};var P1=P(()=>{Jn();s0();c2=hy(MT.THORChain).gas,g2=hy(MT.Maya).gas});var p1=()=>{};var E1=P(()=>{p1()});var no=P(()=>{c0();P1();s0();E1()});import{stringToPath as i2}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as d2}from"@cosmjs/proto-signing";import{base64 as Co,bech32 as To}from"@scure/base";import{AssetValue as Ho,applyFeeMultiplier as V1,Chain as Hy,CosmosChainPrefixes as K1,DerivationPath as r2,derivationPathToString as t1,FeeOption as Uo,getChainConfig as a2,getRPCUrl as Ln,NetworkDerivationPath as s2,SwapKitError as lf,SwapKitNumber as oo,updateDerivationPath as e2}from"@swapkit/helpers";import{SwapKitApi as h1}from"@swapkit/helpers/api";import{match as y_,P as b1}from"ts-pattern";async function Ao(y,n){try{let f=(await h1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}async function _o({phrase:y,prefix:n,...o}){let f="derivationPath"in o?o.derivationPath:`${r2[o.chain]}/${o.index}`;return await d2.fromMnemonic(y,{hdPaths:[i2(f)],prefix:n})}async function f_({privateKey:y,prefix:n}){let o=await import("@cosmjs/proto-signing");return(o.DirectSecp256k1Wallet??o.default?.DirectSecp256k1Wallet).fromKey(y,n)}function m1(y){return async function({signature:o,message:f,address:T}){let C=await y(T);if(!C?.pubkey)throw new lf("toolbox_cosmos_verify_signature_no_pubkey");let H=await import("@cosmjs/crypto"),U=H.Secp256k1Signature??H.default?.Secp256k1Signature,_=H.Secp256k1??H.default?.Secp256k1,A=U.fromFixedLength(Co.decode(o));return _.verifySignature(A,Co.decode(f),C.pubkey.value)}}function Mn({chain:y,...n}){let o=K1[y],f="index"in n?n.index||0:0,T=t1("derivationPath"in n&&n.derivationPath?n.derivationPath:e2(s2[y],{index:f})),C;async function H(){if(C)return C;return C=await y_(n).with({phrase:b1.string},({phrase:q})=>_o({derivationPath:T,phrase:q,prefix:o})).with({signer:b1.any},({signer:q})=>q).otherwise(()=>{return}),C}async function U(q){let W=await Ln(y);return(await my(W)).getAccount(q)}async function _(){let q=await H(),[W]=await q?.getAccounts()||[];return W?.address}async function A(){let q=await H(),[W]=await q?.getAccounts()||[];if(!W?.pubkey)throw new lf("toolbox_cosmos_signer_not_defined");return Co.encode(W?.pubkey)}async function J(q){let W=await H(),M=await _(),w=await Ln(y);if(!(W&&M))throw new lf("toolbox_cosmos_signer_not_defined");return await(await Xf(w,W)).sign(M,q.msgs,q.fee,q.memo,{accountNumber:BigInt(q.accountNumber),chainId:q.chainId,sequence:q.sequence})}async function L(q){let W=await H(),M=await _(),w=await Ln(y);if(!(W&&M))throw new lf("toolbox_cosmos_signer_not_defined");let Q=await(await Xf(w,W)).signAndBroadcast(M,q.msgs,q.fee,q.memo);if(Q.code!==0)throw new lf("core_swap_transaction_error",{code:Q.code,message:Q.rawLog});return Q.transactionHash}async function G({recipient:q,assetValue:W,memo:M="",feeRate:w,feeOptionKey:N=Uo.Fast}){let Q=await H(),O=await _();if(!(Q&&O))throw new lf("toolbox_cosmos_signer_not_defined");let B=await Ln(y),Y=Ho.from({chain:y}),X=Qn(Y),Z=w||o_((await u1(y,v1[y]))[N],X),D=await Xf(B,Q),k=sy(W.symbol),R=[{amount:W.getBaseValue("string"),denom:k}],{transactionHash:S}=await D.sendTokens(O,q,R,Z,M);return S}return{createPrivateKeyFromPhrase:H_(T),createTransaction:r0,fetchFeeRateFromSwapKit:Ao,getAccount:U,getAddress:_,getBalance:async(q,W)=>{let M=await j1(y)(q),w=await Promise.all(M.filter(({denom:N})=>N&&!N.includes("IBC/")&&!([Hy.THORChain,Hy.Maya].includes(y)&&N.split("-").length>2)).map(({denom:N,amount:Q})=>{let O=[Hy.THORChain,Hy.Maya].includes(y)&&(N.includes("/")||N.includes("˜"))?`${y}.${N}`:N;return a0(O,Q)}));if(w.length===0)return[Ho.from({chain:y})];return w},getBalanceAsDenoms:j1(y),getFees:()=>u1(y,v1[y]),getPubKey:A,getSignerFromPhrase:({phrase:q,derivationPath:W})=>_o({derivationPath:t1(W),index:f,phrase:q,prefix:o}),getSignerFromPrivateKey:async(q)=>{let W=await import("@cosmjs/proto-signing");return(W.DirectSecp256k1Wallet??W.default?.DirectSecp256k1Wallet).fromKey(q,o)},signAndBroadcastTransaction:L,signTransaction:J,transfer:G,validateAddress:c1(y),verifySignature:m1(U)}}async function n_(y,n){try{let f=(await h1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}function T_({assetValue:{chain:y}}){return Ho.from({chain:y,value:C_(y)})}async function u1(y,n){let{chainId:o,baseDecimal:f}=a2(y),T=await Ao(o,n);return{average:oo.fromBigInt(BigInt(T),f),fast:oo.fromBigInt(BigInt(V1(T,Uo.Fast,!0)),f),fastest:oo.fromBigInt(BigInt(V1(T,Uo.Fastest,!0)),f)}}function o_(y,n){return{amount:[{amount:y.getBaseValue("string"),denom:n}],gas:"200000"}}function C_(y){return{[Hy.Cosmos]:0.007,[Hy.Kujira]:0.02,[Hy.Noble]:0.01,[Hy.THORChain]:0.02,[Hy.Maya]:0.02,[Hy.Harbor]:0.02}[y]||0}function c1(y){let n=K1[y];return function(f){if(!f.startsWith(n))return!1;try{let{prefix:T,words:C}=To.decode(f);return To.encode(T,C)===f.toLocaleLowerCase()}catch{return!1}}}function j1(y){return async function(o){let f=await Ln(y);return(await(await my(f)).getAllBalances(o)).map((U)=>({...U,denom:U.denom.includes("/")?U.denom.toUpperCase():U.denom}))}}function H_(y){return async function(o){let f=await import("@cosmjs/crypto"),T=f.stringToPath??f.default?.stringToPath,C=f.Slip10Curve??f.default?.Slip10Curve,H=f.Slip10??f.default?.Slip10,U=f.EnglishMnemonic??f.default?.EnglishMnemonic,_=f.Bip39??f.default?.Bip39,A=new U(o),J=await _.mnemonicToSeed(A),{privkey:L}=H.derivePath(C.Secp256k1,J,T(y));return L}}var v1;var BT=P(()=>{Jn();v1={[Hy.Cosmos]:1000,[Hy.Kujira]:1000,[Hy.Noble]:1000,[Hy.THORChain]:5000000,[Hy.Maya]:5000000,[Hy.Harbor]:5000000}});import{base64 as Jf}from"@scure/base";import{Chain as U_,CosmosChainPrefixes as __,derivationPathToString as A_,FeeOption as qo,getChainConfig as q_,getRPCUrl as a1,NetworkDerivationPath as G_,RequestClient as W_,SKConfig as g1,SwapKitError as $f,SwapKitNumber as i1,updateDerivationPath as X_}from"@swapkit/helpers";import{match as d1,P as r1}from"ts-pattern";function Q_({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 J_(y){return Jf.encode(y)}function Z_(y){return async function({wallet:o,tx:f}){let{msgs:T,accountNumber:C,sequence:H,chainId:U,fee:_,memo:A}=typeof f==="string"?JSON.parse(f):f,J=(await o.getAccounts())?.[0]?.address||"",L=await ey(y),G=await Qf(),q=await d0(o,{aminoTypes:L,registry:G}),W=[];for(let N of T){let Q=await yf(N,y);W.push(Q)}let{signatures:[M]}=await q.sign(J,W,_,A,{accountNumber:BigInt(C),chainId:U,sequence:H});return{bodyBytes:await Zn({chain:y,memo:A,msgs:T.map(ff)}),signature:J_(M)}}}function L_({prefix:y,chain:n}){return async function(f,T,C,H,U){let _=await a1(n),{encodeSecp256k1Pubkey:A,pubkeyToAddress:J}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:L}=(await import("@cosmjs/stargate")).default,{sequence:G,fee:q}=JSON.parse(f),W=await s1(C,H),M=T.map((Q)=>[J(A(Jf.decode(Q.pubKey)),y),Jf.decode(Q.signature)]),w=await my(_),{transactionHash:N}=await w.broadcastTx(L(W,G,q,U,new Map(M)));return N}}async function s1(y,n,o=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:T}=(await import("@cosmjs/amino")).default;return f(y.map((C)=>T(Jf.decode(C))),n,o)}function M_(y){return Jf.decode(y)}async function Y_({privateKey:y,message:n}){let{Secp256k1:o}=(await import("@cosmjs/crypto")).default,f=await o.createSignature(Jf.decode(n),y);return Jf.encode(Buffer.concat([f.r(32),f.s(32)]))}function Go({chain:y,...n}){let{isStagenet:o}=g1.get("envs"),f=g1.get("thornodeUrls"),T=y===U_.Maya,C=d1({isMayachain:T,isStagenet:o}).with({isMayachain:!0},({isStagenet:Q})=>Q?f.MAYA_STAGENET:f.MAYA).otherwise(({isStagenet:Q})=>Q?f.THOR_STAGENET:f.THOR),H=`${o?"s":""}${__[y]}`,U="index"in n?n.index||0:0,_="derivationPath"in n&&n.derivationPath?n.derivationPath:X_(G_[y],{index:U}),A=Mn({chain:y,...n}),J=hy(y),L;function G(){return L??=d1(n).with({phrase:r1.string},({phrase:Q})=>A.getSignerFromPhrase({derivationPath:_,phrase:Q})).with({signer:r1.any},({signer:Q})=>Promise.resolve(Q)).otherwise(()=>Promise.resolve(void 0)),L}async function q(){let Q=await a1(y),O=await G();if(!O)throw new $f("toolbox_cosmos_no_signer");let B=await Qf(),Y=await ey(y),X=await Xf(Q,O,{aminoTypes:Y,registry:B});return{signer:O,signingClient:X}}async function W({fee:Q,memo:O,msgs:B}){let{signer:Y,signingClient:X}=await q(),Z=(await Y.getAccounts())?.[0]?.address;if(!Z)throw new $f("toolbox_cosmos_signer_not_defined");let D=await X.signAndBroadcast(Z,B,Q,O);if(D.code!==0)throw new $f("core_swap_transaction_error",{code:D.code,message:D.rawLog});return D.transactionHash}async function M(){let Q,O=`${C}/${T?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:B}}=await W_.get(O);if(!B||Number.isNaN(B)||B<0)throw new $f("toolbox_cosmos_invalid_fee",{nativeFee:B.toString()});Q=new i1(B)}catch{Q=new i1({decimal:q_(y).baseDecimal,value:T?1:0.02})}return{[qo.Average]:Q,[qo.Fast]:Q,[qo.Fastest]:Q}}async function w({assetValue:Q,memo:O="",recipient:B}){let{TxRaw:Y}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:X,signingClient:Z}=await q(),D=(await X.getAccounts())?.[0]?.address;if(!D)throw new $f("toolbox_cosmos_no_signer");let k="signAmino"in X,R=YT({assetValue:Q,memo:O,recipient:B,sender:D});if(k){let z=await yf(R,y),{signatures:F,authInfoBytes:l}=await Z.sign(D,[z],J,O),V=Y.encode({authInfoBytes:l,bodyBytes:await Zn({chain:y,memo:O,msgs:[R].map(ff)}),signatures:F}).finish();return(await Z.broadcastTx(V)).transactionHash}let S=ff(R),x=await yf(S,y);return W({fee:J,memo:O,msgs:[x]})}async function N(Q){let{signer:O,signingClient:B}=await q(),Y=(await O.getAccounts())?.[0]?.address;if(!Y)throw new $f("toolbox_cosmos_signer_not_defined");return B.sign(Y,Q.msgs,Q.fee,Q.memo,{accountNumber:BigInt(Q.accountNumber),chainId:Q.chainId,sequence:Q.sequence})}return{...A,broadcastMultisigTx:L_({chain:y,prefix:H}),buildAminoMsg:YT,buildEncodedTxBody:Zn,convertToSignable:yf,createDefaultAminoTypes:()=>ey(y),createDefaultRegistry:Qf,createMultisig:s1,createTransaction:fo,deposit:w,getFees:M,importSignature:M_,parseAminoMessageForDirectSigning:ff,pubkeyToAddress:async(Q)=>{let{pubkeyToAddress:O}=(await import("@cosmjs/amino")).default;return O(Q,H)},secp256k1HdWalletFromMnemonic:Q_({derivationPath:A_(_),prefix:H}),signAndBroadcastTransaction:W,signMultisigTx:Z_(y),signTransaction:N,signWithPrivateKey:Y_,transfer:w}}var Wo=P(()=>{no();Jn();BT()});import{Chain as Yn,SwapKitError as B_}from"@swapkit/helpers";var z_=(y,n)=>{switch(y){case Yn.Cosmos:case Yn.Kujira:case Yn.Noble:return Mn({chain:y,...n});case Yn.Maya:case Yn.THORChain:return Go({chain:y,...n});default:throw new B_("toolbox_cosmos_not_supported",{chain:y})}};var e1=P(()=>{BT();Wo();BT();Wo()});var zT={};ny(zT,{verifySignature:()=>m1,transferMsgAmino:()=>e0,toBase64:()=>t2,parseAminoMessageForDirectSigning:()=>ff,getSignerFromPrivateKey:()=>f_,getSignerFromPhrase:()=>_o,getMsgSendDenom:()=>sy,getFeeRateFromSwapKit:()=>n_,getDenomWithChain:()=>Qn,getDefaultChainFee:()=>hy,getCosmosToolbox:()=>z_,getCosmosAddressValidator:()=>c1,getAssetFromDenom:()=>a0,fromBase64:()=>b2,fetchFeeRateFromSwapKit:()=>Ao,estimateTransactionFee:()=>T_,depositMsgAmino:()=>yo,createTransaction:()=>fo,createThorchainToolbox:()=>Go,createStargateClient:()=>my,createSigningStargateClient:()=>Xf,createOfflineStargateClient:()=>d0,createDefaultRegistry:()=>Qf,createDefaultAminoTypes:()=>ey,createCosmosToolbox:()=>Mn,cosmosCreateTransaction:()=>r0,convertToSignable:()=>yf,buildTransferTx:()=>$1,buildEncodedTxBody:()=>Zn,buildDepositTx:()=>I1,buildAminoMsg:()=>YT,bech32ToBase64:()=>Wn,base64ToBech32:()=>Xn,YUM_KUJIRA_FACTORY_DENOM:()=>O1,USK_KUJIRA_FACTORY_DENOM:()=>i0,THORCHAIN_GAS_VALUE:()=>c2,MAYA_GAS_VALUE:()=>g2,DEFAULT_NOBLE_FEE_MAINNET:()=>R1,DEFAULT_KUJI_FEE_MAINNET:()=>D1,DEFAULT_COSMOS_FEE_MAINNET:()=>w1});var NT=P(()=>{no();e1();Jn()});function N_({builder:y,grouping:n="na",orders:o}){return{builder:y,grouping:n,orders:o,type:"order"}}function O_({cancels:y}){return{cancels:y,type:"cancel"}}function w_({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function D_({oid:y,order:n}){return{oid:y,order:n,type:"modify"}}function R_({modifies:y}){return{modifies:y,type:"batchModify"}}function k_({asset:y,isCross:n,leverage:o}){return{asset:y,isCross:n,leverage:o,type:"updateLeverage"}}function S_({asset:y,isBuy:n,ntli:o}){return{asset:y,isBuy:n,ntli:o,type:"updateIsolatedMargin"}}function F_({asset:y,leverage:n}){return{asset:y,leverage:n,type:"topUpIsolatedOnlyMargin"}}function x_({time:y}){return{time:y,type:"scheduleCancel"}}function l_({amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T}){return{amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T,type:"usdClassTransfer"}}function $_({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 I_({agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T}){return{agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T,type:"approveAgent"}}function P_({builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T}){return{builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T,type:"approveBuilderFee"}}function p_({hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,validator:T,wei:C}){return{hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,type:"tokenDelegate",validator:T,wei:C}}import{SwapKitError as Xo}from"@swapkit/helpers";import{keccak256 as E_,Signature as V_}from"ethers";function Zy(...y){let n=y.reduce((T,C)=>T+C.length,0),o=new Uint8Array(n),f=0;for(let T of y)o.set(T,f),f+=T.length;return o}function K_(y,n,o){if(o<n)return new Uint8Array([y+o]);if(o<=255)return new Uint8Array([y+n,o]);if(o<=65535)return new Uint8Array([y+n+1,o>>8,o&255]);return new Uint8Array([y+n+2,o>>>24&255,o>>>16&255,o>>>8&255,o&255])}function nf(y,n){let o=new Uint8Array(n),f=y;for(let T=n-1;T>=0;T-=1)o[T]=Number(f&0xffn),f>>=8n;return o}function yH(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return Zy(new Uint8Array([205]),nf(y,2));if(y<=0xffffffffn)return Zy(new Uint8Array([206]),nf(y,4));return Zy(new Uint8Array([207]),nf(y,8))}if(y>=-32n)return new Uint8Array([256+Number(y)]);if(y>=-128n)return new Uint8Array([208,256+Number(y)]);if(y>=-32768n)return Zy(new Uint8Array([209]),nf(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return Zy(new Uint8Array([210]),nf(BigInt.asUintN(32,y),4));return Zy(new Uint8Array([211]),nf(BigInt.asUintN(64,y),8))}function TH(y){let n=j_.encode(y);if(n.length<32)return Zy(new Uint8Array([160+n.length]),n);return Zy(K_(217,0,n.length),n)}function h_(y){let n=y.map((f)=>Qo(f)),o=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Zy(o,...n)}function m_(y){let n=Object.entries(y).filter(([,f])=>typeof f<"u"),o=n.length<16?new Uint8Array([128+n.length]):n.length<=65535?new Uint8Array([222,n.length>>8,n.length&255]):new Uint8Array([223,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return Zy(o,...n.flatMap(([f,T])=>[TH(f),Qo(T)]))}function Qo(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return TH(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new Xo("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return yH(BigInt(y))}if(typeof y==="bigint")return yH(y);if(y instanceof Uint8Array){let n=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Zy(n,y)}if(Array.isArray(y))return h_(y);if(typeof y==="object")return m_(y);throw new Xo("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function c_(y){let n=y.startsWith("0x")?y.slice(2):y;if(n.length%2!==0||/[^a-fA-F0-9]/u.test(n))throw new Xo("helpers_invalid_params",{hexValue:y});let o=new Uint8Array(n.length/2);for(let f=0;f<n.length;f+=2)o[f/2]=Number.parseInt(n.slice(f,f+2),16);return o}function oH(y){return{domain:t_,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...b_.Agent]}}}function CH(y){let n=u_[y.type],o=v_[y.type],{type:f,...T}=y;return{domain:{chainId:Number.parseInt(T.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:fH,version:"1"},message:{...T,hyperliquidChain:T.hyperliquidChain||nH},primaryType:n,types:{[n]:o}}}function HH(y){let n=V_.from(y);return{r:n.r,s:n.s,v:n.v}}function UH(y,n,{expiresAfter:o,vaultAddress:f}={}){let T=Qo(y),C=nf(BigInt(n),8),H=f?Zy(new Uint8Array([1]),c_(f.toLowerCase())):new Uint8Array([0]),U=typeof o==="number"?Zy(new Uint8Array([0]),nf(BigInt(o),8)):new Uint8Array;return E_(Zy(T,C,H,U))}function _H(y){let n=y.hyperliquidChain||nH;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:n};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:n};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:n};case"tokenDelegate":return{...y,hyperliquidChain:n,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:n};default:return y}}var fH="0x0000000000000000000000000000000000000000",t_,b_,nH="Mainnet",v_,u_,j_;var AH=P(()=>{t_={chainId:1337,name:"Exchange",verifyingContract:fH,version:"1"},b_={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"}]},u_={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},j_=new TextEncoder});import{AssetValue as Lo,Chain as g_,derivationPathToString as i_,getChainConfig as WH,getRPCUrl as d_,NetworkDerivationPath as r_,RequestClient as If,SwapKitError as Pf,updateDerivationPath as a_}from"@swapkit/helpers";import{HDNodeWallet as s_}from"ethers";import{match as e_,P as Jo}from"ts-pattern";function Ry(y,n){if(!Yo(y))throw new Pf(n,{address:y});return y.toLowerCase()}async function Zf(y){let n=await OT();return If.post(`${n}/info`,{json:y})}function H8({dex:y,user:n}){return Zf({...y?{dex:y}:{},type:"clearinghouseState",user:Ry(n,"helpers_invalid_params")})}function U8({user:y}){return Zf({type:"spotClearinghouseState",user:Ry(y,"helpers_invalid_params")})}function _8({dex:y,user:n}){return Zf({...y?{dex:y}:{},type:"openOrders",user:Ry(n,"helpers_invalid_params")})}function A8({dex:y,user:n}){return Zf({...y?{dex:y}:{},type:"frontendOpenOrders",user:Ry(n,"helpers_invalid_params")})}function q8({oidOrCloid:y,user:n}){return Zf({oid:y,type:"orderStatus",user:Ry(n,"helpers_invalid_params")})}function G8({aggregateByTime:y,user:n}){return Zf({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:Ry(n,"helpers_invalid_params")})}function W8({aggregateByTime:y,endTime:n,startTime:o,user:f}){return Zf({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof n==="number"?{endTime:n}:{},startTime:o,type:"userFillsByTime",user:Ry(f,"helpers_invalid_params")})}function qH({coin:y,token:n,value:o,spotMeta:f}){if(!o||Number(o)<=0)return null;let T=y?.toUpperCase()||`TOKEN-${n||"UNKNOWN"}`,C=y8[T]||XH,H=f?.tokens?.find((_)=>_.name===y||n!==void 0&&_.index===Number(n)),U=H?`${Ey}.${T}-${H.name}:${H.tokenId}`:`${Ey}.${T}`;return new Lo({decimal:C,identifier:U,value:o})}function X8(y){let n=new Map;for(let o of y){let f=o.toString({includeSynthProtocol:!0}),T=n.get(f);n.set(f,T?T.add(o):o)}if(![...n.values()].some((o)=>o.isGasAsset||o.ticker==="HYPE")){let o=Lo.from({chain:Ey,value:0});n.set(o.toString({includeSynthProtocol:!0}),o)}return[...n.values()]}async function OT(){try{return await d_(Ey)}catch{let[y]=WH(Ey).rpcUrls;if(!y)throw new Pf("helpers_chain_no_public_or_set_rpc_url",{chain:Ey});return y}}async function Mo(){return`${await OT()}/exchange`}function Q8(y){let n=C8[y.type],{type:o,...f}=y,T=o8[o];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:T8,version:"1"},message:f,primaryType:n,types:{[n]:T}}}async function QH({action:y,expiresAfter:n,nonce:o,vaultAddress:f}){let T=o||Date.now(),C=f?Ry(f,"helpers_invalid_params"):void 0,H=await Mo(),U=UH(y,T,{expiresAfter:n,vaultAddress:C});return{action:y,endpoint:H,expiresAfter:n,nonce:T,typedData:oH(U),vaultAddress:C}}async function JH({action:y,nonce:n,signatureChainId:o}){let f=n||y.nonce||Date.now(),T=o||y.signatureChainId||"0xa4b1",C=_H({...y,nonce:f,signatureChainId:T});return{action:C,endpoint:await Mo(),nonce:f,typedData:CH(C)}}async function Zo({assetValue:y,recipient:n,sender:o,signatureChainId:f,time:T}){let C=Ry(n,"core_transaction_invalid_recipient_address"),H=Ry(o,"core_transaction_invalid_sender_address"),U=await Mo(),_=y.getValue("string"),A=T||Date.now(),J=y.address;if(!J)throw new Pf("helpers_invalid_params",{asset:y.toString(),from:H});let L={amount:_,destination:C,hyperliquidChain:f8,signatureChainId:f||n8,time:A,token:J,type:"spotSend"};return{action:L,endpoint:U,nonce:A,typedData:Q8(L)}}async function GH(y){let n=await If.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(n.status!=="ok")throw new Pf("core_transaction_failed",{response:n});return n}async function J8(y,n){let o=await OT(),f=n-5000;for(let T=0;T<5;T++){if(T>0)await new Promise((C)=>setTimeout(C,1000));try{let C=await If.post(`${o}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),H=Array.isArray(C)?C.find((U)=>U.time&&U.time>=n&&(U.delta?.type==="spotTransfer"||U.delta?.type==="internalTransfer")):void 0;if(H?.hash)return H.hash}catch{}}return""}function Yo(y){return y.startsWith("0x")&&_n(y)}function Z8(y){let n=Qy(Ey),o=y&&"index"in y?y.index||0:0,f=i_(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:a_(r_[Ey],{index:o})),T,C=!1;function H(){if(C)return T;return T=e_(y).with({phrase:Jo.string},({phrase:G})=>{return s_.fromPhrase(G,void 0,f)}).with({signer:Jo.not(Jo.nullish)},({signer:G})=>G).otherwise(()=>{return}),C=!0,T}async function U(){let G=H();return G?await G.getAddress():""}async function _(G){let q=H();if(!q)throw new Pf("toolbox_hypercore_no_signer");let W=await q.signTypedData(G.typedData.domain,G.typedData.types,G.typedData.message);return{action:G.action,endpoint:G.endpoint,nonce:G.nonce,signature:HH(W),..."expiresAfter"in G?{expiresAfter:G.expiresAfter}:{},..."vaultAddress"in G?{vaultAddress:G.vaultAddress}:{}}}async function A(G){let q=Ry(G,"helpers_invalid_params");try{let W=await OT(),[M,w,N]=await Promise.all([If.post(`${W}/info`,{json:{type:"spotClearinghouseState",user:q}}),If.post(`${W}/info`,{json:{type:"clearinghouseState",user:q}}),If.post(`${W}/info`,{json:{type:"spotMeta"}})]),Q=(M.spotState?.balances||M.balances||[]).map(({coin:B,token:Y,total:X})=>qH({coin:B,spotMeta:N,token:Y,value:X})).filter((B)=>!!B),O=qH({coin:"USDC",spotMeta:N,value:w.withdrawable||w.marginSummary?.accountValue||w.marginSummary?.totalRawUsd});return X8(O?[...Q,O]:Q)}catch{return n(q)}}async function J(G){let q=H();if(!q)throw new Pf("toolbox_hypercore_no_signer");let W=G.sender||await q.getAddress(),M=await Zo({...G,feeRate:0,sender:W}),w=await _(M);return await GH(w),J8(W,M.nonce)}function L(){return Lo.from({chain:Ey,value:0})}return{broadcastTransaction:GH,createL1ActionRequest:QH,createTransaction:Zo,createUserSignedActionRequest:JH,estimateTransactionFee:L,getAddress:U,getBalance:A,getState:{clearinghouse:H8,frontendOpenOrders:A8,openOrders:_8,orderStatus:q8,spotClearinghouse:U8,userFills:G8,userFillsByTime:W8},signTransaction:_,transfer:J,validateAddress:Yo}}var Ey,XH,y8,f8="Mainnet",n8="0xa4b1",T8="0x0000000000000000000000000000000000000000",o8,C8;var ZH=P(()=>{b0();jy();AH();Ey=g_.Hype,{baseDecimal:XH}=WH(Ey),y8={HYPE:XH,USDC:6,USDT:6},o8={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},C8={spotSend:"HyperliquidTransaction:SpotSend"}});var Bo={};ny(Bo,{validateHyperCoreAddress:()=>Yo,getHyperCoreToolbox:()=>Z8,createUserSignedActionRequest:()=>JH,createTransaction:()=>Zo,createL1ActionRequest:()=>QH,buildUsdClassTransferAction:()=>l_,buildUpdateLeverageAction:()=>k_,buildUpdateIsolatedMarginAction:()=>S_,buildTopUpIsolatedOnlyMarginAction:()=>F_,buildTokenDelegateAction:()=>p_,buildSendAssetAction:()=>$_,buildScheduleCancelAction:()=>x_,buildOrderAction:()=>N_,buildModifyAction:()=>D_,buildCancelByCloidAction:()=>w_,buildCancelAction:()=>O_,buildBatchModifyAction:()=>R_,buildApproveBuilderFeeAction:()=>P_,buildApproveAgentAction:()=>I_});var zo=P(()=>{ZH()});import{PublicKey as Tf}from"@solana/web3.js";import{AssetValue as wT,Chain as gy,DerivationPath as L8,derivationPathToString as M8,getChainConfig as BH,getRPCUrl as Y8,NetworkDerivationPath as B8,SwapKitError as pf,updateDerivationPath as z8}from"@swapkit/helpers";import{match as N8,P as LH}from"ts-pattern";async function zH(y){let n=wT.from({address:y,chain:gy.Solana});if(n.symbol!=="UNKNOWN")return{decimals:n.decimal||0,id:y,logoURI:n.getIconUrl(),name:n.symbol,symbol:n.ticker};let o=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(o);if(!f.ok)return null;let T=await f.json();if(!Array.isArray(T)||T.length===0)return null;return T.find((H)=>H.id===y)||null}catch{return null}}async function O8(y){let n=await cy(),{PublicKey:o}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),T=new o(y),{baseDecimal:C}=BH(gy.Solana),H=await n.getBalance(T),U=[wT.from({chain:gy.Solana,fromBaseDecimal:C,value:H||0})],_=await n.getParsedTokenAccountsByOwner(T,{programId:f});for(let{account:A}of _.value){let J=A.data.parsed.info,L=J.mint,G=J.tokenAmount.amount;if(Number(G)===0)continue;let q=await zH(L),W=q?.symbol||"UNKNOWN",M=q?.decimals||J.tokenAmount.decimals;U.push(wT.from({asset:`${gy.Solana}.${W}-${L}`,fromBaseDecimal:M,value:G}))}return U}function Oo(y){try{let n=new Tf(y);return Tf.isOnCurve(n.toBytes())}catch{return!1}}function w8(y){let n=y&&"index"in y?y.index||0:0,o=M8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:z8(B8[gy.Solana],{index:n})),f;async function T(){if(f)return f;return f=await N8(y).with({phrase:LH.string},({phrase:H})=>No({derivationPath:o,phrase:H})).with({signer:LH.any},({signer:H})=>H).otherwise(()=>{return}),f}async function C(){let H=await T();return H?.publicKey?YH(H.publicKey):""}return{broadcastTransaction:DT(cy),createKeysForPath:No,createTransaction:wo(cy),createTransactionFromInstructions:S8,estimateTransactionFee:D8(cy),getAddress:C,getAddressFromPubKey:YH,getBalance:Qy(gy.Solana),getBalanceFromRPC:O8,getConnection:cy,getPubkeyFromAddress:(H)=>new Tf(H),signAndBroadcastTransaction:async(H)=>{let U=await MH(cy,T)(H);return DT(cy)(U)},signTransaction:MH(cy,T),transfer:F8(cy,T),validateAddress:Oo}}function D8(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let H=await y(),_=(await wo(y)({assetValue:o,isProgramDerivedAddress:T,memo:f,recipient:n,sender:C})).compileMessage(),A=await H.getFeeForMessage(_);if(A.value===null)throw new pf("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:J}=BH(gy.Solana);return wT.from({chain:gy.Solana,fromBaseDecimal:J,value:A.value})}}async function cy(){let{Connection:y}=await import("@solana/web3.js"),n=await Y8(gy.Solana);return new y(n,{commitment:"confirmed",fetchMiddleware:(o,f,T)=>{let C={};for(let[H,U]of Object.entries(f?.headers??{})){let _=H.toLowerCase();if(_!=="pragma"&&_!=="solana-client")C[H]=U}T(o,{...f,headers:C})}})}function R8(y){return async({assetValue:n,recipient:o,sender:f,isProgramDerivedAddress:T})=>{let C=await y(),H=new Tf(f);if(n.isGasAsset){let{Transaction:U,SystemProgram:_}=await import("@solana/web3.js");return new U().add(_.transfer({fromPubkey:H,lamports:n.getBaseValue("number"),toPubkey:new Tf(o)}))}if(n.address)return k8({amount:n.getBaseValue("number"),connection:C,decimals:n.decimal,from:H,isProgramDerivedAddress:T,recipient:o,tokenAddress:n.address});return}}async function k8({tokenAddress:y,recipient:n,from:o,connection:f,amount:T,decimals:C,isProgramDerivedAddress:H}){let{getAssociatedTokenAddress:U,getAccount:_,createAssociatedTokenAccountInstruction:A,createTransferCheckedInstruction:J}=await import("@solana/spl-token"),{Transaction:L}=await import("@solana/web3.js"),G=new L,q=new Tf(y),W=await U(q,o),M=new Tf(n),w=await U(q,M,H),N=!1;try{await _(f,w),N=!0}catch{}if(!N)G.add(A(o,w,M,q));return G.add(J(W,q,w,o,T,C)),G}function wo(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let{createMemoInstruction:H}=await import("@solana/spl-memo"),U=new Tf(C);if(!(T||Oo(n)))throw new pf("core_transaction_invalid_recipient_address");let _=await y(),A=await R8(y)({assetValue:o,isProgramDerivedAddress:T,recipient:n,sender:C});if(!A)throw new pf("core_transaction_invalid_sender_address");if(f)A.add(H(f));let J=await _.getLatestBlockhash();return A.recentBlockhash=J.blockhash,A.feePayer=U,A}}async function S8({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 F8(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 DT(y)(A)}return _.sign(H),DT(y)(_)}}function DT(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=L8.SOL}){let{HDKey:o}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:T}=await import("@solana/web3.js"),C=f(y),H=o.fromMasterSeed(C);return T.fromSeed(H.derive(n,!0).privateKey)}function YH(y){return y.toString()}var NH=P(()=>{jy()});var Do={};ny(Do,{validateSolanaAddress:()=>Oo,getSolanaToolbox:()=>w8,fetchTokenMetaData:()=>zH,createKeysForPath:()=>No});var Ro=P(()=>{NH()});import{AssetValue as RT,Chain as kT,DerivationPath as wH,derivationPathToString as x8,getChainConfig as l8,getRPCUrl as Fo,NetworkDerivationPath as $8,SwapKitError as Ny,updateDerivationPath as I8}from"@swapkit/helpers";import{match as ko,P as Ef}from"ts-pattern";function ST(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function FT({phrase:y,derivationPath:n=wH.STRK}){let{HDKey:o}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:T,hash:C,encode:H,CallData:U}=await import("starknet"),_=f(y),J=o.fromMasterSeed(_).derive(n);if(!J.privateKey)throw new Ny("toolbox_starknet_no_signer");let L=H.addHexPrefix(Buffer.from(J.privateKey).toString("hex")),G=T.starkCurve.grindKey(L),q=H.addHexPrefix(G),W=T.starkCurve.getStarkKey(q),M=U.compile([W,0]);return{address:C.calculateContractAddressFromHash(W,xo,M,0),privateKey:q,publicKey:W}}async function lo({phrase:y,derivationPath:n=wH.STRK}){let{Account:o,RpcProvider:f}=await import("starknet"),{privateKey:T,address:C}=await FT({derivationPath:n,phrase:y}),H=await Fo(kT.Starknet),U=new f({nodeUrl:H});return new o({address:C,provider:U,signer:T})}function DH(y){let n=kT.Starknet,o=y&&"index"in y?y.index||0:0,f=x8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:I8($8[n],{index:o})),T,C,H;async function U(){if(C)return C;let{RpcProvider:Y}=await import("starknet"),X=await Fo(n);return C=new Y({nodeUrl:X}),C}async function _(Y){let X=await U(),Z=Y||await G();if(!Z)return!1;try{return await X.getClassHashAt(Z),!0}catch(D){if(D instanceof Error&&D.message.includes("Contract not found"))return!1;let k=D;if(k?.code===20||k?.code===19)return!1;throw D}}async function A(){let{CallData:Y,hash:X}=await import("starknet"),Z=await U(),D=await L();if(!D)throw new Ny("toolbox_starknet_no_signer");if(!H)throw new Ny({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await _())return D.address;let R=Y.compile([H,0]);if(X.calculateContractAddressFromHash(H,xo,R,0).toLowerCase()!==D.address.toLowerCase())throw new Ny({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let x={addressSalt:H,classHash:xo,constructorCalldata:R},{transaction_hash:z}=await D.deployAccount(x);return await Z.waitForTransaction(z),z}async function J(){if(!await _()){if(!H)throw new Ny({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await A()}}async function L(){if(T)return T;return T=await ko(y).with({phrase:Ef.string},async({phrase:Y})=>{let{Account:X,RpcProvider:Z}=await import("starknet"),{privateKey:D,address:k,publicKey:R}=await FT({derivationPath:f,phrase:Y});H=R;let S=await Fo(kT.Starknet),x=new Z({nodeUrl:S});return new X({address:k,provider:x,signer:D})}).with({address:Ef.string,privateKey:Ef.string},async({privateKey:Y,address:X})=>{let{Account:Z}=await import("starknet"),D=await U();return new Z({address:X,provider:D,signer:Y})}).with({signer:Ef.instanceOf(Object)},({signer:Y})=>Y).otherwise(()=>{return}),T}async function G(){return(await L())?.address??""}async function q(Y){let X=await U(),{uint256:Z,CallData:D}=await import("starknet"),k=[],R=[So,OH];for(let S of R)try{let[x="0",z="0"]=await X.callContract({calldata:D.compile({account:Y}),contractAddress:S,entrypoint:"balanceOf"}),F=Z.uint256ToBN({high:x,low:z});ko(S).with(So,()=>{k.push(RT.from({chain:n,value:F}))}).with(OH,()=>{if(F>0n)k.push(RT.from({asset:`${n}.ETH-${S}`,value:F}))}).otherwise(()=>{})}catch{}return k}async function W({recipient:Y,assetValue:X}){let{CallData:Z,uint256:D}=await import("starknet");if(!ST(Y))throw new Ny("core_transaction_invalid_recipient_address",{address:Y});let k=X.isGasAsset?So:X.address;if(!k)throw new Ny("toolbox_starknet_invalid_address",{address:k,assetValue:X});let R=D.bnToUint256(X.getBaseValue("bigint"));return[{calldata:Z.compile([Y,R]),contractAddress:k,entrypoint:"transfer"}]}async function M({recipient:Y,assetValue:X,sender:Z}){let{baseDecimal:D}=l8(kT.Starknet),k=await L(),R=await ko({sender:Z,signer:k}).with({sender:Ef.string},async({sender:S})=>{let{Account:x}=await import("starknet"),z=await U();return new x({address:S,provider:z,signer:"0x0"})}).with({signer:Ef.nonNullable},({signer:S})=>S).otherwise((S)=>{throw new Ny({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:S}})});try{let S=await W({assetValue:X,recipient:Y}),x=await R.estimateInvokeFee(S);if(x?.overall_fee)return RT.from({chain:n,fromBaseDecimal:D,value:x.overall_fee})}catch(S){throw new Ny("toolbox_starknet_fee_estimation_failed",S)}return RT.from({chain:n,value:"0.00001"})}async function w({recipient:Y,assetValue:X,memo:Z}){let D=await L();if(!D)throw new Ny("toolbox_starknet_no_signer");await J();let k=await W({assetValue:X,memo:Z,recipient:Y});return(await D.execute(k)).transaction_hash}async function N(Y){let X=await L();if(!X)throw new Ny("toolbox_starknet_no_signer");let Z=await X.signMessage(Y);return Array.isArray(Z)?Z:[Z.r.toString(),Z.s.toString()]}async function Q(Y){let X=await L();if(!X)throw new Ny("toolbox_starknet_no_signer");return await J(),(await X.execute(Y)).transaction_hash}function O(Y){return Q(Y)}function B(Y,X=!0){try{return Qy(n)(Y,X)}catch{return q(Y)}}return{broadcastTransaction:Q,createKeysForPath:lo,createTransaction:W,deployAccount:A,estimateTransactionFee:M,getAddress:G,getBalance:B,getProvider:U,isAccountDeployed:_,signAndBroadcastTransaction:O,signMessage:N,transfer:w,validateAddress:ST}}var So="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",OH="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",xo="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var RH=P(()=>{jy()});var xT={};ny(xT,{validateStarknetAddress:()=>ST,starknetCreateKeysForPath:()=>lo,getStarknetToolbox:()=>DH,deriveStarknetKeys:()=>FT});var lT=P(()=>{RH()});import{isValidSuiAddress as P8}from"@mysten/sui/utils";import{AssetValue as Vf,Chain as Bn,getChainConfig as p8,getRPCUrlSync as E8,SwapKitError as ky}from"@swapkit/helpers";import{match as V8,P as kH}from"ts-pattern";async function FH(y,n,o,f=[],T){let C=await y.getCoins({coinType:o,cursor:T,owner:n}),H=[...f,...C.data];return C.hasNextPage?FH(y,n,o,H,C.nextCursor):H}function t8(y,n,o){let f=n.reduce((_,A)=>_+BigInt(A.balance),0n);if(f<o)throw new ky("toolbox_sui_insufficient_balance",{available:f.toString(),required:o.toString()});let{ids:T}=n.reduce((_,A)=>{if(_.total>=o)return _;return{ids:[..._.ids,A.coinObjectId],total:_.total+BigInt(A.balance)}},{ids:[],total:0n}),C=T[0],H=T.slice(1);if(H.length>0)y.mergeCoins(C,H);let[U]=y.splitCoins(C,[o]);return U}function xH(y){try{return P8(y)}catch{return!1}}function SH(y){return"signWithIntent"in y}function b8({provider:y,...n}={}){let o;async function f(){if(o)return o;return o=await V8(n).with({phrase:kH.string},async({phrase:W})=>{let{Ed25519Keypair:M}=await import("@mysten/sui/keypairs/ed25519");return M.deriveKeypair(W)}).with({signer:kH.any},({signer:W})=>W).otherwise(()=>{return}),o}async function T(W=y){let{SuiClient:M}=await import("@mysten/sui/client");return new M({url:W||E8(Bn.Sui)})}async function C(){return(await f())?.toSuiAddress()||""}function H(W){try{let M=Vf.from({address:W,chain:Bn.Sui});return{asset:M.toString(),decimals:M.decimal}}catch{}return null}async function U(W){let M=W||await C();if(!M)throw new ky("toolbox_sui_address_required");let{baseDecimal:w,chain:N}=p8(Bn.Sui);try{let Q=await T(),{totalBalance:O}=await Q.getBalance({owner:M}),B=[Vf.from({chain:N,fromBaseDecimal:w,value:O})],Y=await Q.getAllBalances({owner:M});for(let{coinType:X,totalBalance:Z}of Y){if(X==="0x2::sui::SUI"||Number(Z)<=0)continue;let D=H(X);if(D)B.push(Vf.from({asset:D.asset,fromBaseDecimal:D.decimals,value:Z}))}return B}catch{return[Vf.from({chain:N})]}}async function _(W){let M=Vf.from({chain:Bn.Sui,value:"0.01"});if(!W)return M;try{let w=await T(),{txBytes:N}=await A(W),{effects:{status:Q,gasUsed:O}}=await w.dryRunTransactionBlock({transactionBlock:N});if(Q.status!=="success")return M;let B=Number(O.computationCost)+Number(O.storageCost)-Number(O.storageRebate);return Vf.from({chain:Bn.Sui,value:B.toString()})}catch{return M}}async function A({recipient:W,assetValue:M,gasBudget:w,sender:N}){let{Transaction:Q}=await import("@mysten/sui/transactions"),O=N||await C();if(!O)throw new ky("toolbox_sui_no_sender");try{let B=new Q;if(B.setSender(O),M.isGasAsset||M.symbol==="SUI"){let[Z]=B.splitCoins(B.gas,[M.getBaseValue("string")]);B.transferObjects([Z],W)}else{let Z=M.address;if(!Z)throw new ky("toolbox_sui_missing_coin_type");let D=await T(),k=M.getBaseValue("bigint"),R=await FH(D,O,Z);if(!R.length)throw new ky("toolbox_sui_no_coins_found",{coinType:Z});let S=t8(B,R,k);B.transferObjects([S],W)}if(w)B.setGasBudget(w);let Y=await T(),X=await B.build({client:Y});return{tx:B,txBytes:X}}catch(B){if(B instanceof ky)throw B;throw new ky("toolbox_sui_transaction_creation_error",{error:B})}}async function J(W){let M=await f();if(!M)throw new ky("toolbox_sui_no_signer");if(W instanceof Uint8Array)return M.signTransaction(W);let{txBytes:w}="tx"in W?W:await A(W);return M.signTransaction(w)}async function L({assetValue:W,gasBudget:M,recipient:w}){let N=await f();if(!N)throw new ky("toolbox_sui_no_signer");let Q=N.toSuiAddress()||await C();if(!Q)throw new ky("toolbox_sui_no_sender");let{txBytes:O}=await A({assetValue:W,gasBudget:M,recipient:w,sender:Q}),B=await T();if(!SH(N)){let X=await N.signTransaction(O),{digest:Z}=await B.executeTransactionBlock({signature:X.signature,transactionBlock:X.bytes});return Z}let{digest:Y}=await B.signAndExecuteTransaction({signer:N,transaction:O});return Y}async function G(W){let M=await T(),{digest:w}=await M.executeTransactionBlock({signature:W.signature,transactionBlock:W.bytes});return w}async function q(W){let M=await f();if(!M)throw new ky("toolbox_sui_no_signer");let w=await T(),N;if(typeof W==="string")N=Uint8Array.from(Buffer.from(W,"base64"));else if(W instanceof Uint8Array)N=W;else N=await W.build({client:w});if(!SH(M)){let O=await M.signTransaction(N),{digest:B}=await w.executeTransactionBlock({signature:O.signature,transactionBlock:O.bytes});return B}let{digest:Q}=await w.signAndExecuteTransaction({signer:M,transaction:N});return Q}return{broadcastTransaction:G,createTransaction:A,estimateTransactionFee:_,getAddress:C,getBalance:U,signAndBroadcastTransaction:q,signTransaction:J,transfer:L,validateAddress:xH}}var lH=()=>{};var $T={};ny($T,{validateSuiAddress:()=>xH,getSuiToolbox:()=>b8});var IT=P(()=>{lH()});import{getHttpEndpoint as v8}from"@orbs-network/ton-access";import{AssetValue as u8,Chain as Nn,getChainConfig as j8,getRPCUrl as K8,SwapKitError as zn,SwapKitNumber as h8}from"@swapkit/helpers";import{mnemonicToWalletKey as m8}from"@ton/crypto";import{Address as iy,beginCell as $o,Cell as $H,external as c8,internal as g8,JettonMaster as i8,loadStateInit as d8,SendMode as IH,storeMessage as r8,TonClient as a8,toNano as VH,WalletContractV4 as s8}from"@ton/ton";import{match as PH,P as Io}from"ts-pattern";async function TA(){let y=Date.now();if(PT&&y-EH<nA)return PT;try{return PT=await v8(),EH=y,PT}catch{return K8(Nn.Ton)}}function oA(y={}){let n,o,f;async function T(){if(!n){let B=y.provider??await TA();n=new a8({endpoint:B})}return n}async function C(){return(await U()).address.toString()}async function H(){if(f)return f;return f=await PH(y).with({phrase:Io.string},async({phrase:B})=>m8(B.split(" "))).with({signer:Io.any},({signer:B})=>B).otherwise(()=>{return}),f}async function U(B){if(!o||B){let Y=await H(),X=await T(),Z=B||Y;if(!Z)throw new zn("core_wallet_connection_not_found");let D=s8.create({publicKey:Z.publicKey,workchain:0});o=X.open(D)}return o}let _=Qy(Nn.Ton);async function A({assetValue:B,recipient:Y,memo:X,sender:Z}){if(B.isGasAsset){let V=X?O(X).toBoc().toString("base64"):void 0;return[{address:Y,amount:B.getBaseValue("string"),payload:V}]}let D=B.address;if(!D)throw new zn({errorKey:"core_swap_contract_not_found",info:{asset:B.toString()}});let k=Z??await C(),R=await N({jettonMasterAddress:D,ownerAddress:k}),S=iy.parse(Y),x=iy.parse(k),z=B.getBaseValue("bigint"),F=X?O(X):void 0,l=Q({destinationAddress:S,forwardPayload:F,jettonAmount:z,responseAddress:x});return[{address:R.toString(),amount:fA.toString(),payload:l.toBoc().toString("base64")}]}function J({sender:B,...Y}){return A({...Y,sender:B})}function L(B){return B.map((Y)=>{let X=Y.payload?$H.fromBase64(Y.payload):void 0,Z=Y.stateInit?d8($H.fromBase64(Y.stateInit).asSlice()):void 0,D=iy.parse(Y.address),k=iy.isFriendly(Y.address)?iy.parseFriendly(Y.address).isBounceable:!0;return g8({body:X,bounce:k,init:Z,to:D,value:BigInt(Y.amount)})})}async function G(B){let Y=await H(),X=await U();if(!X||!Y)throw new zn("core_wallet_connection_not_found");let Z=await T(),{state:D}=await Z.getContractState(X.address),k=D==="active",R=k?await X.getSeqno():0,S=X.createTransfer({messages:L(B),secretKey:Y.secretKey,sendMode:pH,seqno:R}),x=c8({body:S,init:k?void 0:X.init,to:X.address});return $o().store(r8(x)).endCell()}async function q(B){return await(await T()).sendFile(B.toBoc()),B.hash().toString("hex")}async function W(B){let Y=await G(B);return q(Y)}async function M({assetValue:B,recipient:Y,memo:X}){let Z=await J({assetValue:B,memo:X,recipient:Y});return W(Z)}async function w({sender:B,...Y}){let{baseDecimal:X}=j8(Nn.Ton),Z=await PH(B).with(Io.string,(R)=>{return iy.parseFriendly(R).address}).otherwise(async()=>{return(await U()).address});if(!Z)throw new zn("toolbox_fee_estimation_failed",{chain:Nn.Ton});let D=u8.from({chain:Nn.Ton,value:"0.01"}),k=await T();try{let R=await J({sender:B,...Y}),S=await H(),x=await U();if(!x||!S)return D;let z=await x.getSeqno(),F=x.createTransfer({messages:L(R),secretKey:S.secretKey,sendMode:pH,seqno:z}),{source_fees:l}=await k.estimateExternalMessageFee(Z,{body:F,ignoreSignature:!0,initCode:null,initData:null}),V=l.in_fwd_fee+l.storage_fee+l.gas_fee+l.fwd_fee;return D.set(h8.fromBigInt(BigInt(V),X))}catch{return D}}async function N({jettonMasterAddress:B,ownerAddress:Y}){try{let X=await T(),Z=iy.parse(B),D=iy.parse(Y);return await X.open(i8.create(Z)).getWalletAddress(D)}catch{throw new zn({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:B,ownerAddress:Y}})}}function Q({jettonAmount:B,destinationAddress:Y,responseAddress:X,forwardAmount:Z=yA,forwardPayload:D}){let k=$o().storeUint(e8,32).storeUint(0,64).storeCoins(B).storeAddress(Y).storeAddress(X).storeBit(0).storeCoins(Z);if(D)k.storeBit(1).storeRef(D);else k.storeBit(0);return k.endCell()}function O(B){return $o().storeUint(0,32).storeStringTail(B).endCell()}return{broadcastTransaction:q,createTransaction:J,estimateTransactionFee:w,getAddress:C,getBalance:_,getJettonWalletAddress:N,sign:G,signAndBroadcastTransaction:W,transfer:M,validateAddress:tH}}function tH(y){try{return iy.parse(y),!0}catch{return!1}}var e8=260734629,yA,fA,pH,nA=60000,PT,EH=0;var bH=P(()=>{jy();yA=VH("0.01"),fA=VH("0.05"),pH=IH.PAY_GAS_SEPARATELY+IH.IGNORE_ERRORS});var pT={};ny(pT,{validateTonAddress:()=>tH,getTONToolbox:()=>oA});var ET=P(()=>{bH()});import{NetworkDerivationPath as CA}from"@swapkit/helpers";function Sy(y,n){if(!Number.isInteger(n)||n<0)throw RangeError(`${y} must be a non-negative integer, got: ${n}`)}function of({accountIndex:y,chain:n,derivationPath:o}){if(y!==void 0)Sy("accountIndex",y);let f=[...o?.slice(0,3)??CA[n].slice(0,3)];if(y!==void 0)f[2]=y;return f}function tf({accountIndex:y,change:n=!1,chain:o,derivationPath:f,index:T}){return Sy("index",T),[...of({accountIndex:y,chain:o,derivationPath:f}),Number(n),T]}function Lf(y){return y[2]??0}function vH({deriveAddress:y,getBalance:n,getUtxos:o}){async function f(U){let{accountIndex:_,count:A,startIndex:J=0,change:L=!1}=U;if(Sy("count",A),A<1)throw RangeError("count must be at least 1");Sy("startIndex",J);let G=[];for(let q=0;q<A;q++){let W=await y({accountIndex:_,change:L,index:J+q});if(W)G.push(W)}return G}async function T(U){let{gapLimit:_=20,change:A=!1}=U??{},J=[],L=0,G=0;while(L<_){let q=await y({change:A,index:G});if(!q)break;if((await n(q.address)).some((w)=>w.getValue("number")>0))J.push(q),L=0;else L++;G++}return J}async function C(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),J=[..._,...A],L=await Promise.all(J.map(async(q)=>{let M=(await n(q.address)).reduce((w,N)=>w+N.getValue("number"),0);return{...q,balance:M}})),G=L.reduce((q,W)=>q+W.balance,0);return{addresses:L,total:G}}async function H(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),J=[..._,...A];return(await Promise.all(J.map(async(G)=>{return(await o(G.address)).map((W)=>({...W,address:G.address,derivationIndex:G.index,isChange:G.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:C,getAggregatedUtxos:H,scanForAddresses:T}}var On=()=>{};import{Chain as Uy,getRPCUrl as HA,RequestClient as VT,SKConfig as UA,SwapKitError as Vy,warnOnce as _A}from"@swapkit/helpers";import{NETWORKS as bf}from"@swapkit/utxo-signer";async function AA({chain:y,txHash:n}){let o=`${wn(y)}/push/transaction`,f=JSON.stringify({data:n});try{let T=await VT.post(o,{body:f,headers:{"Content-Type":"application/json"}});if(T.context.code!==200)throw new Vy("toolbox_utxo_broadcast_failed",{error:T.context.error||"Transaction broadcast failed"});return T.data?.transaction_hash||n}catch(T){let C=await HA(y);if(C){let H=JSON.stringify({id:VC(),jsonrpc:"2.0",method:"sendrawtransaction",params:[n]}),U=await VT.post(C,{body:H,headers:{"Content-Type":"application/json"}});if(U.error)throw new Vy("toolbox_utxo_broadcast_failed",{error:U.error?.message});if(U.result.includes('"code":-26'))throw new Vy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return U.result}throw T}}function wn(y){return`https://api.blockchair.com/${qA(y)}`}function uH(y){switch(y){case Uy.Bitcoin:return 5;case Uy.Dogecoin:return 1e4;case Uy.Litecoin:return 1;case Uy.Zcash:return 1;default:return 2}}function qA(y){switch(y){case Uy.BitcoinCash:return"bitcoin-cash";case Uy.Litecoin:return"litecoin";case Uy.Dash:return"dash";case Uy.Dogecoin:return"dogecoin";case Uy.Zcash:return"zcash";case Uy.Polkadot:return"polkadot";default:return"bitcoin"}}async function GA(y){try{let{feePerKb:n}=await VT.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),o=n/1000;return Math.max(o,uH(y))}catch{return uH(y)}}async function tT(y,n){let o=await VT.get(`${y}${n?`${y.includes("?")?"&":"?"}key=${n}`:""}`);if(!o||o.context.code!==200)throw new Vy("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return o.data}async function KH({address:y,chain:n,apiKey:o}){if(!y)throw new Vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await tT(`${wn(n)}/dashboards/address/${y}?transaction_details=true`,o))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function WA({address:y,chain:n,apiKey:o}){return(await KH({address:y,apiKey:o,chain:n}))?.address.balance||0}async function hH({chain:y,apiKey:n,txHash:o}){if(!o)throw new Vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await tT(`${wn(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 QA({chain:y,apiKey:n,txHash:o}){if(!o)throw new Vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});let T=(await tT(`${wn(y)}/dashboards/transaction/${o}`,n))?.[o];if(!T)throw new Vy("toolbox_utxo_tx_not_found",{txHash:o});let{transaction:C,inputs:H,outputs:U}=T,_=H.map((J)=>J.spending_sequence),A=C.is_rbf===!0||_.some((J)=>J<XA);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 JA({chain:y,address:n,apiKey:o,offset:f=0,limit:T=30}){return(await tT(`${wn(y)}/outputs?q=recipient(${n}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${T}&offset=${f}`,o)).map(({is_spent:_,script_hex:A,block_id:J,transaction_hash:L,index:G,value:q,spending_signature_hex:W})=>({hash:L,index:G,is_confirmed:J!==-1,is_spent:_,script_hex:A,txHex:W,value:q}))}function ZA(y){return y.reduce((n,o)=>n+o.value,0)}function jH(y,n){let o=[...y].sort((f,T)=>T.value-f.value);if(n){let f=[],T=0;for(let C of o)if(f.push(C),T+=C.value,T>=n)break;return f}return o}async function mH({chain:y,address:n,apiKey:o,targetValue:f,accumulativeValue:T=0,offset:C=0,limit:H=30}){if(!n)throw new Vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let U=await JA({address:n,apiKey:o,chain:y,limit:H,offset:C,targetValue:f}),A=U.length<H,J=U.filter(({is_spent:w})=>!w),L=ZA(J),G=T+L,q=f&&G>=f;if(A||q)return jH(J,f);let W=await mH({accumulativeValue:G,address:n,apiKey:o,chain:y,limit:H,offset:C+H,targetValue:f}),M=[...J,...W];return jH(M,f)}catch(U){let _=U instanceof Error?U.message:String(U);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function LA({address:y,chain:n,apiKey:o,fetchTxHex:f=!0,targetValue:T}){let C=await mH({address:y,apiKey:o,chain:n,targetValue:T}),H=[];for(let{hash:U,index:_,script_hex:A,value:J}of C){let L;if(f)L=await hH({apiKey:o,chain:n,txHash:U});H.push({address:y,hash:U,index:_,txHex:L,value:J,witnessUtxo:{script:Buffer.from(A,"hex"),value:J}})}return H}function yy(y){let n=UA.get("apiKeys").blockchair||"";return _A({condition:!n,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(o)=>AA({chain:y,txHash:o}),getAddressData:(o)=>KH({address:o,apiKey:n,chain:y}),getBalance:(o)=>WA({address:o,apiKey:n,chain:y}),getRawTx:(o)=>hH({apiKey:n,chain:y,txHash:o}),getSuggestedTxFee:()=>GA(y),getTransactionDetails:(o)=>QA({apiKey:n,chain:y,txHash:o}),getUtxos:(o)=>LA({...o,apiKey:n,chain:y})}}function MA(y){return y}function YA(){return function(n){switch(n){case Uy.Bitcoin:return bf.bitcoin;case Uy.BitcoinCash:return bf.bitcoinCash;case Uy.Dash:return bf.dash;case Uy.Litecoin:return bf.litecoin;case Uy.Dogecoin:return bf.dogecoin;case Uy.Zcash:return bf.zcash;default:throw new Vy("toolbox_utxo_not_supported",{chain:n})}}}var XA=4294967294;var cH=P(()=>{jy()});import{CashAddrType as bT,decodeCashAddr as BA,encodeCashAddr as zA}from"@swapkit/utxo-signer";function wA(y,n,o){return zA({hash:o,prefix:y,type:NA[n]})}function DA(y){let n=BA(y),o=OA[n.type];if(!o)throw Error(`Unknown CashAddr type: ${n.type}`);return{hash:n.hash,prefix:n.prefix,type:o}}var NA,OA,Po;var gH=P(()=>{NA={P2PKH:bT.P2PKH,P2SH:bT.P2SH},OA={[bT.P2PKH]:"P2PKH",[bT.P2SH]:"P2SH"};Po={decode:DA,encode:wA}});import{sha256 as RA}from"@noble/hashes/sha2.js";import{createBase58check as kA}from"@scure/base";import{SwapKitError as dH}from"@swapkit/helpers";function Eo(y){try{return vT(y),!0}catch{return!1}}function Vo(y){return vT(y)?.network}function dy(y){let n=vT(y);if(n?.format==="legacy")return y;return xA(n)}function Dn(y){let n=vT(y);return lA(n)}function vT(y){try{let n=SA(y);if(n)return n}catch{}try{let n=FA(y);if(n)return n}catch{}throw new dH("toolbox_utxo_invalid_address",{address:y})}function SA(y){try{let n=rH.decode(y);if(n.length!==21)throw new dH("toolbox_utxo_invalid_address",{address:y});let o=n[0],f=Array.prototype.slice.call(n,1);switch(o){case Mf.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case Mf.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case Mf.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case Mf.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case Mf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case Mf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function FA(y){if(y.indexOf(":")!==-1)try{return iH(y)}catch{}else{let n=["bitcoincash","bchtest","bchreg"];for(let o of n)try{return iH(`${o}:${y}`)}catch{}}return}function iH(y){try{let{hash:n,prefix:o,type:f}=Po.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(n,0),network:o==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function xA(y){let n=Mf.legacy[y.network][y.type],o=Buffer.alloc(1+y.hash.length);return o[0]=n,o.set(y.hash,1),rH.encode(o)}function 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 rH,po,Mf;var aH=P(()=>{gH();rH=kA(RA);((o)=>{o.Mainnet="mainnet";o.Testnet="testnet"})(po||={});Mf={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as $A}from"@swapkit/helpers";import{Script as IA}from"@swapkit/utxo-signer";function My(y){let n=new Uint8Array(Buffer.from(y,"utf8"));return IA.encode(["RETURN",n])}var PA=1000,jT=10,KT=2,sH=10,pA=41,EA=107,hT,uT,Rn,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 $A("toolbox_utxo_invalid_address",{address:y})},Yf=({inputs:y,outputs:n,feeRate:o})=>{let f=y[0]&&"address"in y[0]&&y[0].address?vf(y[0].address):"P2PKH",C=(o?y.filter((A)=>A.value>=uT["type"in A&&A.type?A.type:"P2PKH"]*Math.ceil(o)):y).reduce((A,J)=>A+Cf(J),0),H=n?.reduce((A,J)=>A+kn(J),0)||Rn[f],U=jT+C+H;return f==="P2WPKH"?Math.ceil(U+KT/4):U},Cf=(y)=>{if("type"in y&&y.type)return uT[y.type];if("address"in y&&y.address)return uT[vf(y.address)];return pA+EA},kn=(y,n)=>{if(y?.script)return sH+y.script.length+(y.script.length>=74?2:1);if(n)return Rn[n];if("address"in y&&y.address)return Rn[vf(y.address)];return Rn.P2PKH};var to=P(()=>{((o)=>{o.P2PKH="P2PKH";o.P2WPKH="P2WPKH"})(hT||={});uT={["P2PKH"]:148,["P2WPKH"]:68},Rn={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as Bf,SwapKitError as VA}from"@swapkit/helpers";function Sn(y){switch(y){case Bf.Bitcoin:case Bf.BitcoinCash:return 550;case Bf.Dash:case Bf.Litecoin:return 5500;case Bf.Dogecoin:return 1e5;case Bf.Zcash:return 546;default:throw new VA("toolbox_utxo_not_supported",{chain:y})}}function Fy({inputs:y,outputs:n,feeRate:o=1,chain:f=Bf.Bitcoin,changeAddress:T=""}){let C=y[0]&&"address"in y[0]&&y[0].address?vf(y[0].address):"P2PKH",H=y.filter((W)=>Cf(W)*o<=W.value),_=C==="P2WPKH"?Math.ceil(KT/4):0,A=jT+_+n.reduce((W,M)=>W+kn(M),0),J=n.reduce((W,M)=>W+M.value,0),L=A*o,G=0,q=[];for(let W of H){let M=Cf(W),w=o*M;L+=w,G+=W.value,q.push(W);let N=L+J;if(G<N)continue;let Q=G-N,O=o*kn({address:T,value:0});if(Q>O){let B=O+L,Y=G-(J+Math.ceil(B));if(Y>Math.max(Cf({value:0})*o,Sn(f)))return{fee:Math.ceil(B),inputs:q,outputs:n.concat({address:T,value:Y})}}return{fee:Math.ceil(L),inputs:q,outputs:n}}return{fee:Math.ceil(o*Yf({inputs:y,outputs:n}))}}var eH=P(()=>{to()});var uf=P(()=>{cH();aH();eH();to()});import{Address as tA,ZCASH_NETWORK as bA}from"@swapkit/utxo-signer";function zf(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function Hf(y){let n=zf(y);return Eo(n)&&Vo(n)==="mainnet"}function jf(y){try{if(y.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let o=tA(bA).decode(y);return o.type==="pkh"||o.type==="sh"}catch{return!1}}var Fn=P(()=>{uf()});import{secp256k1 as vA}from"@noble/curves/secp256k1.js";import{hex as Nf}from"@scure/base";import{HDKey as T5}from"@scure/bip32";import{mnemonicToSeedSync as vo}from"@scure/bip39";import{AssetValue as mT,applyFeeMultiplier as y5,Chain as fy,derivationPathToString as xn,FeeOption as ty,NetworkDerivationPath as o5,SwapKitError as g,SwapKitNumber as uA,updateDerivationPath as jA,warnOnce as KA}from"@swapkit/helpers";import{Address as hA,BCHSigHash as uo,CashAddrPrefix as mA,CashAddrType as cA,encodeCashAddr as gA,NETWORKS as Kf,p2pkh as f5,p2wpkh as iA,RBF_SEQUENCE as dA,SigHash as C5,Transaction as bo,WIF as H5}from"@swapkit/utxo-signer";import{match as U5}from"ts-pattern";function jo({address:y,chain:n}){return U5(n).with(fy.BitcoinCash,()=>Hf(y)).with(fy.Zcash,()=>jf(y)).otherwise(()=>{try{return hA(Gy(n)).decode(y),!0}catch{return!1}})}function Gy(y){return U5(y).with(fy.Bitcoin,()=>Kf.bitcoin).with(fy.BitcoinCash,()=>Kf.bitcoinCash).with(fy.Dash,()=>Kf.dash).with(fy.Dogecoin,()=>Kf.dogecoin).with(fy.Litecoin,()=>Kf.litecoin).with(fy.Zcash,()=>Kf.zcash).exhaustive()}function rA({phrase:y,derivationPath:n,network:o,seed:f}){let T=f??vo(y),H=T5.fromMasterSeed(T,o.bip32).derive(n);if(!H.privateKey)throw new g("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return H.privateKey}function n5(y){return vA.getPublicKey(y,!0)}function $n({publicKey:y,chain:n,network:o}){if(n===fy.BitcoinCash){let C=f5(y,o);if(!C.hash)throw new g("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return gA({hash:C.hash,prefix:mA.MAINNET,type:cA.P2PKH}).replace(/^bitcoincash:/,"")}let T=!ln.includes(n)?iA(y,o):f5(y,o);if(!T.address)throw new g("toolbox_utxo_invalid_address",{error:"Could not derive address"});return T.address}function hf({phrase:y,derivationPath:n,chain:o,wif:f,seed:T}){let C=Gy(o);if(f){let A=H5(C).decode(f),J=n5(A);return{privateKey:A,publicKey:J}}if(!y)throw new g("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let H=n||xn(o5[o]),U=rA({derivationPath:H,network:C,phrase:y,seed:T}),_=n5(U);return{privateKey:U,publicKey:_}}function aA(y,n){return H5(Gy(n)).encode(y)}function sA({phrase:y,derivationPath:n,chain:o,seed:f}){let T=n.split("/");if(T.length<4)throw new g("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${T.length}): ${n}`});let C=Gy(o),H=f??vo(y),U=T5.fromMasterSeed(H,C.bip32),_=T.slice(0,4).join("/");return U.derive(_)}function Uf({inputs:y,outputs:n,chain:o,tx:f,sender:T,compiledMemo:C,enableRBF:H=!1}){let U=Gy(o),_=!ln.includes(o),A=H?dA:void 0,J=new Set;for(let L of y){let G=`${L.hash}:${L.index}`;if(J.has(G))throw new g("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});J.add(G);let q=typeof L.hash==="string"?Nf.decode(L.hash):L.hash;if(_&&L.witnessUtxo)f.addInput({index:L.index,sequence:A,txid:q,witnessUtxo:{amount:BigInt(L.witnessUtxo.value),script:L.witnessUtxo.script}});else if(L.txHex)f.addInput({index:L.index,nonWitnessUtxo:Nf.decode(L.txHex),sequence:A,txid:q,...o===fy.BitcoinCash?{sighashType:uo.ALL}:{}});else throw new g("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let L of n){let G="address"in L&&L.address?L.address:T;if(o===fy.BitcoinCash)G=dy(G);if(L.script){if(C)f.addOutput({amount:0n,script:C})}else f.addOutputAddress(G,BigInt(L.value),U)}return{inputs:y,tx:f}}async function mf(y){let n=await yy(y).getSuggestedTxFee();return{[ty.Average]:n,[ty.Fast]:y5(n,ty.Fast),[ty.Fastest]:y5(n,ty.Fastest)}}async function _5({assetValue:y,recipient:n,memo:o,sender:f,fetchTxHex:T=!1}){let C=y.chain,H=(await mf(C))[ty.Fastest],U=T||ln.includes(C),_=y.getBaseValue("number"),A=Math.ceil(_+H*5000);return{inputs:await yy(C).getUtxos({address:f,fetchTxHex:U,targetValue:A}),outputs:[{address:n,value:_},...o?[{address:"",script:My(o),value:0}]:[]]}}async function A5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T,fetchTxHex:C=!1,enableRBF:H=!1}){let U=y.chain,_=o?My(o):null,A=await _5({assetValue:y,fetchTxHex:C,memo:o,recipient:n,sender:T}),{inputs:J,outputs:L}=Fy({...A,chain:U,feeRate:f});if(!(J&&L))throw new g("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let G=new bo({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:q,tx:W}=Uf({chain:U,compiledMemo:_,enableRBF:H,inputs:J,outputs:L,sender:T,tx:G});return{inputs:q,tx:W,utxos:A.inputs}}async function q5({assetValue:y,feeOptionKey:n=ty.Fast,feeRate:o,memo:f,sender:T,recipient:C}){let H=y.chain,U=await _5({assetValue:y,memo:f,recipient:C,sender:T}),_=o?Math.floor(o):(await mf(H))[n];return Fy({...U,chain:H,feeRate:_})}function eA(y){return async function({from:o,memo:f,feeRate:T,feeOptionKey:C=ty.Fast,recipients:H=1}){let U=await yy(y).getAddressData(o),_=T?Math.ceil(T):(await mf(y))[C],A=U?.utxo.map((M)=>({...M,hash:"",type:"P2PKH"})).filter((M)=>M.value>Math.max(Sn(y),Cf(M)*_));if(!A?.length)return mT.from({chain:y});let J=BigInt(A.reduce((M,w)=>M+w.value,0)),L=mT.from({chain:y,value:J}),G=typeof H==="number"?Array.from({length:H},()=>({address:o,value:0})):H;if(f)G.push({address:o,script:My(f),value:0});let q=Yf({inputs:A,outputs:G}),W=mT.from({chain:y,value:BigInt(q*_)});return L.sub(W)}}function yq(y){return async function(o){let{fee:f}=await q5(o);return mT.from({chain:y,value:uA.fromBigInt(BigInt(f),8).getValue("string")})}}function fq({chain:y,phrase:n,derivationPath:o,seed:f}){let T=Gy(y),{privateKey:C,publicKey:H}=hf({chain:y,derivationPath:o,phrase:n,seed:f}),U=y===fy.BitcoinCash?[uo.ALL]:[C5.ALL];return{getAddress:()=>$n({chain:y,network:T,publicKey:H}),privateKey:C,publicKey:H,signTransaction:(_)=>{return _.sign(C,U),_}}}function nq(y,n){return async function({memo:f,recipient:T,feeOptionKey:C,feeRate:H,assetValue:U,enableRBF:_=!1}){let A=await n?.getAddress();if(!(n&&A))throw new g("toolbox_utxo_no_signer");if(!T)throw new g("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});KA({condition:_&&!cT.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let J=_&&cT.includes(y),L=H||(await mf(y))[C||ty.Fast],{tx:G}=await A5({assetValue:U,enableRBF:J,feeRate:L,memo:f,recipient:T,sender:A}),q=await n.signTransaction(G);return q.finalize(),yy(y).broadcastTx(Nf.encode(q.extract()))}}function Ko(y){return(n)=>jo({address:n,chain:y})}function ho(y){let n=Gy(y);return function(f){if(!f)throw new g("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return $n({chain:y,network:n,publicKey:f.publicKey})}}function _f({chain:y,...n}){let o="phrase"in n?n.phrase:void 0,f="index"in n?n.index||0:0,T=o?vo(o):void 0,C="derivationPath"in n&&n.derivationPath?n.derivationPath:jA(o5[y],{index:f}),H=xn(C),U=o?fq({chain:y,derivationPath:H,phrase:o,seed:T}):void 0,_="signer"in n?n.signer:void 0,A=U||_,J=o?hf({chain:y,derivationPath:H,phrase:o,seed:T}):void 0;function L(){if(A)return A.getAddress();return Promise.resolve(void 0)}function G(R){if(!o)return;let S=of({accountIndex:R,chain:y,derivationPath:C});return sA({chain:y,derivationPath:xn(S),phrase:o,seed:T})}let q=G();function W(){if(!q)return;return q.publicExtendedKey}function M({accountIndex:R}={}){let S=R===void 0?q:G(R);if(!S)return;let x=of({accountIndex:R,chain:y,derivationPath:C});return{accountIndex:Lf(x),path:xn(x),xpub:S.publicExtendedKey}}function w({accountIndex:R,index:S,change:x=!1}){let z=R===void 0?q:G(R);if(!z)return;let F=tf({accountIndex:R,chain:y,change:x,derivationPath:C,index:S}),l=Gy(y),V=z.deriveChild(Number(x)).deriveChild(S);if(!V.publicKey)throw new g("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let p=$n({chain:y,network:l,publicKey:V.publicKey}),b=Nf.encode(V.publicKey);return{accountIndex:Lf(F),address:p,change:x,index:S,path:xn(F),pubkey:b}}async function N(R){if(!cT.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let S=await yy(y).getTransactionDetails(R);return{canReplace:S.isRBF&&!S.confirmed,confirmed:S.confirmed,enabled:S.isRBF,fee:S.fee,sequences:S.sequences,supported:!0}}async function Q({txid:R,newFeeRate:S,recipient:x,memo:z}){if(!cT.includes(y))throw new g("toolbox_utxo_rbf_not_supported",{chain:y});let F=await yy(y).getTransactionDetails(R);if(!F.isRBF)throw new g("toolbox_utxo_tx_not_replaceable",{txid:R});if(F.confirmed)throw new g("toolbox_utxo_tx_already_confirmed",{blockId:F.blockId,txid:R});let l=F.inputs.reduce((e,wy)=>e+wy.value,0),p=F.outputs.find((e)=>e.recipient===x)?.value||0;if(p===0)throw new g("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let b=await Promise.all(F.inputs.map(async(e)=>{let wy=await yy(y).getRawTx(e.transaction_hash);return{hash:e.transaction_hash,index:e.index,txHex:wy,value:e.value,witnessUtxo:void 0}})),K=z?My(z):null,s=Yf({feeRate:S,inputs:b.map((e)=>({...e,type:"P2WPKH"})),outputs:[{address:x,value:p}]}),m=Math.ceil(s*S);if(m<=F.fee)throw new g("toolbox_utxo_rbf_fee_too_low",{newFee:m,originalFee:F.fee});let Ly=m-F.fee,oy=p-Ly;if(oy<=0)throw new g("toolbox_utxo_rbf_insufficient_change");let $y=new bo({allowLegacyWitnessUtxo:!0,version:1}),Iy=[{address:x,value:oy},...z?[{address:"",script:My(z),value:0}]:[]],Py=l-oy-m,Xy=await L();if(Py>Sn(y)&&Xy)Iy.push({address:Xy,value:Py});return Uf({chain:y,compiledMemo:K,inputs:b,outputs:Iy,sender:Xy||x,tx:$y}),{feeDelta:Ly,newFee:m,originalFee:F.fee,tx:$y}}async function O({txid:R,newFeeRate:S,recipient:x,memo:z}){let{tx:F,originalFee:l,newFee:V}=await Q({memo:z,newFeeRate:S,recipient:x,txid:R}),p=await D(F);p.finalize();let b=await yy(y).broadcastTx(Nf.encode(p.extract()));return{newFee:V,originalFee:l,txid:b}}function B({accountIndex:R,index:S,change:x=!1}){Sy("index",S);let z=R===void 0?q:G(R);if(!z)return;return z.deriveChild(Number(x)).deriveChild(S).privateKey||void 0}function Y({tx:R,inputDerivations:S}){if(!q)throw new g("toolbox_utxo_no_signer");let x=y===fy.BitcoinCash?[uo.ALL]:[C5.ALL];for(let z=0;z<S.length;z++){let F=S[z];if(!F)continue;let{derivationIndex:l,isChange:V}=F,p=B({change:V,index:l});if(!p)throw new g("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${z} at index ${l}`});R.signIdx(p,z,x)}return R}async function X({utxos:R,recipient:S,assetValue:x,memo:z,feeRate:F,feeOptionKey:l,changeAddress:V}){if(!q)throw new g("toolbox_utxo_no_signer");let p=F||(await mf(y))[l||ty.Fast],b=z?My(z):null,K=[{address:S,value:x.getBaseValue("number")}];if(b)K.push({address:"",script:b,value:0});let s=R.map(({hash:Xy,index:e,value:wy,txHex:IU,witnessUtxo:X0})=>({hash:Xy,index:e,txHex:IU,value:wy,witnessUtxo:X0?{script:X0.script,value:X0.value}:void 0})),{inputs:m,outputs:Ly}=Fy({chain:y,feeRate:p,inputs:s,outputs:K});if(!(m&&Ly))throw new g("toolbox_utxo_insufficient_balance",{assetValue:x,sender:"multiple addresses"});let oy=new bo({allowLegacyWitnessUtxo:!0,version:1}),$y=R[0]?.address,Iy=V||await L()||$y||S;Uf({chain:y,compiledMemo:b,inputs:m,outputs:Ly,sender:Iy,tx:oy});let Py=m.map((Xy)=>{let e=R.find((wy)=>wy.hash===Xy.hash&&wy.index===Xy.index);return e?{derivationIndex:e.derivationIndex,isChange:e.isChange}:{derivationIndex:0,isChange:!1}});return Y({inputDerivations:Py,tx:oy}),oy.finalize(),yy(y).broadcastTx(Nf.encode(oy.extract()))}function Z({address:R,gapLimit:S=20}){if(!q)return;for(let x=0;x<S;x++){let z=w({change:!1,index:x}),F=w({change:!0,index:x}),l=z?.address===R?!1:F?.address===R;if(z?.address===R||F?.address===R)return{change:l,index:x}}return}function D(R){if(!A)throw new g("toolbox_utxo_no_signer");return A.signTransaction(R)}async function k(R){let S=await D(R);return S.finalize(),await yy(y).broadcastTx(Nf.encode(S.extract()))}return{accumulative:Fy,broadcastTx:(R)=>yy(y).broadcastTx(R),bumpFee:O,calculateTxSize:Yf,createKeysForPath:(R)=>hf({...R,chain:y}),createReplacementTransaction:Q,createTransaction:A5,deriveAddressAtIndex:w,derivePrivateKeyAtIndex:B,estimateMaxSendableAmount:eA(y),estimateTransactionFee:yq(y),getAddress:L,getAddressFromKeys:ho(y),getBalance:Qy(y),getExtendedPublicKey:W,getExtendedPublicKeyInfo:M,getFeeRates:()=>mf(y),getInputsOutputsFee:q5,getNetworkForChain:()=>Gy(y),getPrivateKeyFromMnemonic:(R)=>aA(hf({...R,chain:y}).privateKey,y),isRBFEnabled:N,keys:J,resolveDerivationIndex:Z,signAndBroadcastTransaction:k,signTransaction:D,signTransactionWithMultipleKeys:Y,transfer:nq(y,A),transferFromMultipleAddresses:X,validateAddress:Ko(y)}}var ln,cT;var cf=P(()=>{jy();On();uf();Fn();ln=[fy.Dash,fy.Dogecoin,fy.Zcash,fy.BitcoinCash],cT=[fy.Bitcoin]});import{hex as G5}from"@scure/base";import{Chain as Tq,derivationPathToString as oq,FeeOption as Cq,NetworkDerivationPath as Hq,SwapKitError as ry,updateDerivationPath as Uq}from"@swapkit/helpers";import{BCHSigHash as _q,CashAddrPrefix as W5,CashAddrType as X5,encodeCashAddr as Q5,NETWORKS as Aq,p2pkh as J5,Transaction as Z5}from"@swapkit/utxo-signer";function In(y){return zf(Dn(y))}function qq(y){let n=Gy(by);function o(T){return T.sign(y.privateKey,[_q.ALL]),T}function f(){let T=J5(y.publicKey,n);if(!T.hash)throw new ry("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let C=Q5({hash:T.hash,prefix:W5.MAINNET,type:X5.P2PKH});return Promise.resolve(C.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:o}}function mo(y){let n="phrase"in y?y.phrase:void 0,o="index"in y?y.index||0:0,f=oq("derivationPath"in y&&y.derivationPath?y.derivationPath:Uq(Hq[by],{index:o})),T=n?hf({chain:by,derivationPath:f,phrase:n}):void 0,C=T?qq(T):("signer"in y)?y.signer:void 0;function H(){return Promise.resolve(C?.getAddress())}let{getBalance:U,getFeeRates:_,broadcastTx:A,...J}=_f({chain:by});function L(W,M=!0){return U(zf(Dn(W)))}function G(W){if(!C)throw new ry("toolbox_utxo_no_signer");return C.signTransaction(W)}async function q(W){let M=await G(W);return M.finalize(),await A(G5.encode(M.extract()))}return{...J,broadcastTx:A,buildTx:Wq,createTransaction:L5,getAddress:H,getAddressFromKeys:Xq,getBalance:L,getFeeRates:_,signAndBroadcastTransaction:q,signTransaction:G,stripPrefix:zf,stripToCashAddress:In,transfer:Gq({broadcastTx:A,getFeeRates:_,signer:C}),validateAddress:Hf}}async function L5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){if(!Hf(n))throw new ry("toolbox_utxo_invalid_address",{address:n});let C=Math.ceil(y.getBaseValue("number")+f*7500),H=await yy(by).getUtxos({address:In(T),fetchTxHex:!0,targetValue:C}),U=o?My(o):null,_=[],A=dy(n);if(_.push({address:A,value:y.getBaseValue("number")}),U)_.push({script:U,value:0});let{inputs:J,outputs:L}=Fy({chain:by,feeRate:f,inputs:H,outputs:_});if(!(J&&L))throw new ry("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let G=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!U,version:1}),q=dy(T),{inputs:W,tx:M}=Uf({chain:by,compiledMemo:U,inputs:J,outputs:L.map((w)=>("address"in w)&&w.address?{...w,address:dy(w.address)}:w),sender:q,tx:G});return{inputs:W,tx:M,utxos:J}}function Gq({broadcastTx:y,getFeeRates:n,signer:o}){return async function({recipient:T,assetValue:C,feeOptionKey:H=Cq.Fast,...U}){let _=await o?.getAddress();if(!(o&&_))throw new ry("toolbox_utxo_no_signer");if(!T)throw new ry("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let A=U.feeRate||(await n())[H],{tx:J}=await L5({...U,assetValue:C,feeRate:A,recipient:T,sender:_}),L=await o.signTransaction(J);return L.finalize(),y(G5.encode(L.extract()))}}async function Wq({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){let C=Dn(n);if(!Hf(C))throw new ry("toolbox_utxo_invalid_address",{address:C});let H=Math.ceil(y.getBaseValue("number")+f*7500),U=await yy(by).getUtxos({address:In(T),fetchTxHex:!0,targetValue:H}),_=Number(f.toFixed(0)),A=o?My(o):null,J=[];if(J.push({address:dy(n),value:y.getBaseValue("number")}),A)J.push({script:A,value:0});let{inputs:L,outputs:G}=Fy({chain:by,feeRate:_,inputs:U,outputs:J});if(!(L&&G))throw new ry("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let q=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:W,tx:M}=Uf({chain:by,compiledMemo:A,inputs:L,outputs:G,sender:dy(T),tx:q});return{inputs:W,tx:M,utxos:U}}function Xq(y){let n=Aq.bitcoinCash,o=J5(y.publicKey,n);if(!o.hash)throw new ry("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return Q5({hash:o.hash,prefix:W5.MAINNET,type:X5.P2PKH}).replace(/^bitcoincash:/,"")}var by;var gT=P(()=>{uf();cf();Fn();by=Tq.BitcoinCash});import{createBase58check as Qq,hex as Jq}from"@scure/base";import{HDKey as Y5}from"@scure/bip32";import{mnemonicToSeedSync as B5}from"@scure/bip39";import{Chain as iT,derivationPathToString as Zq,FeeOption as Lq,NetworkDerivationPath as Mq,SKConfig as z5,SwapKitError as Pn,updateDerivationPath as Yq}from"@swapkit/helpers";import{Address as Bq,createZcashTransaction as zq,OutScript as Nq,PCZT as Oq,utils as N5,WIF as wq,ZCASH_NETWORK as Dq,ZCASH_TEST_NETWORK as Rq,ZcashConsensusBranchId as kq,ZcashPSBT as Sq,ZcashSigHash as co,ZcashVersionGroupId as Fq}from"@swapkit/utxo-signer";import{match as xq,P as go}from"ts-pattern";function O5(){let{isStagenet:y}=z5.get("envs");return y?Rq:Dq}function $q(y){return lq.encode(y)}function Iq({phrase:y,derivationPath:n}){let o=B5(y),T=Y5.fromMasterSeed(o).derive(n);if(!T.privateKey||!T.publicKey)throw new Pn("toolbox_utxo_invalid_params");let{privateKey:C,publicKey:H}=T,U=N5.hash160(H),{isStagenet:_}=z5.get("envs"),A=_?new Uint8Array([29,37]):new Uint8Array([28,184]),J=new Uint8Array(A.length+U.length);J.set(A,0),J.set(U,A.length);let L=$q(J);return{getAddress:()=>Promise.resolve(L),signTransaction:(G)=>{if(G instanceof Sq){let q=G.toPCZT();return q.signAllInputs(C,H,co.ALL),q.finalizeAllInputs(),Promise.resolve(q.extract())}if(G instanceof Oq)return G.signAllInputs(C,H,co.ALL),G.finalizeAllInputs(),Promise.resolve(G.extract());return G.signAllInputs(C,H,co.ALL),Promise.resolve(G)}}}function Pq({inputs:y,outputs:n,tx:o,sender:f,compiledMemo:T}){let C=O5();for(let H of y){let U=Bq(C).decode(f),_=Nq.encode(U);o.addInput({index:H.index,script:_,sequence:4294967295,txid:Jq.decode(H.hash),value:BigInt(H.value)})}for(let H of n){let U="address"in H&&H.address?H.address:f,_=H.script;if(_&&!T)continue;if(_&&T)o.addOutput({amount:0n,script:T});else o.addOutputAddress(U,BigInt(H.value),C)}return{inputs:y,tx:o}}async function M5(y){let{assetValue:n,recipient:o,memo:f,feeRate:T,sender:C,fetchTxHex:H}=y,U=f?My(f):null,_=await yy(iT.Zcash).getUtxos({address:C,fetchTxHex:H!==!1}),A=[{address:o,value:Number(n.getBaseValue("string"))},...U?[{script:U,value:0}]:[]],{inputs:J,outputs:L}=Fy({chain:iT.Zcash,changeAddress:C,feeRate:T,inputs:_,outputs:A});if(!(J&&L))throw new Pn("toolbox_utxo_insufficient_balance",{assetValue:n,sender:C});let G=zq({consensusBranchId:kq.NU6_2,expiryHeight:0,lockTime:0,version:4,versionGroupId:Fq.SAPLING}),{tx:q,inputs:W}=Pq({compiledMemo:U,inputs:J,outputs:L,sender:C,tx:G});return{inputs:W,outputs:L,tx:q}}function io(y){let n=xq(y).with({signer:go.not(go.nullish)},({signer:_})=>_).with({phrase:go.string},({phrase:_,derivationPath:A,index:J=0})=>{let L=A||Mq[iT.Zcash]||[44,133,0,0,0],G=Yq(L,{index:J}),q=Zq(G);return Iq({derivationPath:q,phrase:_})}).otherwise(()=>{return}),o=_f({chain:iT.Zcash,signer:n});async function f(_){if(!n)throw new Pn("toolbox_utxo_no_signer");return await n.signTransaction(_)}async function T(_){let A=await f(_);return o.broadcastTx(A.toHex())}async function C({recipient:_,assetValue:A,feeOptionKey:J=Lq.Fast,...L}){let G=await n?.getAddress();if(!(n&&G))throw new Pn("toolbox_utxo_no_signer");let q=L.feeRate||(await o.getFeeRates())[J],{tx:W}=await M5({...L,assetValue:A,feeRate:q,recipient:_,sender:G}),w=(await n.signTransaction(W)).toHex();return o.broadcastTx(w)}function H({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let J=B5(_),G=Y5.fromMasterSeed(J).derive(A);if(!G.privateKey||!G.publicKey)throw new Pn("toolbox_utxo_invalid_params");return{privateKey:G.privateKey,publicKey:G.publicKey}}function U({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let J=H({derivationPath:A,phrase:_}),L=O5();return wq(L).encode(J.privateKey)}return{...o,createKeysForPath:H,createTransaction:M5,getPrivateKeyFromMnemonic:U,signAndBroadcastTransaction:T,signTransaction:f,transfer:C,validateAddress:jf}}var lq;var ro=P(()=>{uf();cf();Fn();lq=Qq(N5.sha256)});import{hex as pq}from"@scure/base";import{HDKey as Eq}from"@scure/bip32";import{derivationPathToString as Vq}from"@swapkit/helpers";function w5({xpub:y,chain:n,count:o,startIndex:f=0,accountIndex:T}){if(Sy("count",o),o<1)throw RangeError("count must be at least 1");Sy("startIndex",f);let C=Gy(n),H=Eq.fromExtendedKey(y,C.bip32),U=of({accountIndex:T,chain:n}),_=Lf(U),A=[];for(let J of[!1,!0]){let L=H.deriveChild(Number(J));for(let G=0;G<o;G++){let q=f+G,W=L.deriveChild(q);if(!W.publicKey)continue;let M=tf({accountIndex:T,chain:n,change:J,index:q});A.push({accountIndex:_,address:$n({chain:n,network:C,publicKey:W.publicKey}),change:J,index:q,path:Vq(M),pubkey:pq.encode(W.publicKey)})}}return A}var D5=P(()=>{On();cf()});import{Chain as gf,SwapKitError as tq}from"@swapkit/helpers";function bq(y,n){switch(y){case gf.BitcoinCash:return mo(n||{});case gf.Zcash:return io(n);case gf.Bitcoin:case gf.Dogecoin:case gf.Litecoin:case gf.Dash:return _f({chain:y,...n});default:throw new tq("toolbox_utxo_not_supported",{chain:y})}}var R5=P(()=>{gT();cf();ro();On();D5();gT();Fn()});var ao={};ny(ao,{validateZcashAddress:()=>jf,validateUtxoAddress:()=>jo,validateBchAddress:()=>Hf,toLegacyAddress:()=>dy,toCashAddress:()=>Dn,stripToCashAddress:()=>In,stripPrefix:()=>zf,nonSegwitChains:()=>ln,isValidAddress:()=>Eo,getUtxoToolbox:()=>bq,getUtxoNetwork:()=>YA,getUtxoApi:()=>yy,getUTXOAddressValidator:()=>Ko,getUTXOAddressPath:()=>tf,getUTXOAccountPath:()=>of,getUTXOAccountIndexFromPath:()=>Lf,getScriptTypeForAddress:()=>vf,getOutputSize:()=>kn,getNetworkForChain:()=>Gy,getInputSize:()=>Cf,getDustThreshold:()=>Sn,detectAddressNetwork:()=>Vo,deriveAddressesFromXpub:()=>w5,createZcashToolbox:()=>io,createUTXOToolbox:()=>_f,createHDWalletHelpers:()=>vH,createCustomUtxoApi:()=>MA,createBCHToolbox:()=>mo,compileMemo:()=>My,calculateTxSize:()=>Yf,assertDerivationIndex:()=>Sy,addressFromKeysGetter:()=>ho,addInputsAndOutputs:()=>Uf,accumulative:()=>Fy,UtxoNetwork:()=>po,UTXOScriptType:()=>hT,TX_OVERHEAD:()=>jT,SEGWIT_MARKER_FLAG_WEIGHT:()=>KT,OutputSizes:()=>Rn,OP_RETURN_OVERHEAD:()=>sH,MIN_TX_FEE:()=>PA,InputSizes:()=>uT});var so=P(()=>{cf();On();uf();R5();gT();ro()});import{KeyPairSigner as vq}from"@near-js/signers";import{derivationPathToString as uq,SwapKitError as jq}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?uq(y.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:T}=k5.parseSeedPhrase(y.phrase,f),C=n.fromString(T);return F5(C)}async function eo(y){let{KeyPair:n}=await import("@near-js/crypto"),o=n.fromString(y);return F5(o)}function F5(y){return new S5(y)}async function rT(y,n){let f=(await y.query({account_id:n,finality:"final",request_type:"view_access_key_list"})).keys.find((U)=>U.access_key.permission==="FullAccess");if(!f)throw new jq("toolbox_near_no_public_key_found");let{PublicKey:T}=await import("@near-js/crypto"),C=T.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:C}}var S5;var yC=P(()=>{S5=class S5 extends vq{#y;constructor(y){super(y);this.#y=y}getAddress(){let y=this.#y.getPublicKey(),n=Buffer.from(y.data).toString("hex");return Promise.resolve(n)}}});function fC(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function nC(y){return"contractId"in y&&"methodName"in y}function TC(y){return"actions"in y}function oC(y){return"newAccountId"in y}function CC(y){return"contractCode"in y}function HC(y){return"customEstimator"in y}function UC(y){let n=0;for(let o of y)switch(o.enum){case"transfer":n+=Number(_y.SIMPLE_TRANSFER);break;case"functionCall":n+=Number(_y.CONTRACT_CALL);break;case"createAccount":n+=Number(_y.ACCOUNT_CREATION);break;case"deployContract":n+=Number(_y.CONTRACT_DEPLOYMENT);break;case"addKey":n+=Number(_y.ACCESS_KEY_ADDITION);break;case"deleteKey":n+=Number(_y.ACCESS_KEY_DELETION);break;case"stake":n+=Number(_y.STAKE);break;default:n+=Number(_y.CONTRACT_CALL)}return n.toString()}function _C(y){if(y==="ft_transfer"||y==="ft_transfer_call")return _y.TOKEN_TRANSFER;if(y==="storage_deposit")return _y.STORAGE_DEPOSIT;return _y.CONTRACT_CALL}function Kq(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function hq(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var _y;var AC=P(()=>{_y={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function qC({account:y,contractId:n,viewMethods:o,changeMethods:f}){let{Contract:T}=await import("@near-js/accounts");return new T(y,n,{changeMethods:f,useLocalViewExecution:!0,viewMethods:o})}import{JsonRpcProvider as mq}from"@near-js/providers";import{AssetValue as GC,Chain as df,getRPCUrl as x5,SwapKitError as Ay}from"@swapkit/helpers";import{match as l5,P as $5}from"ts-pattern";function cq(y){let n;async function o(){if(n)return n;return n=await l5(y).with({phrase:$5.string},async(z)=>{return await dT(z)}).with({signer:$5.any},({signer:z})=>z).otherwise(()=>{return}),n}async function f(){let z=await x5(df.Near);return new mq({url:z})}async function T(z){let{Account:F}=await import("@near-js/accounts"),l=await f(),V=await o(),p=z||await C();return new F(p,l,V)}async function C(){let z=await o();if(!z)throw new Ay("toolbox_near_no_signer");return await z.getAddress()}async function H(z){return(await Z({changeMethods:[],contractId:z.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:z.accountId})}async function U(z){let l=[await G({args:{account_id:z.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await G({args:{amount:z.assetValue.getBaseValue("string"),memo:z.memo||null,receiver_id:z.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return D({actions:l,receiverId:z.contractId})}async function _(z){if(!await o())throw new Ay("toolbox_near_no_signer");let{assetValue:l,recipient:V,memo:p}=z,b=await C();if(!l.isGasAsset&&l.address){if(!await H({accountId:V,contractId:l.address}))return U({assetValue:l,contractId:l.address,memo:p,recipient:V})}let K=await A({...z,sender:b});return Q(K)}async function A({recipient:z,assetValue:F,memo:l,attachedDeposit:V,sender:p,functionCall:b}){let K=await f();if(!pn(z))throw new Ay("toolbox_near_invalid_address",{recipient:z});if(!pn(p))throw new Ay("toolbox_near_invalid_address",{sender:p});if(b)return L({...b,sender:p});if(!F.isGasAsset){let wy=F.address;if(!wy)throw new Ay("toolbox_near_missing_contract_address");return L({args:{amount:F.getBaseValue("string"),memo:l||null,receiver_id:z},attachedDeposit:V||"1",contractId:wy,gas:"250000000000000",methodName:"ft_transfer",sender:p})}let{publicKey:s,nonce:m}=await rT(K,p),Ly=F.getBaseValue("bigint"),{actionCreators:oy,createTransaction:$y}=await import("@near-js/transactions"),{baseDecode:Iy}=await import("@near-js/utils"),Py=[oy.transfer(Ly)];if(l&&V)Py.push(oy.functionCall("memo",{memo:l},BigInt("250000000000000"),BigInt(V)));let Xy=await K.block({finality:"final"}),e=Iy(Xy.header.hash);return $y(p,s,z,m+1,Py,e)}function J(z){let F=z.encode();return Buffer.from(F).toString("base64")}async function L({args:z,attachedDeposit:F,contractId:l,gas:V,methodName:p,sender:b}){let K=await f(),{publicKey:s,nonce:m}=await rT(K,b),{createTransaction:Ly,actionCreators:oy}=await import("@near-js/transactions"),{baseDecode:$y}=await import("@near-js/utils"),Iy=await K.block({finality:"final"}),Py=$y(Iy.header.hash),Xy=[oy.functionCall(p,Buffer.from(JSON.stringify(z)),BigInt(V),BigInt(F))];return Ly(b,s,l,m+1,Xy,Py)}async function G(z){let{actionCreators:F}=await import("@near-js/transactions");return F.functionCall(z.methodName,Buffer.from(JSON.stringify(z.args)),BigInt(z.gas),BigInt(z.attachedDeposit))}async function q(z){let F=await o();if(!F)throw new Ay("toolbox_near_no_signer");await W(z);let[l,V]=await F.signTransaction(z);return V}async function W(z){let F=z.publicKey;if(F.toString?.().startsWith("ed25519:")||F.toString?.().startsWith("secp256k1:"))return;let{KeyType:l,PublicKey:V}=await import("@near-js/crypto"),p=F.data||F.ed25519Key?.data,b=F.secp256k1Key?.data;if(p){z.publicKey=new V({data:Uint8Array.from(p),keyType:l.ED25519});return}if(b)z.publicKey=new V({data:Uint8Array.from(b),keyType:l.SECP256K1})}function M(z){if(typeof z==="string")return z;if(Array.isArray(z))return z.map(M).find(Boolean);if(!(z&&typeof z==="object"))return;let F=z;return F.transaction?.hash||F.transaction_outcome?.id}function w(z){return z instanceof Error?z.message:String(z)}async function N(z){let l=await(await f()).sendTransaction(z),V=M(l);if(!V)throw new Ay("toolbox_near_transfer_failed",{result:l});return V}async function Q(z){let F=await o();if(!F)throw new Ay("toolbox_near_no_signer");let l;try{l=await q(z)}catch(V){let p;try{p=F.signAndSendTransaction?await F.signAndSendTransaction({actions:z.actions,receiverId:z.receiverId,signerId:z.signerId}):await F.signAndSendTransactions?.({transactions:[z]})}catch(K){throw new Ay({errorKey:"toolbox_near_sign_transaction_failed",info:{directSignError:w(V),signAndSendError:w(K)}},K)}let b=M(p);if(b)return b;throw V}return N(l)}async function O(z){let F=await o();if("assetValue"in z){let V=await B();try{let p=await x5(df.Near),b=await fetch(p,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:K}}=await b.json(),{execution:s,send_sir:m}=K.transaction_costs.action_receipt_creation_config,{execution:Ly,send_sir:oy}=K.transaction_costs.action_creation_config.transfer_cost,$y=BigInt(oy)+BigInt(Ly),Iy=BigInt(m)+BigInt(s),Xy=($y+Iy)*BigInt(V.toString());return GC.from({chain:df.Near,value:Xy})}catch(p){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",p);let b=BigInt("115123062500"),K=BigInt("108059500000"),m=(b+K)*BigInt(V.toString());return GC.from({chain:df.Near,value:m})}}let l=F?await T():void 0;return k(z,l)}async function B(){let z=await f();try{return await z.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Y(z,F,l){if(!await o())throw new Ay("toolbox_near_no_signer");let p=await T(),{formatNearAmount:b}=await import("@near-js/utils"),{PublicKey:K}=await import("@near-js/crypto"),s=b(l)||"0";return(await p.createAccount(z,K.fromString(F),BigInt(s))).transaction.hash}async function X(z){let F=await o();try{if(!F)throw new Ay("toolbox_near_no_signer");let{actionCreators:l}=await import("@near-js/transactions"),{contractId:V,methodName:p,args:b,deposit:K}=z,s=await T(),m=await k({args:b||{},contractId:V,methodName:p}),Ly=l.functionCall(p,b||{},m.getBaseValue("bigint"),BigInt(K||"1"));return(await s.signAndSendTransaction({actions:[Ly],receiverId:V})).transaction_outcome.id}catch(l){throw new Ay("toolbox_near_transfer_failed",{error:l})}}async function Z(z){let F=await T();return qC({account:F,changeMethods:z.changeMethods,contractId:z.contractId,viewMethods:z.viewMethods})}async function D(z){if(!await o())throw new Ay("toolbox_near_no_signer");if(z.actions.length===0)throw new Ay("toolbox_near_empty_batch");return(await(await T()).signAndSendTransaction({actions:z.actions,receiverId:z.receiverId})).transaction.hash}async function k(z,F){let l=await l5(z).when(fC,()=>_y.SIMPLE_TRANSFER).when(nC,(p)=>_C(p.methodName)).when(TC,(p)=>UC(p.actions)).when(oC,()=>_y.ACCOUNT_CREATION).when(CC,()=>_y.CONTRACT_DEPLOYMENT).when(HC,(p)=>{if(!F)throw new Ay("toolbox_near_no_account");return p.customEstimator(F)}).otherwise(()=>{throw new Ay("toolbox_near_invalid_gas_params")}),V=BigInt(l)*BigInt(1000000000000);return GC.from({chain:df.Near,value:V})}function R(z,F){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),k(z,F)}async function S(){let z=await f();try{return(await z.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function x(){let z=await o();return z?(await z.getPublicKey()).toString():""}return{broadcastTransaction:N,callFunction:X,createAction:G,createContract:Z,createContractFunctionCall:L,createSubAccount:Y,createTransaction:A,estimateGas:R,estimateGasLimit:k,estimateTransactionFee:O,executeBatchTransaction:D,getAddress:C,getBalance:Qy(df.Near),getGasPrice:S,getNearProvider:f,getPublicKey:x,getSignerFromPhrase:dT,getSignerFromPrivateKey:eo,serializeTransaction:J,signAndBroadcastTransaction:Q,signTransaction:q,transfer:_,validateAddress:pn}}var WC=P(()=>{jy();yC();AC()});var I5=P(()=>{WC()});var XC={};ny(XC,{validateNearAddress:()=>pn,tgasToGas:()=>Kq,isSimpleTransfer:()=>fC,isCustomEstimator:()=>HC,isContractDeployment:()=>CC,isContractCall:()=>nC,isBatchTransaction:()=>TC,isAccountCreation:()=>oC,getNearToolbox:()=>cq,getNearSignerFromPrivateKey:()=>eo,getNearSignerFromPhrase:()=>dT,getFullAccessPublicKey:()=>rT,getContractMethodGas:()=>_C,gasToTGas:()=>hq,estimateBatchGas:()=>UC,createNearContract:()=>qC,GAS_COSTS:()=>_y});var QC=P(()=>{yC();AC();WC();I5()});var ZC={};ny(ZC,{validateRadixAddress:()=>p5,getRadixToolbox:()=>fG});import{GatewayApiClient as gq}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as iq}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as P5,Chain as JC,SKConfig as dq,SwapKitError as rq}from"@swapkit/helpers";function p5(y){return y.startsWith("account_rdx1")&&y.length===66}function aq({networkApi:y}){return async function(o){let f=await sq({address:o,networkApi:y}),T=await eq({networkApi:y,resources:f});if(!T.some((H)=>H.isGasAsset))return[P5.from({chain:JC.Radix}),...T];return T}}async function sq({address:y,networkApi:n}){let o=!0,f,T=[],C=await yG(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 eq({resources:y,networkApi:n}){let o=[],f=50,T=[];for(let C=0;C<y.length;C+=50)T.push(y.slice(C,C+50));for(let C of T){let H=C.map((A)=>A.resource_address),U=await n.state.getEntityDetailsVaultAggregated(H),_=new Map;for(let A of U)if(A.details!==void 0){let J=A.metadata?.items.find((G)=>G.key==="symbol"),L=J?.value.typed.type==="String"?J.value.typed.value:"?";if(A.details.type==="FungibleResource")_.set(A.address,{decimals:A.details.divisibility,symbol:L})}for(let A of C)if(A.aggregation_level==="Global"){let J=_.get(A.resource_address)||{decimals:0,symbol:"?"},L=P5.from({asset:J.symbol!==JC.Radix?`${JC.Radix}.${J.symbol}-${A.resource_address}`:"XRD.XRD",value:A.amount});o.push(L)}}return o}async function yG(y){return(await y.status.getCurrent()).ledger_state.state_version}function fG({dappConfig:y}={}){let n=y||dq.get("integrations").radix,o=iq({...n,networkId:n.network?.networkId||1}),f=gq.initialize(o.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:aq({networkApi:f}),networkApi:f,signAndBroadcast:()=>{throw new rq("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:p5}}var LC=()=>{};import{SwapKitError as nG}from"@swapkit/helpers";function aT(y){return/^[0-9A-Fa-f]{40}$/.test(y)}function En(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 nG({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return n.padEnd(40,"0")}function TG(y){if(!aT(y))return y;if(y.toUpperCase().startsWith("00")){let n=y.slice(24,30);try{let o=Buffer.from(n,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(o)&&o.length>0)return o}catch{}return y.toUpperCase()}try{let n=y.replace(/0+$/,""),o=n.length%2===0?n:`${n}0`,f=Buffer.from(o,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function rf(y){if(aT(y))return y.toUpperCase();if(y.length<=3)return y;return En(y)}var sT=()=>{};import{RequestClient as oG,warnOnce as CG}from"@swapkit/helpers";async function HG(y,n){let o=rf(y),f=eT.find((T)=>rf(T.currency)===o&&T.issuer===n);if(f)return f;try{let T=await oG.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){CG({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 UG(y){return eT.filter((n)=>n.issuer===y)}function _G(y,n){let o=rf(y);return eT.some((f)=>rf(f.currency)===o&&f.issuer===n)}var eT;var E5=P(()=>{sT();eT=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var MC={};ny(MC,{validateRippleAddress:()=>n0,parseXrplTokenIdentifier:()=>K5,normalizeCurrency:()=>rf,isKnownToken:()=>_G,isHexCurrency:()=>aT,hexToCurrency:()=>TG,hashes:()=>JG,getXrplTokenInfo:()=>HG,getRippleToolbox:()=>QG,getKnownTokensByIssuer:()=>UG,formatXrplTokenIdentifier:()=>h5,currencyToHex:()=>En,XRPL_TOKEN_ERROR_CODES:()=>f0,XRPL_KNOWN_TOKENS:()=>eT});import{AssetValue as y0,Chain as xy,getChainConfig as V5,getRPCUrl as AG,SwapKitError as Wy}from"@swapkit/helpers";import{match as t5,P as b5}from"ts-pattern";import{Client as qG,isValidAddress as j5,Wallet as GG,xrpToDrops as WG}from"xrpl";import{hashes as JG}from"xrpl";function K5(y){let n=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!n?.[1]||!n?.[2])return null;if(!j5(n[2]))return null;return{currency:n[1],issuer:n[2]}}function h5(y,n){return`${xy.Ripple}.${y}-${n}`}function XG(y){if(y.isGasAsset)return WG(y.getValue("string"));let n=K5(y.toString());if(!n)throw new Wy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:n.currency,issuer:n.issuer,value:y.getValue("string")}}function u5(y){let n=GG.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=t5(y).with({phrase:b5.string},({phrase:Q})=>u5(Q)).with({signer:b5.any},({signer:Q})=>Q).otherwise(()=>{return}),o;async function f(){let Q=await AG(xy.Ripple);if(!Q)throw new Wy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:xy.Ripple}});let O=new qG(Q);return await O.connect(),O}async function T(){if(o){let Q=await o.catch(()=>null);if(Q?.isConnected())return Q}return o=f(),o}let C=()=>{if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});return n.getAddress()},H=async(Q)=>{let O=Q||await C(),{baseDecimal:B}=V5(xy.Ripple),Y=await T();try{let[X,Z]=await Promise.all([Y.request({account:O,command:"account_info"}),Y.request({account:O,command:"account_lines"})]),D=X.result.account_data.Balance,k=[y0.from({chain:xy.Ripple,fromBaseDecimal:B,value:D})];for(let R of Z.result.lines){let S=h5(R.currency,R.account);if(Number.parseFloat(R.balance)!==0)k.push(y0.from({asset:S,asyncTokenLookup:!1,value:R.balance}))}return k}catch(X){if(X.data?.error_code===v5.ACCOUNT_NOT_FOUND)return[y0.from({chain:xy.Ripple,value:0})];throw new Wy({errorKey:"toolbox_ripple_get_balance_error",info:{address:O,error:X}})}},U=async()=>{let{baseDecimal:Q}=V5(xy.Ripple),Y=(await(await T()).request({command:"fee"})).result.drops.open_ledger_fee;return y0.from({chain:xy.Ripple,fromBaseDecimal:Q,value:Y})};async function _(Q){let O=Q||await C(),B=await T();try{return(await B.request({account:O,command:"account_lines"})).result.lines.map((X)=>({account:X.account,authorized:X.authorized??!1,balance:X.balance,currency:X.currency,freeze:X.freeze??!1,freezePeer:X.freeze_peer??!1,limit:X.limit,limitPeer:X.limit_peer,noRipple:X.no_ripple??!1,noRipplePeer:X.no_ripple_peer??!1,peerAuthorized:X.peer_authorized??!1,qualityIn:X.quality_in??0,qualityOut:X.quality_out??0}))}catch(Y){if(Y.data?.error_code===v5.ACCOUNT_NOT_FOUND)return[];throw new Wy({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:O,error:Y}})}}async function A({address:Q,currency:O,issuer:B}){let Y=await _(Q),X=En(O);return Y.some((Z)=>{return En(Z.currency)===X&&Z.account===B})}async function J({currency:Q,issuer:O,limit:B,sender:Y}){let X=Y||await C();if(!n0(O))throw new Wy({errorKey:"core_transaction_invalid_recipient_address",info:{address:O}});let Z=Number.parseFloat(B);if(Number.isNaN(Z)||Z<0)throw new Wy({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:B}});let D=await T(),k={Account:X,LimitAmount:{currency:Q,issuer:O,value:B},TransactionType:"TrustSet"};return D.autofill(k)}async function L({assetValue:Q,recipient:O,memo:B,sender:Y,destinationTag:X,extendBySeconds:Z=150}){if(!n0(O))throw new Wy({errorKey:"core_transaction_invalid_recipient_address"});let D=Y||await C();if(Q.chain!==xy.Ripple)throw new Wy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:Q.toString()}});let k=XG(Q),R={Account:D,Amount:k,Destination:O,TransactionType:"Payment",...X!==void 0&&{DestinationTag:X}};if(B)R.Memos=[{Memo:{MemoData:Buffer.from(B).toString("hex")}}];let x=await(await T()).autofill(R);if(x.LastLedgerSequence&&Z>0)x.LastLedgerSequence+=Math.ceil(Z/4);return x}function G(Q){if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});return n.signTransaction(Q)}async function q(Q){let B=await(await T()).submitAndWait(Q),{result:Y}=B;if(Y.validated)return Y.hash;let X=Y.meta?.TransactionResult,Z=t5(X).with(f0.tecNO_LINE,()=>"No trust line exists for this token").with(f0.tecPATH_DRY,()=>"Payment path could not deliver funds").with(f0.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new Wy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:xy.Ripple,...Z?{reason:Z}:{txResult:X}}})}let W=async(Q)=>{try{let O=await G(Q);return q(O.tx_blob)}catch(O){if(O instanceof Wy)throw O;throw new Wy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:xy.Ripple,error:O}})}};async function M(Q){if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});let O=await n.getAddress(),B=await L({...Q,sender:O}),Y=await G(B);return q(Y.tx_blob)}async function w(Q){if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});let O=await n.getAddress(),B=await J({...Q,sender:O}),Y=await G(B);return q(Y.tx_blob)}function N(){let Q=o;if(o=null,Q)Q.then((O)=>{if(O?.isConnected())return O.disconnect();return}).catch((O)=>{console.warn("XRPL Cleanup failed silently:",O)})}return{broadcastTransaction:q,createSigner:u5,createTransaction:L,disconnect:N,estimateTransactionFee:U,getAddress:C,getBalance:H,getTrustLines:_,hasTrustLine:A,setTrustLine:J,setTrustLineAndBroadcast:w,signAndBroadcastTransaction:W,signTransaction:G,transfer:M,validateAddress:n0}}var v5,f0;var YC=P(()=>{sT();sT();E5();v5={ACCOUNT_NOT_FOUND:19},f0={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});import{sha256 as ZG}from"@noble/hashes/sha2.js";import{bytesToHex as m5,hexToBytes as c5}from"@noble/hashes/utils.js";import{SwapKitError as af}from"@swapkit/helpers";function BC(y,n){let o=0n,f=0n,T=n;while(T<y.length&&T-n<10){let C=y[T++];if(C===void 0)break;if(o|=BigInt(C&127)<<f,f+=7n,(C&128)===0)return[o,T]}throw new af("toolbox_tron_transaction_creation_failed")}function Vn(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 BG(y){let n=new Map,o=0;while(o<y.length){let[f,T]=BC(y,o);o=T;let C=Number(f>>3n),H=Number(f&7n);if(H===o0){let[U,_]=BC(y,o);o=_,T0(n,C,{data:new Uint8Array(Vn(U)),wireType:o0})}else if(H===C0){let[U,_]=BC(y,o);o=_;let A=Number(U);if(A<0||o+A>y.length)throw new af("toolbox_tron_transaction_creation_failed");let J=y.slice(o,o+A);o+=A,T0(n,C,{data:J,wireType:C0})}else if(H===g5){if(o+8>y.length)throw new af("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+8);o+=8,T0(n,C,{data:U,wireType:g5})}else if(H===i5){if(o+4>y.length)throw new af("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+4);o+=4,T0(n,C,{data:U,wireType:i5})}else throw new af("toolbox_tron_transaction_creation_failed")}return n}function zG(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(Vn(A))),U===C0)n.push(new Uint8Array(Vn(BigInt(_.length))));n.push(_)}let o=n.reduce((C,H)=>C+H.length,0),f=new Uint8Array(o),T=0;for(let C of n)f.set(C,T),T+=C.length;return f}function d5(y,n){if(!y||y.length%2!==0)throw new af("toolbox_tron_transaction_creation_failed");let o=c5(y),f=BG(o);if(n.expiration!==void 0)f.set(LG,[{data:new Uint8Array(Vn(BigInt(n.expiration))),wireType:o0}]);if(n.data!==void 0)f.set(MG,[{data:c5(n.data),wireType:C0}]);if(n.fee_limit!==void 0)f.set(YG,[{data:new Uint8Array(Vn(BigInt(n.fee_limit))),wireType:o0}]);let T=zG(f),C=m5(T),H=m5(ZG(T));return{raw_data_hex:C,txID:H}}var o0=0,g5=1,C0=2,i5=5,LG=8,MG=10,YG=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 NG}from"@noble/hashes/sha3.js";import{bytesToHex as sf,hexToBytes as H0}from"@noble/hashes/utils.js";import{createBase58check as OG}from"@scure/base";import{SwapKitError as e5}from"@swapkit/helpers";function ly(y){if(typeof y!=="string")return!1;try{let n=U0.decode(y);return n.length===21&&n[0]===yU}catch{return!1}}function fU(y){return sf(U0.decode(y))}function DG(y){return U0.decode(y).slice(1)}function nU(y){let n=a5.getPublicKey(H0(y),!1),o=NG(n.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=yU,f.set(o,1),U0.encode(f)}function TU({txID:y,privateKey:n}){let o=a5.sign(H0(y),H0(n),{format:"recovered",prehash:!1}),f=o[0]??0,T=sf(o.slice(1,33)),C=sf(o.slice(33,65)),H=(f+27).toString(16).padStart(2,"0");return T+C+H}function ef({txID:y,raw_data_hex:n}){let o=sf(s5(H0(n)));if(y!==o)throw new e5("toolbox_tron_invalid_transaction_integrity",{expected:o,txID:y})}function RG(y){return`000000000000000000000000${sf(DG(y))}`}function kG(y){let n=typeof y==="bigint"?y:BigInt(y);if(n<0n||n>=wG)throw new e5("toolbox_tron_invalid_token_identifier",{identifier:n.toString()});return n.toString(16).padStart(64,"0")}function yn(y){return y.map(({type:n,value:o})=>n==="address"?RG(o):kG(BigInt(o))).join("")}function oU(y){return sf(new TextEncoder().encode(y))}var U0,yU=65,wG;var zC=P(()=>{U0=OG(s5),wG=2n**256n});import{Chain as SG,getRPCUrlSync as FG,SwapKitError as Yy,warnOnce as _0}from"@swapkit/helpers";function HU(){try{return FG(SG.Tron)}catch{return CU}}function UU(){let y=new AbortController,n=setTimeout(()=>y.abort(),PG);return{cleanup:()=>clearTimeout(n),signal:y.signal}}async function Of(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${HU()}${y}`,{body:JSON.stringify(n),headers:{"Content-Type":"application/json"},method:"POST",signal:o});if(!T.ok)throw new Yy("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function _U(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${n??HU()}${y}`,{headers:{"Content-Type":"application/json"},signal:o});if(!T.ok)throw new Yy("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function AU(y){if(!ly(y))throw new Yy("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let n=await _U(`/v1/accounts/${y}`,CU);if(!(n.success&&n.data)||n.data.length===0)return;let o;try{o=fU(y).toLowerCase()}catch{o=y.toLowerCase()}let f=n.data.find((T)=>T.address.toLowerCase()===o);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(n){if(n instanceof Yy)throw n;throw new Yy("toolbox_tron_trongrid_api_error",{address:y,message:n instanceof Error?n.message:"Unknown error"})}}async function qU({from:y,to:n,amount:o}){let T=await Of("/wallet/createtransaction",{amount:o,owner_address:y,to_address:n,visible:!0});if(!T.txID||!T.raw_data_hex||!T.raw_data)throw new Yy("toolbox_tron_transaction_creation_failed");let H=T.raw_data?.contract?.[0]?.parameter?.value;if(H?.to_address!==n||H?.owner_address!==y||H?.amount!==o)throw new Yy("toolbox_tron_transaction_creation_failed");return ef(T),T}async function GU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f,feeLimit:T,callValue:C=0}){let H=await Of("/wallet/triggersmartcontract",{call_value:C,contract_address:n,fee_limit:T,function_selector:o,owner_address:y,parameter:f,visible:!0});if(!H.result.result||!H.transaction?.txID||!H.transaction?.raw_data_hex)throw new Yy("toolbox_tron_transaction_creation_failed");let _=H.transaction.raw_data?.contract?.[0]?.parameter?.value;if(_?.contract_address!==n||_?.owner_address!==y)throw new Yy("toolbox_tron_transaction_creation_failed");return ef(H.transaction),H.transaction}function WU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return Of("/wallet/triggerconstantcontract",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}function pG({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return Of("/wallet/estimateenergy",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}async function tn(y){try{let{result:n,txid:o}=await Of("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!n||!o)throw new Yy("toolbox_tron_token_transfer_failed");return o}catch(n){throw new Yy("toolbox_tron_broadcast_failed",{error:n})}}async function bn(){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??xG,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??lG,energyFee:y.getEnergyFee??$G,memoFee:y.getMemoFee??IG}}async function NC(y){try{let n=await Of("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(n.freeNetLimit??600)-(n.freeNetUsed??0),total:n.NetLimit??0,used:n.NetUsed??0},energy:{total:n.EnergyLimit??0,used:n.EnergyUsed??0}}}catch(n){return _0({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${n instanceof Error?n.message:n}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function vn(y){try{let n=await Of("/wallet/getaccount",{address:y,visible:!0});return n&&Object.keys(n).length>0}catch{return!1}}async function OC(y){try{let n=await pG({...y,ownerAddress:y.sender}),o=n.energy_required??n.energyRequired;if(n.result&&!n.result.result)throw new Yy("toolbox_tron_trongrid_api_error",{message:n.result.message||"estimateenergy failed"});if(o!==void 0){if(Number.isFinite(o)&&o>0)return o;throw new Yy("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(n){_0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${n instanceof Error?n.message:n}`})}try{let{energy_used:n}=await WU({...y,ownerAddress:y.sender});return n}catch(n){return _0({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy, using default: ${n instanceof Error?n.message:n}`}),65000}}async function XU({assetAddress:y,owner:n,spender:o}){let f=yn([{type:"address",value:n},{type:"address",value:o}]),C=(await WU({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:o,parameter:f})).constant_result?.[0];if(!C)return 0n;try{return BigInt(`0x${C}`)}catch{return 0n}}var CU="https://api.trongrid.io",xG=1000,lG=1e6,$G=420,IG=1e6,PG=30000;var QU=P(()=>{zC()});import{bytesToHex as EG}from"@noble/hashes/utils.js";import{HDKey as VG}from"@scure/bip32";import{mnemonicToSeedSync as tG}from"@scure/bip39";import{AssetValue as ay,BaseDecimal as A0,Chain as Oy,derivationPathToString as BU,getRPCUrl as bG,NetworkDerivationPath as zU,SwapKitError as qy,updateDerivationPath as NU,warnOnce as JU}from"@swapkit/helpers";import{match as vG,P as wC}from"ts-pattern";function wU({phrase:y,derivationPath:n}){let o=VG.fromMasterSeed(tG(y)).derive(n);if(!o.privateKey)throw new qy("toolbox_tron_no_signer");return EG(o.privateKey)}function DU({phrase:y,derivationPath:n,index:o}){let f=n||BU(NU(zU[Oy.Tron],{index:o||0}));return wU({derivationPath:f,phrase:y})}function jG({phrase:y,derivationPath:n}){let o=wU({derivationPath:n,phrase:y}),f=nU(o);return{getAddress:()=>Promise.resolve(f),signTransaction:(T)=>{ef(T);let C=TU({privateKey:o,txID:T.txID});return Promise.resolve({...T,signature:[C]})}}}function YU({transaction:y,memo:n,expiration:o,feeLimit:f}){let T={},C={};if(f!==void 0&&y.raw_data)T.fee_limit=f,C.fee_limit=f;if(n){let _=oU(n);T.data=_,C.data=_}if(o){let _=y.raw_data.expiration+o*1000;T.expiration=_,C.expiration=_}if(Object.keys(T).length===0)return y;let{raw_data_hex:H,txID:U}=d5(y.raw_data_hex,T);return{...y,raw_data:{...y.raw_data,...C},raw_data_hex:H,txID:U}}function RU(y={}){let n="index"in y?y.index||0:0,o=BU("derivationPath"in y&&y.derivationPath?y.derivationPath:NU(zU[Oy.Tron],{index:n})),f,T=!1;function C(){if(T)return Promise.resolve(f);return f=vG(y).with({phrase:wC.string},({phrase:X})=>jG({derivationPath:o,phrase:X})).with({signer:wC.not(wC.nullish)},({signer:X})=>X).otherwise(()=>{return}),T=!0,Promise.resolve(f)}async function H(){let X=await C();if(!X)throw new qy("toolbox_tron_no_signer");return X.getAddress()}async function U(X,Z){let D=X||LU,k=Z??(await bn()).energyFee,R=D*k,S=Math.ceil(R*1.5);return Math.min(Math.max(S,1e7),150000000)}async function _({contractAddress:X,functionSelector:Z,parameter:D,sender:k,memo:R,expiration:S,extraEnergy:x=0}){let z=await OC({contractAddress:X,functionSelector:Z,parameter:D,sender:k}),F=await U(z+x),l=await GU({contractAddress:X,feeLimit:F,functionSelector:Z,ownerAddress:k,parameter:D});return YU({expiration:S,feeLimit:F,memo:R,transaction:l})}async function A(X){if(!ly(X))return[ay.from({chain:Oy.Tron})];try{let Z=await AU(X);if(!Z)return[ay.from({chain:Oy.Tron})];let D=[ay.from({chain:Oy.Tron,fromBaseDecimal:6,value:String(Z.balance)})],k=Z.trc20?.find((R)=>(RC in R));if(k){let R=k[RC];D.push(ay.from({asset:`TRON.USDT-${RC}`,fromBaseDecimal:6,value:R}))}return D}catch(Z){return JU({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${Z instanceof Error?Z.message:Z}`}),[ay.from({chain:Oy.Tron})]}}async function J({recipient:X,assetValue:Z,memo:D,expiration:k}){if(!ly(X))throw new qy("toolbox_tron_token_transfer_failed",{message:"invalid address"});let R=await C();if(!R)throw new qy("toolbox_tron_no_signer");try{let S=await H(),x=await w({assetValue:Z,expiration:k,memo:D,recipient:X,sender:S}),z=await R.signTransaction(x),F=await tn(z);if(!F)throw new qy("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return F}catch(S){throw new qy("toolbox_tron_token_transfer_failed",{message:S instanceof Error?S.message:String(S)})}}function L({requiredBandwidth:X,resources:Z,feePerUnit:D}){let k=Math.max(0,Z.free+Z.total-Z.used);return X>k?(X-k)*D:0}async function G({memo:X,recipient:Z,senderAddress:D}){let[k,R,S]=await Promise.all([bn(),vn(Z),NC(D)]),x=R?0:k.createAccountFee,z=L({feePerUnit:k.bandwidthFee,requiredBandwidth:ZU,resources:S.bandwidth}),F=X?k.memoFee:0;return ay.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:x+z+F})}async function q({assetValue:X,memo:Z,recipient:D,senderAddress:k}){let R=X.address;if(!R)throw new qy("toolbox_tron_invalid_token_identifier",{identifier:X.toString()});let[S,x,z,F]=await Promise.all([bn(),vn(D),NC(k),OC({contractAddress:R,functionSelector:"transfer(address,uint256)",parameter:yn([{type:"address",value:D},{type:"uint256",value:X.getBaseValue("string")}]),sender:k})]),V=F+(x?0:DC),p=L({feePerUnit:S.bandwidthFee,requiredBandwidth:MU,resources:z.bandwidth}),b=Math.max(0,z.energy.total-z.energy.used),K=V>b?(V-b)*S.energyFee:0,s=Z?S.memoFee:0;return ay.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:p+K+s})}async function W({assetValue:X,memo:Z,recipient:D}){let[k,R]=await Promise.all([bn(),vn(D)]);if(X.isGasAsset){let F=R?0:k.createAccountFee,l=Z?k.memoFee:0;return ay.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:F+ZU*k.bandwidthFee+l})}let x=await U(LU+(R?0:DC),k.energyFee),z=Z?k.memoFee:0;return ay.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:x+MU*k.bandwidthFee+z})}async function M({assetValue:X,memo:Z,recipient:D,sender:k}){let R=await C();try{let S=k?k:R?await H():void 0;if(!S)return W({assetValue:X,memo:Z,recipient:D});return X.isGasAsset?G({memo:Z,recipient:D,senderAddress:S}):q({assetValue:X,memo:Z,recipient:D,senderAddress:S})}catch(S){throw JU({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${S instanceof Error?S.message:S}`}),new qy("toolbox_fee_estimation_failed",{chain:Oy.Tron,error:S})}}async function w({recipient:X,assetValue:Z,memo:D,sender:k,expiration:R}){if(!ly(X)||!ly(k))throw new qy("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(Z.isGasAsset){let z=await qU({amount:Z.getBaseValue("number"),from:k,to:X});return YU({expiration:R,memo:D,transaction:z})}let S=Z.address;if(!S)throw new qy("toolbox_tron_invalid_token_identifier",{identifier:Z.toString()});let x=await vn(X);return _({contractAddress:S,expiration:R,extraEnergy:x?0:DC,functionSelector:"transfer(address,uint256)",memo:D,parameter:yn([{type:"address",value:X},{type:"uint256",value:Z.getBaseValue("string")}]),sender:k})}async function N(X){ef(X);let Z=await C();if(!Z)throw new qy("toolbox_tron_no_signer");return Z.signTransaction(X)}async function Q(X){let Z=await N(X);return tn(Z)}function O({assetAddress:X,spenderAddress:Z,from:D}){return XU({assetAddress:X,owner:D,spender:Z})}async function B({assetAddress:X,spenderAddress:Z,from:D,amount:k}){let R=await O({assetAddress:X,from:D,spenderAddress:Z});if(!k)return R>0n;return R>=BigInt(k)}async function Y({assetAddress:X,spenderAddress:Z,amount:D,from:k}){if(!ly(X)||!ly(Z))throw new qy("toolbox_tron_approve_failed");let R=await C();if(!R)throw new qy("toolbox_tron_no_signer");let S=k||await H(),x=D!==void 0?BigInt(D).toString():uG;try{let z=await _({contractAddress:X,functionSelector:"approve(address,uint256)",parameter:yn([{type:"address",value:Z},{type:"uint256",value:x}]),sender:S}),F=await R.signTransaction(z),l=await tn(F);if(!l)throw new qy("toolbox_tron_approve_failed");return l}catch(z){if(z instanceof qy)throw z;throw new qy("toolbox_tron_approve_failed",{error:z})}}return{approve:Y,broadcastTransaction:tn,createTransaction:w,estimateTransactionFee:M,getAddress:H,getApprovedAmount:O,getBalance:A,getRpcUrl:()=>bG(Oy.Tron),isApproved:B,signAndBroadcastTransaction:Q,signTransaction:N,transfer:J,validateAddress:ly}}var OU,ZU=268,LU=65000,DC=25000,MU=345,RC="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",uG="115792089237316195423570985008687907853269984665640564039457584007913129639935";var kU=P(()=>{r5();QU();zC();OU=ly});var kC={};ny(kC,{validateTronAddress:()=>OU,getTronToolbox:()=>RU,getTronPrivateKeyFromMnemonic:()=>DU});var SC=P(()=>{kU()});import{AssetValue as un,Chain as vy,derivationPathToString as KG,getChainConfig as hG,getRPCUrl as SU,NetworkDerivationPath as mG,SKConfig as cG,SwapKitError as fn}from"@swapkit/helpers";import{match as gG,P as iG}from"ts-pattern";function q0(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return dG.test(y)}function rG(y){if(typeof y!=="object"||y===null)return;let n="response"in y?y.response:void 0;return typeof n?.status==="number"?n.status:void 0}function aG(y){return rG(y)===504}function sG(y){return y.hash?.().toString("hex")}function eG(y){return[...new Set([y,...cG.get("rpcUrls")[vy.Stellar]])].filter(Boolean)}async function y4(y){if(!q0(y))return!1;try{let{StrKey:n}=await import("@stellar/stellar-sdk");return n.isValidEd25519PublicKey(y)}catch{return!1}}function FU(y={}){let n,o=y.derivationPath||mG[vy.Stellar],f=KG(o.slice(0,3));async function T({phrase:N,path:Q}){let{HDKey:O}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:B}=await import("@scure/bip39"),{Keypair:Y}=await import("@stellar/stellar-sdk"),X=B(N),D=O.fromMasterSeed(X).derive(Q,!0);return Y.fromRawEd25519Seed(Buffer.from(D.privateKey))}async function C(){if(n)return n;let N=gG(y).with({phrase:iG.string},({phrase:Q})=>Q).otherwise(()=>{return});if(!N)throw new fn("toolbox_stellar_no_signer");return n=await T({path:f,phrase:N}),n}async function H(N){let{Horizon:Q}=await import("@stellar/stellar-sdk"),O=N||await SU(vy.Stellar);return new Q.Server(O)}async function U(N,Q){for(let O of Q)try{return(await(await H(O)).transactions().transaction(N).call()).hash||N}catch{}return}async function _(N,Q){let O=await SU(vy.Stellar),B=eG(O),Y=sG(N),X;for(let Z of B)try{let D=await H(Z),{hash:k}=await D.submitTransaction(N);return k}catch(D){if(X=D,!aG(D))break;let k=Y?await U(Y,B):void 0;if(k)return k}throw new fn(Q,X)}async function A(){try{return(await C()).publicKey()}catch{return""}}async function J(N){let Q=N||await A();if(!Q)throw new fn("toolbox_stellar_account_not_found");try{return(await(await H()).loadAccount(Q)).balances.map((Y)=>{if(Y.asset_type==="native")return un.from({chain:vy.Stellar,value:Y.balance});let X="asset_code"in Y?Y.asset_code:"",Z="asset_issuer"in Y?Y.asset_issuer:"";return un.from({asset:`${vy.Stellar}.${X}-${Z}`,asyncTokenLookup:!1,value:Y.balance})})}catch{return[un.from({chain:vy.Stellar,value:0})]}}async function L({recipient:N,assetValue:Q,memo:O,sender:B}){if(O){if(new TextEncoder().encode(O).length>28)throw new fn("helpers_invalid_memo_type")}if(!await y4(N))throw new fn("core_transaction_invalid_recipient_address");let X=B||await A();if(!X)throw new fn("toolbox_stellar_no_signer");let{Asset:Z,Memo:D,Networks:k,Operation:R,TransactionBuilder:S}=await import("@stellar/stellar-sdk"),x=await H(),z=await x.fetchBaseFee(),F=await x.loadAccount(X),l=new S(F,{fee:String(z),networkPassphrase:k.PUBLIC});if(Q.isGasAsset)try{await x.loadAccount(N),l.addOperation(R.payment({amount:Q.getValue("string"),asset:Z.native(),destination:N}))}catch{l.addOperation(R.createAccount({destination:N,startingBalance:Q.getValue("string")}))}else l.addOperation(R.payment({amount:Q.getValue("string"),asset:new Z(Q.symbol,Q.address),destination:N}));if(O)l.addMemo(D.text(O));return l.setTimeout(30).build()}async function G(N){let{TransactionBuilder:Q,Networks:O}=await import("@stellar/stellar-sdk"),B=await C(),Y=Q.fromXDR(N.toXDR(),O.PUBLIC);return Y.sign(B),Y}function q(N){return _(N,"toolbox_stellar_broadcast_error")}async function W({recipient:N,assetValue:Q,memo:O}){let B=await C(),Y=B.publicKey(),X=await L({assetValue:Q,memo:O,recipient:N,sender:Y});return X.sign(B),_(X,"toolbox_stellar_transaction_failed")}async function M(N){let Q=await G(N);return q(Q)}async function w(){let{baseDecimal:N}=hG(vy.Stellar);try{let B=(await(await H()).feeStats()).fee_charged.p50;return un.from({chain:vy.Stellar,fromBaseDecimal:N,value:B})}catch{return un.from({chain:vy.Stellar,fromBaseDecimal:N,value:"100"})}}return{broadcastTransaction:q,createTransaction:L,estimateTransactionFee:w,getAddress:A,getBalance:J,signAndBroadcastTransaction:M,signTransaction:G,transfer:W,validateAddress:q0}}var dG;var xU=P(()=>{dG=/^G[A-Z2-7]{55}$/});var G0={};ny(G0,{validateStellarAddress:()=>q0,getStellarToolbox:()=>FU});var W0=P(()=>{xU()});import{AssetValue as f4,Chain as v,CosmosChains as FC,EVMChains as xC,FeeOption as n4,SwapKitError as T4,UTXOChains as $U}from"@swapkit/helpers";async function OQ(){let{match:y}=await import("ts-pattern"),{validateAptosAddress:n}=await Promise.resolve().then(() => (Kn(),jn)),{validateEVMAddress:o}=await Promise.resolve().then(() => (b0(),X1)),{validateCardanoAddress:f}=await Promise.resolve().then(() => (m0(),h0)),{getCosmosAddressValidator:T}=await Promise.resolve().then(() => (NT(),zT)),{validateHyperCoreAddress:C}=await Promise.resolve().then(() => (zo(),Bo)),{validateSolanaAddress:H}=await Promise.resolve().then(() => (Ro(),Do)),{validateStarknetAddress:U}=await Promise.resolve().then(() => (lT(),xT)),{validateSuiAddress:_}=await Promise.resolve().then(() => (IT(),$T)),{validateTonAddress:A}=await Promise.resolve().then(() => (ET(),pT)),{getUTXOAddressValidator:J}=await Promise.resolve().then(() => (so(),ao)),{validateNearAddress:L}=await Promise.resolve().then(() => (QC(),XC)),{validateRadixAddress:G}=await Promise.resolve().then(() => (LC(),ZC)),{validateRippleAddress:q}=await Promise.resolve().then(() => (YC(),MC)),{validateTronAddress:W}=await Promise.resolve().then(() => (SC(),kC)),{validateStellarAddress:M}=await Promise.resolve().then(() => (W0(),G0));return function({address:N,chain:Q}){return y(Q).with(...xC,()=>o(N)).with(...$U,(B)=>{return J(B)(N)}).with(...FC,(B)=>{return T(B)(N)}).with(v.Aptos,()=>n(N)).with(v.Radix,()=>G(N)).with(v.Hype,()=>C(N)).with(v.Near,()=>L(N)).with(v.Ripple,()=>q(N)).with(v.Solana,()=>H(N)).with(v.Stellar,()=>M(N)).with(v.Starknet,()=>U(N)).with(v.Sui,()=>_(N)).with(v.Ton,()=>A(N)).with(v.Tron,()=>W(N)).with(v.Cardano,()=>f(N)).otherwise(()=>!1)}}function wQ(y){return async function(o){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...xC,async(T)=>{let C=await lU(T),H=await C.createTransaction(o),U="feeOptionKey"in o?o.feeOptionKey:n4.Fast;return C.estimateTransactionFee({...H,feeOption:U})}).with(v.Bitcoin,v.BitcoinCash,v.Dogecoin,v.Dash,v.Litecoin,v.Solana,v.Ripple,v.Tron,v.Near,v.Cardano,v.Hype,async(T)=>{return(await lU(T)).estimateTransactionFee(o)}).with(v.Aptos,async()=>{let{getAptosToolbox:T}=await Promise.resolve().then(() => (Kn(),jn));return T().estimateTransactionFee(o)}).with(v.Starknet,async()=>{let{getStarknetToolbox:T}=await Promise.resolve().then(() => (lT(),xT));return(await T()).estimateTransactionFee(o)}).with(v.Stellar,async()=>{let{getStellarToolbox:T}=await Promise.resolve().then(() => (W0(),G0));return T().estimateTransactionFee()}).with(v.Sui,async()=>{let{getSuiToolbox:T}=await Promise.resolve().then(() => (IT(),$T));return T().estimateTransactionFee(o)}).with(v.Ton,async()=>{let{getTONToolbox:T}=await Promise.resolve().then(() => (ET(),pT));return T().estimateTransactionFee(o)}).with(...FC,async()=>{let{estimateTransactionFee:T}=await Promise.resolve().then(() => (NT(),zT));return T(o)}).otherwise(async()=>f4.from({chain:y}))}}async function lU(y,n){let{match:o}=await import("ts-pattern");return o(y).returnType().with(...xC,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (t0(),q1));return await f(y,n)}).with(...$U,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (so(),ao));return f(y,n)}).with(...FC,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (NT(),zT));return f(y,n)}).with(v.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (Kn(),jn));return f(n)}).with(v.Hype,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (zo(),Bo));return f(n)}).with(v.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (LC(),ZC));return f(n)}).with(v.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (YC(),MC));return f(n)}).with(v.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => (Ro(),Do));return f(n)}).with(v.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (W0(),G0));return f(n)}).with(v.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (lT(),xT));return f(n)}).with(v.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (IT(),$T));return f(n)}).with(v.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (SC(),kC));return f(n)}).with(v.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (QC(),XC));return f(n)}).with(v.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (m0(),h0));return f(n)}).with(v.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (ET(),pT));return f(n)}).otherwise(()=>{throw new T4("toolbox_not_supported",{chain:y})})}export{lU as getToolbox,wQ as getFeeEstimator,OQ as getAddressValidator};
|