@swapkit/toolboxes 4.15.11 → 4.15.13
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/cardano/index.cjs +1 -1
- package/dist/src/cardano/index.js +1 -1
- package/dist/src/cosmos/index.cjs +1 -1
- package/dist/src/cosmos/index.js +1 -1
- package/dist/src/index.cjs +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/tron/index.cjs +1 -1
- package/dist/src/tron/index.js +1 -1
- package/dist/types/tron/helpers/trongrid.d.ts +1 -0
- package/dist/types/tron/toolbox.d.ts +1 -1
- package/dist/types/utxo/helpers/coinselect.d.ts +1 -1
- package/package.json +22 -24
package/dist/src/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var x_=Object.defineProperty;var F_=(n)=>n;function S_(n,y){this[n]=F_.bind(null,y)}var e=(n,y)=>{for(var T in y)x_(n,T,{get:y[T],enumerable:!0,configurable:!0,set:S_.bind(y,T)})};var k=(n,y)=>()=>(n&&(y=n(n=0)),y);var F=((n)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(y,T)=>(typeof require<"u"?require:y)[T]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});import{AssetValue as fy,Chain as In,derivationPathToString as p_,getChainConfig as qT,getRPCUrlSync as R0,NetworkDerivationPath as k_,SwapKitError as yn}from"@swapkit/helpers";import{match as x0,P as GT}from"ts-pattern";function zo(n){if(!n||typeof n!=="string"||!n.startsWith("0x"))return!1;let y=n.slice(2);if(y.length===0||y.length>64)return!1;return u_.test(y)}function F0({derivationPath:n,provider:y,...T}={}){let o,f=p_(n||k_[In.Aptos],{allHardened:!0});async function t(){if(o)return o;return o=await x0(T).with({phrase:GT.string},async({phrase:G})=>{let{Ed25519Account:Q}=await import("@aptos-labs/ts-sdk");return Q.fromDerivationPath({mnemonic:G,path:f})}).with({signer:GT.any},({signer:G})=>G).otherwise(()=>{return}),o}async function C(){let{Aptos:G,AptosConfig:Q}=await import("@aptos-labs/ts-sdk"),z=new Q({fullnode:y||R0(In.Aptos)});return new G(z)}async function H(){return(await t())?.accountAddress.toString()||""}async function _(G){let Q=G||await H();if(!Q)throw new yn("toolbox_aptos_address_required");let{baseDecimal:z,chain:L}=qT(In.Aptos);try{let Y=await C(),Z=await Y.getAccountAPTAmount({accountAddress:Q}),U=[fy.from({chain:L,fromBaseDecimal:z,value:Z.toString()})],B=await Y.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:Q}}}});for(let J of B){if(J.asset_type===wo.COIN_TYPE||Number(J.amount)<=0)continue;let D=J.asset_type;if(D){let W=("metadata"in J&&typeof J.metadata==="object"&&J.metadata!==null?J.metadata:void 0)?.decimals??z;U.push(fy.from({asset:`${In.Aptos}.APT-${D}`,fromBaseDecimal:W,value:String(J.amount)}))}}return U}catch{return[fy.from({chain:L})]}}async function A(G){if(!G){let{baseDecimal:B}=qT(In.Aptos),J=y||R0(In.Aptos),D=await fetch(`${J}/estimate_gas_price`),{gas_estimate:R}=await D.json();return fy.from({chain:In.Aptos,fromBaseDecimal:B,value:String(R)})}let Q=await t();if(!Q)throw new yn("toolbox_aptos_no_signer");let z=await X(G),L=await C(),[Y]=await L.transaction.simulate.simple({signerPublicKey:Q.publicKey,transaction:z});if(!Y)throw new yn("toolbox_aptos_transaction_creation_error");let Z=BigInt(Y.gas_used)*BigInt(Y.gas_unit_price),{baseDecimal:U}=qT(In.Aptos);return fy.from({chain:In.Aptos,fromBaseDecimal:U,value:Z.toString()})}async function X({recipient:G,assetValue:Q,maxGasAmount:z,sender:L}){if(!zo(G))throw new yn("core_transaction_invalid_recipient_address");let Y=L||await H();if(!Y)throw new yn("toolbox_aptos_no_sender");let{AccountAddress:Z}=await import("@aptos-labs/ts-sdk"),U=await C(),B=Z.from(Y);try{let J=Q.isGasAsset?wo.TRANSFER:wo.FUNGIBLE_STORE_TRANSFER,D=x0({address:Q?.address,isGasAsset:Q.isGasAsset}).with({isGasAsset:!0},()=>[Z.from(G),Q.getBaseValue("bigint")]).with({address:GT.string},({address:R})=>[Z.from(R),Z.from(G),Q.getBaseValue("bigint")]).otherwise(()=>null);if(!D)throw new yn("toolbox_aptos_missing_asset_type");return U.transaction.build.simple({data:{function:J,functionArguments:D,typeArguments:Q.isGasAsset?[]:[wo.FUNGIBLE_ASSET_METADATA]},options:z?{maxGasAmount:z}:void 0,sender:B})}catch(J){if(J instanceof yn)throw J;throw new yn("toolbox_aptos_transaction_creation_error",J)}}async function M(G){let Q=await t();if(!Q)throw new yn("toolbox_aptos_no_signer");return(await C()).transaction.sign({signer:Q,transaction:G})}async function l({assetValue:G,maxGasAmount:Q,recipient:z}){let L=await t();if(!L)throw new yn("toolbox_aptos_no_signer");if(!zo(z))throw new yn("core_transaction_invalid_recipient_address");try{let Y=L.accountAddress.toString(),Z=await X({assetValue:G,maxGasAmount:Q,recipient:z,sender:Y});return(await(await C()).signAndSubmitTransaction({signer:L,transaction:Z})).hash}catch(Y){if(Y instanceof yn)throw Y;throw new yn("toolbox_aptos_transaction_creation_error",Y)}}async function w({senderAuthenticator:G,transaction:Q}){try{return(await(await C()).transaction.submit.simple({senderAuthenticator:G,transaction:Q})).hash}catch(z){throw new yn("toolbox_aptos_broadcast_error",z)}}async function q(G){let Q=await M(G);return w({senderAuthenticator:Q,transaction:G})}return{broadcastTransaction:w,createTransaction:X,estimateTransactionFee:A,getAddress:H,getBalance:_,signAndBroadcastTransaction:q,signTransaction:M,transfer:l,validateAddress:zo}}function S0({provider:n}){return async function({assetValue:T,recipient:o}){if(!zo(o))throw new yn("core_transaction_invalid_recipient_address");let{AccountAddress:f}=await import("@aptos-labs/ts-sdk");if(T.isGasAsset)return(await n.signAndSubmitTransaction({arguments:[f.from(o).toString(),T.getBaseValue("string")],function:wo.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let t=T.address;if(!t)throw new yn("toolbox_aptos_missing_asset_type");return(await n.signAndSubmitTransaction({arguments:[t,f.from(o).toString(),T.getBaseValue("string")],function:wo.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[wo.FUNGIBLE_ASSET_METADATA]})).hash}}var wo,u_;var p0=k(()=>{wo={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"},u_=/^[0-9a-fA-F]+$/});var vy={};e(vy,{validateAptosAddress:()=>zo,getAptosToolbox:()=>F0,createAptosExtensionTransfer:()=>S0});var Vy=k(()=>{p0()});import{AssetValue as k0,getChainConfig as P_}from"@swapkit/helpers";import{SwapKitApi as I_}from"@swapkit/helpers/api";function u0(){function n(){let y=Date.now(),T=lT||y;return lT=T,y>lT?y:T+1}return $_+n().toString(36)}function wn(n){return async function(T,o=!0){let f=await I_.getChainBalance({address:T,chain:n,scamFilter:o}),{baseDecimal:t}=P_(n),C=f.map(({identifier:_,value:A,decimal:X})=>{return new k0({decimal:X||t,identifier:_,value:A})});if(!C.some((_)=>_.isGasAsset))return[k0.from({chain:n}),...C];return C}}var $_,lT=0;var $n=k(()=>{$_=typeof process<"u"&&process.pid?process.pid.toString(36):""});function Ty(n){return{getBalance:wn(n)}}function E_(n){return n}var Ky=k(()=>{$n()});import{Chain as h,getChainConfig as MT,getRPCUrl as b_,SwapKitError as jy}from"@swapkit/helpers";import{getAddress as I0,Interface as v_,JsonRpcProvider as V_}from"ethers";import{match as $0}from"ts-pattern";function E0(n){return new V_(n)}async function LT(n,y){return E0(y||await b_(n))}function ty(n){return n>0n?`0x${n.toString(16)}`:"0x0"}function QT(n){let{explorerUrl:y,chainIdHex:T,rpcUrls:o}=MT(n);return function(){return n!==h.Ethereum?{...K_({chain:n}),blockExplorerUrls:[y],chainId:T,rpcUrls:o}:void 0}}function ZT(n){return![h.Adi,h.Arbitrum,h.BinanceSmartChain].includes(n)}function K_({chain:n}){let{name:y,nativeCurrency:T,baseDecimal:o}=MT(n);return $0(n).with(h.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:o,name:"Avalanche",symbol:n}})).with(h.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:o,name:"Berachain",symbol:"BERA"}})).with(h.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:o,name:"OKB",symbol:"OKB"}})).with(h.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:o,name:"Binance Coin",symbol:"BNB"}})).with(h.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:o,name:"xDAI",symbol:"XDAI"}})).with(h.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:o,name:"Polygon",symbol:h.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:o,name:T,symbol:T}}))}async function JT(n,y){if(!("authorize"in n))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let T={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await n.authorize(T)}function b0(n,y){let T=y!==void 0?`index ${y}: `:"",o=(f,t)=>{throw new jy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:f,message:`${T}${t}`}})};$0(n).when(({chainId:f})=>typeof f!=="bigint",()=>o("chainId","chainId must be a bigint")).when(({address:f})=>!j_(f),()=>o("address","address must be a valid checksummed address")).when(({nonce:f})=>typeof f!=="bigint"||f<0n,()=>o("nonce","nonce must be a non-negative bigint")).when(({signature:f})=>!f,()=>o("signature","signature is required")).when(({signature:f})=>typeof f?.yParity!=="number"||![0,1].includes(f.yParity),()=>o("signature.yParity","yParity must be 0 or 1")).when(({signature:f})=>!P0(f?.r),()=>o("signature.r","r must be a 32-byte hex string")).when(({signature:f})=>!P0(f?.s),()=>o("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function v0(n){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>n[y]!=null).map(({key:y,type:T})=>({name:y,type:T}))}function XT(n){return n.charAt(0).toUpperCase()+n.slice(1)}function WT(n,y){if(n.isTuple()&&n.components){let T=XT(n.name);return y[T]=n.components.map((o)=>({name:o.name,type:WT(o,y)})),T}if(n.isArray()){let T=n.arrayChildren;if(T?.isTuple()&&T.components){let o=XT(n.name.replace(/s$/,""));return y[o]=T.components.map((f)=>({name:f.name,type:WT(f,y)})),`${o}[]`}return`${T?.type??"bytes"}[]`}return n.type}function BT(n,y){if(typeof n==="bigint")return n;if(y?.isTuple()&&typeof n?.toObject==="function"){let T=n.toObject(),o={};for(let[f,t]of(y.components??[]).entries())o[t.name]=BT(T[t.name]??n[f],t);return o}if(Array.isArray(n)){let T=y?.arrayChildren;return n.map((o)=>BT(o,T??void 0))}return n}function c_({chain:n,abi:y,data:T,to:o}){let t=new v_(y).parseTransaction({data:T});if(!t)throw new jy({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let C={},H=XT(t.name);C[H]=t.fragment.inputs.map((l)=>({name:l.name,type:WT(l,C)}));let _={};for(let[l,w]of t.fragment.inputs.entries())_[w.name]=BT(t.args[l],w);let{chainId:A}=MT(n),X={chainId:Number(A),verifyingContract:I0(o)},M=v0(X);return{domain:X,message:_,primaryType:H,types:{EIP712Domain:M,...C}}}function YT(n,y){if(!Array.isArray(n)||n.length===0)throw new jy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[T,o]of n.entries())if(b0(o,T),y!==void 0&&o.chainId!==y)throw new jy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${T}: authorization chainId (${o.chainId}) does not match transaction chainId (${y})`}})}var P0=(n)=>typeof n==="string"&&/^0x[a-fA-F0-9]{64}$/.test(n),j_=(n)=>{try{return typeof n==="string"&&!!I0(n)}catch{return!1}};var Cy=()=>{};var V0;var K0=k(()=>{V0=[{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 i_,applyFeeMultiplierToBigInt as qn,Chain as Jn,EVMChains as h_,FeeOption as V,isGasAsset as m_,SwapKitError as c,SwapKitNumber as cy}from"@swapkit/helpers";import{erc20ABI as Hy}from"@swapkit/helpers/contracts";import{BrowserProvider as r_,Contract as j0,getAddress as iy,Interface as c0}from"ethers";import{match as i0}from"ts-pattern";function Do({chain:n=Jn.Ethereum,provider:y,signer:T,isEIP1559Compatible:o=!0}){return{approve:e_({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),approvedAmount:r0({chain:n,provider:y}),broadcastTransaction:y.broadcastTransaction,call:RT({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),createApprovalTx:fA({chain:n,provider:y,signer:T}),createContract:zT({chain:n,provider:y}),createContractTxObject:qo({chain:n,provider:y}),createTransaction:NT({chain:n,provider:y,signer:T}),createTransferTx:NT({chain:n,provider:y,signer:T}),EIP1193SendTransaction:Ro(y),estimateCall:g0({provider:y,signer:T}),estimateGasLimit:oA({chain:n,provider:y,signer:T}),estimateGasPrices:Go({chain:n,isEIP1559Compatible:o,provider:y}),estimateTransactionFee:TA({chain:n,isEIP1559Compatible:o,provider:y}),getAddress:()=>{return T?T.getAddress():void 0},getBalance:Ty(n).getBalance,getNetworkParams:QT(n),isApproved:s_({chain:n,provider:y}),sendTransaction:d0({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),signAuthorization:yA({signer:T}),signMessage:T?(f)=>T.signMessage(f):void 0,signTypedData:T?({domain:f,types:t,value:C})=>T.signTypedData(f,t,C):void 0,transfer:nA({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),validateAddress:Ay}}function Ay(n){try{return iy(n),!0}catch{return!1}}function Oo(n){return n instanceof r_}function Uy(n,y,T){return new j0(n,c0.from(y),T)}function zT({provider:n}){return function(T,o){return new j0(T,c0.from(o),n)}}function DT({abi:n,funcName:y}){let T=n.find((o)=>o.name===y);if(!T)throw new c("toolbox_evm_no_abi_fragment",{funcName:y});return T.stateMutability&&g_.includes(T.stateMutability)}function h0(n){return iy(n)}function Ro(n){return function({value:T,...o}){if(!Oo(n))throw new c("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:f,gasPrice:t,maxFeePerGas:C,maxPriorityFeePerGas:H,..._}=o;return n.send("eth_sendTransaction",[{..._,value:ty(BigInt(T||0))}])}}function m0(n,y){let T=xo(n,y);if(T)return iy(T.toLowerCase());throw new c("toolbox_evm_invalid_gas_asset_address")}function xo({chain:n,symbol:y,ticker:T},o){try{let f=n===Jn.BinanceSmartChain&&y==="BNB"&&T==="BNB",t=n===Jn.Hyperevm&&y==="HYPE"&&T==="HYPE",C=n===o&&y===o&&T===o,H=a_.includes(n)&&y==="ETH"&&T==="ETH";if(C||f||t||H)return OT[o];return iy(y.slice(T.length+1).replace(/^0X/,""))}catch{return null}}function qo({provider:n}){return async({contractAddress:y,abi:T,funcName:o,funcParams:f=[],txOverrides:t})=>Uy(y,T,n).getFunction(o).populateTransaction(...f.concat(t).filter((C)=>typeof C<"u"))}function Go({chain:n,provider:y,isEIP1559Compatible:T=!0}){return i0(n).with(Jn.Gnosis,()=>{return async function(){try{let{gasPrice:f,maxPriorityFeePerGas:t}=await y.getFeeData();if(!f||t===null)throw new c("toolbox_evm_no_fee_data");return{[V.Average]:{maxFeePerGas:qn(f,V.Average),maxPriorityFeePerGas:qn(t,V.Average)},[V.Fast]:{maxFeePerGas:qn(f,V.Fast),maxPriorityFeePerGas:qn(t,V.Fast)},[V.Fastest]:{maxFeePerGas:qn(f,V.Fastest),maxPriorityFeePerGas:qn(t,V.Fastest)}}}catch(f){throw new c("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).with(Jn.Arbitrum,()=>{return async function(){try{let{gasPrice:f}=await y.getFeeData();if(!f)throw new c("toolbox_evm_no_fee_data");let t=f*12n/10n;return{[V.Average]:{gasPrice:t},[V.Fast]:{gasPrice:qn(t,V.Fast)},[V.Fastest]:{gasPrice:qn(t,V.Fastest)}}}catch(f){throw new c("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:f,maxPriorityFeePerGas:t,gasPrice:C}=await y.getFeeData();if(T){if(f===null||t===null)throw new c("toolbox_evm_no_fee_data");return{[V.Average]:{maxFeePerGas:f,maxPriorityFeePerGas:t},[V.Fast]:{maxFeePerGas:qn(f,V.Fast),maxPriorityFeePerGas:qn(t,V.Fast)},[V.Fastest]:{maxFeePerGas:qn(f,V.Fastest),maxPriorityFeePerGas:qn(t,V.Fastest)}}}if(!C)throw new c("toolbox_evm_no_gas_price");return{[V.Average]:{gasPrice:C},[V.Fast]:{gasPrice:qn(C,V.Fast)},[V.Fastest]:{gasPrice:qn(C,V.Fastest)}}}catch(f){throw new c("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}})}function RT({provider:n,isEIP1559Compatible:y,signer:T,chain:o}){return async function({callProvider:t,contractAddress:C,abi:H,funcName:_,funcParams:A=[],txOverrides:X={},feeOption:M=V.Fast}){let l=t||n;if(!C)throw new c("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let w=DT({abi:H,funcName:_});if(w&&Oo(l)&&T){let Q=qo({chain:o,provider:l}),z=X?.from||await T?.getAddress(),L=await Q({abi:H,contractAddress:C,funcName:_,funcParams:A,txOverrides:{...X,from:z}});return Ro(l)(L)}let q=Uy(C,H,l);if(w){if(!T)throw new c("toolbox_evm_no_signer");let Q=X?.from||await T.getAddress();if(!Q)throw new c("toolbox_evm_no_signer_address");let z=q.connect(T),L=Go({chain:o,isEIP1559Compatible:y,provider:n}),{maxFeePerGas:Y,maxPriorityFeePerGas:Z,gasPrice:U}=(await L())[M],B=await q.getFunction(_).estimateGas(...A,X),J=await z[_](...A,{...X,gasLimit:B,gasPrice:U,maxFeePerGas:Y,maxPriorityFeePerGas:Z,nonce:X?.nonce||await l.getTransactionCount(Q)});return typeof J?.hash==="string"?J?.hash:J}let G=await q[_]?.(...A);return typeof G?.hash==="string"?G?.hash:G}}function r0({provider:n,chain:y}){return function({assetAddress:o,spenderAddress:f,from:t}){return RT({chain:y,isEIP1559Compatible:!0,provider:n})({abi:Hy,contractAddress:o,funcName:"allowance",funcParams:[t,f]})}}function s_({provider:n,chain:y}){return async function({assetAddress:o,spenderAddress:f,from:t,amount:C=_y}){let H=await r0({chain:y,provider:n})({assetAddress:o,from:t,spenderAddress:f});return cy.fromBigInt(H).gte(cy.fromBigInt(BigInt(C)))}}function e_({signer:n,isEIP1559Compatible:y=!0,provider:T,chain:o}){return async function({assetAddress:t,spenderAddress:C,feeOptionKey:H=V.Fast,amount:_,gasLimitFallback:A,from:X,nonce:M}){let l=[C,BigInt(_||_y)],w=await n?.getAddress()||X,q={abi:Hy,contractAddress:t,funcName:"approve",funcParams:l,signer:n,txOverrides:{from:w}};if(Oo(T)){let Q=qo({chain:o,provider:T}),z=Ro(T),L=await Q(q);return z(L)}return RT({chain:o,isEIP1559Compatible:y,provider:T,signer:n})({...q,feeOption:H,funcParams:l,txOverrides:{from:w,gasLimit:A?BigInt(A.toString()):void 0,nonce:M}})}}function nA({signer:n,isEIP1559Compatible:y=!0,provider:T}){return async function({assetValue:f,memo:t,recipient:C,feeOptionKey:H=V.Fast,sender:_,...A}){let{hexlify:X,toUtf8Bytes:M}=await import("ethers"),l=f.getBaseValue("bigint"),w=f.chain,q=_||await n?.getAddress(),G=d0({chain:w,isEIP1559Compatible:y,provider:T,signer:n});if(!q)throw new c("toolbox_evm_no_from_address");if(f.isGasAsset){let U={...A,data:X(M(t||"")),feeOptionKey:H,from:q,to:C,value:l};return G(U)}if(!xo(f,w))throw new c("toolbox_evm_no_contract_address");let{maxFeePerGas:z,maxPriorityFeePerGas:L,gasPrice:Y}=(await Go({chain:w,isEIP1559Compatible:y,provider:T})())[H],Z=await NT({chain:w,provider:T,signer:n})({assetValue:f,data:X(M(t||"")),gasPrice:Y,maxFeePerGas:z,maxPriorityFeePerGas:L,memo:t,recipient:C,sender:q});return G(Z)}}function g0({provider:n,signer:y}){return function({contractAddress:o,abi:f,funcName:t,funcParams:C=[],txOverrides:H}){if(!o)throw new c("toolbox_evm_no_contract_address");let _=Uy(o,f,n);return y?_.connect(y).getFunction(t).estimateGas(...C,H):_.getFunction(t).estimateGas(...C,H)}}function oA({provider:n,signer:y}){return async function({assetValue:o,recipient:f,memo:t,data:C,sender:H,funcName:_,funcParams:A,txOverrides:X}){let M=o.bigIntValue,l=o.isGasAsset?null:xo(o,o.chain);if(l&&_)return g0({provider:n,signer:y})({abi:Hy,contractAddress:l,funcName:_,funcParams:A,txOverrides:X});let{hexlify:w,toUtf8Bytes:q}=await import("ethers");return n.estimateGas({data:C?C:t?w(q(t)):void 0,from:H,to:f,value:M})}}function yA({signer:n}){if(!n)return;return(y)=>JT(n,y)}function d0({provider:n,signer:y,isEIP1559Compatible:T=!0,chain:o}){return async function({feeOptionKey:t=V.Fast,...C}){let{from:H,to:_,data:A,value:X,...M}=C;if(!y)throw new c("toolbox_evm_no_signer");if(!_)throw new c("toolbox_evm_no_to_address");let l={...M,data:A||"0x",from:H,to:_,value:BigInt(X||0)};if(Oo(n))return Ro(n)(l);let w=H||await y.getAddress(),q=C.nonce||await n.getTransactionCount(w),G=(await n.getNetwork()).chainId,Q=FT(l,T);if(Q==="eip7702")YT(l.authorizations||[],G);let z=i0(Q).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),L={...l,chainId:G,nonce:q,type:z,...Q==="eip7702"&&{authorizationList:l.authorizations}},Y=Go({chain:o,isEIP1559Compatible:T,provider:n}),U=Q!=="legacy"&&!(l.maxFeePerGas&&l.maxPriorityFeePerGas)||!l.gasPrice?Object.entries((await Y())[t]).reduce((J,[D,R])=>({...J,[D]:ty(BigInt(R))}),{}):{},B;try{B=ty(l.gasLimit||await n.estimateGas(L)*11n/10n)}catch(J){throw new c("toolbox_evm_error_estimating_gas_limit",{error:J})}try{let J={...L,gasLimit:B,...U};try{return(await y.sendTransaction(J)).hash}catch{let D=await y.signTransaction({...J,from:w});return(await n.broadcastTransaction(D)).hash}}catch(J){throw new c("toolbox_evm_error_sending_transaction",{error:J})}}}function NT({provider:n,signer:y}){return async function({assetValue:o,memo:f,recipient:t,data:C,sender:H,maxFeePerGas:_,maxPriorityFeePerGas:A,gasPrice:X,...M}){let l=o.getBaseValue("bigint"),w=o.chain,q=H||await y?.getAddress();if(!q)throw new c("toolbox_evm_no_from_address");if(m_(o)){let{hexlify:z,toUtf8Bytes:L}=await import("ethers");return{...M,data:C||z(L(f||"")),from:q,to:t,value:l}}let G=xo(o,w);if(!G)throw new c("toolbox_evm_no_contract_address");return qo({chain:o.chain,provider:n})({abi:Hy,contractAddress:G,funcName:"transfer",funcParams:[t,l],txOverrides:{from:q,gasPrice:X,maxFeePerGas:_,maxPriorityFeePerGas:A}})}}function fA({provider:n,signer:y,chain:T}){return async function({assetAddress:f,spenderAddress:t,amount:C,from:H}){let _=await y?.getAddress()||H,A=qo({chain:T,provider:n}),X=["bigint","number"].includes(typeof C)?C:C||_y;return await A({abi:Hy,contractAddress:f,funcName:"approve",funcParams:[t,BigInt(X)],txOverrides:{from:_}})}}function TA({provider:n,isEIP1559Compatible:y=!0,chain:T}){return async function({feeOption:f=V.Fast,...t}){let H=await Go({chain:T,isEIP1559Compatible:y,provider:n})(),_=await n.estimateGas(t),A=i_.from({chain:T}),{gasPrice:X,maxFeePerGas:M,maxPriorityFeePerGas:l}=H[f];if(!y&&X)return A.set(cy.fromBigInt(X*_,A.decimal));if(M&&l){let w=(M+l)*_;return A.set(cy.fromBigInt(w,A.decimal))}throw new c("toolbox_evm_no_gas_price")}}var _y,g_,d_,OT,a_,hy=(n)=>n.type===4||(n.authorizations?.length??0)>0,xT=(n)=>!hy(n)&&(n.type===2||!!n.maxFeePerGas||!!n.maxPriorityFeePerGas),FT=(n,y=!0)=>{if(hy(n))return"eip7702";if(xT(n)||y)return"eip1559";return"legacy"};var my=k(()=>{Ky();Cy();_y=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");g_=["payable","nonpayable"];d_=h_.reduce((n,y)=>{return n[y]="0x0000000000000000000000000000000000000000",n},{}),OT={...d_,[Jn.Optimism]:"0x4200000000000000000000000000000000000042",[Jn.Polygon]:"0x0000000000000000000000000000000000001010"},a_=[Jn.Arbitrum,Jn.Aurora,Jn.Base,Jn.Optimism]});import{Chain as r,FeeOption as tA}from"@swapkit/helpers";import{HDNodeWallet as CA}from"ethers";import{match as HA,P as a0}from"ts-pattern";function ry(n){let y=g(r.Ethereum)(n);async function T(o,f="0x5ba1e12693dc8f9c48aad8770482f4739beed696",t="aggregate",C=tA.Fast){let H=await y.createContractTxObject({abi:V0,contractAddress:f,funcName:t,funcParams:[o]});return y.sendTransaction({...H,feeOptionKey:C})}return{...y,multicall:T}}function g(n){return function({provider:T,...o}){let f=ZT(n),t=HA(o).with({phrase:a0.string},({phrase:H})=>CA.fromPhrase(H).connect(T)).with({signer:a0.any},({signer:H})=>H).otherwise(()=>{return});return Do({chain:n,isEIP1559Compatible:f,provider:T,signer:t})}}var gy,dy,ay,sy,ey,nf,of,s0,yf,ff,Tf,tf,Cf,Hf,wy,_f,Af,Uf,wf;var ST=k(()=>{K0();Cy();my();gy=g(r.Adi),dy=g(r.Arbitrum),ay=g(r.Aurora),sy=g(r.Avalanche),ey=g(r.Base),nf=g(r.Berachain),of=g(r.BinanceSmartChain),s0=g(r.Botanix),yf=g(r.Core),ff=g(r.Corn),Tf=g(r.Cronos),tf=g(r.Gnosis),Cf=g(r.Hyperevm),Hf=g(r.Polygon),wy=g(r.Sonic),_f=g(r.Unichain),Af=g(r.XLayer),Uf=g(r.Monad),wf=g(r.MegaETH)});var e0;var nC=k(()=>{e0=[{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 Fo,Chain as AA,FeeOption as En,SwapKitError as pT}from"@swapkit/helpers";import{Contract as UA,HDNodeWallet as wA}from"ethers";import{match as qA,P as oC}from"ts-pattern";function kT(n){return new UA(GA,e0,n)}function yC(n){return async function(){let T=kT(n);if(T&&"l1BaseFee"in T)return await T?.l1BaseFee();return}}function fC(n){return async function({from:T,to:o,nonce:f,...t}){let{Transaction:C}=await import("ethers");if(!o)throw new pT("toolbox_evm_invalid_transaction",{error:"Missing to address"});return C.from({...t,authorizationList:t.authorizationList,nonce:f?f:T?await n.getTransactionCount(T):0,to:o}).serialized}}function TC(n){return async function(T){let o=kT(n),f=await fC(n)(T);if(o&&"getL1Fee"in o)return o.getL1Fee(f)}}function tC(n){return async function(T){let f=(await n.getFeeData()).gasPrice??0n,t=await n.estimateGas(T);return f*t}}function lA(n){return async function(T){let o=await TC(n)(T)??0n,f=await tC(n)(T);return o+f}}function XA(n){return async function(T){let o=kT(n),f=await fC(n)(T);if(o&&"getL1GasUsed"in o)return o.getL1GasUsed(f)}}function WA(n){return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:o,gasPrice:f}=await n.getFeeData(),t=await yC(n)(),C=f;if(!(T&&o))throw new pT("toolbox_evm_no_fee_data");return{[En.Average]:{gasPrice:C,l1GasPrice:t,maxFeePerGas:T,maxPriorityFeePerGas:o},[En.Fast]:{gasPrice:Fo(C,En.Fast),l1GasPrice:Fo(t||0n,En.Fast),maxFeePerGas:T,maxPriorityFeePerGas:Fo(o,En.Fast)},[En.Fastest]:{gasPrice:Fo(C,En.Fastest),l1GasPrice:Fo(t||0n,En.Fastest),maxFeePerGas:T,maxPriorityFeePerGas:Fo(o,En.Fastest)}}}catch(T){throw new pT("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}function qf({provider:n,...y}){let T=qA(y).with({phrase:oC.string},({phrase:t})=>wA.fromPhrase(t).connect(n)).with({signer:oC.any},({signer:t})=>t).otherwise(()=>{return}),o=Do({provider:n,signer:T}),f=yC(n);return{...o,estimateGasPrices:WA(n),estimateL1Gas:XA(n),estimateL1GasCost:TC(n),estimateL2GasCost:tC(n),estimateTotalGasCost:lA(n),getBalance:Ty(AA.Optimism).getBalance,getL1GasPrice:f}}var GA="0x420000000000000000000000000000000000000f";var uT=k(()=>{Ky();nC();my()});var HC={};e(HC,{validateEVMAddress:()=>Ay,toChecksumAddress:()=>h0,isStateChangingCall:()=>DT,isEIP7702Transaction:()=>hy,isEIP1559Transaction:()=>xT,isBrowserProvider:()=>Oo,getTokenAddress:()=>xo,getEvmToolboxAsync:()=>CC,getEvmToolbox:()=>PT,getEstimateGasPrices:()=>Go,getEVMTxType:()=>FT,getEIP1193SendTransaction:()=>Ro,getCreateContractTxObject:()=>qo,getCreateContract:()=>zT,getChecksumAddressFromAsset:()=>m0,createContract:()=>Uy,XLayerToolbox:()=>Af,UNIToolbox:()=>_f,SONICToolbox:()=>wy,OPToolbox:()=>qf,MONADToolbox:()=>Uf,MEGAETHToolbox:()=>wf,MAX_APPROVAL:()=>_y,MATICToolbox:()=>Hf,HYPEREVMToolbox:()=>Cf,GNOToolbox:()=>tf,ETHToolbox:()=>ry,ContractAddress:()=>OT,CROToolbox:()=>Tf,CORNToolbox:()=>ff,COREToolbox:()=>yf,BotanixToolbox:()=>s0,BaseEVMToolbox:()=>Do,BSCToolbox:()=>of,BERAToolbox:()=>nf,BASEToolbox:()=>ey,AVAXToolbox:()=>sy,AURORAToolbox:()=>ay,ARBToolbox:()=>dy,ADIToolbox:()=>gy});import{Chain as m}from"@swapkit/helpers";import{match as BA}from"ts-pattern";function PT(n,y){return BA(n).with(m.Adi,()=>gy(y)).with(m.Arbitrum,()=>dy(y)).with(m.Aurora,()=>ay(y)).with(m.Avalanche,()=>sy(y)).with(m.Base,()=>ey(y)).with(m.Berachain,()=>nf(y)).with(m.BinanceSmartChain,()=>of(y)).with(m.Botanix,()=>wy(y)).with(m.Core,()=>yf(y)).with(m.Corn,()=>ff(y)).with(m.Cronos,()=>Tf(y)).with(m.Ethereum,()=>ry(y)).with(m.Gnosis,()=>tf(y)).with(m.Hyperevm,()=>Cf(y)).with(m.Optimism,()=>qf(y)).with(m.Polygon,()=>Hf(y)).with(m.Sonic,()=>wy(y)).with(m.Unichain,()=>_f(y)).with(m.XLayer,()=>Af(y)).with(m.Monad,()=>Uf(y)).with(m.MegaETH,()=>wf(y)).exhaustive()}async function CC(n,y){let T={...y,provider:y?.provider||await LT(n)};return PT(n,T)}var IT=k(()=>{Cy();ST();uT();my();ST();uT()});var _C;var AC=k(()=>{((T)=>{T.Test="goerli";T.Main="homestead"})(_C||={})});var UC={};e(UC,{validateEVMAddress:()=>Ay,validateAuthorizations:()=>YT,validateAuthorization:()=>b0,toHexString:()=>ty,toChecksumAddress:()=>h0,signAuthorization:()=>JT,parseEIP712FromEVMTx:()=>c_,isStateChangingCall:()=>DT,isEIP7702Transaction:()=>hy,isEIP1559Transaction:()=>xT,isBrowserProvider:()=>Oo,getTokenAddress:()=>xo,getProviderSync:()=>E0,getProvider:()=>LT,getNetworkParams:()=>QT,getIsEIP1559Compatible:()=>ZT,getEvmToolboxAsync:()=>CC,getEvmToolbox:()=>PT,getEvmApi:()=>Ty,getEstimateGasPrices:()=>Go,getEVMTxType:()=>FT,getEIP1193SendTransaction:()=>Ro,getCreateContractTxObject:()=>qo,getCreateContract:()=>zT,getChecksumAddressFromAsset:()=>m0,createCustomEvmApi:()=>E_,createContract:()=>Uy,buildEIP712DomainType:()=>v0,XLayerToolbox:()=>Af,UNIToolbox:()=>_f,SONICToolbox:()=>wy,OPToolbox:()=>qf,MONADToolbox:()=>Uf,MEGAETHToolbox:()=>wf,MAX_APPROVAL:()=>_y,MATICToolbox:()=>Hf,HYPEREVMToolbox:()=>Cf,GNOToolbox:()=>tf,EthNetwork:()=>_C,ETHToolbox:()=>ry,ContractAddress:()=>OT,CROToolbox:()=>Tf,CORNToolbox:()=>ff,COREToolbox:()=>yf,BotanixToolbox:()=>s0,BaseEVMToolbox:()=>Do,BSCToolbox:()=>of,BERAToolbox:()=>nf,BASEToolbox:()=>ey,AVAXToolbox:()=>sy,AURORAToolbox:()=>ay,ARBToolbox:()=>dy,ADIToolbox:()=>gy});var $T=k(()=>{Ky();Cy();IT();AC()});import{bech32 as MA}from"@scure/base";import{mnemonicToSeed as LA}from"@scure/bip39";import{Bip32PrivateKey as QA}from"@stricahq/bip32ed25519";import{Transaction as ZA,types as vT,address as JA,crypto as ET,utils as wC}from"@stricahq/typhonjs";import{AssetValue as So,Chain as lo,getChainConfig as YA,SwapKitError as qy}from"@swapkit/helpers";import Wn from"bignumber.js";async function VT(n,y){let T=await fetch(`${XC}${n}`,{...y,headers:{project_id:lC,...y?.headers}});if(!T.ok)throw Error(`Blockfrost API error: ${T.status} ${T.statusText}`);return T.json()}async function WC(n){try{return await VT(`/addresses/${n}/utxos`)}catch{return[]}}async function zA(){return(await VT("/blocks/latest")).slot}async function DA(){let n=await VT("/epochs/latest/parameters"),y={PlutusScriptV1:n.cost_models.PlutusV1?Object.values(n.cost_models.PlutusV1):[],PlutusScriptV2:n.cost_models.PlutusV2?Object.values(n.cost_models.PlutusV2):[],PlutusScriptV3:n.cost_models.PlutusV3?Object.values(n.cost_models.PlutusV3):[]};return{collateralPercent:new Wn(n.collateral_percent),languageView:y,lovelacePerUtxoWord:new Wn(0),maxValueSize:Number.parseInt(n.max_val_size,10),minFeeA:new Wn(n.min_fee_a),minFeeB:new Wn(n.min_fee_b),minFeeRefScriptCostPerByte:new Wn(15),priceMem:new Wn(n.price_mem),priceSteps:new Wn(n.price_step),stakeKeyDeposit:new Wn(2000000),utxoCostPerByte:new Wn(n.coins_per_utxo_size)}}async function GC(n){let y=await fetch(`${XC}/tx/submit`,{body:Buffer.from(n,"hex"),headers:{"Content-Type":"application/cbor",project_id:lC},method:"POST"});if(!y.ok){let T=await y.text();throw Error(`Transaction submission failed: ${T}`)}return y.json()}function OA(n,y){return n.map((T)=>{let o=T.amount.find((C)=>C.unit==="lovelace"),f=o?new Wn(o.quantity):new Wn(0),t=T.amount.filter((C)=>C.unit!=="lovelace").map((C)=>({amount:new Wn(C.quantity),assetName:C.unit.slice(56),policyId:C.unit.slice(0,56)}));return{address:y,amount:f,index:T.output_index,tokens:t,txId:T.tx_hash}})}async function RA(n){try{let y=await WC(n),T=0n,o=new Map;for(let C of y){if(!C.amount||!Array.isArray(C.amount))continue;for(let H of C.amount){let{unit:_,quantity:A}=H;if(_==="lovelace")T+=BigInt(A);else{let X=o.get(_)||0n;o.set(_,X+BigInt(A))}}}let f=[],{baseDecimal:t}=YA(lo.Cardano);if(T>0n)f.push(So.from({chain:lo.Cardano,fromBaseDecimal:t,value:T.toString()}));for(let[C,H]of o)f.push(So.from({asset:`${lo.Cardano}.${C}`,value:H.toString()}));if(f.length===0)return[So.from({chain:lo.Cardano})];return f}catch(y){let T=y instanceof Error?y.message:String(y);return console.error(`Cardano balance fetch error: ${T}`),[So.from({chain:lo.Cardano})]}}function BC(n){if(!n||typeof n!=="string")return!1;try{let y=MA.decode(n,120);return y.prefix==="addr"||y.prefix==="addr_test"}catch{return!1}}async function xA(n,y=0,T=0){let o=await LA(n,""),t=(await QA.fromEntropy(Buffer.from(o.slice(0,64)))).derive(bT+1852).derive(bT+1815).derive(bT+y),C=t.derive(0).derive(T),H=C.toBip32PublicKey().toPublicKey().toBytes(),_=ET.hash28(H),X=t.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),M=ET.hash28(X),l={hash:_,type:vT.HashType.ADDRESS},w={hash:M,type:vT.HashType.ADDRESS},G=new JA.BaseAddress(NA,l,w).getBech32(),Q=C.toPrivateKey();return{getAddress:()=>G,publicKey:H,publicKeyHash:_,signTransaction:async(z)=>{try{let L=await import("@stricahq/cbors"),Y=Buffer.from(z,"hex"),Z=L.Decoder.decode(Y),[U,B,J,D]=Z.value,R=L.Encoder.encode(U),W=ET.hash32(R),N=Q.sign(W),O=B instanceof Map?B:new Map,x=O.get(qC)||[];x.push([H,N]),O.set(qC,x);let S=[U,O,J,D];return L.Encoder.encode(S).toString("hex")}catch(L){throw new qy("toolbox_cardano_sign_transaction_failed",{message:String(L)})}}}}function FA(n){let y,T,o;async function f(){if(!o)o=await DA();return o}async function t(){if(y!==void 0)return y;if(n&&"phrase"in n&&n.phrase){let w=n.index??0;return y=await xA(n.phrase,0,w),y}if(n&&"signer"in n&&n.signer)return y=n.signer,y;return}async function C(){if(T)return T;let w=await t();if(!w)return"";if("getAddress"in w)return T=await w.getAddress(),T;return""}async function H(w){let q=w||await C();if(!q)throw new qy("core_wallet_connection_not_found");return RA(q)}async function _(w){if(w)try{let{tx:z}=await A(w),L=z.getFee();return So.from({chain:lo.Cardano,fromBaseDecimal:6,value:L.toString()})}catch{}let q=await f(),G=400,Q=q.minFeeB.plus(q.minFeeA.times(G));return So.from({chain:lo.Cardano,fromBaseDecimal:6,value:Q.toString()})}async function A({sender:w="",recipient:q,assetValue:G,memo:Q,pureLovelaceOnly:z=!1}){let L=w||await C();if(!L)throw new qy("core_wallet_connection_not_found");let[Y,Z,U]=await Promise.all([WC(L),zA(),f()]),B=Y.filter((b)=>z?b.amount.every((K)=>K.unit==="lovelace"):b.amount.some((K)=>K.unit==="lovelace")).sort((b,K)=>{let Hn=b.amount.some((d)=>d.unit!=="lovelace"),Xn=K.amount.some((d)=>d.unit!=="lovelace");if(Hn===Xn)return 0;return Hn?1:-1}),J=wC.getAddressFromString(L),D=wC.getAddressFromString(q),R=OA(B,J),W=new Wn(G.getBaseValue("string")),N=[{address:D,amount:W,tokens:[]}],O;if(Q){let b=new Map;b.set("msg",[Q]),O={metadata:[{data:b,label:674}]}}let x={...U,minFeeB:U.minFeeB.plus(U.minFeeA.times(4))},I=new ZA({protocolParams:x}).paymentTransaction({auxiliaryData:O,changeAddress:J,inputs:R,outputs:N,ttl:Z+3600}),{payload:E}=I.buildTransaction();return{tx:I,unsignedTx:E}}async function X(w){let q=await t();if(!q||!("signTransaction"in q))throw new qy("core_wallet_connection_not_found");return q.signTransaction(w)}async function M({recipient:w,assetValue:q,memo:G}){let Q=await t();if(!Q||!("signTransaction"in Q))throw new qy("core_wallet_connection_not_found");let{unsignedTx:z}=await A({assetValue:q,memo:G,recipient:w,sender:await C()}),L=await X(z);return await GC(L)}async function l(w){let q=await X(w);return await GC(q)}return{createTransaction:A,estimateTransactionFee:_,getAddress:C,getBalance:H,signAndBroadcastTransaction:l,signTransaction:X,transfer:M,validateAddress:BC}}var lC="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",XC="https://cardano-mainnet.blockfrost.io/api/v0",NA,bT=2147483648,qC=0;var MC=k(()=>{NA=vT.NetworkId.MAINNET});var KT={};e(KT,{validateCardanoAddress:()=>BC,getCardanoToolbox:()=>FA});var jT=k(()=>{MC()});import{base64 as lf,bech32 as Gf}from"@scure/base";import{SwapKitError as SA}from"@swapkit/helpers";function Gy(n){return lf.encode(Uint8Array.from(Gf.fromWords(Gf.decode(n).words)))}function ly(n,y="thor"){return Gf.encode(y,Gf.toWords(lf.decode(n)))}function pA(n){return lf.encode(n)}function kA(n){if(!n.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new SA("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return lf.decode(n)}var cT=()=>{};import{AssetValue as iT,Chain as v,getChainConfig as Sn,getRPCUrl as uA,SwapKitError as LC}from"@swapkit/helpers";function bn(n){switch(n){case v.Maya:return{amount:[],gas:"10000000000"};case v.THORChain:return{amount:[],gas:"500000000"};case v.Kujira:return JC;case v.Noble:return YC;default:return ZC}}async function vn(n){let y=await import("@cosmjs/stargate"),T=y.StargateClient??y.default?.StargateClient,o=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return T.connect({headers:o,url:n})}async function Xo(n,y,T={}){let o=await import("@cosmjs/stargate"),f=o.SigningStargateClient??o.default?.SigningStargateClient,t=o.GasPrice??o.default?.GasPrice,C=typeof T==="string"?T:"0.0003uatom",H=typeof T==="string"?{}:T;return f.connectWithSigner(n,y,{gasPrice:t.fromString(C),...H})}async function mT(n,y){let T=await import("@cosmjs/stargate");return(T.SigningStargateClient??T.default?.SigningStargateClient).offline(n,y)}async function rT({sender:n,recipient:y,assetValue:T,memo:o="",feeRate:f,sequence:t,accountNumber:C}){let{chain:H,chainId:_}=T,A=await uA(H),M=await(await vn(A)).getAccount(n);if(!M)throw new LC("toolbox_cosmos_account_not_found",{sender:n});let l=iT.from({chain:H}),w=dn(l.symbol),q=bn(H),G=w&&f?{amount:[{amount:f.toString(),denom:w}],gas:q.gas}:q,Q={amount:[{amount:T.getBaseValue("string"),denom:dn(T.symbol)}],fromAddress:n,toAddress:y};return{accountNumber:C??M.accountNumber,chainId:_,fee:G,memo:o,msgs:[{typeUrl:PA(H),value:Q}],sequence:t??M.sequence}}var hT="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",QC="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",ZC,JC,YC,dn=(n,y=!1)=>{if(y)return n.toLowerCase();switch(n){case"uUSK":case"USK":return hT;case"uYUM":case"YUM":return QC;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return n}},Xy=({symbol:n,chain:y})=>{if(y===v.Maya)return(n.toUpperCase()!=="CACAO"?n:`${v.Maya}.${n}`).toUpperCase();if(y===v.THORChain)return(["RUNE","TCY","RUJI"].includes(n.toUpperCase())?`${v.THORChain}.${n}`:n).toUpperCase();return dn(n,!1)},PA=(n)=>{switch(n){case v.Maya:case v.THORChain:return"/types.MsgSend";case v.Cosmos:case v.Kujira:case v.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new LC("toolbox_cosmos_not_supported",{chain:n})}},IA,gT=(n,y)=>{let T=IA[n.toLowerCase()];if(!T)return iT.from({asset:n,fromBaseDecimal:8,value:y});let{chain:o,asset:f,decimals:t}=T,C=o?{chain:o}:{asset:f};return iT.from({...C,fromBaseDecimal:t,value:y})};var Wy=k(()=>{ZC={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},JC={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},YC={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};IA={atom:{chain:v.Cosmos,decimals:Sn(v.Cosmos).baseDecimal},cacao:{chain:v.Maya,decimals:10},kuji:{chain:v.Kujira,decimals:Sn(v.Kujira).baseDecimal},maya:{asset:`${v.Maya}.${v.Maya}`,decimals:4},rune:{chain:v.THORChain,decimals:Sn(v.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Sn(v.THORChain).baseDecimal},uatom:{chain:v.Cosmos,decimals:Sn(v.Cosmos).baseDecimal},ukuji:{chain:v.Kujira,decimals:Sn(v.Kujira).baseDecimal},usdc:{chain:v.Noble,decimals:Sn(v.Noble).baseDecimal},uusdc:{chain:v.Noble,decimals:Sn(v.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Sn(v.THORChain).baseDecimal},[hT.toLowerCase()]:{asset:`${v.Kujira}.USK`,decimals:Sn(v.Kujira).baseDecimal}}});var NC={};e(NC,{$root:()=>p});import nn from"protobufjs/minimal.js";var P,Mn,u,p;var zC=k(()=>{P=nn.Reader,Mn=nn.Writer,u=nn.util,p=nn.roots.default||(nn.roots.default={});p.common=(()=>{let n={};return n.Asset=(()=>{function y(T){if(T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.chain="",y.prototype.symbol="",y.prototype.ticker="",y.prototype.synth=!1,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.chain!=null&&Object.hasOwnProperty.call(o,"chain"))f.uint32(10).string(o.chain);if(o.symbol!=null&&Object.hasOwnProperty.call(o,"symbol"))f.uint32(18).string(o.symbol);if(o.ticker!=null&&Object.hasOwnProperty.call(o,"ticker"))f.uint32(26).string(o.ticker);if(o.synth!=null&&Object.hasOwnProperty.call(o,"synth"))f.uint32(32).bool(o.synth);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new p.common.Asset;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.chain=o.string();break;case 2:C.symbol=o.string();break;case 3:C.ticker=o.string();break;case 4:C.synth=o.bool();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.chain!=null&&o.hasOwnProperty("chain")){if(!u.isString(o.chain))return"chain: string expected"}if(o.symbol!=null&&o.hasOwnProperty("symbol")){if(!u.isString(o.symbol))return"symbol: string expected"}if(o.ticker!=null&&o.hasOwnProperty("ticker")){if(!u.isString(o.ticker))return"ticker: string expected"}if(o.synth!=null&&o.hasOwnProperty("synth")){if(typeof o.synth!=="boolean")return"synth: boolean expected"}return null},y.fromObject=function(o){if(o instanceof p.common.Asset)return o;let f=new p.common.Asset;if(o.chain!=null)f.chain=String(o.chain);if(o.symbol!=null)f.symbol=String(o.symbol);if(o.ticker!=null)f.ticker=String(o.ticker);if(o.synth!=null)f.synth=Boolean(o.synth);return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.defaults)t.chain="",t.symbol="",t.ticker="",t.synth=!1;if(o.chain!=null&&o.hasOwnProperty("chain"))t.chain=o.chain;if(o.symbol!=null&&o.hasOwnProperty("symbol"))t.symbol=o.symbol;if(o.ticker!=null&&o.hasOwnProperty("ticker"))t.ticker=o.ticker;if(o.synth!=null&&o.hasOwnProperty("synth"))t.synth=o.synth;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,nn.util.toJSONOptions)},y})(),n.Coin=(()=>{function y(T){if(T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.asset=null,y.prototype.amount="",y.prototype.decimals=u.Long?u.Long.fromBits(0,0,!1):0,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.asset!=null&&Object.hasOwnProperty.call(o,"asset"))p.common.Asset.encode(o.asset,f.uint32(10).fork()).ldelim();if(o.amount!=null&&Object.hasOwnProperty.call(o,"amount"))f.uint32(18).string(o.amount);if(o.decimals!=null&&Object.hasOwnProperty.call(o,"decimals"))f.uint32(24).int64(o.decimals);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new p.common.Coin;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.asset=p.common.Asset.decode(o,o.uint32());break;case 2:C.amount=o.string();break;case 3:C.decimals=o.int64();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.asset!=null&&o.hasOwnProperty("asset")){let f=p.common.Asset.verify(o.asset);if(f)return"asset."+f}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!u.isString(o.amount))return"amount: string expected"}if(o.decimals!=null&&o.hasOwnProperty("decimals")){if(!u.isInteger(o.decimals)&&!(o.decimals&&u.isInteger(o.decimals.low)&&u.isInteger(o.decimals.high)))return"decimals: integer|Long expected"}return null},y.fromObject=function(o){if(o instanceof p.common.Coin)return o;let f=new p.common.Coin;if(o.asset!=null){if(typeof o.asset!=="object")throw TypeError(".common.Coin.asset: object expected");f.asset=p.common.Asset.fromObject(o.asset)}if(o.amount!=null)f.amount=String(o.amount);if(o.decimals!=null){if(u.Long)(f.decimals=u.Long.fromValue(o.decimals)).unsigned=!1;else if(typeof o.decimals==="string")f.decimals=Number.parseInt(o.decimals,10);else if(typeof o.decimals==="number")f.decimals=o.decimals;else if(typeof o.decimals==="object")f.decimals=new u.LongBits(o.decimals.low>>>0,o.decimals.high>>>0).toNumber()}return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.defaults)if(t.asset=null,t.amount="",u.Long){let C=new u.Long(0,0,!1);t.decimals=f.longs===String?C.toString():f.longs===Number?C.toNumber():C}else t.decimals=f.longs===String?"0":0;if(o.asset!=null&&o.hasOwnProperty("asset"))t.asset=p.common.Asset.toObject(o.asset,f);if(o.amount!=null&&o.hasOwnProperty("amount"))t.amount=o.amount;if(o.decimals!=null&&o.hasOwnProperty("decimals"))if(typeof o.decimals==="number")t.decimals=f.longs===String?String(o.decimals):o.decimals;else t.decimals=f.longs===String?u.Long.prototype.toString.call(o.decimals):f.longs===Number?new u.LongBits(o.decimals.low>>>0,o.decimals.high>>>0).toNumber():o.decimals;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,nn.util.toJSONOptions)},y})(),n.PubKeySet=(()=>{function y(T){if(T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.secp256k1="",y.prototype.ed25519="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.secp256k1!=null&&Object.hasOwnProperty.call(o,"secp256k1"))f.uint32(10).string(o.secp256k1);if(o.ed25519!=null&&Object.hasOwnProperty.call(o,"ed25519"))f.uint32(18).string(o.ed25519);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new p.common.PubKeySet;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.secp256k1=o.string();break;case 2:C.ed25519=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.secp256k1!=null&&o.hasOwnProperty("secp256k1")){if(!u.isString(o.secp256k1))return"secp256k1: string expected"}if(o.ed25519!=null&&o.hasOwnProperty("ed25519")){if(!u.isString(o.ed25519))return"ed25519: string expected"}return null},y.fromObject=function(o){if(o instanceof p.common.PubKeySet)return o;let f=new p.common.PubKeySet;if(o.secp256k1!=null)f.secp256k1=String(o.secp256k1);if(o.ed25519!=null)f.ed25519=String(o.ed25519);return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.defaults)t.secp256k1="",t.ed25519="";if(o.secp256k1!=null&&o.hasOwnProperty("secp256k1"))t.secp256k1=o.secp256k1;if(o.ed25519!=null&&o.hasOwnProperty("ed25519"))t.ed25519=o.ed25519;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,nn.util.toJSONOptions)},y})(),n.Tx=(()=>{function y(T){if(this.coins=[],this.gas=[],T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.id="",y.prototype.chain="",y.prototype.fromAddress="",y.prototype.toAddress="",y.prototype.coins=u.emptyArray,y.prototype.gas=u.emptyArray,y.prototype.memo="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.id!=null&&Object.hasOwnProperty.call(o,"id"))f.uint32(10).string(o.id);if(o.chain!=null&&Object.hasOwnProperty.call(o,"chain"))f.uint32(18).string(o.chain);if(o.fromAddress!=null&&Object.hasOwnProperty.call(o,"fromAddress"))f.uint32(26).string(o.fromAddress);if(o.toAddress!=null&&Object.hasOwnProperty.call(o,"toAddress"))f.uint32(34).string(o.toAddress);if(o.coins?.length)for(let t=0;t<o.coins.length;++t)p.common.Coin.encode(o.coins[t],f.uint32(42).fork()).ldelim();if(o.gas?.length)for(let t=0;t<o.gas.length;++t)p.common.Coin.encode(o.gas[t],f.uint32(50).fork()).ldelim();if(o.memo!=null&&Object.hasOwnProperty.call(o,"memo"))f.uint32(58).string(o.memo);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new p.common.Tx;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.id=o.string();break;case 2:C.chain=o.string();break;case 3:C.fromAddress=o.string();break;case 4:C.toAddress=o.string();break;case 5:if(!C.coins?.length)C.coins=[];C.coins.push(p.common.Coin.decode(o,o.uint32()));break;case 6:if(!C.gas?.length)C.gas=[];C.gas.push(p.common.Coin.decode(o,o.uint32()));break;case 7:C.memo=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.id!=null&&o.hasOwnProperty("id")){if(!u.isString(o.id))return"id: string expected"}if(o.chain!=null&&o.hasOwnProperty("chain")){if(!u.isString(o.chain))return"chain: string expected"}if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress")){if(!u.isString(o.fromAddress))return"fromAddress: string expected"}if(o.toAddress!=null&&o.hasOwnProperty("toAddress")){if(!u.isString(o.toAddress))return"toAddress: string expected"}if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let t=p.common.Coin.verify(o.coins[f]);if(t)return"coins."+t}}if(o.gas!=null&&o.hasOwnProperty("gas")){if(!Array.isArray(o.gas))return"gas: array expected";for(let f=0;f<o.gas.length;++f){let t=p.common.Coin.verify(o.gas[f]);if(t)return"gas."+t}}if(o.memo!=null&&o.hasOwnProperty("memo")){if(!u.isString(o.memo))return"memo: string expected"}return null},y.fromObject=function(o){if(o instanceof p.common.Tx)return o;let f=new p.common.Tx;if(o.id!=null)f.id=String(o.id);if(o.chain!=null)f.chain=String(o.chain);if(o.fromAddress!=null)f.fromAddress=String(o.fromAddress);if(o.toAddress!=null)f.toAddress=String(o.toAddress);if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".common.Tx.coins: array expected");f.coins=[];for(let t=0;t<o.coins.length;++t){if(typeof o.coins[t]!=="object")throw TypeError(".common.Tx.coins: object expected");f.coins[t]=p.common.Coin.fromObject(o.coins[t])}}if(o.gas){if(!Array.isArray(o.gas))throw TypeError(".common.Tx.gas: array expected");f.gas=[];for(let t=0;t<o.gas.length;++t){if(typeof o.gas[t]!=="object")throw TypeError(".common.Tx.gas: object expected");f.gas[t]=p.common.Coin.fromObject(o.gas[t])}}if(o.memo!=null)f.memo=String(o.memo);return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.arrays||f.defaults)t.coins=[],t.gas=[];if(f.defaults)t.id="",t.chain="",t.fromAddress="",t.toAddress="",t.memo="";if(o.id!=null&&o.hasOwnProperty("id"))t.id=o.id;if(o.chain!=null&&o.hasOwnProperty("chain"))t.chain=o.chain;if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress"))t.fromAddress=o.fromAddress;if(o.toAddress!=null&&o.hasOwnProperty("toAddress"))t.toAddress=o.toAddress;if(o.coins?.length){t.coins=[];for(let C=0;C<o.coins.length;++C)t.coins[C]=p.common.Coin.toObject(o.coins[C],f)}if(o.gas?.length){t.gas=[];for(let C=0;C<o.gas.length;++C)t.gas[C]=p.common.Coin.toObject(o.gas[C],f)}if(o.memo!=null&&o.hasOwnProperty("memo"))t.memo=o.memo;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,nn.util.toJSONOptions)},y})(),n.Fee=(()=>{function y(T){if(this.coins=[],T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.coins=u.emptyArray,y.prototype.poolDeduct="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.coins?.length)for(let t=0;t<o.coins.length;++t)p.common.Coin.encode(o.coins[t],f.uint32(10).fork()).ldelim();if(o.poolDeduct!=null&&Object.hasOwnProperty.call(o,"poolDeduct"))f.uint32(18).string(o.poolDeduct);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new p.common.Fee;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:if(!C.coins?.length)C.coins=[];C.coins.push(p.common.Coin.decode(o,o.uint32()));break;case 2:C.poolDeduct=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let t=p.common.Coin.verify(o.coins[f]);if(t)return"coins."+t}}if(o.poolDeduct!=null&&o.hasOwnProperty("poolDeduct")){if(!u.isString(o.poolDeduct))return"poolDeduct: string expected"}return null},y.fromObject=function(o){if(o instanceof p.common.Fee)return o;let f=new p.common.Fee;if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".common.Fee.coins: array expected");f.coins=[];for(let t=0;t<o.coins.length;++t){if(typeof o.coins[t]!=="object")throw TypeError(".common.Fee.coins: object expected");f.coins[t]=p.common.Coin.fromObject(o.coins[t])}}if(o.poolDeduct!=null)f.poolDeduct=String(o.poolDeduct);return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.arrays||f.defaults)t.coins=[];if(f.defaults)t.poolDeduct="";if(o.coins?.length){t.coins=[];for(let C=0;C<o.coins.length;++C)t.coins[C]=p.common.Coin.toObject(o.coins[C],f)}if(o.poolDeduct!=null&&o.hasOwnProperty("poolDeduct"))t.poolDeduct=o.poolDeduct;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,nn.util.toJSONOptions)},y})(),n.ProtoUint=(()=>{function y(T){if(T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.value="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.value!=null&&Object.hasOwnProperty.call(o,"value"))f.uint32(10).string(o.value);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new p.common.ProtoUint;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.value=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.value!=null&&o.hasOwnProperty("value")){if(!u.isString(o.value))return"value: string expected"}return null},y.fromObject=function(o){if(o instanceof p.common.ProtoUint)return o;let f=new p.common.ProtoUint;if(o.value!=null)f.value=String(o.value);return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.defaults)t.value="";if(o.value!=null&&o.hasOwnProperty("value"))t.value=o.value;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,nn.util.toJSONOptions)},y})(),n})();p.types=(()=>{let n={};return n.MsgDeposit=(()=>{function y(T){if(this.coins=[],T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.coins=u.emptyArray,y.prototype.memo="",y.prototype.signer=u.newBuffer([]),y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.coins?.length)for(let t=0;t<o.coins.length;++t)p.common.Coin.encode(o.coins[t],f.uint32(10).fork()).ldelim();if(o.memo!=null&&Object.hasOwnProperty.call(o,"memo"))f.uint32(18).string(o.memo);if(o.signer!=null&&Object.hasOwnProperty.call(o,"signer"))f.uint32(26).bytes(o.signer);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new p.types.MsgDeposit;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:if(!C.coins?.length)C.coins=[];C.coins.push(p.common.Coin.decode(o,o.uint32()));break;case 2:C.memo=o.string();break;case 3:C.signer=o.bytes();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let t=p.common.Coin.verify(o.coins[f]);if(t)return"coins."+t}}if(o.memo!=null&&o.hasOwnProperty("memo")){if(!u.isString(o.memo))return"memo: string expected"}if(o.signer!=null&&o.hasOwnProperty("signer")){if(!(o.signer&&typeof o.signer.length==="number"||u.isString(o.signer)))return"signer: buffer expected"}return null},y.fromObject=function(o){if(o instanceof p.types.MsgDeposit)return o;let f=new p.types.MsgDeposit;if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".types.MsgDeposit.coins: array expected");f.coins=[];for(let t=0;t<o.coins.length;++t){if(typeof o.coins[t]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");f.coins[t]=p.common.Coin.fromObject(o.coins[t])}}if(o.memo!=null)f.memo=String(o.memo);if(o.signer!=null){if(typeof o.signer==="string")u.base64.decode(o.signer,f.signer=u.newBuffer(u.base64.length(o.signer)),0);else if(o.signer.length)f.signer=o.signer}return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.arrays||f.defaults)t.coins=[];if(f.defaults){if(t.memo="",f.bytes===String)t.signer="";else if(t.signer=[],f.bytes!==Array)t.signer=u.newBuffer(t.signer)}if(o.coins?.length){t.coins=[];for(let C=0;C<o.coins.length;++C)t.coins[C]=p.common.Coin.toObject(o.coins[C],f)}if(o.memo!=null&&o.hasOwnProperty("memo"))t.memo=o.memo;if(o.signer!=null&&o.hasOwnProperty("signer"))t.signer=f.bytes===String?u.base64.encode(o.signer,0,o.signer.length):f.bytes===Array?Array.prototype.slice.call(o.signer):o.signer;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,nn.util.toJSONOptions)},y})(),n.MsgSend=(()=>{function y(T){if(this.amount=[],T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.fromAddress=u.newBuffer([]),y.prototype.toAddress=u.newBuffer([]),y.prototype.amount=u.emptyArray,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.fromAddress!=null&&Object.hasOwnProperty.call(o,"fromAddress"))f.uint32(10).bytes(o.fromAddress);if(o.toAddress!=null&&Object.hasOwnProperty.call(o,"toAddress"))f.uint32(18).bytes(o.toAddress);if(o.amount?.length)for(let t=0;t<o.amount.length;++t)p.cosmos.base.v1beta1.Coin.encode(o.amount[t],f.uint32(26).fork()).ldelim();return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new p.types.MsgSend;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.fromAddress=o.bytes();break;case 2:C.toAddress=o.bytes();break;case 3:if(!C.amount?.length)C.amount=[];C.amount.push(p.cosmos.base.v1beta1.Coin.decode(o,o.uint32()));break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress")){if(!(o.fromAddress&&typeof o.fromAddress.length==="number"||u.isString(o.fromAddress)))return"fromAddress: buffer expected"}if(o.toAddress!=null&&o.hasOwnProperty("toAddress")){if(!(o.toAddress&&typeof o.toAddress.length==="number"||u.isString(o.toAddress)))return"toAddress: buffer expected"}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!Array.isArray(o.amount))return"amount: array expected";for(let f=0;f<o.amount.length;++f){let t=p.cosmos.base.v1beta1.Coin.verify(o.amount[f]);if(t)return"amount."+t}}return null},y.fromObject=function(o){if(o instanceof p.types.MsgSend)return o;let f=new p.types.MsgSend;if(o.fromAddress!=null){if(typeof o.fromAddress==="string")u.base64.decode(o.fromAddress,f.fromAddress=u.newBuffer(u.base64.length(o.fromAddress)),0);else if(o.fromAddress.length)f.fromAddress=o.fromAddress}if(o.toAddress!=null){if(typeof o.toAddress==="string")u.base64.decode(o.toAddress,f.toAddress=u.newBuffer(u.base64.length(o.toAddress)),0);else if(o.toAddress.length)f.toAddress=o.toAddress}if(o.amount){if(!Array.isArray(o.amount))throw TypeError(".types.MsgSend.amount: array expected");f.amount=[];for(let t=0;t<o.amount.length;++t){if(typeof o.amount[t]!=="object")throw TypeError(".types.MsgSend.amount: object expected");f.amount[t]=p.cosmos.base.v1beta1.Coin.fromObject(o.amount[t])}}return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.arrays||f.defaults)t.amount=[];if(f.defaults){if(f.bytes===String)t.fromAddress="";else if(t.fromAddress=[],f.bytes!==Array)t.fromAddress=u.newBuffer(t.fromAddress);if(f.bytes===String)t.toAddress="";else if(t.toAddress=[],f.bytes!==Array)t.toAddress=u.newBuffer(t.toAddress)}if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress"))t.fromAddress=f.bytes===String?u.base64.encode(o.fromAddress,0,o.fromAddress.length):f.bytes===Array?Array.prototype.slice.call(o.fromAddress):o.fromAddress;if(o.toAddress!=null&&o.hasOwnProperty("toAddress"))t.toAddress=f.bytes===String?u.base64.encode(o.toAddress,0,o.toAddress.length):f.bytes===Array?Array.prototype.slice.call(o.toAddress):o.toAddress;if(o.amount?.length){t.amount=[];for(let C=0;C<o.amount.length;++C)t.amount[C]=p.cosmos.base.v1beta1.Coin.toObject(o.amount[C],f)}return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,nn.util.toJSONOptions)},y})(),n})();p.cosmos=(()=>{let n={};return n.base=(()=>{let y={};return y.v1beta1=(()=>{let T={};return T.Coin=(()=>{function o(f){if(f){for(let t=Object.keys(f),C=0;C<t.length;++C)if(f[t[C]]!=null)this[t[C]]=f[t[C]]}}return o.prototype.denom="",o.prototype.amount="",o.create=function(t){return new o(t)},o.encode=function(t,C){if(!C)C=Mn.create();if(t.denom!=null&&Object.hasOwnProperty.call(t,"denom"))C.uint32(10).string(t.denom);if(t.amount!=null&&Object.hasOwnProperty.call(t,"amount"))C.uint32(18).string(t.amount);return C},o.encodeDelimited=function(t,C){return this.encode(t,C).ldelim()},o.decode=function(t,C){if(!(t instanceof P))t=P.create(t);let H=C===void 0?t.len:t.pos+C,_=new p.cosmos.base.v1beta1.Coin;while(t.pos<H){let A=t.uint32();switch(A>>>3){case 1:_.denom=t.string();break;case 2:_.amount=t.string();break;default:t.skipType(A&7);break}}return _},o.decodeDelimited=function(t){if(!(t instanceof P))t=new P(t);return this.decode(t,t.uint32())},o.verify=function(t){if(typeof t!=="object"||t===null)return"object expected";if(t.denom!=null&&t.hasOwnProperty("denom")){if(!u.isString(t.denom))return"denom: string expected"}if(t.amount!=null&&t.hasOwnProperty("amount")){if(!u.isString(t.amount))return"amount: string expected"}return null},o.fromObject=function(t){if(t instanceof p.cosmos.base.v1beta1.Coin)return t;let C=new p.cosmos.base.v1beta1.Coin;if(t.denom!=null)C.denom=String(t.denom);if(t.amount!=null)C.amount=String(t.amount);return C},o.toObject=function(t,C){if(!C)C={};let H={};if(C.defaults)H.denom="",H.amount="";if(t.denom!=null&&t.hasOwnProperty("denom"))H.denom=t.denom;if(t.amount!=null&&t.hasOwnProperty("amount"))H.amount=t.amount;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,nn.util.toJSONOptions)},o})(),T.DecCoin=(()=>{function o(f){if(f){for(let t=Object.keys(f),C=0;C<t.length;++C)if(f[t[C]]!=null)this[t[C]]=f[t[C]]}}return o.prototype.denom="",o.prototype.amount="",o.create=function(t){return new o(t)},o.encode=function(t,C){if(!C)C=Mn.create();if(t.denom!=null&&Object.hasOwnProperty.call(t,"denom"))C.uint32(10).string(t.denom);if(t.amount!=null&&Object.hasOwnProperty.call(t,"amount"))C.uint32(18).string(t.amount);return C},o.encodeDelimited=function(t,C){return this.encode(t,C).ldelim()},o.decode=function(t,C){if(!(t instanceof P))t=P.create(t);let H=C===void 0?t.len:t.pos+C,_=new p.cosmos.base.v1beta1.DecCoin;while(t.pos<H){let A=t.uint32();switch(A>>>3){case 1:_.denom=t.string();break;case 2:_.amount=t.string();break;default:t.skipType(A&7);break}}return _},o.decodeDelimited=function(t){if(!(t instanceof P))t=new P(t);return this.decode(t,t.uint32())},o.verify=function(t){if(typeof t!=="object"||t===null)return"object expected";if(t.denom!=null&&t.hasOwnProperty("denom")){if(!u.isString(t.denom))return"denom: string expected"}if(t.amount!=null&&t.hasOwnProperty("amount")){if(!u.isString(t.amount))return"amount: string expected"}return null},o.fromObject=function(t){if(t instanceof p.cosmos.base.v1beta1.DecCoin)return t;let C=new p.cosmos.base.v1beta1.DecCoin;if(t.denom!=null)C.denom=String(t.denom);if(t.amount!=null)C.amount=String(t.amount);return C},o.toObject=function(t,C){if(!C)C={};let H={};if(C.defaults)H.denom="",H.amount="";if(t.denom!=null&&t.hasOwnProperty("denom"))H.denom=t.denom;if(t.amount!=null&&t.hasOwnProperty("amount"))H.amount=t.amount;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,nn.util.toJSONOptions)},o})(),T.IntProto=(()=>{function o(f){if(f){for(let t=Object.keys(f),C=0;C<t.length;++C)if(f[t[C]]!=null)this[t[C]]=f[t[C]]}}return o.prototype.int="",o.create=function(t){return new o(t)},o.encode=function(t,C){if(!C)C=Mn.create();if(t.int!=null&&Object.hasOwnProperty.call(t,"int"))C.uint32(10).string(t.int);return C},o.encodeDelimited=function(t,C){return this.encode(t,C).ldelim()},o.decode=function(t,C){if(!(t instanceof P))t=P.create(t);let H=C===void 0?t.len:t.pos+C,_=new p.cosmos.base.v1beta1.IntProto;while(t.pos<H){let A=t.uint32();switch(A>>>3){case 1:_.int=t.string();break;default:t.skipType(A&7);break}}return _},o.decodeDelimited=function(t){if(!(t instanceof P))t=new P(t);return this.decode(t,t.uint32())},o.verify=function(t){if(typeof t!=="object"||t===null)return"object expected";if(t.int!=null&&t.hasOwnProperty("int")){if(!u.isString(t.int))return"int: string expected"}return null},o.fromObject=function(t){if(t instanceof p.cosmos.base.v1beta1.IntProto)return t;let C=new p.cosmos.base.v1beta1.IntProto;if(t.int!=null)C.int=String(t.int);return C},o.toObject=function(t,C){if(!C)C={};let H={};if(C.defaults)H.int="";if(t.int!=null&&t.hasOwnProperty("int"))H.int=t.int;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,nn.util.toJSONOptions)},o})(),T.DecProto=(()=>{function o(f){if(f){for(let t=Object.keys(f),C=0;C<t.length;++C)if(f[t[C]]!=null)this[t[C]]=f[t[C]]}}return o.prototype.dec="",o.create=function(t){return new o(t)},o.encode=function(t,C){if(!C)C=Mn.create();if(t.dec!=null&&Object.hasOwnProperty.call(t,"dec"))C.uint32(10).string(t.dec);return C},o.encodeDelimited=function(t,C){return this.encode(t,C).ldelim()},o.decode=function(t,C){if(!(t instanceof P))t=P.create(t);let H=C===void 0?t.len:t.pos+C,_=new p.cosmos.base.v1beta1.DecProto;while(t.pos<H){let A=t.uint32();switch(A>>>3){case 1:_.dec=t.string();break;default:t.skipType(A&7);break}}return _},o.decodeDelimited=function(t){if(!(t instanceof P))t=new P(t);return this.decode(t,t.uint32())},o.verify=function(t){if(typeof t!=="object"||t===null)return"object expected";if(t.dec!=null&&t.hasOwnProperty("dec")){if(!u.isString(t.dec))return"dec: string expected"}return null},o.fromObject=function(t){if(t instanceof p.cosmos.base.v1beta1.DecProto)return t;let C=new p.cosmos.base.v1beta1.DecProto;if(t.dec!=null)C.dec=String(t.dec);return C},o.toObject=function(t,C){if(!C)C={};let H={};if(C.defaults)H.dec="";if(t.dec!=null&&t.hasOwnProperty("dec"))H.dec=t.dec;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,nn.util.toJSONOptions)},o})(),T})(),y})(),n})()});import{Chain as $A}from"@swapkit/helpers";async function Wo(){let{$root:n}=await Promise.resolve().then(() => (zC(),NC)),y=await import("@cosmjs/proto-signing"),T=y.Registry??y.default?.Registry,o=await import("@cosmjs/stargate"),f=o.defaultRegistryTypes??o.default?.defaultRegistryTypes;return new T([...f,["/types.MsgSend",n.types.MsgSend],["/types.MsgDeposit",n.types.MsgDeposit]])}async function an(n){let y=await import("@cosmjs/stargate"),T=y.AminoTypes??y.default?.AminoTypes,o=n===$A.THORChain?"thorchain":"mayachain";return new T({"/types.MsgDeposit":{aminoType:`${o}/MsgDeposit`,fromAmino:({signer:f,...t})=>({...t,signer:Gy(f)}),toAmino:({signer:f,...t})=>({...t,signer:ly(f)})},"/types.MsgSend":{aminoType:`${o}/MsgSend`,fromAmino:({from_address:f,to_address:t,...C})=>({...C,fromAddress:Gy(f),toAddress:Gy(t)}),toAmino:({fromAddress:f,toAddress:t,...C})=>({...C,from_address:ly(f),to_address:ly(t)})}})}var dT=k(()=>{cT()});import{AssetValue as EA,Chain as Xf,getChainConfig as DC,getRPCUrl as OC,SwapKitError as bA}from"@swapkit/helpers";function eT(n){let{assetValue:y,recipient:T,memo:o,sender:f,asSignable:t,asAminoMessage:C}=n;if(T)return xC({asAminoMessage:C,asSignable:t,assetValue:y,memo:o,recipient:T,sender:f});return FC({asAminoMessage:C,asSignable:t,assetValue:y,memo:o,sender:f})}async function xC({sender:n,recipient:y,assetValue:T,memo:o="",asSignable:f=!0,asAminoMessage:t=!1,sequence:C,accountNumber:H}){let _=T.chain,A=await OC(_),X=await RC({rpcUrl:A,sender:n}),{chainId:M}=DC(_),l=aT({assetValue:T,recipient:y,sender:n}),w=f?await sn(t?l:en(l),_):l;return{accountNumber:H||X.accountNumber,chainId:M,fee:bn(_),memo:o,msgs:[w],sequence:C||X.sequence}}async function FC({sender:n,assetValue:y,memo:T="",asSignable:o=!0,asAminoMessage:f=!1,sequence:t,accountNumber:C}){let H=y.chain,_=await OC(H),A=await RC({rpcUrl:_,sender:n}),{chainId:X}=DC(H),M=sT({assetValue:y,memo:T,sender:n}),l=o?await sn(f?M:en(M),H):M;return{accountNumber:C||A.accountNumber,chainId:X,fee:bn(H),memo:T,msgs:[l],sequence:t||A.sequence}}function en(n){if(n.type==="thorchain/MsgSend"||n.type==="mayachain/MsgSend")return n;return{...n,value:{...n.value,coins:n.value.coins.map((y)=>{let T=EA.from({asset:y.asset}),o=(T.isSynthetic?T.symbol.split("/")?.[1]:T.symbol)?.toUpperCase(),f=(T.isSynthetic?T.symbol.split("/")?.[0]:T.chain)?.toUpperCase();return{...y,asset:{chain:f,symbol:o,synth:T.isSynthetic,ticker:T.ticker}}})}}}async function By({chain:n,memo:y,msgs:T}){let o=await Wo(),f=await an(n),t={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:y,messages:T.map((C)=>f.fromAmino(C))}};return o.encode(t)}var vA,VA,aT=({sender:n,recipient:y,assetValue:T})=>{return{type:`${T.chain===Xf.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:T.getBaseValue("string"),denom:dn(T.symbol,!0)}],from_address:n,to_address:y}}},sT=({sender:n,assetValue:y,memo:T=""})=>{return{type:`${y.chain===Xf.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:y.getBaseValue("string"),asset:Xy(y)}],memo:T,signer:n}}},Wf=({sender:n,recipient:y,assetValue:T,memo:o})=>{return!y?sT({assetValue:T,memo:o,sender:n}):aT({assetValue:T,recipient:y,sender:n})},sn=async(n,y)=>{return(await an(y)).fromAmino(n)},RC=async({rpcUrl:n,sender:y})=>{let o=await(await vn(n)).getAccount(y);if(!o)throw new bA("toolbox_cosmos_account_not_found",{sender:y});return o};var SC=k(()=>{Wy();dT();vA=bn(Xf.THORChain).gas,VA=bn(Xf.Maya).gas});var pC=()=>{};var kC=k(()=>{pC()});var nt=k(()=>{cT();SC();dT();kC()});import{stringToPath as KA}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as jA}from"@cosmjs/proto-signing";import{base64 as ft,bech32 as ot}from"@scure/base";import{AssetValue as Tt,applyFeeMultiplier as uC,Chain as fn,CosmosChainPrefixes as vC,DerivationPath as cA,derivationPathToString as PC,FeeOption as tt,getChainConfig as iA,getRPCUrl as My,NetworkDerivationPath as hA,SwapKitError as po,SwapKitNumber as yt,updateDerivationPath as mA}from"@swapkit/helpers";import{SwapKitApi as VC}from"@swapkit/helpers/api";import{match as rA,P as IC}from"ts-pattern";async function Ht(n,y){try{let o=(await VC.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}async function Ct({phrase:n,prefix:y,...T}){let o="derivationPath"in T?T.derivationPath:`${cA[T.chain]}/${T.index}`;return await jA.fromMnemonic(n,{hdPaths:[KA(o)],prefix:y})}async function gA({privateKey:n,prefix:y}){let T=await import("@cosmjs/proto-signing");return(T.DirectSecp256k1Wallet??T.default?.DirectSecp256k1Wallet).fromKey(n,y)}function KC(n){return async function({signature:T,message:o,address:f}){let t=await n(f);if(!t?.pubkey)throw new po("toolbox_cosmos_verify_signature_no_pubkey");let C=await import("@cosmjs/crypto"),H=C.Secp256k1Signature??C.default?.Secp256k1Signature,_=C.Secp256k1??C.default?.Secp256k1,A=H.fromFixedLength(ft.decode(T));return _.verifySignature(A,ft.decode(o),t.pubkey.value)}}function Ly({chain:n,...y}){let T=vC[n],o="index"in y?y.index||0:0,f=PC("derivationPath"in y&&y.derivationPath?y.derivationPath:mA(hA[n],{index:o})),t;async function C(){if(t)return t;return t=await rA(y).with({phrase:IC.string},({phrase:w})=>Ct({derivationPath:f,phrase:w,prefix:T})).with({signer:IC.any},({signer:w})=>w).otherwise(()=>{return}),t}async function H(w){let q=await My(n);return(await vn(q)).getAccount(w)}async function _(){let w=await C(),[q]=await w?.getAccounts()||[];return q?.address}async function A(){let w=await C(),[q]=await w?.getAccounts()||[];if(!q?.pubkey)throw new po("toolbox_cosmos_signer_not_defined");return ft.encode(q?.pubkey)}async function X(w){let q=await C(),G=await _(),Q=await My(n);if(!(q&&G))throw new po("toolbox_cosmos_signer_not_defined");return await(await Xo(Q,q)).sign(G,w.msgs,w.fee,w.memo,{accountNumber:w.accountNumber,chainId:w.chainId,sequence:w.sequence})}async function M(w){let q=await C(),G=await _(),Q=await My(n);if(!(q&&G))throw new po("toolbox_cosmos_signer_not_defined");let L=await(await Xo(Q,q)).signAndBroadcast(G,w.msgs,w.fee,w.memo);if(L.code!==0)throw new po("core_swap_transaction_error",{code:L.code,message:L.rawLog});return L.transactionHash}async function l({recipient:w,assetValue:q,memo:G="",feeRate:Q,feeOptionKey:z=tt.Fast}){let L=await C(),Y=await _();if(!(L&&Y))throw new po("toolbox_cosmos_signer_not_defined");let Z=await My(n),U=Tt.from({chain:n}),B=Xy(U),J=Q||sA((await EC(n,$C[n]))[z],B),D=await Xo(Z,L),R=dn(q.symbol),W=[{amount:q.getBaseValue("string"),denom:R}],{transactionHash:N}=await D.sendTokens(Y,w,W,J,G);return N}return{createPrivateKeyFromPhrase:n5(f),createTransaction:rT,fetchFeeRateFromSwapKit:Ht,getAccount:H,getAddress:_,getBalance:async(w,q)=>{let G=await bC(n)(w),Q=await Promise.all(G.filter(({denom:z})=>z&&!z.includes("IBC/")&&!([fn.THORChain,fn.Maya].includes(n)&&z.split("-").length>2)).map(({denom:z,amount:L})=>{let Y=[fn.THORChain,fn.Maya].includes(n)&&(z.includes("/")||z.includes("˜"))?`${n}.${z}`:z;return gT(Y,L)}));if(Q.length===0)return[Tt.from({chain:n})];return Q},getBalanceAsDenoms:bC(n),getFees:()=>EC(n,$C[n]),getPubKey:A,getSignerFromPhrase:({phrase:w,derivationPath:q})=>Ct({derivationPath:PC(q),index:o,phrase:w,prefix:T}),getSignerFromPrivateKey:async(w)=>{let q=await import("@cosmjs/proto-signing");return(q.DirectSecp256k1Wallet??q.default?.DirectSecp256k1Wallet).fromKey(w,T)},signAndBroadcastTransaction:M,signTransaction:X,transfer:l,validateAddress:jC(n),verifySignature:KC(H)}}async function dA(n,y){try{let o=(await VC.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}function aA({assetValue:{chain:n}}){return Tt.from({chain:n,value:eA(n)})}async function EC(n,y){let{chainId:T,baseDecimal:o}=iA(n),f=await Ht(T,y);return{average:yt.fromBigInt(BigInt(f),o),fast:yt.fromBigInt(BigInt(uC(f,tt.Fast,!0)),o),fastest:yt.fromBigInt(BigInt(uC(f,tt.Fastest,!0)),o)}}function sA(n,y){return{amount:[{amount:n.getBaseValue("string"),denom:y}],gas:"200000"}}function eA(n){return{[fn.Cosmos]:0.007,[fn.Kujira]:0.02,[fn.Noble]:0.01,[fn.THORChain]:0.02,[fn.Maya]:0.02,[fn.Harbor]:0.02}[n]||0}function jC(n){let y=vC[n];return function(o){if(!o.startsWith(y))return!1;try{let{prefix:f,words:t}=ot.decode(o);return ot.encode(f,t)===o.toLocaleLowerCase()}catch{return!1}}}function bC(n){return async function(T){let o=await My(n);return(await(await vn(o)).getAllBalances(T)).map((H)=>({...H,denom:H.denom.includes("/")?H.denom.toUpperCase():H.denom}))}}function n5(n){return async function(T){let o=await import("@cosmjs/crypto"),f=o.stringToPath??o.default?.stringToPath,t=o.Slip10Curve??o.default?.Slip10Curve,C=o.Slip10??o.default?.Slip10,H=o.EnglishMnemonic??o.default?.EnglishMnemonic,_=o.Bip39??o.default?.Bip39,A=new H(T),X=await _.mnemonicToSeed(A),{privkey:M}=C.derivePath(t.Secp256k1,X,f(n));return M}}var $C;var Bf=k(()=>{Wy();$C={[fn.Cosmos]:1000,[fn.Kujira]:1000,[fn.Noble]:1000,[fn.THORChain]:5000000,[fn.Maya]:5000000,[fn.Harbor]:5000000}});import{base64 as Bo}from"@scure/base";import{Chain as o5,CosmosChainPrefixes as y5,derivationPathToString as f5,FeeOption as _t,getChainConfig as T5,getRPCUrl as rC,NetworkDerivationPath as t5,RequestClient as C5,SKConfig as cC,SwapKitError as ko,SwapKitNumber as iC,updateDerivationPath as H5}from"@swapkit/helpers";import{match as hC,P as mC}from"ts-pattern";function _5({prefix:n,derivationPath:y}){return async function(o,f=0){let t=await import("@cosmjs/amino"),C=t.Secp256k1HdWallet??t.default?.Secp256k1HdWallet,H=await import("@cosmjs/crypto"),_=H.stringToPath??H.default?.stringToPath;return C.fromMnemonic(o,{hdPaths:[_(`${y}/${f}`)],prefix:n})}}function A5(n){return Bo.encode(n)}function U5(n){return async function({wallet:T,tx:o}){let{msgs:f,accountNumber:t,sequence:C,chainId:H,fee:_,memo:A}=typeof o==="string"?JSON.parse(o):o,X=(await T.getAccounts())?.[0]?.address||"",M=await an(n),l=await Wo(),w=await mT(T,{aminoTypes:M,registry:l}),q=[];for(let z of f){let L=await sn(z,n);q.push(L)}let{signatures:[G]}=await w.sign(X,q,_,A,{accountNumber:t,chainId:H,sequence:C});return{bodyBytes:await By({chain:n,memo:A,msgs:f.map(en)}),signature:A5(G)}}}function w5({prefix:n,chain:y}){return async function(o,f,t,C,H){let _=await rC(y),{encodeSecp256k1Pubkey:A,pubkeyToAddress:X}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:M}=(await import("@cosmjs/stargate")).default,{sequence:l,fee:w}=JSON.parse(o),q=await gC(t,C),G=f.map((L)=>[X(A(Bo.decode(L.pubKey)),n),Bo.decode(L.signature)]),Q=await vn(_),{transactionHash:z}=await Q.broadcastTx(M(q,l,w,H,new Map(G)));return z}}async function gC(n,y,T=!0){let{createMultisigThresholdPubkey:o,encodeSecp256k1Pubkey:f}=(await import("@cosmjs/amino")).default;return o(n.map((t)=>f(Bo.decode(t))),y,T)}function q5(n){return Bo.decode(n)}async function G5({privateKey:n,message:y}){let{Secp256k1:T}=(await import("@cosmjs/crypto")).default,o=await T.createSignature(Bo.decode(y),n);return Bo.encode(Buffer.concat([o.r(32),o.s(32)]))}function At({chain:n,...y}){let{isStagenet:T}=cC.get("envs"),o=cC.get("thornodeUrls"),f=n===o5.Maya,t=hC({isMayachain:f,isStagenet:T}).with({isMayachain:!0},({isStagenet:L})=>L?o.MAYA_STAGENET:o.MAYA).otherwise(({isStagenet:L})=>L?o.THOR_STAGENET:o.THOR),C=`${T?"s":""}${y5[n]}`,H="index"in y?y.index||0:0,_="derivationPath"in y&&y.derivationPath?y.derivationPath:H5(t5[n],{index:H}),A=Ly({chain:n,...y}),X=bn(n),M;function l(){return M??=hC(y).with({phrase:mC.string},({phrase:L})=>A.getSignerFromPhrase({derivationPath:_,phrase:L})).with({signer:mC.any},({signer:L})=>Promise.resolve(L)).otherwise(()=>Promise.resolve(void 0)),M}async function w(){let L=await rC(n),Y=await l();if(!Y)throw new ko("toolbox_cosmos_no_signer");let Z=await Wo(),U=await an(n),B=await Xo(L,Y,{aminoTypes:U,registry:Z});return{signer:Y,signingClient:B}}async function q({fee:L,memo:Y,msgs:Z}){let{signer:U,signingClient:B}=await w(),J=(await U.getAccounts())?.[0]?.address;if(!J)throw new ko("toolbox_cosmos_signer_not_defined");let D=await B.signAndBroadcast(J,Z,L,Y);if(D.code!==0)throw new ko("core_swap_transaction_error",{code:D.code,message:D.rawLog});return D.transactionHash}async function G(){let L,Y=`${t}/${f?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:Z}}=await C5.get(Y);if(!Z||Number.isNaN(Z)||Z<0)throw new ko("toolbox_cosmos_invalid_fee",{nativeFee:Z.toString()});L=new iC(Z)}catch{L=new iC({decimal:T5(n).baseDecimal,value:f?1:0.02})}return{[_t.Average]:L,[_t.Fast]:L,[_t.Fastest]:L}}async function Q({assetValue:L,memo:Y="",recipient:Z}){let{TxRaw:U}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:B,signingClient:J}=await w(),D=(await B.getAccounts())?.[0]?.address;if(!D)throw new ko("toolbox_cosmos_no_signer");let R="signAmino"in B,W=Wf({assetValue:L,memo:Y,recipient:Z,sender:D});if(R){let x=await sn(W,n),{signatures:S,authInfoBytes:I}=await J.sign(D,[x],X,Y),E=U.encode({authInfoBytes:I,bodyBytes:await By({chain:n,memo:Y,msgs:[W].map(en)}),signatures:S}).finish();return(await J.broadcastTx(E)).transactionHash}let N=en(W),O=await sn(N,n);return q({fee:X,memo:Y,msgs:[O]})}async function z(L){let{signer:Y,signingClient:Z}=await w(),U=(await Y.getAccounts())?.[0]?.address;if(!U)throw new ko("toolbox_cosmos_signer_not_defined");return Z.sign(U,L.msgs,L.fee,L.memo,{accountNumber:L.accountNumber,chainId:L.chainId,sequence:L.sequence})}return{...A,broadcastMultisigTx:w5({chain:n,prefix:C}),buildAminoMsg:Wf,buildEncodedTxBody:By,convertToSignable:sn,createDefaultAminoTypes:()=>an(n),createDefaultRegistry:Wo,createMultisig:gC,createTransaction:eT,deposit:Q,getFees:G,importSignature:q5,parseAminoMessageForDirectSigning:en,pubkeyToAddress:async(L)=>{let{pubkeyToAddress:Y}=(await import("@cosmjs/amino")).default;return Y(L,C)},secp256k1HdWalletFromMnemonic:_5({derivationPath:f5(_),prefix:C}),signAndBroadcastTransaction:q,signMultisigTx:U5(n),signTransaction:z,signWithPrivateKey:G5,transfer:Q}}var Ut=k(()=>{nt();Wy();Bf()});import{Chain as Qy,SwapKitError as l5}from"@swapkit/helpers";var X5=(n,y)=>{switch(n){case Qy.Cosmos:case Qy.Kujira:case Qy.Noble:return Ly({chain:n,...y});case Qy.Maya:case Qy.THORChain:return At({chain:n,...y});default:throw new l5("toolbox_cosmos_not_supported",{chain:n})}};var dC=k(()=>{Bf();Ut();Bf();Ut()});var Mf={};e(Mf,{verifySignature:()=>KC,transferMsgAmino:()=>aT,toBase64:()=>pA,parseAminoMessageForDirectSigning:()=>en,getSignerFromPrivateKey:()=>gA,getSignerFromPhrase:()=>Ct,getMsgSendDenom:()=>dn,getFeeRateFromSwapKit:()=>dA,getDenomWithChain:()=>Xy,getDefaultChainFee:()=>bn,getCosmosToolbox:()=>X5,getCosmosAddressValidator:()=>jC,getAssetFromDenom:()=>gT,fromBase64:()=>kA,fetchFeeRateFromSwapKit:()=>Ht,estimateTransactionFee:()=>aA,depositMsgAmino:()=>sT,createTransaction:()=>eT,createThorchainToolbox:()=>At,createStargateClient:()=>vn,createSigningStargateClient:()=>Xo,createOfflineStargateClient:()=>mT,createDefaultRegistry:()=>Wo,createDefaultAminoTypes:()=>an,createCosmosToolbox:()=>Ly,cosmosCreateTransaction:()=>rT,convertToSignable:()=>sn,buildTransferTx:()=>xC,buildEncodedTxBody:()=>By,buildDepositTx:()=>FC,buildAminoMsg:()=>Wf,bech32ToBase64:()=>Gy,base64ToBech32:()=>ly,YUM_KUJIRA_FACTORY_DENOM:()=>QC,USK_KUJIRA_FACTORY_DENOM:()=>hT,THORCHAIN_GAS_VALUE:()=>vA,MAYA_GAS_VALUE:()=>VA,DEFAULT_NOBLE_FEE_MAINNET:()=>YC,DEFAULT_KUJI_FEE_MAINNET:()=>JC,DEFAULT_COSMOS_FEE_MAINNET:()=>ZC});var Lf=k(()=>{nt();dC();Wy()});function W5({builder:n,grouping:y="na",orders:T}){return{builder:n,grouping:y,orders:T,type:"order"}}function B5({cancels:n}){return{cancels:n,type:"cancel"}}function M5({cancels:n}){return{cancels:n,type:"cancelByCloid"}}function L5({oid:n,order:y}){return{oid:n,order:y,type:"modify"}}function Q5({modifies:n}){return{modifies:n,type:"batchModify"}}function Z5({asset:n,isCross:y,leverage:T}){return{asset:n,isCross:y,leverage:T,type:"updateLeverage"}}function J5({asset:n,isBuy:y,ntli:T}){return{asset:n,isBuy:y,ntli:T,type:"updateIsolatedMargin"}}function Y5({asset:n,leverage:y}){return{asset:n,leverage:y,type:"topUpIsolatedOnlyMargin"}}function N5({time:n}){return{time:n,type:"scheduleCancel"}}function z5({amount:n,hyperliquidChain:y,nonce:T,signatureChainId:o,toPerp:f}){return{amount:n,hyperliquidChain:y,nonce:T,signatureChainId:o,toPerp:f,type:"usdClassTransfer"}}function D5({amount:n,destination:y,destinationDex:T,fromSubAccount:o,hyperliquidChain:f,nonce:t,signatureChainId:C,sourceDex:H,token:_}){return{amount:n,destination:y,destinationDex:T,fromSubAccount:o,hyperliquidChain:f,nonce:t,signatureChainId:C,sourceDex:H,token:_,type:"sendAsset"}}function O5({agentAddress:n,agentName:y,hyperliquidChain:T,nonce:o,signatureChainId:f}){return{agentAddress:n,agentName:y,hyperliquidChain:T,nonce:o,signatureChainId:f,type:"approveAgent"}}function R5({builder:n,hyperliquidChain:y,maxFeeRate:T,nonce:o,signatureChainId:f}){return{builder:n,hyperliquidChain:y,maxFeeRate:T,nonce:o,signatureChainId:f,type:"approveBuilderFee"}}function x5({hyperliquidChain:n,isUndelegate:y,nonce:T,signatureChainId:o,validator:f,wei:t}){return{hyperliquidChain:n,isUndelegate:y,nonce:T,signatureChainId:o,type:"tokenDelegate",validator:f,wei:t}}import{SwapKitError as wt}from"@swapkit/helpers";import{keccak256 as F5,Signature as S5}from"ethers";function Gn(...n){let y=n.reduce((f,t)=>f+t.length,0),T=new Uint8Array(y),o=0;for(let f of n)T.set(f,o),o+=f.length;return T}function $5(n,y,T){if(T<y)return new Uint8Array([n+T]);if(T<=255)return new Uint8Array([n+y,T]);if(T<=65535)return new Uint8Array([n+y+1,T>>8,T&255]);return new Uint8Array([n+y+2,T>>>24&255,T>>>16&255,T>>>8&255,T&255])}function no(n,y){let T=new Uint8Array(y),o=n;for(let f=y-1;f>=0;f-=1)T[f]=Number(o&0xffn),o>>=8n;return T}function aC(n){if(n>=0n){if(n<=0x7fn)return new Uint8Array([Number(n)]);if(n<=0xffn)return new Uint8Array([204,Number(n)]);if(n<=0xffffn)return Gn(new Uint8Array([205]),no(n,2));if(n<=0xffffffffn)return Gn(new Uint8Array([206]),no(n,4));return Gn(new Uint8Array([207]),no(n,8))}if(n>=-32n)return new Uint8Array([256+Number(n)]);if(n>=-128n)return new Uint8Array([208,256+Number(n)]);if(n>=-32768n)return Gn(new Uint8Array([209]),no(BigInt.asUintN(16,n),2));if(n>=-2147483648n)return Gn(new Uint8Array([210]),no(BigInt.asUintN(32,n),4));return Gn(new Uint8Array([211]),no(BigInt.asUintN(64,n),8))}function n1(n){let y=I5.encode(n);if(y.length<32)return Gn(new Uint8Array([160+y.length]),y);return Gn($5(217,0,y.length),y)}function E5(n){let y=n.map((o)=>qt(o)),T=n.length<16?new Uint8Array([144+n.length]):n.length<=65535?new Uint8Array([220,n.length>>8,n.length&255]):new Uint8Array([221,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return Gn(T,...y)}function b5(n){let y=Object.entries(n).filter(([,o])=>typeof o<"u"),T=y.length<16?new Uint8Array([128+y.length]):y.length<=65535?new Uint8Array([222,y.length>>8,y.length&255]):new Uint8Array([223,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Gn(T,...y.flatMap(([o,f])=>[n1(o),qt(f)]))}function qt(n){if(n===null)return new Uint8Array([192]);if(typeof n==="boolean")return new Uint8Array([n?195:194]);if(typeof n==="string")return n1(n);if(typeof n==="number"){if(!Number.isFinite(n)||!Number.isInteger(n))throw new wt("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return aC(BigInt(n))}if(typeof n==="bigint")return aC(n);if(n instanceof Uint8Array){let y=n.length<=255?new Uint8Array([196,n.length]):n.length<=65535?new Uint8Array([197,n.length>>8,n.length&255]):new Uint8Array([198,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return Gn(y,n)}if(Array.isArray(n))return E5(n);if(typeof n==="object")return b5(n);throw new wt("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(n)}`})}function v5(n){let y=n.startsWith("0x")?n.slice(2):n;if(y.length%2!==0||/[^a-fA-F0-9]/u.test(y))throw new wt("helpers_invalid_params",{hexValue:n});let T=new Uint8Array(y.length/2);for(let o=0;o<y.length;o+=2)T[o/2]=Number.parseInt(y.slice(o,o+2),16);return T}function o1(n){return{domain:p5,message:{connectionId:n,source:"a"},primaryType:"Agent",types:{Agent:[...k5.Agent]}}}function y1(n){let y=P5[n.type],T=u5[n.type],{type:o,...f}=n;return{domain:{chainId:Number.parseInt(f.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:sC,version:"1"},message:{...f,hyperliquidChain:f.hyperliquidChain||eC},primaryType:y,types:{[y]:T}}}function f1(n){let y=S5.from(n);return{r:y.r,s:y.s,v:y.v}}function T1(n,y,{expiresAfter:T,vaultAddress:o}={}){let f=qt(n),t=no(BigInt(y),8),C=o?Gn(new Uint8Array([1]),v5(o.toLowerCase())):new Uint8Array([0]),H=typeof T==="number"?Gn(new Uint8Array([0]),no(BigInt(T),8)):new Uint8Array;return F5(Gn(f,t,C,H))}function t1(n){let y=n.hyperliquidChain||eC;switch(n.type){case"approveAgent":return{...n,agentAddress:n.agentAddress.toLowerCase(),hyperliquidChain:y};case"approveBuilderFee":return{...n,builder:n.builder.toLowerCase(),hyperliquidChain:y};case"sendAsset":return{...n,destination:n.destination.toLowerCase(),fromSubAccount:n.fromSubAccount.toLowerCase(),hyperliquidChain:y};case"tokenDelegate":return{...n,hyperliquidChain:y,validator:n.validator.toLowerCase()};case"usdClassTransfer":return{...n,hyperliquidChain:y};default:return n}}var sC="0x0000000000000000000000000000000000000000",p5,k5,eC="Mainnet",u5,P5,I5;var C1=k(()=>{p5={chainId:1337,name:"Exchange",verifyingContract:sC,version:"1"},k5={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},u5={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"}]},P5={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},I5=new TextEncoder});import{AssetValue as Xt,Chain as V5,derivationPathToString as K5,getChainConfig as A1,getRPCUrl as j5,NetworkDerivationPath as c5,RequestClient as uo,SwapKitError as Po,updateDerivationPath as i5}from"@swapkit/helpers";import{HDNodeWallet as h5}from"ethers";import{match as m5,P as Gt}from"ts-pattern";function Yn(n,y){if(!Bt(n))throw new Po(y,{address:n});return n.toLowerCase()}async function Mo(n){let y=await Qf();return uo.post(`${y}/info`,{json:n})}function n2({dex:n,user:y}){return Mo({...n?{dex:n}:{},type:"clearinghouseState",user:Yn(y,"helpers_invalid_params")})}function o2({user:n}){return Mo({type:"spotClearinghouseState",user:Yn(n,"helpers_invalid_params")})}function y2({dex:n,user:y}){return Mo({...n?{dex:n}:{},type:"openOrders",user:Yn(y,"helpers_invalid_params")})}function f2({dex:n,user:y}){return Mo({...n?{dex:n}:{},type:"frontendOpenOrders",user:Yn(y,"helpers_invalid_params")})}function T2({oidOrCloid:n,user:y}){return Mo({oid:n,type:"orderStatus",user:Yn(y,"helpers_invalid_params")})}function t2({aggregateByTime:n,user:y}){return Mo({...typeof n==="boolean"?{aggregateByTime:n}:{},type:"userFills",user:Yn(y,"helpers_invalid_params")})}function C2({aggregateByTime:n,endTime:y,startTime:T,user:o}){return Mo({...typeof n==="boolean"?{aggregateByTime:n}:{},...typeof y==="number"?{endTime:y}:{},startTime:T,type:"userFillsByTime",user:Yn(o,"helpers_invalid_params")})}function H1({coin:n,token:y,value:T,spotMeta:o}){if(!T||Number(T)<=0)return null;let f=n?.toUpperCase()||`TOKEN-${y||"UNKNOWN"}`,t=r5[f]||U1,C=o?.tokens?.find((_)=>_.name===n||y!==void 0&&_.index===Number(y)),H=C?`${pn}.${f}-${C.name}:${C.tokenId}`:`${pn}.${f}`;return new Xt({decimal:t,identifier:H,value:T})}function H2(n){let y=new Map;for(let T of n){let o=T.toString({includeSynthProtocol:!0}),f=y.get(o);y.set(o,f?f.add(T):T)}if(![...y.values()].some((T)=>T.isGasAsset||T.ticker==="HYPE")){let T=Xt.from({chain:pn,value:0});y.set(T.toString({includeSynthProtocol:!0}),T)}return[...y.values()]}async function Qf(){try{return await j5(pn)}catch{let[n]=A1(pn).rpcUrls;if(!n)throw new Po("helpers_chain_no_public_or_set_rpc_url",{chain:pn});return n}}async function Wt(){return`${await Qf()}/exchange`}function _2(n){let y=e5[n.type],{type:T,...o}=n,f=s5[T];return{domain:{chainId:Number.parseInt(n.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:a5,version:"1"},message:o,primaryType:y,types:{[y]:f}}}async function w1({action:n,expiresAfter:y,nonce:T,vaultAddress:o}){let f=T||Date.now(),t=o?Yn(o,"helpers_invalid_params"):void 0,C=await Wt(),H=T1(n,f,{expiresAfter:y,vaultAddress:t});return{action:n,endpoint:C,expiresAfter:y,nonce:f,typedData:o1(H),vaultAddress:t}}async function q1({action:n,nonce:y,signatureChainId:T}){let o=y||n.nonce||Date.now(),f=T||n.signatureChainId||"0xa4b1",t=t1({...n,nonce:o,signatureChainId:f});return{action:t,endpoint:await Wt(),nonce:o,typedData:y1(t)}}async function lt({assetValue:n,recipient:y,sender:T,signatureChainId:o,time:f}){let t=Yn(y,"core_transaction_invalid_recipient_address"),C=Yn(T,"core_transaction_invalid_sender_address"),H=await Wt(),_=n.getValue("string"),A=f||Date.now(),X=n.address;if(!X)throw new Po("helpers_invalid_params",{asset:n.toString(),from:C});let M={amount:_,destination:t,hyperliquidChain:g5,signatureChainId:o||d5,time:A,token:X,type:"spotSend"};return{action:M,endpoint:H,nonce:A,typedData:_2(M)}}async function _1(n){let y=await uo.post(n.endpoint,{json:{action:n.action,...typeof n.expiresAfter==="number"?{expiresAfter:n.expiresAfter}:{},nonce:n.nonce,signature:n.signature,...n.vaultAddress?{vaultAddress:n.vaultAddress}:{}}});if(y.status!=="ok")throw new Po("core_transaction_failed",{response:y});return y}async function A2(n,y){let T=await Qf(),o=y-5000;for(let f=0;f<5;f++){if(f>0)await new Promise((t)=>setTimeout(t,1000));try{let t=await uo.post(`${T}/info`,{json:{startTime:o,type:"userNonFundingLedgerUpdates",user:n}}),C=Array.isArray(t)?t.find((H)=>H.time&&H.time>=y&&(H.delta?.type==="spotTransfer"||H.delta?.type==="internalTransfer")):void 0;if(C?.hash)return C.hash}catch{}}return""}function Bt(n){return n.startsWith("0x")&&Ay(n)}function U2(n){let y=wn(pn),T=n&&"index"in n?n.index||0:0,o=K5(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:i5(c5[pn],{index:T})),f,t=!1;function C(){if(t)return f;return f=m5(n).with({phrase:Gt.string},({phrase:l})=>{return h5.fromPhrase(l,void 0,o)}).with({signer:Gt.not(Gt.nullish)},({signer:l})=>l).otherwise(()=>{return}),t=!0,f}async function H(){let l=C();return l?await l.getAddress():""}async function _(l){let w=C();if(!w)throw new Po("toolbox_hypercore_no_signer");let q=await w.signTypedData(l.typedData.domain,l.typedData.types,l.typedData.message);return{action:l.action,endpoint:l.endpoint,nonce:l.nonce,signature:f1(q),..."expiresAfter"in l?{expiresAfter:l.expiresAfter}:{},..."vaultAddress"in l?{vaultAddress:l.vaultAddress}:{}}}async function A(l){let w=Yn(l,"helpers_invalid_params");try{let q=await Qf(),[G,Q,z]=await Promise.all([uo.post(`${q}/info`,{json:{type:"spotClearinghouseState",user:w}}),uo.post(`${q}/info`,{json:{type:"clearinghouseState",user:w}}),uo.post(`${q}/info`,{json:{type:"spotMeta"}})]),L=(G.spotState?.balances||G.balances||[]).map(({coin:Z,token:U,total:B})=>H1({coin:Z,spotMeta:z,token:U,value:B})).filter((Z)=>!!Z),Y=H1({coin:"USDC",spotMeta:z,value:Q.withdrawable||Q.marginSummary?.accountValue||Q.marginSummary?.totalRawUsd});return H2(Y?[...L,Y]:L)}catch{return y(w)}}async function X(l){let w=C();if(!w)throw new Po("toolbox_hypercore_no_signer");let q=l.sender||await w.getAddress(),G=await lt({...l,feeRate:0,sender:q}),Q=await _(G);return await _1(Q),A2(q,G.nonce)}function M(){return Xt.from({chain:pn,value:0})}return{broadcastTransaction:_1,createL1ActionRequest:w1,createTransaction:lt,createUserSignedActionRequest:q1,estimateTransactionFee:M,getAddress:H,getBalance:A,getState:{clearinghouse:n2,frontendOpenOrders:f2,openOrders:y2,orderStatus:T2,spotClearinghouse:o2,userFills:t2,userFillsByTime:C2},signTransaction:_,transfer:X,validateAddress:Bt}}var pn,U1,r5,g5="Mainnet",d5="0xa4b1",a5="0x0000000000000000000000000000000000000000",s5,e5;var G1=k(()=>{$T();$n();C1();pn=V5.HyperCore,{baseDecimal:U1}=A1(pn),r5={HYPE:U1,USDC:6,USDT:6},s5={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},e5={spotSend:"HyperliquidTransaction:SpotSend"}});var Mt={};e(Mt,{validateHyperCoreAddress:()=>Bt,getHyperCoreToolbox:()=>U2,createUserSignedActionRequest:()=>q1,createTransaction:()=>lt,createL1ActionRequest:()=>w1,buildUsdClassTransferAction:()=>z5,buildUpdateLeverageAction:()=>Z5,buildUpdateIsolatedMarginAction:()=>J5,buildTopUpIsolatedOnlyMarginAction:()=>Y5,buildTokenDelegateAction:()=>x5,buildSendAssetAction:()=>D5,buildScheduleCancelAction:()=>N5,buildOrderAction:()=>W5,buildModifyAction:()=>L5,buildCancelByCloidAction:()=>M5,buildCancelAction:()=>B5,buildBatchModifyAction:()=>Q5,buildApproveBuilderFeeAction:()=>R5,buildApproveAgentAction:()=>O5});var Lt=k(()=>{G1()});import{PublicKey as oo}from"@solana/web3.js";import{AssetValue as Zf,Chain as Kn,DerivationPath as w2,derivationPathToString as q2,getChainConfig as B1,getRPCUrl as G2,NetworkDerivationPath as l2,SwapKitError as Io,updateDerivationPath as X2}from"@swapkit/helpers";import{match as W2,P as l1}from"ts-pattern";async function M1(n){let y=Zf.from({address:n,chain:Kn.Solana});if(y.symbol!=="UNKNOWN")return{decimals:y.decimal||0,id:n,logoURI:y.getIconUrl(),name:y.symbol,symbol:y.ticker};let T=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(n)}`;try{let o=await fetch(T);if(!o.ok)return null;let f=await o.json();if(!Array.isArray(f)||f.length===0)return null;return f.find((C)=>C.id===n)||null}catch{return null}}async function B2(n){let y=await Vn(),{PublicKey:T}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:o}=await import("@solana/spl-token"),f=new T(n),{baseDecimal:t}=B1(Kn.Solana),C=await y.getBalance(f),H=[Zf.from({chain:Kn.Solana,fromBaseDecimal:t,value:C||0})],_=await y.getParsedTokenAccountsByOwner(f,{programId:o});for(let{account:A}of _.value){let X=A.data.parsed.info,M=X.mint,l=X.tokenAmount.amount;if(Number(l)===0)continue;let w=await M1(M),q=w?.symbol||"UNKNOWN",G=w?.decimals||X.tokenAmount.decimals;H.push(Zf.from({asset:`${Kn.Solana}.${q}-${M}`,fromBaseDecimal:G,value:l}))}return H}function Zt(n){try{let y=new oo(n);return oo.isOnCurve(y.toBytes())}catch{return!1}}function M2(n){let y=n&&"index"in n?n.index||0:0,T=q2(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:X2(l2[Kn.Solana],{index:y})),o;async function f(){if(o)return o;return o=await W2(n).with({phrase:l1.string},({phrase:C})=>Qt({derivationPath:T,phrase:C})).with({signer:l1.any},({signer:C})=>C).otherwise(()=>{return}),o}async function t(){let C=await f();return C?.publicKey?W1(C.publicKey):""}return{broadcastTransaction:Jf(Vn),createKeysForPath:Qt,createTransaction:Jt(Vn),createTransactionFromInstructions:J2,estimateTransactionFee:L2(Vn),getAddress:t,getAddressFromPubKey:W1,getBalance:wn(Kn.Solana),getBalanceFromRPC:B2,getConnection:Vn,getPubkeyFromAddress:(C)=>new oo(C),signAndBroadcastTransaction:async(C)=>{let H=await X1(Vn,f)(C);return Jf(Vn)(H)},signTransaction:X1(Vn,f),transfer:Y2(Vn,f),validateAddress:Zt}}function L2(n){return async({recipient:y,assetValue:T,memo:o,isProgramDerivedAddress:f,sender:t})=>{let C=await n(),_=(await Jt(n)({assetValue:T,isProgramDerivedAddress:f,memo:o,recipient:y,sender:t})).compileMessage(),A=await C.getFeeForMessage(_);if(A.value===null)throw new Io("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:X}=B1(Kn.Solana);return Zf.from({chain:Kn.Solana,fromBaseDecimal:X,value:A.value})}}async function Vn(){let{Connection:n}=await import("@solana/web3.js"),y=await G2(Kn.Solana);return new n(y,{commitment:"confirmed",fetchMiddleware:(T,o,f)=>{let t={};for(let[C,H]of Object.entries(o?.headers??{})){let _=C.toLowerCase();if(_!=="pragma"&&_!=="solana-client")t[C]=H}f(T,{...o,headers:t})}})}function Q2(n){return async({assetValue:y,recipient:T,sender:o,isProgramDerivedAddress:f})=>{let t=await n(),C=new oo(o);if(y.isGasAsset){let{Transaction:H,SystemProgram:_}=await import("@solana/web3.js");return new H().add(_.transfer({fromPubkey:C,lamports:y.getBaseValue("number"),toPubkey:new oo(T)}))}if(y.address)return Z2({amount:y.getBaseValue("number"),connection:t,decimals:y.decimal,from:C,isProgramDerivedAddress:f,recipient:T,tokenAddress:y.address});return}}async function Z2({tokenAddress:n,recipient:y,from:T,connection:o,amount:f,decimals:t,isProgramDerivedAddress:C}){let{getAssociatedTokenAddress:H,getAccount:_,createAssociatedTokenAccountInstruction:A,createTransferCheckedInstruction:X}=await import("@solana/spl-token"),{Transaction:M}=await import("@solana/web3.js"),l=new M,w=new oo(n),q=await H(w,T),G=new oo(y),Q=await H(w,G,C),z=!1;try{await _(o,Q),z=!0}catch{}if(!z)l.add(A(T,Q,G,w));return l.add(X(q,w,Q,T,f,t)),l}function Jt(n){return async({recipient:y,assetValue:T,memo:o,isProgramDerivedAddress:f,sender:t})=>{let{createMemoInstruction:C}=await import("@solana/spl-memo"),H=new oo(t);if(!(f||Zt(y)))throw new Io("core_transaction_invalid_recipient_address");let _=await n(),A=await Q2(n)({assetValue:T,isProgramDerivedAddress:f,recipient:y,sender:t});if(!A)throw new Io("core_transaction_invalid_sender_address");if(o)A.add(C(o));let X=await _.getLatestBlockhash();return A.recentBlockhash=X.blockhash,A.feePayer=H,A}}async function J2({instructions:n}){let{Transaction:y}=await import("@solana/web3.js"),T=new y().add(...n);if(!T)throw new Io("core_transaction_invalid_sender_address");return T}function Y2(n,y){return async({recipient:T,assetValue:o,memo:f,isProgramDerivedAddress:t})=>{let C=await y();if(!C)throw new Io("core_transaction_invalid_sender_address");let H=C.publicKey?.toString()??(await C.connect()).publicKey.toString(),_=await Jt(n)({assetValue:o,isProgramDerivedAddress:t,memo:f,recipient:T,sender:H});if("signTransaction"in C){let A=await C.signTransaction(_);return Jf(n)(A)}return _.sign(C),Jf(n)(_)}}function Jf(n){return async(y)=>{return(await n()).sendRawTransaction(y.serialize())}}function X1(n,y){return async(T)=>{let o=await y();if(!o)throw new Io("toolbox_solana_no_signer");let{VersionedTransaction:f}=await import("@solana/web3.js");if(!(T instanceof f)){let C=await(await n()).getLatestBlockhash();T.recentBlockhash=C.blockhash,T.feePayer=o.publicKey||void 0}if("connect"in o)return await o.signTransaction(T);return T.sign([o]),T}}async function Qt({phrase:n,derivationPath:y=w2.SOL}){let{HDKey:T}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:o}=await import("@scure/bip39"),{Keypair:f}=await import("@solana/web3.js"),t=o(n),C=T.fromMasterSeed(t);return f.fromSeed(C.derive(y,!0).privateKey)}function W1(n){return n.toString()}var L1=k(()=>{$n()});var Yt={};e(Yt,{validateSolanaAddress:()=>Zt,getSolanaToolbox:()=>M2,fetchTokenMetaData:()=>M1,createKeysForPath:()=>Qt});var Nt=k(()=>{L1()});import{AssetValue as Yf,Chain as Nf,DerivationPath as Z1,derivationPathToString as N2,getChainConfig as z2,getRPCUrl as Ot,NetworkDerivationPath as D2,SwapKitError as Ln,updateDerivationPath as O2}from"@swapkit/helpers";import{match as zt,P as $o}from"ts-pattern";function zf(n){if(!n)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(n)}async function Df({phrase:n,derivationPath:y=Z1.STRK}){let{HDKey:T}=await import("@scure/bip32"),{mnemonicToSeedSync:o}=await import("@scure/bip39"),{ec:f,hash:t,encode:C,CallData:H}=await import("starknet"),_=o(n),X=T.fromMasterSeed(_).derive(y);if(!X.privateKey)throw new Ln("toolbox_starknet_no_signer");let M=C.addHexPrefix(Buffer.from(X.privateKey).toString("hex")),l=f.starkCurve.grindKey(M),w=C.addHexPrefix(l),q=f.starkCurve.getStarkKey(w),G=H.compile([q,0]);return{address:t.calculateContractAddressFromHash(q,Rt,G,0),privateKey:w,publicKey:q}}async function xt({phrase:n,derivationPath:y=Z1.STRK}){let{Account:T,RpcProvider:o}=await import("starknet"),{privateKey:f,address:t}=await Df({derivationPath:y,phrase:n}),C=await Ot(Nf.Starknet),H=new o({nodeUrl:C});return new T({address:t,provider:H,signer:f})}function J1(n){let y=Nf.Starknet,T=n&&"index"in n?n.index||0:0,o=N2(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:O2(D2[y],{index:T})),f,t,C;async function H(){if(t)return t;let{RpcProvider:U}=await import("starknet"),B=await Ot(y);return t=new U({nodeUrl:B}),t}async function _(U){let B=await H(),J=U||await l();if(!J)return!1;try{return await B.getClassHashAt(J),!0}catch(D){if(D instanceof Error&&D.message.includes("Contract not found"))return!1;let R=D;if(R?.code===20||R?.code===19)return!1;throw D}}async function A(){let{CallData:U,hash:B}=await import("starknet"),J=await H(),D=await M();if(!D)throw new Ln("toolbox_starknet_no_signer");if(!C)throw new Ln({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 W=U.compile([C,0]);if(B.calculateContractAddressFromHash(C,Rt,W,0).toLowerCase()!==D.address.toLowerCase())throw new Ln({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let O={addressSalt:C,classHash:Rt,constructorCalldata:W},{transaction_hash:x}=await D.deployAccount(O);return await J.waitForTransaction(x),x}async function X(){if(!await _()){if(!C)throw new Ln({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await A()}}async function M(){if(f)return f;return f=await zt(n).with({phrase:$o.string},async({phrase:U})=>{let{Account:B,RpcProvider:J}=await import("starknet"),{privateKey:D,address:R,publicKey:W}=await Df({derivationPath:o,phrase:U});C=W;let N=await Ot(Nf.Starknet),O=new J({nodeUrl:N});return new B({address:R,provider:O,signer:D})}).with({address:$o.string,privateKey:$o.string},async({privateKey:U,address:B})=>{let{Account:J}=await import("starknet"),D=await H();return new J({address:B,provider:D,signer:U})}).with({signer:$o.instanceOf(Object)},({signer:U})=>U).otherwise(()=>{return}),f}async function l(){return(await M())?.address??""}async function w(U){let B=await H(),{uint256:J,CallData:D}=await import("starknet"),R=[],W=[Dt,Q1];for(let N of W)try{let[O="0",x="0"]=await B.callContract({calldata:D.compile({account:U}),contractAddress:N,entrypoint:"balanceOf"}),S=J.uint256ToBN({high:O,low:x});zt(N).with(Dt,()=>{R.push(Yf.from({chain:y,value:S}))}).with(Q1,()=>{if(S>0n)R.push(Yf.from({asset:`${y}.ETH-${N}`,value:S}))}).otherwise(()=>{})}catch{}return R}async function q({recipient:U,assetValue:B}){let{CallData:J,uint256:D}=await import("starknet");if(!zf(U))throw new Ln("core_transaction_invalid_recipient_address",{address:U});let R=B.isGasAsset?Dt:B.address;if(!R)throw new Ln("toolbox_starknet_invalid_address",{address:R,assetValue:B});let W=D.bnToUint256(B.getBaseValue("bigint"));return[{calldata:J.compile([U,W]),contractAddress:R,entrypoint:"transfer"}]}async function G({recipient:U,assetValue:B,sender:J}){let{baseDecimal:D}=z2(Nf.Starknet),R=await M(),W=await zt({sender:J,signer:R}).with({sender:$o.string},async({sender:N})=>{let{Account:O}=await import("starknet"),x=await H();return new O({address:N,provider:x,signer:"0x0"})}).with({signer:$o.nonNullable},({signer:N})=>N).otherwise((N)=>{throw new Ln({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:N}})});try{let N=await q({assetValue:B,recipient:U}),O=await W.estimateInvokeFee(N);if(O?.overall_fee)return Yf.from({chain:y,fromBaseDecimal:D,value:O.overall_fee})}catch(N){throw new Ln("toolbox_starknet_fee_estimation_failed",N)}return Yf.from({chain:y,value:"0.00001"})}async function Q({recipient:U,assetValue:B,memo:J}){let D=await M();if(!D)throw new Ln("toolbox_starknet_no_signer");await X();let R=await q({assetValue:B,memo:J,recipient:U});return(await D.execute(R)).transaction_hash}async function z(U){let B=await M();if(!B)throw new Ln("toolbox_starknet_no_signer");let J=await B.signMessage(U);return Array.isArray(J)?J:[J.r.toString(),J.s.toString()]}async function L(U){let B=await M();if(!B)throw new Ln("toolbox_starknet_no_signer");return await X(),(await B.execute(U)).transaction_hash}function Y(U){return L(U)}function Z(U,B=!0){try{return wn(y)(U,B)}catch{return w(U)}}return{broadcastTransaction:L,createKeysForPath:xt,createTransaction:q,deployAccount:A,estimateTransactionFee:G,getAddress:l,getBalance:Z,getProvider:H,isAccountDeployed:_,signAndBroadcastTransaction:Y,signMessage:z,transfer:Q,validateAddress:zf}}var Dt="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",Q1="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",Rt="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var Y1=k(()=>{$n()});var Of={};e(Of,{validateStarknetAddress:()=>zf,starknetCreateKeysForPath:()=>xt,getStarknetToolbox:()=>J1,deriveStarknetKeys:()=>Df});var Rf=k(()=>{Y1()});import{isValidSuiAddress as R2}from"@mysten/sui/utils";import{AssetValue as Eo,Chain as xf,getChainConfig as x2,SwapKitError as Nn}from"@swapkit/helpers";import{match as F2,P as N1}from"ts-pattern";async function D1(n,y,T,o=[],f){let t=await n.getCoins({coinType:T,cursor:f,owner:y}),C=[...o,...t.data];return t.hasNextPage?D1(n,y,T,C,t.nextCursor):C}function S2(n,y,T){let o=y.reduce((_,A)=>_+BigInt(A.balance),0n);if(o<T)throw new Nn("toolbox_sui_insufficient_balance",{available:o.toString(),required:T.toString()});let{ids:f}=y.reduce((_,A)=>{if(_.total>=T)return _;return{ids:[..._.ids,A.coinObjectId],total:_.total+BigInt(A.balance)}},{ids:[],total:0n}),t=f[0],C=f.slice(1);if(C.length>0)n.mergeCoins(t,C);let[H]=n.splitCoins(t,[T]);return H}function O1(n){try{return R2(n)}catch{return!1}}function z1(n){return"signWithIntent"in n}function p2({provider:n,...y}={}){let T;async function o(){if(T)return T;return T=await F2(y).with({phrase:N1.string},async({phrase:q})=>{let{Ed25519Keypair:G}=await import("@mysten/sui/keypairs/ed25519");return G.deriveKeypair(q)}).with({signer:N1.any},({signer:q})=>q).otherwise(()=>{return}),T}async function f(q=n){let{SuiClient:G,getFullnodeUrl:Q}=await import("@mysten/sui/client");return new G({url:q||Q("mainnet")})}async function t(){return(await o())?.toSuiAddress()||""}function C(q){try{let G=Eo.from({address:q,chain:xf.Sui});return{asset:G.toString(),decimals:G.decimal}}catch{}return null}async function H(q){let G=q||await t();if(!G)throw new Nn("toolbox_sui_address_required");let{baseDecimal:Q,chain:z}=x2(xf.Sui);try{let L=await f(),{totalBalance:Y}=await L.getBalance({owner:G}),Z=[Eo.from({chain:z,fromBaseDecimal:Q,value:Y})],U=await L.getAllBalances({owner:G});for(let{coinType:B,totalBalance:J}of U){if(B==="0x2::sui::SUI"||Number(J)<=0)continue;let D=C(B);if(D)Z.push(Eo.from({asset:D.asset,fromBaseDecimal:D.decimals,value:J}))}return Z}catch{return[Eo.from({chain:z})]}}async function _(q){let G=Eo.from({chain:xf.Sui,value:"0.01"});if(!q)return G;try{let Q=await f(),{txBytes:z}=await A(q),{effects:{status:L,gasUsed:Y}}=await Q.dryRunTransactionBlock({transactionBlock:z});if(L.status!=="success")return G;let Z=Number(Y.computationCost)+Number(Y.storageCost)-Number(Y.storageRebate);return Eo.from({chain:xf.Sui,value:Z.toString()})}catch{return G}}async function A({recipient:q,assetValue:G,gasBudget:Q,sender:z}){let{Transaction:L}=await import("@mysten/sui/transactions"),Y=z||await t();if(!Y)throw new Nn("toolbox_sui_no_sender");try{let Z=new L;if(Z.setSender(Y),G.isGasAsset||G.symbol==="SUI"){let[J]=Z.splitCoins(Z.gas,[G.getBaseValue("string")]);Z.transferObjects([J],q)}else{let J=G.address;if(!J)throw new Nn("toolbox_sui_missing_coin_type");let D=await f(),R=G.getBaseValue("bigint"),W=await D1(D,Y,J);if(!W.length)throw new Nn("toolbox_sui_no_coins_found",{coinType:J});let N=S2(Z,W,R);Z.transferObjects([N],q)}if(Q)Z.setGasBudget(Q);let U=await f(),B=await Z.build({client:U});return{tx:Z,txBytes:B}}catch(Z){if(Z instanceof Nn)throw Z;throw new Nn("toolbox_sui_transaction_creation_error",{error:Z})}}async function X(q){let G=await o();if(!G)throw new Nn("toolbox_sui_no_signer");if(q instanceof Uint8Array)return G.signTransaction(q);let{txBytes:Q}="tx"in q?q:await A(q);return G.signTransaction(Q)}async function M({assetValue:q,gasBudget:G,recipient:Q}){let z=await o();if(!z)throw new Nn("toolbox_sui_no_signer");let L=z.toSuiAddress()||await t();if(!L)throw new Nn("toolbox_sui_no_sender");let{txBytes:Y}=await A({assetValue:q,gasBudget:G,recipient:Q,sender:L}),Z=await f();if(!z1(z)){let B=await z.signTransaction(Y),{digest:J}=await Z.executeTransactionBlock({signature:B.signature,transactionBlock:B.bytes});return J}let{digest:U}=await Z.signAndExecuteTransaction({signer:z,transaction:Y});return U}async function l(q){let G=await f(),{digest:Q}=await G.executeTransactionBlock({signature:q.signature,transactionBlock:q.bytes});return Q}async function w(q){let G=await o();if(!G)throw new Nn("toolbox_sui_no_signer");let Q=await f(),z;if(typeof q==="string")z=Uint8Array.from(Buffer.from(q,"base64"));else if(q instanceof Uint8Array)z=q;else z=await q.build({client:Q});if(!z1(G)){let Y=await G.signTransaction(z),{digest:Z}=await Q.executeTransactionBlock({signature:Y.signature,transactionBlock:Y.bytes});return Z}let{digest:L}=await Q.signAndExecuteTransaction({signer:G,transaction:z});return L}return{broadcastTransaction:l,createTransaction:A,estimateTransactionFee:_,getAddress:t,getBalance:H,signAndBroadcastTransaction:w,signTransaction:X,transfer:M,validateAddress:O1}}var R1=()=>{};var Ff={};e(Ff,{validateSuiAddress:()=>O1,getSuiToolbox:()=>p2});var Sf=k(()=>{R1()});import{getHttpEndpoint as k2}from"@orbs-network/ton-access";import{AssetValue as u2,Chain as Jy,getChainConfig as P2,getRPCUrl as I2,SwapKitError as Zy,SwapKitNumber as $2}from"@swapkit/helpers";import{mnemonicToWalletKey as E2}from"@ton/crypto";import{Address as jn,beginCell as Ft,Cell as x1,external as b2,internal as v2,JettonMaster as V2,loadStateInit as K2,SendMode as F1,storeMessage as j2,TonClient as c2,toNano as u1,WalletContractV4 as i2}from"@ton/ton";import{match as S1,P as St}from"ts-pattern";async function d2(){let n=Date.now();if(pf&&n-k1<g2)return pf;try{return pf=await k2(),k1=n,pf}catch{return I2(Jy.Ton)}}function a2(n={}){let y,T,o;async function f(){if(!y){let Z=n.provider??await d2();y=new c2({endpoint:Z})}return y}async function t(){return(await H()).address.toString()}async function C(){if(o)return o;return o=await S1(n).with({phrase:St.string},async({phrase:Z})=>E2(Z.split(" "))).with({signer:St.any},({signer:Z})=>Z).otherwise(()=>{return}),o}async function H(Z){if(!T||Z){let U=await C(),B=await f(),J=Z||U;if(!J)throw new Zy("core_wallet_connection_not_found");let D=i2.create({publicKey:J.publicKey,workchain:0});T=B.open(D)}return T}let _=wn(Jy.Ton);async function A({assetValue:Z,recipient:U,memo:B,sender:J}){if(Z.isGasAsset){let E=B?Y(B).toBoc().toString("base64"):void 0;return[{address:U,amount:Z.getBaseValue("string"),payload:E}]}let D=Z.address;if(!D)throw new Zy({errorKey:"core_swap_contract_not_found",info:{asset:Z.toString()}});let R=J??await t(),W=await z({jettonMasterAddress:D,ownerAddress:R}),N=jn.parse(U),O=jn.parse(R),x=Z.getBaseValue("bigint"),S=B?Y(B):void 0,I=L({destinationAddress:N,forwardPayload:S,jettonAmount:x,responseAddress:O});return[{address:W.toString(),amount:r2.toString(),payload:I.toBoc().toString("base64")}]}function X({sender:Z,...U}){return A({...U,sender:Z})}function M(Z){return Z.map((U)=>{let B=U.payload?x1.fromBase64(U.payload):void 0,J=U.stateInit?K2(x1.fromBase64(U.stateInit).asSlice()):void 0,D=jn.parse(U.address),R=jn.isFriendly(U.address)?jn.parseFriendly(U.address).isBounceable:!0;return v2({body:B,bounce:R,init:J,to:D,value:BigInt(U.amount)})})}async function l(Z){let U=await C(),B=await H();if(!B||!U)throw new Zy("core_wallet_connection_not_found");let J=await f(),{state:D}=await J.getContractState(B.address),R=D==="active",W=R?await B.getSeqno():0,N=B.createTransfer({messages:M(Z),secretKey:U.secretKey,sendMode:p1,seqno:W}),O=b2({body:N,init:R?void 0:B.init,to:B.address});return Ft().store(j2(O)).endCell()}async function w(Z){return await(await f()).sendFile(Z.toBoc()),Z.hash().toString("hex")}async function q(Z){let U=await l(Z);return w(U)}async function G({assetValue:Z,recipient:U,memo:B}){let J=await X({assetValue:Z,memo:B,recipient:U});return q(J)}async function Q({sender:Z,...U}){let{baseDecimal:B}=P2(Jy.Ton),J=await S1(Z).with(St.string,(W)=>{return jn.parseFriendly(W).address}).otherwise(async()=>{return(await H()).address});if(!J)throw new Zy("toolbox_fee_estimation_failed",{chain:Jy.Ton});let D=u2.from({chain:Jy.Ton,value:"0.01"}),R=await f();try{let W=await X({sender:Z,...U}),N=await C(),O=await H();if(!O||!N)return D;let x=await O.getSeqno(),S=O.createTransfer({messages:M(W),secretKey:N.secretKey,sendMode:p1,seqno:x}),{source_fees:I}=await R.estimateExternalMessageFee(J,{body:S,ignoreSignature:!0,initCode:null,initData:null}),E=I.in_fwd_fee+I.storage_fee+I.gas_fee+I.fwd_fee;return D.set($2.fromBigInt(BigInt(E),B))}catch{return D}}async function z({jettonMasterAddress:Z,ownerAddress:U}){try{let B=await f(),J=jn.parse(Z),D=jn.parse(U);return await B.open(V2.create(J)).getWalletAddress(D)}catch{throw new Zy({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:Z,ownerAddress:U}})}}function L({jettonAmount:Z,destinationAddress:U,responseAddress:B,forwardAmount:J=m2,forwardPayload:D}){let R=Ft().storeUint(h2,32).storeUint(0,64).storeCoins(Z).storeAddress(U).storeAddress(B).storeBit(0).storeCoins(J);if(D)R.storeBit(1).storeRef(D);else R.storeBit(0);return R.endCell()}function Y(Z){return Ft().storeUint(0,32).storeStringTail(Z).endCell()}return{broadcastTransaction:w,createTransaction:X,estimateTransactionFee:Q,getAddress:t,getBalance:_,getJettonWalletAddress:z,sign:l,signAndBroadcastTransaction:q,transfer:G,validateAddress:P1}}function P1(n){try{return jn.parse(n),!0}catch{return!1}}var h2=260734629,m2,r2,p1,g2=60000,pf,k1=0;var I1=k(()=>{$n();m2=u1("0.01"),r2=u1("0.05"),p1=F1.PAY_GAS_SEPARATELY+F1.IGNORE_ERRORS});var kf={};e(kf,{validateTonAddress:()=>P1,getTONToolbox:()=>a2});var uf=k(()=>{I1()});import{NetworkDerivationPath as s2}from"@swapkit/helpers";function zn(n,y){if(!Number.isInteger(y)||y<0)throw RangeError(`${n} must be a non-negative integer, got: ${y}`)}function yo({accountIndex:n,chain:y,derivationPath:T}){if(n!==void 0)zn("accountIndex",n);let o=[...T?.slice(0,3)??s2[y].slice(0,3)];if(n!==void 0)o[2]=n;return o}function bo({accountIndex:n,change:y=!1,chain:T,derivationPath:o,index:f}){return zn("index",f),[...yo({accountIndex:n,chain:T,derivationPath:o}),Number(y),f]}function Lo(n){return n[2]??0}function $1({deriveAddress:n,getBalance:y,getUtxos:T}){async function o(H){let{accountIndex:_,count:A,startIndex:X=0,change:M=!1}=H;if(zn("count",A),A<1)throw RangeError("count must be at least 1");zn("startIndex",X);let l=[];for(let w=0;w<A;w++){let q=await n({accountIndex:_,change:M,index:X+w});if(q)l.push(q)}return l}async function f(H){let{gapLimit:_=20,change:A=!1}=H??{},X=[],M=0,l=0;while(M<_){let w=await n({change:A,index:l});if(!w)break;if((await y(w.address)).some((Q)=>Q.getValue("number")>0))X.push(w),M=0;else M++;l++}return X}async function t(H=20){let[_,A]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),X=[..._,...A],M=await Promise.all(X.map(async(w)=>{let G=(await y(w.address)).reduce((Q,z)=>Q+z.getValue("number"),0);return{...w,balance:G}})),l=M.reduce((w,q)=>w+q.balance,0);return{addresses:M,total:l}}async function C(H=20){let[_,A]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),X=[..._,...A];return(await Promise.all(X.map(async(l)=>{return(await T(l.address)).map((q)=>({...q,address:l.address,derivationIndex:l.index,isChange:l.change}))}))).flat()}return{deriveAddresses:o,getAggregatedBalance:t,getAggregatedUtxos:C,scanForAddresses:f}}var Yy=()=>{};import{Chain as Tn,getRPCUrl as e2,RequestClient as Pf,SKConfig as nU,SwapKitError as kn,warnOnce as oU}from"@swapkit/helpers";import{NETWORKS as vo}from"@swapkit/utxo-signer";async function yU({chain:n,txHash:y}){let T=`${Ny(n)}/push/transaction`,o=JSON.stringify({data:y});try{let f=await Pf.post(T,{body:o,headers:{"Content-Type":"application/json"}});if(f.context.code!==200)throw new kn("toolbox_utxo_broadcast_failed",{error:f.context.error||"Transaction broadcast failed"});return f.data?.transaction_hash||y}catch(f){let t=await e2(n);if(t){let C=JSON.stringify({id:u0(),jsonrpc:"2.0",method:"sendrawtransaction",params:[y]}),H=await Pf.post(t,{body:C,headers:{"Content-Type":"application/json"}});if(H.error)throw new kn("toolbox_utxo_broadcast_failed",{error:H.error?.message});if(H.result.includes('"code":-26'))throw new kn("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return H.result}throw f}}function Ny(n){return`https://api.blockchair.com/${fU(n)}`}function E1(n){switch(n){case Tn.Bitcoin:return 5;case Tn.Dogecoin:return 1e4;case Tn.Litecoin:return 1;case Tn.Zcash:return 1;default:return 2}}function fU(n){switch(n){case Tn.BitcoinCash:return"bitcoin-cash";case Tn.Litecoin:return"litecoin";case Tn.Dash:return"dash";case Tn.Dogecoin:return"dogecoin";case Tn.Zcash:return"zcash";case Tn.Polkadot:return"polkadot";default:return"bitcoin"}}async function TU(n){try{let{feePerKb:y}=await Pf.get(`https://app.bitgo.com/api/v2/${n.toLowerCase()}/tx/fee`),T=y/1000;return Math.max(T,E1(n))}catch{return E1(n)}}async function If(n,y){let T=await Pf.get(`${n}${y?`${n.includes("?")?"&":"?"}key=${y}`:""}`);if(!T||T.context.code!==200)throw new kn("toolbox_utxo_api_error",{error:`Failed to query ${n}`});return T.data}async function v1({address:n,chain:y,apiKey:T}){if(!n)throw new kn("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await If(`${Ny(y)}/dashboards/address/${n}?transaction_details=true`,T))[n]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function tU({address:n,chain:y,apiKey:T}){return(await v1({address:n,apiKey:T,chain:y}))?.address.balance||0}async function V1({chain:n,apiKey:y,txHash:T}){if(!T)throw new kn("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await If(`${Ny(n)}/raw/transaction/${T}`,y))?.[T]?.raw_transaction||""}catch(o){let f=o instanceof Error?o.message:String(o);return console.error(`Failed to fetch raw transaction: ${f}`),""}}async function HU({chain:n,apiKey:y,txHash:T}){if(!T)throw new kn("toolbox_utxo_invalid_params",{error:"TxHash is required"});let f=(await If(`${Ny(n)}/dashboards/transaction/${T}`,y))?.[T];if(!f)throw new kn("toolbox_utxo_tx_not_found",{txHash:T});let{transaction:t,inputs:C,outputs:H}=f,_=C.map((X)=>X.spending_sequence),A=t.is_rbf===!0||_.some((X)=>X<CU);return{blockId:t.block_id,confirmed:t.block_id!==-1,fee:t.fee,inputs:C,isRBF:A,outputs:H,sequences:_,size:t.size,txid:t.hash,weight:t.weight}}async function _U({chain:n,address:y,apiKey:T,offset:o=0,limit:f=30}){return(await If(`${Ny(n)}/outputs?q=recipient(${y}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${f}&offset=${o}`,T)).map(({is_spent:_,script_hex:A,block_id:X,transaction_hash:M,index:l,value:w,spending_signature_hex:q})=>({hash:M,index:l,is_confirmed:X!==-1,is_spent:_,script_hex:A,txHex:q,value:w}))}function AU(n){return n.reduce((y,T)=>y+T.value,0)}function b1(n,y){let T=[...n].sort((o,f)=>f.value-o.value);if(y){let o=[],f=0;for(let t of T)if(o.push(t),f+=t.value,f>=y)break;return o}return T}async function K1({chain:n,address:y,apiKey:T,targetValue:o,accumulativeValue:f=0,offset:t=0,limit:C=30}){if(!y)throw new kn("toolbox_utxo_invalid_params",{error:"Address is required"});try{let H=await _U({address:y,apiKey:T,chain:n,limit:C,offset:t,targetValue:o}),A=H.length<C,X=H.filter(({is_spent:Q})=>!Q),M=AU(X),l=f+M,w=o&&l>=o;if(A||w)return b1(X,o);let q=await K1({accumulativeValue:l,address:y,apiKey:T,chain:n,limit:C,offset:t+C,targetValue:o}),G=[...X,...q];return b1(G,o)}catch(H){let _=H instanceof Error?H.message:String(H);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function UU({address:n,chain:y,apiKey:T,fetchTxHex:o=!0,targetValue:f}){let t=await K1({address:n,apiKey:T,chain:y,targetValue:f}),C=[];for(let{hash:H,index:_,script_hex:A,value:X}of t){let M;if(o)M=await V1({apiKey:T,chain:y,txHash:H});C.push({address:n,hash:H,index:_,txHex:M,value:X,witnessUtxo:{script:Buffer.from(A,"hex"),value:X}})}return C}function a(n){let y=nU.get("apiKeys").blockchair||"";return oU({condition:!y,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(T)=>yU({chain:n,txHash:T}),getAddressData:(T)=>v1({address:T,apiKey:y,chain:n}),getBalance:(T)=>tU({address:T,apiKey:y,chain:n}),getRawTx:(T)=>V1({apiKey:y,chain:n,txHash:T}),getSuggestedTxFee:()=>TU(n),getTransactionDetails:(T)=>HU({apiKey:y,chain:n,txHash:T}),getUtxos:(T)=>UU({...T,apiKey:y,chain:n})}}function wU(n){return n}function qU(){return function(y){switch(y){case Tn.Bitcoin:return vo.bitcoin;case Tn.BitcoinCash:return vo.bitcoinCash;case Tn.Dash:return vo.dash;case Tn.Litecoin:return vo.litecoin;case Tn.Dogecoin:return vo.dogecoin;case Tn.Zcash:return vo.zcash;default:throw new kn("toolbox_utxo_not_supported",{chain:y})}}}var CU=4294967294;var j1=k(()=>{$n()});import{CashAddrType as $f,decodeCashAddr as GU,encodeCashAddr as lU}from"@swapkit/utxo-signer";function BU(n,y,T){return lU({hash:T,prefix:n,type:XU[y]})}function MU(n){let y=GU(n),T=WU[y.type];if(!T)throw Error(`Unknown CashAddr type: ${y.type}`);return{hash:y.hash,prefix:y.prefix,type:T}}var XU,WU,pt;var c1=k(()=>{XU={P2PKH:$f.P2PKH,P2SH:$f.P2SH},WU={[$f.P2PKH]:"P2PKH",[$f.P2SH]:"P2SH"};pt={decode:MU,encode:BU}});import{sha256 as LU}from"@noble/hashes/sha2.js";import{createBase58check as QU}from"@scure/base";import{SwapKitError as h1}from"@swapkit/helpers";function ut(n){try{return Ef(n),!0}catch{return!1}}function Pt(n){return Ef(n)?.network}function cn(n){let y=Ef(n);if(y?.format==="legacy")return n;return YU(y)}function zy(n){let y=Ef(n);return NU(y)}function Ef(n){try{let y=ZU(n);if(y)return y}catch{}try{let y=JU(n);if(y)return y}catch{}throw new h1("toolbox_utxo_invalid_address",{address:n})}function ZU(n){try{let y=m1.decode(n);if(y.length!==21)throw new h1("toolbox_utxo_invalid_address",{address:n});let T=y[0],o=Array.prototype.slice.call(y,1);switch(T){case Qo.legacy.mainnet.p2pkh:return{format:"legacy",hash:o,network:"mainnet",type:"p2pkh"};case Qo.legacy.mainnet.p2sh:return{format:"legacy",hash:o,network:"mainnet",type:"p2sh"};case Qo.legacy.testnet.p2pkh:return{format:"legacy",hash:o,network:"testnet",type:"p2pkh"};case Qo.legacy.testnet.p2sh:return{format:"legacy",hash:o,network:"testnet",type:"p2sh"};case Qo.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:o,network:"mainnet",type:"p2pkh"};case Qo.bitpay.mainnet.p2sh:return{format:"bitpay",hash:o,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function JU(n){if(n.indexOf(":")!==-1)try{return i1(n)}catch{}else{let y=["bitcoincash","bchtest","bchreg"];for(let T of y)try{return i1(`${T}:${n}`)}catch{}}return}function i1(n){try{let{hash:y,prefix:T,type:o}=pt.decode(n);return{format:"cashaddr",hash:Array.prototype.slice.call(y,0),network:T==="bitcoincash"?"mainnet":"testnet",type:o==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function YU(n){let y=Qo.legacy[n.network][n.type],T=Buffer.alloc(1+n.hash.length);return T[0]=y,T.set(n.hash,1),m1.encode(T)}function NU(n){let y=n.network==="mainnet"?"bitcoincash":"bchtest",T=n.type==="p2pkh"?"P2PKH":"P2SH",o=new Uint8Array(n.hash);return pt.encode(y,T,o)}var m1,kt,Qo;var r1=k(()=>{c1();m1=QU(LU);((T)=>{T.Mainnet="mainnet";T.Testnet="testnet"})(kt||={});Qo={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as zU}from"@swapkit/helpers";import{Script as DU}from"@swapkit/utxo-signer";function Bn(n){let y=new Uint8Array(Buffer.from(n,"utf8"));return DU.encode(["RETURN",y])}var OU=1000,vf=10,Vf=2,g1=10,RU=41,xU=107,Kf,bf,Dy,Vo=(n)=>{if(n.startsWith("bc1")||n.startsWith("tb1")||n.startsWith("ltc1")||n.startsWith("tltc1"))return"P2WPKH";if(n.startsWith("1")||n.startsWith("m")||n.startsWith("n")||n.startsWith("bitcoincash:q")||n.startsWith("bitcoincash:p")||n.startsWith("q")||n.startsWith("p")||n.startsWith("L")||n.startsWith("M")||n.startsWith("3")||n.startsWith("D")||n.startsWith("A")||n.startsWith("9")||n.startsWith("X")||n.startsWith("7")||n.startsWith("y")||n.startsWith("t1")||n.startsWith("t3")||n.startsWith("tm"))return"P2PKH";throw new zU("toolbox_utxo_invalid_address",{address:n})},Zo=({inputs:n,outputs:y,feeRate:T})=>{let o=n[0]&&"address"in n[0]&&n[0].address?Vo(n[0].address):"P2PKH",t=(T?n.filter((A)=>A.value>=bf["type"in A&&A.type?A.type:"P2PKH"]*Math.ceil(T)):n).reduce((A,X)=>A+fo(X),0),C=y?.reduce((A,X)=>A+Oy(X),0)||Dy[o],H=vf+t+C;return o==="P2WPKH"?Math.ceil(H+Vf/4):H},fo=(n)=>{if("type"in n&&n.type)return bf[n.type];if("address"in n&&n.address)return bf[Vo(n.address)];return RU+xU},Oy=(n,y)=>{if(n?.script)return g1+n.script.length+(n.script.length>=74?2:1);if(y)return Dy[y];if("address"in n&&n.address)return Dy[Vo(n.address)];return Dy.P2PKH};var It=k(()=>{((T)=>{T.P2PKH="P2PKH";T.P2WPKH="P2WPKH"})(Kf||={});bf={["P2PKH"]:148,["P2WPKH"]:68},Dy={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as Jo,SwapKitError as FU}from"@swapkit/helpers";function Ry(n){switch(n){case Jo.Bitcoin:case Jo.BitcoinCash:return 550;case Jo.Dash:case Jo.Litecoin:return 5500;case Jo.Dogecoin:return 1e5;case Jo.Zcash:return 546;default:throw new FU("toolbox_utxo_not_supported",{chain:n})}}function Dn({inputs:n,outputs:y,feeRate:T=1,chain:o=Jo.Bitcoin,changeAddress:f=""}){let t=n[0]&&"address"in n[0]&&n[0].address?Vo(n[0].address):"P2PKH",C=n.filter((q)=>fo(q)*T<=q.value),_=t==="P2WPKH"?Math.ceil(Vf/4):0,A=vf+_+y.reduce((q,G)=>q+Oy(G),0),X=y.reduce((q,G)=>q+G.value,0),M=A*T,l=0,w=[];for(let q of C){let G=fo(q),Q=T*G;M+=Q,l+=q.value,w.push(q);let z=M+X;if(l<z)continue;let L=l-z,Y=T*Oy({address:f,value:0});if(L>Y){let Z=Y+M,U=l-(X+Math.ceil(Z));if(U>Math.max(fo({value:0})*T,Ry(o)))return{fee:Math.ceil(Z),inputs:w,outputs:y.concat({address:f,value:U})}}return{fee:Math.ceil(M),inputs:w,outputs:y}}return{fee:Math.ceil(T*Zo({inputs:n,outputs:y}))}}var d1=k(()=>{It()});var Ko=k(()=>{j1();r1();d1();It()});import{Address as SU,ZCASH_NETWORK as pU}from"@swapkit/utxo-signer";function Yo(n){return n.replace(/(bchtest:|bitcoincash:)/,"")}function To(n){let y=Yo(n);return ut(y)&&Pt(y)==="mainnet"}function jo(n){try{if(n.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let T=SU(pU).decode(n);return T.type==="pkh"||T.type==="sh"}catch{return!1}}var xy=k(()=>{Ko()});import{secp256k1 as kU}from"@noble/curves/secp256k1.js";import{hex as No}from"@scure/base";import{HDKey as nH}from"@scure/bip32";import{mnemonicToSeedSync as Et}from"@scure/bip39";import{AssetValue as jf,applyFeeMultiplier as a1,Chain as s,derivationPathToString as Fy,FeeOption as un,NetworkDerivationPath as oH,SwapKitError as i,SwapKitNumber as uU,updateDerivationPath as PU,warnOnce as IU}from"@swapkit/helpers";import{Address as $U,BCHSigHash as bt,CashAddrPrefix as EU,CashAddrType as bU,encodeCashAddr as vU,NETWORKS as co,p2pkh as s1,p2wpkh as VU,RBF_SEQUENCE as KU,SigHash as yH,Transaction as $t,WIF as fH}from"@swapkit/utxo-signer";import{match as TH}from"ts-pattern";function vt({address:n,chain:y}){return TH(y).with(s.BitcoinCash,()=>To(n)).with(s.Zcash,()=>jo(n)).otherwise(()=>{try{return $U(_n(y)).decode(n),!0}catch{return!1}})}function _n(n){return TH(n).with(s.Bitcoin,()=>co.bitcoin).with(s.BitcoinCash,()=>co.bitcoinCash).with(s.Dash,()=>co.dash).with(s.Dogecoin,()=>co.dogecoin).with(s.Litecoin,()=>co.litecoin).with(s.Zcash,()=>co.zcash).exhaustive()}function jU({phrase:n,derivationPath:y,network:T,seed:o}){let f=o??Et(n),C=nH.fromMasterSeed(f,T.bip32).derive(y);if(!C.privateKey)throw new i("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return C.privateKey}function e1(n){return kU.getPublicKey(n,!0)}function py({publicKey:n,chain:y,network:T}){if(y===s.BitcoinCash){let t=s1(n,T);if(!t.hash)throw new i("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return vU({hash:t.hash,prefix:EU.MAINNET,type:bU.P2PKH}).replace(/^bitcoincash:/,"")}let f=!Sy.includes(y)?VU(n,T):s1(n,T);if(!f.address)throw new i("toolbox_utxo_invalid_address",{error:"Could not derive address"});return f.address}function io({phrase:n,derivationPath:y,chain:T,wif:o,seed:f}){let t=_n(T);if(o){let A=fH(t).decode(o),X=e1(A);return{privateKey:A,publicKey:X}}if(!n)throw new i("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let C=y||Fy(oH[T]),H=jU({derivationPath:C,network:t,phrase:n,seed:f}),_=e1(H);return{privateKey:H,publicKey:_}}function cU(n,y){return fH(_n(y)).encode(n)}function iU({phrase:n,derivationPath:y,chain:T,seed:o}){let f=y.split("/");if(f.length<4)throw new i("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${f.length}): ${y}`});let t=_n(T),C=o??Et(n),H=nH.fromMasterSeed(C,t.bip32),_=f.slice(0,4).join("/");return H.derive(_)}function to({inputs:n,outputs:y,chain:T,tx:o,sender:f,compiledMemo:t,enableRBF:C=!1}){let H=_n(T),_=!Sy.includes(T),A=C?KU:void 0,X=new Set;for(let M of n){let l=`${M.hash}:${M.index}`;if(X.has(l))throw new i("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});X.add(l);let w=typeof M.hash==="string"?No.decode(M.hash):M.hash;if(_&&M.witnessUtxo)o.addInput({index:M.index,sequence:A,txid:w,witnessUtxo:{amount:BigInt(M.witnessUtxo.value),script:M.witnessUtxo.script}});else if(M.txHex)o.addInput({index:M.index,nonWitnessUtxo:No.decode(M.txHex),sequence:A,txid:w,...T===s.BitcoinCash?{sighashType:bt.ALL}:{}});else throw new i("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let M of y){let l="address"in M&&M.address?M.address:f;if(T===s.BitcoinCash)l=cn(l);if(M.script){if(t)o.addOutput({amount:0n,script:t})}else o.addOutputAddress(l,BigInt(M.value),H)}return{inputs:n,tx:o}}async function ho(n){let y=await a(n).getSuggestedTxFee();return{[un.Average]:y,[un.Fast]:a1(y,un.Fast),[un.Fastest]:a1(y,un.Fastest)}}async function tH({assetValue:n,recipient:y,memo:T,sender:o,fetchTxHex:f=!1}){let t=n.chain,C=(await ho(t))[un.Fastest],H=f||Sy.includes(t),_=n.getBaseValue("number"),A=Math.ceil(_+C*5000);return{inputs:await a(t).getUtxos({address:o,fetchTxHex:H,targetValue:A}),outputs:[{address:y,value:_},...T?[{address:"",script:Bn(T),value:0}]:[]]}}async function CH({assetValue:n,recipient:y,memo:T,feeRate:o,sender:f,fetchTxHex:t=!1,enableRBF:C=!1}){let H=n.chain,_=T?Bn(T):null,A=await tH({assetValue:n,fetchTxHex:t,memo:T,recipient:y,sender:f}),{inputs:X,outputs:M}=Dn({...A,chain:H,feeRate:o});if(!(X&&M))throw new i("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let l=new $t({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:w,tx:q}=to({chain:H,compiledMemo:_,enableRBF:C,inputs:X,outputs:M,sender:f,tx:l});return{inputs:w,tx:q,utxos:A.inputs}}async function HH({assetValue:n,feeOptionKey:y=un.Fast,feeRate:T,memo:o,sender:f,recipient:t}){let C=n.chain,H=await tH({assetValue:n,memo:o,recipient:t,sender:f}),_=T?Math.floor(T):(await ho(C))[y];return Dn({...H,chain:C,feeRate:_})}function hU(n){return async function({from:T,memo:o,feeRate:f,feeOptionKey:t=un.Fast,recipients:C=1}){let H=await a(n).getAddressData(T),_=f?Math.ceil(f):(await ho(n))[t],A=H?.utxo.map((G)=>({...G,hash:"",type:"P2PKH"})).filter((G)=>G.value>Math.max(Ry(n),fo(G)*_));if(!A?.length)return jf.from({chain:n});let X=BigInt(A.reduce((G,Q)=>G+Q.value,0)),M=jf.from({chain:n,value:X}),l=typeof C==="number"?Array.from({length:C},()=>({address:T,value:0})):C;if(o)l.push({address:T,script:Bn(o),value:0});let w=Zo({inputs:A,outputs:l}),q=jf.from({chain:n,value:BigInt(w*_)});return M.sub(q)}}function mU(n){return async function(T){let{fee:o}=await HH(T);return jf.from({chain:n,value:uU.fromBigInt(BigInt(o),8).getValue("string")})}}function rU({chain:n,phrase:y,derivationPath:T,seed:o}){let f=_n(n),{privateKey:t,publicKey:C}=io({chain:n,derivationPath:T,phrase:y,seed:o}),H=n===s.BitcoinCash?[bt.ALL]:[yH.ALL];return{getAddress:()=>py({chain:n,network:f,publicKey:C}),privateKey:t,publicKey:C,signTransaction:(_)=>{return _.sign(t,H),_}}}function gU(n,y){return async function({memo:o,recipient:f,feeOptionKey:t,feeRate:C,assetValue:H,enableRBF:_=!1}){let A=await y?.getAddress();if(!(y&&A))throw new i("toolbox_utxo_no_signer");if(!f)throw new i("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});IU({condition:_&&!cf.includes(n),id:`rbf_not_supported_${n}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${n}. Transaction will be created without RBF signaling.`});let X=_&&cf.includes(n),M=C||(await ho(n))[t||un.Fast],{tx:l}=await CH({assetValue:H,enableRBF:X,feeRate:M,memo:o,recipient:f,sender:A}),w=await y.signTransaction(l);return w.finalize(),a(n).broadcastTx(No.encode(w.extract()))}}function Vt(n){return(y)=>vt({address:y,chain:n})}function Kt(n){let y=_n(n);return function(o){if(!o)throw new i("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return py({chain:n,network:y,publicKey:o.publicKey})}}function Co({chain:n,...y}){let T="phrase"in y?y.phrase:void 0,o="index"in y?y.index||0:0,f=T?Et(T):void 0,t="derivationPath"in y&&y.derivationPath?y.derivationPath:PU(oH[n],{index:o}),C=Fy(t),H=T?rU({chain:n,derivationPath:C,phrase:T,seed:f}):void 0,_="signer"in y?y.signer:void 0,A=H||_,X=T?io({chain:n,derivationPath:C,phrase:T,seed:f}):void 0;function M(){if(A)return A.getAddress();return Promise.resolve(void 0)}function l(W){if(!T)return;let N=yo({accountIndex:W,chain:n,derivationPath:t});return iU({chain:n,derivationPath:Fy(N),phrase:T,seed:f})}let w=l();function q(){if(!w)return;return w.publicExtendedKey}function G({accountIndex:W}={}){let N=W===void 0?w:l(W);if(!N)return;let O=yo({accountIndex:W,chain:n,derivationPath:t});return{accountIndex:Lo(O),path:Fy(O),xpub:N.publicExtendedKey}}function Q({accountIndex:W,index:N,change:O=!1}){let x=W===void 0?w:l(W);if(!x)return;let S=bo({accountIndex:W,chain:n,change:O,derivationPath:t,index:N}),I=_n(n),E=x.deriveChild(Number(O)).deriveChild(N);if(!E.publicKey)throw new i("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let b=py({chain:n,network:I,publicKey:E.publicKey}),K=No.encode(E.publicKey);return{accountIndex:Lo(S),address:b,change:O,index:N,path:Fy(S),pubkey:K}}async function z(W){if(!cf.includes(n))return{reason:`RBF is not supported on ${n}`,supported:!1};let N=await a(n).getTransactionDetails(W);return{canReplace:N.isRBF&&!N.confirmed,confirmed:N.confirmed,enabled:N.isRBF,fee:N.fee,sequences:N.sequences,supported:!0}}async function L({txid:W,newFeeRate:N,recipient:O,memo:x}){if(!cf.includes(n))throw new i("toolbox_utxo_rbf_not_supported",{chain:n});let S=await a(n).getTransactionDetails(W);if(!S.isRBF)throw new i("toolbox_utxo_tx_not_replaceable",{txid:W});if(S.confirmed)throw new i("toolbox_utxo_tx_already_confirmed",{blockId:S.blockId,txid:W});let I=S.inputs.reduce((on,gn)=>on+gn.value,0),b=S.outputs.find((on)=>on.recipient===O)?.value||0;if(b===0)throw new i("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let K=await Promise.all(S.inputs.map(async(on)=>{let gn=await a(n).getRawTx(on.transaction_hash);return{hash:on.transaction_hash,index:on.index,txHex:gn,value:on.value,witnessUtxo:void 0}})),Hn=x?Bn(x):null,Xn=Zo({feeRate:N,inputs:K.map((on)=>({...on,type:"P2WPKH"})),outputs:[{address:O,value:b}]}),d=Math.ceil(Xn*N);if(d<=S.fee)throw new i("toolbox_utxo_rbf_fee_too_low",{newFee:d,originalFee:S.fee});let Zn=d-S.fee,Un=b-Zn;if(Un<=0)throw new i("toolbox_utxo_rbf_insufficient_change");let Fn=new $t({allowLegacyWitnessUtxo:!0,version:1}),Ao=[{address:O,value:Un},...x?[{address:"",script:Bn(x),value:0}]:[]],Uo=I-Un-d,rn=await M();if(Uo>Ry(n)&&rn)Ao.push({address:rn,value:Uo});return to({chain:n,compiledMemo:Hn,inputs:K,outputs:Ao,sender:rn||O,tx:Fn}),{feeDelta:Zn,newFee:d,originalFee:S.fee,tx:Fn}}async function Y({txid:W,newFeeRate:N,recipient:O,memo:x}){let{tx:S,originalFee:I,newFee:E}=await L({memo:x,newFeeRate:N,recipient:O,txid:W}),b=await D(S);b.finalize();let K=await a(n).broadcastTx(No.encode(b.extract()));return{newFee:E,originalFee:I,txid:K}}function Z({accountIndex:W,index:N,change:O=!1}){zn("index",N);let x=W===void 0?w:l(W);if(!x)return;return x.deriveChild(Number(O)).deriveChild(N).privateKey||void 0}function U({tx:W,inputDerivations:N}){if(!w)throw new i("toolbox_utxo_no_signer");let O=n===s.BitcoinCash?[bt.ALL]:[yH.ALL];for(let x=0;x<N.length;x++){let S=N[x];if(!S)continue;let{derivationIndex:I,isChange:E}=S,b=Z({change:E,index:I});if(!b)throw new i("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${x} at index ${I}`});W.signIdx(b,x,O)}return W}async function B({utxos:W,recipient:N,assetValue:O,memo:x,feeRate:S,feeOptionKey:I,changeAddress:E}){if(!w)throw new i("toolbox_utxo_no_signer");let b=S||(await ho(n))[I||un.Fast],K=x?Bn(x):null,Hn=[{address:N,value:O.getBaseValue("number")}];if(K)Hn.push({address:"",script:K,value:0});let Xn=W.map(({hash:rn,index:on,value:gn,txHex:R_,witnessUtxo:wT})=>({hash:rn,index:on,txHex:R_,value:gn,witnessUtxo:wT?{script:wT.script,value:wT.value}:void 0})),{inputs:d,outputs:Zn}=Dn({chain:n,feeRate:b,inputs:Xn,outputs:Hn});if(!(d&&Zn))throw new i("toolbox_utxo_insufficient_balance",{assetValue:O,sender:"multiple addresses"});let Un=new $t({allowLegacyWitnessUtxo:!0,version:1}),Fn=W[0]?.address,Ao=E||await M()||Fn||N;to({chain:n,compiledMemo:K,inputs:d,outputs:Zn,sender:Ao,tx:Un});let Uo=d.map((rn)=>{let on=W.find((gn)=>gn.hash===rn.hash&&gn.index===rn.index);return on?{derivationIndex:on.derivationIndex,isChange:on.isChange}:{derivationIndex:0,isChange:!1}});return U({inputDerivations:Uo,tx:Un}),Un.finalize(),a(n).broadcastTx(No.encode(Un.extract()))}function J({address:W,gapLimit:N=20}){if(!w)return;for(let O=0;O<N;O++){let x=Q({change:!1,index:O}),S=Q({change:!0,index:O}),I=x?.address===W?!1:S?.address===W;if(x?.address===W||S?.address===W)return{change:I,index:O}}return}function D(W){if(!A)throw new i("toolbox_utxo_no_signer");return A.signTransaction(W)}async function R(W){let N=await D(W);return N.finalize(),await a(n).broadcastTx(No.encode(N.extract()))}return{accumulative:Dn,broadcastTx:(W)=>a(n).broadcastTx(W),bumpFee:Y,calculateTxSize:Zo,createKeysForPath:(W)=>io({...W,chain:n}),createReplacementTransaction:L,createTransaction:CH,deriveAddressAtIndex:Q,derivePrivateKeyAtIndex:Z,estimateMaxSendableAmount:hU(n),estimateTransactionFee:mU(n),getAddress:M,getAddressFromKeys:Kt(n),getBalance:wn(n),getExtendedPublicKey:q,getExtendedPublicKeyInfo:G,getFeeRates:()=>ho(n),getInputsOutputsFee:HH,getNetworkForChain:()=>_n(n),getPrivateKeyFromMnemonic:(W)=>cU(io({...W,chain:n}).privateKey,n),isRBFEnabled:z,keys:X,resolveDerivationIndex:J,signAndBroadcastTransaction:R,signTransaction:D,signTransactionWithMultipleKeys:U,transfer:gU(n,A),transferFromMultipleAddresses:B,validateAddress:Vt(n)}}var Sy,cf;var mo=k(()=>{$n();Yy();Ko();xy();Sy=[s.Dash,s.Dogecoin,s.Zcash,s.BitcoinCash],cf=[s.Bitcoin]});import{hex as _H}from"@scure/base";import{Chain as dU,derivationPathToString as aU,FeeOption as sU,NetworkDerivationPath as eU,SwapKitError as hn,updateDerivationPath as n8}from"@swapkit/helpers";import{BCHSigHash as o8,CashAddrPrefix as AH,CashAddrType as UH,encodeCashAddr as wH,NETWORKS as y8,p2pkh as qH,Transaction as GH}from"@swapkit/utxo-signer";function ky(n){return Yo(zy(n))}function f8(n){let y=_n(Pn);function T(f){return f.sign(n.privateKey,[o8.ALL]),f}function o(){let f=qH(n.publicKey,y);if(!f.hash)throw new hn("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let t=wH({hash:f.hash,prefix:AH.MAINNET,type:UH.P2PKH});return Promise.resolve(t.replace(/^bitcoincash:/,""))}return{getAddress:o,signTransaction:T}}function jt(n){let y="phrase"in n?n.phrase:void 0,T="index"in n?n.index||0:0,o=aU("derivationPath"in n&&n.derivationPath?n.derivationPath:n8(eU[Pn],{index:T})),f=y?io({chain:Pn,derivationPath:o,phrase:y}):void 0,t=f?f8(f):("signer"in n)?n.signer:void 0;function C(){return Promise.resolve(t?.getAddress())}let{getBalance:H,getFeeRates:_,broadcastTx:A,...X}=Co({chain:Pn});function M(q,G=!0){return H(Yo(zy(q)))}function l(q){if(!t)throw new hn("toolbox_utxo_no_signer");return t.signTransaction(q)}async function w(q){let G=await l(q);return G.finalize(),await A(_H.encode(G.extract()))}return{...X,broadcastTx:A,buildTx:t8,createTransaction:lH,getAddress:C,getAddressFromKeys:C8,getBalance:M,getFeeRates:_,signAndBroadcastTransaction:w,signTransaction:l,stripPrefix:Yo,stripToCashAddress:ky,transfer:T8({broadcastTx:A,getFeeRates:_,signer:t}),validateAddress:To}}async function lH({assetValue:n,recipient:y,memo:T,feeRate:o,sender:f}){if(!To(y))throw new hn("toolbox_utxo_invalid_address",{address:y});let t=Math.ceil(n.getBaseValue("number")+o*7500),C=await a(Pn).getUtxos({address:ky(f),fetchTxHex:!0,targetValue:t}),H=T?Bn(T):null,_=[],A=cn(y);if(_.push({address:A,value:n.getBaseValue("number")}),H)_.push({script:H,value:0});let{inputs:X,outputs:M}=Dn({chain:Pn,feeRate:o,inputs:C,outputs:_});if(!(X&&M))throw new hn("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let l=new GH({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!H,version:1}),w=cn(f),{inputs:q,tx:G}=to({chain:Pn,compiledMemo:H,inputs:X,outputs:M.map((Q)=>("address"in Q)&&Q.address?{...Q,address:cn(Q.address)}:Q),sender:w,tx:l});return{inputs:q,tx:G,utxos:X}}function T8({broadcastTx:n,getFeeRates:y,signer:T}){return async function({recipient:f,assetValue:t,feeOptionKey:C=sU.Fast,...H}){let _=await T?.getAddress();if(!(T&&_))throw new hn("toolbox_utxo_no_signer");if(!f)throw new hn("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let A=H.feeRate||(await y())[C],{tx:X}=await lH({...H,assetValue:t,feeRate:A,recipient:f,sender:_}),M=await T.signTransaction(X);return M.finalize(),n(_H.encode(M.extract()))}}async function t8({assetValue:n,recipient:y,memo:T,feeRate:o,sender:f}){let t=zy(y);if(!To(t))throw new hn("toolbox_utxo_invalid_address",{address:t});let C=Math.ceil(n.getBaseValue("number")+o*7500),H=await a(Pn).getUtxos({address:ky(f),fetchTxHex:!0,targetValue:C}),_=Number(o.toFixed(0)),A=T?Bn(T):null,X=[];if(X.push({address:cn(y),value:n.getBaseValue("number")}),A)X.push({script:A,value:0});let{inputs:M,outputs:l}=Dn({chain:Pn,feeRate:_,inputs:H,outputs:X});if(!(M&&l))throw new hn("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let w=new GH({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:q,tx:G}=to({chain:Pn,compiledMemo:A,inputs:M,outputs:l,sender:cn(f),tx:w});return{inputs:q,tx:G,utxos:H}}function C8(n){let y=y8.bitcoinCash,T=qH(n.publicKey,y);if(!T.hash)throw new hn("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return wH({hash:T.hash,prefix:AH.MAINNET,type:UH.P2PKH}).replace(/^bitcoincash:/,"")}var Pn;var hf=k(()=>{Ko();mo();xy();Pn=dU.BitcoinCash});import{createBase58check as H8,hex as _8}from"@scure/base";import{HDKey as BH}from"@scure/bip32";import{mnemonicToSeedSync as MH}from"@scure/bip39";import{Chain as mf,derivationPathToString as A8,FeeOption as U8,NetworkDerivationPath as w8,SKConfig as LH,SwapKitError as uy,updateDerivationPath as q8}from"@swapkit/helpers";import{Address as G8,createZcashTransaction as l8,OutScript as X8,PCZT as W8,utils as QH,WIF as B8,ZCASH_NETWORK as M8,ZCASH_TEST_NETWORK as L8,ZcashConsensusBranchId as Q8,ZcashSigHash as XH,ZcashVersionGroupId as Z8}from"@swapkit/utxo-signer";import{match as J8,P as ct}from"ts-pattern";function ZH(){let{isStagenet:n}=LH.get("envs");return n?L8:M8}function N8(n){return Y8.encode(n)}function z8({phrase:n,derivationPath:y}){let T=MH(n),f=BH.fromMasterSeed(T).derive(y);if(!f.privateKey||!f.publicKey)throw new uy("toolbox_utxo_invalid_params");let{privateKey:t,publicKey:C}=f,H=QH.hash160(C),{isStagenet:_}=LH.get("envs"),A=_?new Uint8Array([29,37]):new Uint8Array([28,184]),X=new Uint8Array(A.length+H.length);X.set(A,0),X.set(H,A.length);let M=N8(X);return{getAddress:()=>Promise.resolve(M),signTransaction:(l)=>{if(l instanceof W8)return l.signAllInputs(t,C,XH.ALL),l.finalizeAllInputs(),Promise.resolve(l.extract());return l.signAllInputs(t,C,XH.ALL),Promise.resolve(l)}}}function D8({inputs:n,outputs:y,tx:T,sender:o,compiledMemo:f}){let t=ZH();for(let C of n){let H=G8(t).decode(o),_=X8.encode(H);T.addInput({index:C.index,script:_,sequence:4294967295,txid:_8.decode(C.hash),value:BigInt(C.value)})}for(let C of y){let H="address"in C&&C.address?C.address:o,_=C.script;if(_&&!f)continue;if(_&&f)T.addOutput({amount:0n,script:f});else T.addOutputAddress(H,BigInt(C.value),t)}return{inputs:n,tx:T}}async function WH(n){let{assetValue:y,recipient:T,memo:o,feeRate:f,sender:t,fetchTxHex:C}=n,H=o?Bn(o):null,_=await a(mf.Zcash).getUtxos({address:t,fetchTxHex:C!==!1}),A=[{address:T,value:Number(y.getBaseValue("string"))},...H?[{script:H,value:0}]:[]],{inputs:X,outputs:M}=Dn({chain:mf.Zcash,changeAddress:t,feeRate:f,inputs:_,outputs:A});if(!(X&&M))throw new uy("toolbox_utxo_insufficient_balance",{assetValue:y,sender:t});let l=l8({consensusBranchId:Q8.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:Z8.SAPLING}),{tx:w,inputs:q}=D8({compiledMemo:H,inputs:X,outputs:M,sender:t,tx:l});return{inputs:q,outputs:M,tx:w}}function it(n){let y=J8(n).with({signer:ct.not(ct.nullish)},({signer:_})=>_).with({phrase:ct.string},({phrase:_,derivationPath:A,index:X=0})=>{let M=A||w8[mf.Zcash]||[44,133,0,0,0],l=q8(M,{index:X}),w=A8(l);return z8({derivationPath:w,phrase:_})}).otherwise(()=>{return}),T=Co({chain:mf.Zcash,signer:y});async function o(_){if(!y)throw new uy("toolbox_utxo_no_signer");return await y.signTransaction(_)}async function f(_){let A=await o(_);return T.broadcastTx(A.toHex())}async function t({recipient:_,assetValue:A,feeOptionKey:X=U8.Fast,...M}){let l=await y?.getAddress();if(!(y&&l))throw new uy("toolbox_utxo_no_signer");let w=M.feeRate||(await T.getFeeRates())[X],{tx:q}=await WH({...M,assetValue:A,feeRate:w,recipient:_,sender:l}),Q=(await y.signTransaction(q)).toHex();return T.broadcastTx(Q)}function C({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let X=MH(_),l=BH.fromMasterSeed(X).derive(A);if(!l.privateKey||!l.publicKey)throw new uy("toolbox_utxo_invalid_params");return{privateKey:l.privateKey,publicKey:l.publicKey}}function H({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let X=C({derivationPath:A,phrase:_}),M=ZH();return B8(M).encode(X.privateKey)}return{...T,createKeysForPath:C,createTransaction:WH,getPrivateKeyFromMnemonic:H,signAndBroadcastTransaction:f,signTransaction:o,transfer:t,validateAddress:jo}}var Y8;var ht=k(()=>{Ko();mo();xy();Y8=H8(QH.sha256)});import{hex as O8}from"@scure/base";import{HDKey as R8}from"@scure/bip32";import{derivationPathToString as x8}from"@swapkit/helpers";function JH({xpub:n,chain:y,count:T,startIndex:o=0,accountIndex:f}){if(zn("count",T),T<1)throw RangeError("count must be at least 1");zn("startIndex",o);let t=_n(y),C=R8.fromExtendedKey(n,t.bip32),H=yo({accountIndex:f,chain:y}),_=Lo(H),A=[];for(let X of[!1,!0]){let M=C.deriveChild(Number(X));for(let l=0;l<T;l++){let w=o+l,q=M.deriveChild(w);if(!q.publicKey)continue;let G=bo({accountIndex:f,chain:y,change:X,index:w});A.push({accountIndex:_,address:py({chain:y,network:t,publicKey:q.publicKey}),change:X,index:w,path:x8(G),pubkey:O8.encode(q.publicKey)})}}return A}var YH=k(()=>{Yy();mo()});import{Chain as ro,SwapKitError as F8}from"@swapkit/helpers";function S8(n,y){switch(n){case ro.BitcoinCash:return jt(y||{});case ro.Zcash:return it(y);case ro.Bitcoin:case ro.Dogecoin:case ro.Litecoin:case ro.Dash:return Co({chain:n,...y});default:throw new F8("toolbox_utxo_not_supported",{chain:n})}}var NH=k(()=>{hf();mo();ht();Yy();YH();hf();xy()});var mt={};e(mt,{validateZcashAddress:()=>jo,validateUtxoAddress:()=>vt,validateBchAddress:()=>To,toLegacyAddress:()=>cn,toCashAddress:()=>zy,stripToCashAddress:()=>ky,stripPrefix:()=>Yo,nonSegwitChains:()=>Sy,isValidAddress:()=>ut,getUtxoToolbox:()=>S8,getUtxoNetwork:()=>qU,getUtxoApi:()=>a,getUTXOAddressValidator:()=>Vt,getUTXOAddressPath:()=>bo,getUTXOAccountPath:()=>yo,getUTXOAccountIndexFromPath:()=>Lo,getScriptTypeForAddress:()=>Vo,getOutputSize:()=>Oy,getNetworkForChain:()=>_n,getInputSize:()=>fo,getDustThreshold:()=>Ry,detectAddressNetwork:()=>Pt,deriveAddressesFromXpub:()=>JH,createZcashToolbox:()=>it,createUTXOToolbox:()=>Co,createHDWalletHelpers:()=>$1,createCustomUtxoApi:()=>wU,createBCHToolbox:()=>jt,compileMemo:()=>Bn,calculateTxSize:()=>Zo,assertDerivationIndex:()=>zn,addressFromKeysGetter:()=>Kt,addInputsAndOutputs:()=>to,accumulative:()=>Dn,UtxoNetwork:()=>kt,UTXOScriptType:()=>Kf,TX_OVERHEAD:()=>vf,SEGWIT_MARKER_FLAG_WEIGHT:()=>Vf,OutputSizes:()=>Dy,OP_RETURN_OVERHEAD:()=>g1,MIN_TX_FEE:()=>OU,InputSizes:()=>bf});var rt=k(()=>{mo();Yy();Ko();NH();hf();ht()});import{KeyPairSigner as p8}from"@near-js/signers";import{derivationPathToString as k8,SwapKitError as u8}from"@swapkit/helpers";import*as zH from"near-seed-phrase";function Py(n){return n.length>=2&&n.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(n)}async function rf(n){let{KeyPair:y}=await import("@near-js/crypto"),T=n.index||0,o=n.derivationPath?k8(n.derivationPath.slice(0,3)):`m/44'/397'/${T}'`,{secretKey:f}=zH.parseSeedPhrase(n.phrase,o),t=y.fromString(f);return OH(t)}async function gt(n){let{KeyPair:y}=await import("@near-js/crypto"),T=y.fromString(n);return OH(T)}function OH(n){return new DH(n)}async function gf(n,y){let o=(await n.query({account_id:y,finality:"final",request_type:"view_access_key_list"})).keys.find((H)=>H.access_key.permission==="FullAccess");if(!o)throw new u8("toolbox_near_no_public_key_found");let{PublicKey:f}=await import("@near-js/crypto"),t=f.fromString(o.public_key);return{nonce:o.access_key.nonce||0,publicKey:t}}var DH;var dt=k(()=>{DH=class DH extends p8{#n;constructor(n){super(n);this.#n=n}getAddress(){let n=this.#n.getPublicKey(),y=Buffer.from(n.data).toString("hex");return Promise.resolve(y)}}});function at(n){return"recipient"in n&&"amount"in n&&!("contractId"in n)}function st(n){return"contractId"in n&&"methodName"in n}function et(n){return"actions"in n}function n0(n){return"newAccountId"in n}function o0(n){return"contractCode"in n}function y0(n){return"customEstimator"in n}function f0(n){let y=0;for(let T of n)switch(T.enum){case"transfer":y+=Number(tn.SIMPLE_TRANSFER);break;case"functionCall":y+=Number(tn.CONTRACT_CALL);break;case"createAccount":y+=Number(tn.ACCOUNT_CREATION);break;case"deployContract":y+=Number(tn.CONTRACT_DEPLOYMENT);break;case"addKey":y+=Number(tn.ACCESS_KEY_ADDITION);break;case"deleteKey":y+=Number(tn.ACCESS_KEY_DELETION);break;case"stake":y+=Number(tn.STAKE);break;default:y+=Number(tn.CONTRACT_CALL)}return y.toString()}function T0(n){if(n==="ft_transfer"||n==="ft_transfer_call")return tn.TOKEN_TRANSFER;if(n==="storage_deposit")return tn.STORAGE_DEPOSIT;return tn.CONTRACT_CALL}function P8(n){return(BigInt(n)*BigInt(1000000000000)).toString()}function I8(n){return(BigInt(n)/BigInt(1000000000000)).toString()}var tn;var t0=k(()=>{tn={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function C0({account:n,contractId:y,viewMethods:T,changeMethods:o}){let{Contract:f}=await import("@near-js/accounts");return new f(n,y,{changeMethods:o,useLocalViewExecution:!0,viewMethods:T})}import{JsonRpcProvider as $8}from"@near-js/providers";import{AssetValue as H0,Chain as go,getRPCUrl as RH,SwapKitError as ln}from"@swapkit/helpers";import{match as xH,P as FH}from"ts-pattern";function E8(n){let y;async function T(){if(y)return y;return y=await xH(n).with({phrase:FH.string},async(W)=>{return await rf(W)}).with({signer:FH.any},({signer:W})=>W).otherwise(()=>{return}),y}async function o(){let W=await RH(go.Near);return new $8({url:W})}async function f(W){let{Account:N}=await import("@near-js/accounts"),O=await o(),x=await T(),S=W||await t();return new N(S,O,x)}async function t(){let W=await T();if(!W)throw new ln("toolbox_near_no_signer");return await W.getAddress()}async function C(W){return(await Z({changeMethods:[],contractId:W.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:W.accountId})}async function H(W){let O=[await l({args:{account_id:W.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await l({args:{amount:W.assetValue.getBaseValue("string"),memo:W.memo||null,receiver_id:W.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return U({actions:O,receiverId:W.contractId})}async function _(W){if(!await T())throw new ln("toolbox_near_no_signer");let{assetValue:O,recipient:x,memo:S}=W,I=await t();if(!O.isGasAsset&&O.address){if(!await C({accountId:x,contractId:O.address}))return H({assetValue:O,contractId:O.address,memo:S,recipient:x})}let E=await A({...W,sender:I});return G(E)}async function A({recipient:W,assetValue:N,memo:O,attachedDeposit:x,sender:S,functionCall:I}){let E=await o();if(!Py(W))throw new ln("toolbox_near_invalid_address",{recipient:W});if(!Py(S))throw new ln("toolbox_near_invalid_address",{sender:S});if(I)return M({...I,sender:S});if(!N.isGasAsset){let Uo=N.address;if(!Uo)throw new ln("toolbox_near_missing_contract_address");return M({args:{amount:N.getBaseValue("string"),memo:O||null,receiver_id:W},attachedDeposit:x||"1",contractId:Uo,gas:"250000000000000",methodName:"ft_transfer",sender:S})}let{publicKey:b,nonce:K}=await gf(E,S),Hn=N.getBaseValue("bigint"),{actionCreators:Xn,createTransaction:d}=await import("@near-js/transactions"),{baseDecode:Zn}=await import("@near-js/utils"),Un=[Xn.transfer(Hn)];if(O&&x)Un.push(Xn.functionCall("memo",{memo:O},BigInt("250000000000000"),BigInt(x)));let Fn=await E.block({finality:"final"}),Ao=Zn(Fn.header.hash);return d(S,b,W,K+1,Un,Ao)}function X(W){let N=W.encode();return Buffer.from(N).toString("base64")}async function M({args:W,attachedDeposit:N,contractId:O,gas:x,methodName:S,sender:I}){let E=await o(),{publicKey:b,nonce:K}=await gf(E,I),{createTransaction:Hn,actionCreators:Xn}=await import("@near-js/transactions"),{baseDecode:d}=await import("@near-js/utils"),Zn=await E.block({finality:"final"}),Un=d(Zn.header.hash),Fn=[Xn.functionCall(S,Buffer.from(JSON.stringify(W)),BigInt(x),BigInt(N))];return Hn(I,b,O,K+1,Fn,Un)}async function l(W){let{actionCreators:N}=await import("@near-js/transactions");return N.functionCall(W.methodName,Buffer.from(JSON.stringify(W.args)),BigInt(W.gas),BigInt(W.attachedDeposit))}async function w(W){let N=await T();if(!N)throw new ln("toolbox_near_no_signer");let[O,x]=await N.signTransaction(W);return x}async function q(W){return(await(await o()).sendTransaction(W)).transaction.hash}async function G(W){let N=await T();if(!N)throw new ln("toolbox_near_no_signer");try{let O=await w(W);return await q(O)}catch{return N.signAndSendTransactions?.({transactions:[W]})}}async function Q(W){let N=await T();if("assetValue"in W){let x=await z();try{let S=await RH(go.Near),I=await fetch(S,{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:E}}=await I.json(),{execution:b,send_sir:K}=E.transaction_costs.action_receipt_creation_config,{execution:Hn,send_sir:Xn}=E.transaction_costs.action_creation_config.transfer_cost,d=BigInt(Xn)+BigInt(Hn),Zn=BigInt(K)+BigInt(b),Fn=(d+Zn)*BigInt(x.toString());return H0.from({chain:go.Near,value:Fn})}catch(S){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",S);let I=BigInt("115123062500"),E=BigInt("108059500000"),K=(I+E)*BigInt(x.toString());return H0.from({chain:go.Near,value:K})}}let O=N?await f():void 0;return B(W,O)}async function z(){let W=await o();try{return await W.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function L(W,N,O){if(!await T())throw new ln("toolbox_near_no_signer");let S=await f(),{formatNearAmount:I}=await import("@near-js/utils"),{PublicKey:E}=await import("@near-js/crypto"),b=I(O)||"0";return(await S.createAccount(W,E.fromString(N),BigInt(b))).transaction.hash}async function Y(W){let N=await T();try{if(!N)throw new ln("toolbox_near_no_signer");let{actionCreators:O}=await import("@near-js/transactions"),{contractId:x,methodName:S,args:I,deposit:E}=W,b=await f(),K=await B({args:I||{},contractId:x,methodName:S}),Hn=O.functionCall(S,I||{},K.getBaseValue("bigint"),BigInt(E||"1"));return(await b.signAndSendTransaction({actions:[Hn],receiverId:x})).transaction_outcome.id}catch(O){throw new ln("toolbox_near_transfer_failed",{error:O})}}async function Z(W){let N=await f();return C0({account:N,changeMethods:W.changeMethods,contractId:W.contractId,viewMethods:W.viewMethods})}async function U(W){if(!await T())throw new ln("toolbox_near_no_signer");if(W.actions.length===0)throw new ln("toolbox_near_empty_batch");return(await(await f()).signAndSendTransaction({actions:W.actions,receiverId:W.receiverId})).transaction.hash}async function B(W,N){let O=await xH(W).when(at,()=>tn.SIMPLE_TRANSFER).when(st,(S)=>T0(S.methodName)).when(et,(S)=>f0(S.actions)).when(n0,()=>tn.ACCOUNT_CREATION).when(o0,()=>tn.CONTRACT_DEPLOYMENT).when(y0,(S)=>{if(!N)throw new ln("toolbox_near_no_account");return S.customEstimator(N)}).otherwise(()=>{throw new ln("toolbox_near_invalid_gas_params")}),x=BigInt(O)*BigInt(1000000000000);return H0.from({chain:go.Near,value:x})}function J(W,N){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),B(W,N)}async function D(){let W=await o();try{return(await W.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function R(){let W=await T();return W?(await W.getPublicKey()).toString():""}return{broadcastTransaction:q,callFunction:Y,createAction:l,createContract:Z,createContractFunctionCall:M,createSubAccount:L,createTransaction:A,estimateGas:J,estimateGasLimit:B,estimateTransactionFee:Q,executeBatchTransaction:U,getAddress:t,getBalance:wn(go.Near),getGasPrice:D,getNearProvider:o,getPublicKey:R,getSignerFromPhrase:rf,getSignerFromPrivateKey:gt,serializeTransaction:X,signAndBroadcastTransaction:G,signTransaction:w,transfer:_,validateAddress:Py}}var _0=k(()=>{$n();dt();t0()});var SH=k(()=>{_0()});var A0={};e(A0,{validateNearAddress:()=>Py,tgasToGas:()=>P8,isSimpleTransfer:()=>at,isCustomEstimator:()=>y0,isContractDeployment:()=>o0,isContractCall:()=>st,isBatchTransaction:()=>et,isAccountCreation:()=>n0,getNearToolbox:()=>E8,getNearSignerFromPrivateKey:()=>gt,getNearSignerFromPhrase:()=>rf,getFullAccessPublicKey:()=>gf,getContractMethodGas:()=>T0,gasToTGas:()=>I8,estimateBatchGas:()=>f0,createNearContract:()=>C0,GAS_COSTS:()=>tn});var U0=k(()=>{dt();t0();_0();SH()});var q0={};e(q0,{validateRadixAddress:()=>kH,getRadixToolbox:()=>m8});import{GatewayApiClient as b8}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as v8}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as pH,Chain as w0,SKConfig as V8,SwapKitError as K8}from"@swapkit/helpers";function kH(n){return n.startsWith("account_rdx1")&&n.length===66}function j8({networkApi:n}){return async function(T){let o=await c8({address:T,networkApi:n}),f=await i8({networkApi:n,resources:o});if(!f.some((C)=>C.isGasAsset))return[pH.from({chain:w0.Radix}),...f];return f}}async function c8({address:n,networkApi:y}){let T=!0,o,f=[],t=await h8(y);while(T){let C={address:n,at_ledger_state:{state_version:t},cursor:o,limit_per_page:100},H=await y.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:C});if(f=f.concat(H.items),H.next_cursor)o=H.next_cursor;else T=!1}return f}async function i8({resources:n,networkApi:y}){let T=[],o=50,f=[];for(let t=0;t<n.length;t+=50)f.push(n.slice(t,t+50));for(let t of f){let C=t.map((A)=>A.resource_address),H=await y.state.getEntityDetailsVaultAggregated(C),_=new Map;for(let A of H)if(A.details!==void 0){let X=A.metadata?.items.find((l)=>l.key==="symbol"),M=X?.value.typed.type==="String"?X.value.typed.value:"?";if(A.details.type==="FungibleResource")_.set(A.address,{decimals:A.details.divisibility,symbol:M})}for(let A of t)if(A.aggregation_level==="Global"){let X=_.get(A.resource_address)||{decimals:0,symbol:"?"},M=pH.from({asset:X.symbol!==w0.Radix?`${w0.Radix}.${X.symbol}-${A.resource_address}`:"XRD.XRD",value:A.amount});T.push(M)}}return T}async function h8(n){return(await n.status.getCurrent()).ledger_state.state_version}function m8({dappConfig:n}={}){let y=n||V8.get("integrations").radix,T=v8({...y,networkId:y.network?.networkId||1}),o=b8.initialize(T.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:j8({networkApi:o}),networkApi:o,signAndBroadcast:()=>{throw new K8("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:kH}}var G0=()=>{};import{SwapKitError as r8}from"@swapkit/helpers";function df(n){return/^[0-9A-Fa-f]{40}$/.test(n)}function Iy(n){if(df(n))return n.toUpperCase();if(n.length<=3){let T=Buffer.from(n.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${T}${"0".repeat(10)}`.toUpperCase()}let y=Buffer.from(n).toString("hex").toUpperCase();if(y.length>40)throw new r8({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n,reason:"Currency exceeds maximum length (20 bytes)"}});return y.padEnd(40,"0")}function g8(n){if(!df(n))return n;if(n.toUpperCase().startsWith("00")){let y=n.slice(24,30);try{let T=Buffer.from(y,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(T)&&T.length>0)return T}catch{}return n.toUpperCase()}try{let y=n.replace(/0+$/,""),T=y.length%2===0?y:`${y}0`,o=Buffer.from(T,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(o))return o}catch{}return n.toUpperCase()}function ao(n){if(df(n))return n.toUpperCase();if(n.length<=3)return n;return Iy(n)}var af=()=>{};import{RequestClient as d8,warnOnce as a8}from"@swapkit/helpers";async function s8(n,y){let T=ao(n),o=sf.find((f)=>ao(f.currency)===T&&f.issuer===y);if(o)return o;try{let f=await d8.get(`https://api.xrplmeta.org/token/${n}:${y}`);if(f)return{currency:n,decimals:15,description:f.desc,domain:f.domain,icon:f.icon,issuer:y,name:f.name,verified:f.self_assessment?.is_regulated||f.self_assessment?.is_licensed}}catch(f){a8({condition:!0,id:`xrpl_token_lookup_${n}_${y}`,warning:`Failed to fetch XRPL token info for ${n}:${y}: ${f}`})}return{currency:n,decimals:15,issuer:y,verified:!1}}function e8(n){return sf.filter((y)=>y.issuer===n)}function nw(n,y){let T=ao(n);return sf.some((o)=>ao(o.currency)===T&&o.issuer===y)}var sf;var uH=k(()=>{af();sf=[{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 l0={};e(l0,{validateRippleAddress:()=>oT,parseXrplTokenIdentifier:()=>VH,normalizeCurrency:()=>ao,isKnownToken:()=>nw,isHexCurrency:()=>df,hexToCurrency:()=>g8,hashes:()=>Hw,getXrplTokenInfo:()=>s8,getRippleToolbox:()=>Cw,getKnownTokensByIssuer:()=>e8,formatXrplTokenIdentifier:()=>KH,currencyToHex:()=>Iy,XRPL_TOKEN_ERROR_CODES:()=>nT,XRPL_KNOWN_TOKENS:()=>sf});import{AssetValue as ef,Chain as On,getChainConfig as PH,getRPCUrl as ow,SwapKitError as An}from"@swapkit/helpers";import{match as IH,P as $H}from"ts-pattern";import{Client as yw,isValidAddress as vH,Wallet as fw,xrpToDrops as Tw}from"xrpl";import{hashes as Hw}from"xrpl";function VH(n){let y=n.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!y?.[1]||!y?.[2])return null;if(!vH(y[2]))return null;return{currency:y[1],issuer:y[2]}}function KH(n,y){return`${On.Ripple}.${n}-${y}`}function tw(n){if(n.isGasAsset)return Tw(n.getValue("string"));let y=VH(n.toString());if(!y)throw new An({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n.toString()}});return{currency:y.currency,issuer:y.issuer,value:n.getValue("string")}}function bH(n){let y=fw.fromMnemonic(n);return{getAddress:()=>Promise.resolve(y.address),signTransaction:(T)=>Promise.resolve(y.sign(T))}}function oT(n){return vH(n)}function Cw(n={}){let y=IH(n).with({phrase:$H.string},({phrase:L})=>bH(L)).with({signer:$H.any},({signer:L})=>L).otherwise(()=>{return}),T;async function o(){let L=await ow(On.Ripple);if(!L)throw new An({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:On.Ripple}});let Y=new yw(L);return await Y.connect(),Y}async function f(){if(T){let L=await T.catch(()=>null);if(L?.isConnected())return L}return T=o(),T}let t=()=>{if(!y)throw new An({errorKey:"toolbox_ripple_signer_not_found"});return y.getAddress()},C=async(L)=>{let Y=L||await t(),{baseDecimal:Z}=PH(On.Ripple),U=await f();try{let[B,J]=await Promise.all([U.request({account:Y,command:"account_info"}),U.request({account:Y,command:"account_lines"})]),D=B.result.account_data.Balance,R=[ef.from({chain:On.Ripple,fromBaseDecimal:Z,value:D})];for(let W of J.result.lines){let N=KH(W.currency,W.account);if(Number.parseFloat(W.balance)!==0)R.push(ef.from({asset:N,asyncTokenLookup:!1,value:W.balance}))}return R}catch(B){if(B.data?.error_code===EH.ACCOUNT_NOT_FOUND)return[ef.from({chain:On.Ripple,value:0})];throw new An({errorKey:"toolbox_ripple_get_balance_error",info:{address:Y,error:B}})}},H=async()=>{let{baseDecimal:L}=PH(On.Ripple),U=(await(await f()).request({command:"fee"})).result.drops.open_ledger_fee;return ef.from({chain:On.Ripple,fromBaseDecimal:L,value:U})};async function _(L){let Y=L||await t(),Z=await f();try{return(await Z.request({account:Y,command:"account_lines"})).result.lines.map((B)=>({account:B.account,authorized:B.authorized??!1,balance:B.balance,currency:B.currency,freeze:B.freeze??!1,freezePeer:B.freeze_peer??!1,limit:B.limit,limitPeer:B.limit_peer,noRipple:B.no_ripple??!1,noRipplePeer:B.no_ripple_peer??!1,peerAuthorized:B.peer_authorized??!1,qualityIn:B.quality_in??0,qualityOut:B.quality_out??0}))}catch(U){if(U.data?.error_code===EH.ACCOUNT_NOT_FOUND)return[];throw new An({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:Y,error:U}})}}async function A({address:L,currency:Y,issuer:Z}){let U=await _(L),B=Iy(Y);return U.some((J)=>{return Iy(J.currency)===B&&J.account===Z})}async function X({currency:L,issuer:Y,limit:Z,sender:U}){let B=U||await t();if(!oT(Y))throw new An({errorKey:"core_transaction_invalid_recipient_address",info:{address:Y}});let J=Number.parseFloat(Z);if(Number.isNaN(J)||J<0)throw new An({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:Z}});let D=await f(),R={Account:B,LimitAmount:{currency:L,issuer:Y,value:Z},TransactionType:"TrustSet"};return D.autofill(R)}async function M({assetValue:L,recipient:Y,memo:Z,sender:U,destinationTag:B,extendBySeconds:J=150}){if(!oT(Y))throw new An({errorKey:"core_transaction_invalid_recipient_address"});let D=U||await t();if(L.chain!==On.Ripple)throw new An({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:L.toString()}});let R=tw(L),W={Account:D,Amount:R,Destination:Y,TransactionType:"Payment",...B!==void 0&&{DestinationTag:B}};if(Z)W.Memos=[{Memo:{MemoData:Buffer.from(Z).toString("hex")}}];let O=await(await f()).autofill(W);if(O.LastLedgerSequence&&J>0)O.LastLedgerSequence+=Math.ceil(J/4);return O}function l(L){if(!y)throw new An({errorKey:"toolbox_ripple_signer_not_found"});return y.signTransaction(L)}async function w(L){let Z=await(await f()).submitAndWait(L),{result:U}=Z;if(U.validated)return U.hash;let B=U.meta?.TransactionResult,J=IH(B).with(nT.tecNO_LINE,()=>"No trust line exists for this token").with(nT.tecPATH_DRY,()=>"Payment path could not deliver funds").with(nT.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new An({errorKey:"toolbox_ripple_broadcast_error",info:{chain:On.Ripple,...J?{reason:J}:{txResult:B}}})}let q=async(L)=>{try{let Y=await l(L);return w(Y.tx_blob)}catch(Y){if(Y instanceof An)throw Y;throw new An({errorKey:"toolbox_ripple_broadcast_error",info:{chain:On.Ripple,error:Y}})}};async function G(L){if(!y)throw new An({errorKey:"toolbox_ripple_signer_not_found"});let Y=await y.getAddress(),Z=await M({...L,sender:Y}),U=await l(Z);return w(U.tx_blob)}async function Q(L){if(!y)throw new An({errorKey:"toolbox_ripple_signer_not_found"});let Y=await y.getAddress(),Z=await X({...L,sender:Y}),U=await l(Z);return w(U.tx_blob)}function z(){let L=T;if(T=null,L)L.then((Y)=>{if(Y?.isConnected())return Y.disconnect();return}).catch((Y)=>{console.warn("XRPL Cleanup failed silently:",Y)})}return{broadcastTransaction:w,createSigner:bH,createTransaction:M,disconnect:z,estimateTransactionFee:H,getAddress:t,getBalance:C,getTrustLines:_,hasTrustLine:A,setTrustLine:X,setTrustLineAndBroadcast:Q,signAndBroadcastTransaction:q,signTransaction:l,transfer:G,validateAddress:oT}}var EH,nT;var X0=k(()=>{af();af();uH();EH={ACCOUNT_NOT_FOUND:19},nT={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 _w}from"@noble/hashes/sha2.js";import{bytesToHex as jH,hexToBytes as cH}from"@noble/hashes/utils.js";import{SwapKitError as so}from"@swapkit/helpers";function W0(n,y){let T=0n,o=0n,f=y;while(f<n.length&&f-y<10){let t=n[f++];if(t===void 0)break;if(T|=BigInt(t&127)<<o,o+=7n,(t&128)===0)return[T,f]}throw new so("toolbox_tron_transaction_creation_failed")}function $y(n){let y=[],T=n<0n?n+2n**64n:n;while(T>=128n)y.push(Number(T&0x7fn)|128),T>>=7n;return y.push(Number(T)),y}function yT(n,y,T){let o=n.get(y);if(o)o.push(T);else n.set(y,[T])}function qw(n){let y=new Map,T=0;while(T<n.length){let[o,f]=W0(n,T);T=f;let t=Number(o>>3n),C=Number(o&7n);if(C===fT){let[H,_]=W0(n,T);T=_,yT(y,t,{data:new Uint8Array($y(H)),wireType:fT})}else if(C===TT){let[H,_]=W0(n,T);T=_;let A=Number(H);if(A<0||T+A>n.length)throw new so("toolbox_tron_transaction_creation_failed");let X=n.slice(T,T+A);T+=A,yT(y,t,{data:X,wireType:TT})}else if(C===iH){if(T+8>n.length)throw new so("toolbox_tron_transaction_creation_failed");let H=n.slice(T,T+8);T+=8,yT(y,t,{data:H,wireType:iH})}else if(C===hH){if(T+4>n.length)throw new so("toolbox_tron_transaction_creation_failed");let H=n.slice(T,T+4);T+=4,yT(y,t,{data:H,wireType:hH})}else throw new so("toolbox_tron_transaction_creation_failed")}return y}function Gw(n){let y=[];for(let[t,C]of[...n.entries()].sort(([H],[_])=>H-_))for(let{wireType:H,data:_}of C){let A=BigInt(t<<3|H);if(y.push(new Uint8Array($y(A))),H===TT)y.push(new Uint8Array($y(BigInt(_.length))));y.push(_)}let T=y.reduce((t,C)=>t+C.length,0),o=new Uint8Array(T),f=0;for(let t of y)o.set(t,f),f+=t.length;return o}function mH(n,y){if(!n||n.length%2!==0)throw new so("toolbox_tron_transaction_creation_failed");let T=cH(n),o=qw(T);if(y.expiration!==void 0)o.set(Aw,[{data:new Uint8Array($y(BigInt(y.expiration))),wireType:fT}]);if(y.data!==void 0)o.set(Uw,[{data:cH(y.data),wireType:TT}]);if(y.fee_limit!==void 0)o.set(ww,[{data:new Uint8Array($y(BigInt(y.fee_limit))),wireType:fT}]);let f=Gw(o),t=jH(f),C=jH(_w(f));return{raw_data_hex:t,txID:C}}var fT=0,iH=1,TT=2,hH=5,Aw=8,Uw=10,ww=18;var rH=()=>{};import{secp256k1 as gH}from"@noble/curves/secp256k1.js";import{sha256 as dH}from"@noble/hashes/sha2.js";import{keccak_256 as lw}from"@noble/hashes/sha3.js";import{bytesToHex as eo,hexToBytes as tT}from"@noble/hashes/utils.js";import{createBase58check as Xw}from"@scure/base";import{SwapKitError as aH}from"@swapkit/helpers";function Rn(n){if(typeof n!=="string")return!1;try{let y=CT.decode(n);return y.length===21&&y[0]===sH}catch{return!1}}function eH(n){return eo(CT.decode(n))}function Bw(n){return CT.decode(n).slice(1)}function n_(n){let y=gH.getPublicKey(tT(n),!1),T=lw(y.slice(1)).slice(-20),o=new Uint8Array(21);return o[0]=sH,o.set(T,1),CT.encode(o)}function o_({txID:n,privateKey:y}){let T=gH.sign(tT(n),tT(y),{format:"recovered",prehash:!1}),o=T[0]??0,f=eo(T.slice(1,33)),t=eo(T.slice(33,65)),C=(o+27).toString(16).padStart(2,"0");return f+t+C}function ny({txID:n,raw_data_hex:y}){let T=eo(dH(tT(y)));if(n!==T)throw new aH("toolbox_tron_invalid_transaction_integrity",{expected:T,txID:n})}function Mw(n){return`000000000000000000000000${eo(Bw(n))}`}function Lw(n){let y=typeof n==="bigint"?n:BigInt(n);if(y<0n||y>=Ww)throw new aH("toolbox_tron_invalid_token_identifier",{identifier:y.toString()});return y.toString(16).padStart(64,"0")}function oy(n){return n.map(({type:y,value:T})=>y==="address"?Mw(T):Lw(BigInt(T))).join("")}function y_(n){return eo(new TextEncoder().encode(n))}var CT,sH=65,Ww;var B0=k(()=>{CT=Xw(dH),Ww=2n**256n});import{Chain as Qw,getRPCUrlSync as Zw,SwapKitError as xn,warnOnce as M0}from"@swapkit/helpers";function T_(){try{return Zw(Qw.Tron)}catch{return f_}}function t_(){let n=new AbortController,y=setTimeout(()=>n.abort(),zw);return{cleanup:()=>clearTimeout(y),signal:n.signal}}async function yy(n,y){let{signal:T,cleanup:o}=t_();try{let f=await fetch(`${T_()}${n}`,{body:JSON.stringify(y),headers:{"Content-Type":"application/json"},method:"POST",signal:T});if(!f.ok)throw new xn("toolbox_tron_trongrid_api_error",{message:`${f.status} ${f.statusText} on ${n}`});return await f.json()}finally{o()}}async function C_(n,y){let{signal:T,cleanup:o}=t_();try{let f=await fetch(`${y??T_()}${n}`,{headers:{"Content-Type":"application/json"},signal:T});if(!f.ok)throw new xn("toolbox_tron_trongrid_api_error",{message:`${f.status} ${f.statusText} on ${n}`});return await f.json()}finally{o()}}async function H_(n){if(!Rn(n))throw new xn("toolbox_tron_trongrid_api_error",{address:n,message:"Invalid address"});try{let y=await C_(`/v1/accounts/${n}`,f_);if(!(y.success&&y.data)||y.data.length===0)return;let T;try{T=eH(n).toLowerCase()}catch{T=n.toLowerCase()}let o=y.data.find((f)=>f.address.toLowerCase()===T);if(!o)return;return{balance:o.balance,trc20:o.trc20||[]}}catch(y){if(y instanceof xn)throw y;throw new xn("toolbox_tron_trongrid_api_error",{address:n,message:y instanceof Error?y.message:"Unknown error"})}}async function __({from:n,to:y,amount:T}){let f=await yy("/wallet/createtransaction",{amount:T,owner_address:n,to_address:y,visible:!0});if(!f.txID||!f.raw_data_hex||!f.raw_data)throw new xn("toolbox_tron_transaction_creation_failed");let C=f.raw_data?.contract?.[0]?.parameter?.value;if(C?.to_address!==y||C?.owner_address!==n||C?.amount!==T)throw new xn("toolbox_tron_transaction_creation_failed");return ny(f),f}async function A_({ownerAddress:n,contractAddress:y,functionSelector:T,parameter:o,feeLimit:f,callValue:t=0}){let C=await yy("/wallet/triggersmartcontract",{call_value:t,contract_address:y,fee_limit:f,function_selector:T,owner_address:n,parameter:o,visible:!0});if(!C.result.result||!C.transaction?.txID||!C.transaction?.raw_data_hex)throw new xn("toolbox_tron_transaction_creation_failed");let _=C.transaction.raw_data?.contract?.[0]?.parameter?.value;if(_?.contract_address!==y||_?.owner_address!==n)throw new xn("toolbox_tron_transaction_creation_failed");return ny(C.transaction),C.transaction}function U_({ownerAddress:n,contractAddress:y,functionSelector:T,parameter:o}){return yy("/wallet/triggerconstantcontract",{contract_address:y,function_selector:T,owner_address:n,parameter:o,visible:!0})}async function Ey(n){try{let{result:y,txid:T}=await yy("/wallet/broadcasttransaction",{raw_data:n.raw_data,raw_data_hex:n.raw_data_hex,signature:n.signature,txID:n.txID,visible:n.visible});if(!y||!T)throw new xn("toolbox_tron_token_transfer_failed");return T}catch(y){throw new xn("toolbox_tron_broadcast_failed",{error:y})}}async function HT(){let n={};try{let{chainParameter:y}=await C_("/wallet/getchainparameters");for(let T of y)n[T.key]=T.value}catch(y){M0({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${y instanceof Error?y.message:y}`})}return{bandwidthFee:n.getTransactionFee??Jw,createAccountFee:n.getCreateAccountFee??Yw,energyFee:n.getEnergyFee??Nw}}async function L0(n){try{let y=await yy("/wallet/getaccountresource",{address:n,visible:!0});return{bandwidth:{free:(y.freeNetLimit??600)-(y.freeNetUsed??0),total:y.NetLimit??0,used:y.NetUsed??0},energy:{total:y.EnergyLimit??0,used:y.EnergyUsed??0}}}catch(y){return M0({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${y instanceof Error?y.message:y}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function Q0(n){try{let y=await yy("/wallet/getaccount",{address:n,visible:!0});return y&&Object.keys(y).length>0}catch{return!1}}async function Z0(n){try{let{energy_used:y}=await U_({...n,ownerAddress:n.sender});return y}catch(y){return M0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy, using default: ${y instanceof Error?y.message:y}`}),65000}}async function w_({assetAddress:n,owner:y,spender:T}){let o=oy([{type:"address",value:y},{type:"address",value:T}]),t=(await U_({contractAddress:n,functionSelector:"allowance(address,address)",ownerAddress:T,parameter:o})).constant_result?.[0];if(!t)return 0n;try{return BigInt(`0x${t}`)}catch{return 0n}}var f_="https://api.trongrid.io",Jw=1000,Yw=1e5,Nw=420,zw=30000;var q_=k(()=>{B0()});import{bytesToHex as Dw}from"@noble/hashes/utils.js";import{HDKey as Ow}from"@scure/bip32";import{mnemonicToSeedSync as Rw}from"@scure/bip39";import{AssetValue as mn,BaseDecimal as G_,Chain as Qn,derivationPathToString as W_,getRPCUrl as xw,NetworkDerivationPath as B_,SwapKitError as Cn,updateDerivationPath as M_,warnOnce as l_}from"@swapkit/helpers";import{match as Fw,P as J0}from"ts-pattern";function Q_({phrase:n,derivationPath:y}){let T=Ow.fromMasterSeed(Rw(n)).derive(y);if(!T.privateKey)throw new Cn("toolbox_tron_no_signer");return Dw(T.privateKey)}function Z_({phrase:n,derivationPath:y,index:T}){let o=y||W_(M_(B_[Qn.Tron],{index:T||0}));return Q_({derivationPath:o,phrase:n})}function Pw({phrase:n,derivationPath:y}){let T=Q_({derivationPath:y,phrase:n}),o=n_(T);return{getAddress:()=>Promise.resolve(o),signTransaction:(f)=>{ny(f);let t=o_({privateKey:T,txID:f.txID});return Promise.resolve({...f,signature:[t]})}}}function X_({transaction:n,memo:y,expiration:T,feeLimit:o}){let f={},t={};if(o!==void 0&&n.raw_data)f.fee_limit=o,t.fee_limit=o;if(y){let _=y_(y);f.data=_,t.data=_}if(T){let _=n.raw_data.expiration+T*1000;f.expiration=_,t.expiration=_}if(Object.keys(f).length===0)return n;let{raw_data_hex:C,txID:H}=mH(n.raw_data_hex,f);return{...n,raw_data:{...n.raw_data,...t},raw_data_hex:C,txID:H}}function J_(n={}){let y="index"in n?n.index||0:0,T=W_("derivationPath"in n&&n.derivationPath?n.derivationPath:M_(B_[Qn.Tron],{index:y})),o,f=!1;function t(){if(f)return Promise.resolve(o);return o=Fw(n).with({phrase:J0.string},({phrase:U})=>Pw({derivationPath:T,phrase:U})).with({signer:J0.not(J0.nullish)},({signer:U})=>U).otherwise(()=>{return}),f=!0,Promise.resolve(o)}async function C(){let U=await t();if(!U)throw new Cn("toolbox_tron_no_signer");return U.getAddress()}async function H(U){let B=U||pw,J=await HT(),D=B*J.energyFee,R=Math.ceil(D*1.5);return Math.min(Math.max(R,1e7),150000000)}async function _({contractAddress:U,functionSelector:B,parameter:J,sender:D,memo:R,expiration:W}){let N=await Z0({contractAddress:U,functionSelector:B,parameter:J,sender:D}),O=await H(N),x=await A_({contractAddress:U,feeLimit:O,functionSelector:B,ownerAddress:D,parameter:J});return X_({expiration:W,feeLimit:O,memo:R,transaction:x})}async function A(U){if(!Rn(U))return[mn.from({chain:Qn.Tron})];try{let B=await H_(U);if(!B)return[mn.from({chain:Qn.Tron})];let J=[mn.from({chain:Qn.Tron,fromBaseDecimal:6,value:String(B.balance)})],D=B.trc20?.find((R)=>(Y0 in R));if(D){let R=D[Y0];J.push(mn.from({asset:`TRON.USDT-${Y0}`,fromBaseDecimal:6,value:R}))}return J}catch(B){return l_({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${B instanceof Error?B.message:B}`}),[mn.from({chain:Qn.Tron})]}}async function X({recipient:U,assetValue:B,memo:J,expiration:D}){if(!Rn(U))throw new Cn("toolbox_tron_token_transfer_failed",{message:"invalid address"});let R=await t();if(!R)throw new Cn("toolbox_tron_no_signer");try{let W=await C(),N=await G({assetValue:B,expiration:D,memo:J,recipient:U,sender:W}),O=await R.signTransaction(N),x=await Ey(O);if(!x)throw new Cn("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return x}catch(W){throw new Cn("toolbox_tron_token_transfer_failed",{message:W instanceof Error?W.message:String(W)})}}function M({requiredBandwidth:U,resources:B,feePerUnit:J}){let D=Math.max(0,B.free+B.total-B.used);return U>D?(U-D)*J:0}async function l({recipient:U,senderAddress:B}){let[J,D,R]=await Promise.all([HT(),Q0(U),L0(B)]),W=D?0:J.createAccountFee,N=M({feePerUnit:J.bandwidthFee,requiredBandwidth:Sw,resources:R.bandwidth});return mn.from({chain:Qn.Tron,fromBaseDecimal:G_.TRON,value:W+N})}async function w({assetValue:U,recipient:B,senderAddress:J}){let D=U.address;if(!D)throw new Cn("toolbox_tron_invalid_token_identifier",{identifier:U.toString()});let[R,W,N,O]=await Promise.all([HT(),Q0(B),L0(J),Z0({contractAddress:D,functionSelector:"transfer(address,uint256)",parameter:oy([{type:"address",value:B},{type:"uint256",value:U.getBaseValue("string")}]),sender:J})]),x=W?0:R.createAccountFee,S=M({feePerUnit:R.bandwidthFee,requiredBandwidth:kw,resources:N.bandwidth}),I=Math.max(0,N.energy.total-N.energy.used),E=O>I?(O-I)*R.energyFee:0;return mn.from({chain:Qn.Tron,fromBaseDecimal:G_.TRON,value:x+S+E})}async function q({assetValue:U,recipient:B,sender:J}){let D=await t();try{let R=J?J:D?await C():void 0;if(!R)return U.isGasAsset?mn.from({chain:Qn.Tron,value:0.1}):mn.from({chain:Qn.Tron,value:15});return U.isGasAsset?l({recipient:B,senderAddress:R}):w({assetValue:U,recipient:B,senderAddress:R})}catch(R){throw l_({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${R instanceof Error?R.message:R}`}),new Cn("toolbox_fee_estimation_failed",{chain:Qn.Tron,error:R})}}async function G({recipient:U,assetValue:B,memo:J,sender:D,expiration:R}){if(!Rn(U)||!Rn(D))throw new Cn("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(B.isGasAsset){let N=await __({amount:B.getBaseValue("number"),from:D,to:U});return X_({expiration:R,memo:J,transaction:N})}let W=B.address;if(!W)throw new Cn("toolbox_tron_invalid_token_identifier",{identifier:B.toString()});return _({contractAddress:W,expiration:R,functionSelector:"transfer(address,uint256)",memo:J,parameter:oy([{type:"address",value:U},{type:"uint256",value:B.getBaseValue("string")}]),sender:D})}async function Q(U){ny(U);let B=await t();if(!B)throw new Cn("toolbox_tron_no_signer");return B.signTransaction(U)}async function z(U){let B=await Q(U);return Ey(B)}function L({assetAddress:U,spenderAddress:B,from:J}){return w_({assetAddress:U,owner:J,spender:B})}async function Y({assetAddress:U,spenderAddress:B,from:J,amount:D}){let R=await L({assetAddress:U,from:J,spenderAddress:B});if(!D)return R>0n;return R>=BigInt(D)}async function Z({assetAddress:U,spenderAddress:B,amount:J,from:D}){if(!Rn(U)||!Rn(B))throw new Cn("toolbox_tron_approve_failed");let R=await t();if(!R)throw new Cn("toolbox_tron_no_signer");let W=D||await C(),N=J!==void 0?BigInt(J).toString():uw;try{let O=await _({contractAddress:U,functionSelector:"approve(address,uint256)",parameter:oy([{type:"address",value:B},{type:"uint256",value:N}]),sender:W}),x=await R.signTransaction(O),S=await Ey(x);if(!S)throw new Cn("toolbox_tron_approve_failed");return S}catch(O){if(O instanceof Cn)throw O;throw new Cn("toolbox_tron_approve_failed",{error:O})}}return{approve:Z,broadcastTransaction:Ey,createTransaction:G,estimateTransactionFee:q,getAddress:C,getApprovedAmount:L,getBalance:A,getRpcUrl:()=>xw(Qn.Tron),isApproved:Y,signAndBroadcastTransaction:z,signTransaction:Q,transfer:X,validateAddress:Rn}}var L_,Sw=268,pw=65000,kw=345,Y0="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",uw="115792089237316195423570985008687907853269984665640564039457584007913129639935";var Y_=k(()=>{rH();q_();B0();L_=Rn});var N0={};e(N0,{validateTronAddress:()=>L_,getTronToolbox:()=>J_,getTronPrivateKeyFromMnemonic:()=>Z_});var z0=k(()=>{Y_()});import{AssetValue as by,Chain as Ho,derivationPathToString as Iw,getChainConfig as $w,getRPCUrl as Ew,NetworkDerivationPath as bw,SwapKitError as _o}from"@swapkit/helpers";import{match as vw,P as Vw}from"ts-pattern";function _T(n){if(!n||typeof n!=="string"||!n.startsWith("G")||n.length!==56)return!1;return Kw.test(n)}async function jw(n){if(!_T(n))return!1;try{let{StrKey:y}=await import("@stellar/stellar-sdk");return y.isValidEd25519PublicKey(n)}catch{return!1}}function N_(n={}){let y,T=n.derivationPath||bw[Ho.Stellar],o=Iw(T.slice(0,3));async function f({phrase:G,path:Q}){let{HDKey:z}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),{Keypair:Y}=await import("@stellar/stellar-sdk"),Z=L(G),B=z.fromMasterSeed(Z).derive(Q,!0);return Y.fromRawEd25519Seed(Buffer.from(B.privateKey))}async function t(){if(y)return y;let G=vw(n).with({phrase:Vw.string},({phrase:Q})=>Q).otherwise(()=>{return});if(!G)throw new _o("toolbox_stellar_no_signer");return y=await f({path:o,phrase:G}),y}async function C(){let{Horizon:G}=await import("@stellar/stellar-sdk"),Q=await Ew(Ho.Stellar);return new G.Server(Q)}async function H(){try{return(await t()).publicKey()}catch{return""}}async function _(G){let Q=G||await H();if(!Q)throw new _o("toolbox_stellar_account_not_found");try{return(await(await C()).loadAccount(Q)).balances.map((Y)=>{if(Y.asset_type==="native")return by.from({chain:Ho.Stellar,value:Y.balance});let Z="asset_code"in Y?Y.asset_code:"",U="asset_issuer"in Y?Y.asset_issuer:"";return by.from({asset:`${Ho.Stellar}.${Z}-${U}`,asyncTokenLookup:!1,value:Y.balance})})}catch{return[by.from({chain:Ho.Stellar,value:0})]}}async function A({recipient:G,assetValue:Q,memo:z,sender:L}){if(z){if(new TextEncoder().encode(z).length>28)throw new _o("helpers_invalid_memo_type")}if(!await jw(G))throw new _o("core_transaction_invalid_recipient_address");let Z=L||await H();if(!Z)throw new _o("toolbox_stellar_no_signer");let{Asset:U,Memo:B,Networks:J,Operation:D,TransactionBuilder:R}=await import("@stellar/stellar-sdk"),W=await C(),N=await W.fetchBaseFee(),O=await W.loadAccount(Z),x=new R(O,{fee:String(N),networkPassphrase:J.PUBLIC});if(Q.isGasAsset)try{await W.loadAccount(G),x.addOperation(D.payment({amount:Q.getValue("string"),asset:U.native(),destination:G}))}catch{x.addOperation(D.createAccount({destination:G,startingBalance:Q.getValue("string")}))}else x.addOperation(D.payment({amount:Q.getValue("string"),asset:new U(Q.symbol,Q.address),destination:G}));if(z)x.addMemo(B.text(z));return x.setTimeout(30).build()}async function X(G){let{TransactionBuilder:Q,Networks:z}=await import("@stellar/stellar-sdk"),L=await t(),Y=Q.fromXDR(G.toXDR(),z.PUBLIC);return Y.sign(L),Y}async function M(G){try{let Q=await C(),{hash:z}=await Q.submitTransaction(G);return z}catch(Q){throw new _o("toolbox_stellar_broadcast_error",Q)}}async function l({recipient:G,assetValue:Q,memo:z}){let L=await t(),Y=L.publicKey(),Z=await A({assetValue:Q,memo:z,recipient:G,sender:Y});Z.sign(L);try{return(await(await C()).submitTransaction(Z)).hash}catch(U){if(U instanceof _o)throw U;throw new _o("toolbox_stellar_transaction_failed",U)}}async function w(G){let Q=await X(G);return M(Q)}async function q(){let{baseDecimal:G}=$w(Ho.Stellar);try{let L=(await(await C()).feeStats()).fee_charged.p50;return by.from({chain:Ho.Stellar,fromBaseDecimal:G,value:L})}catch{return by.from({chain:Ho.Stellar,fromBaseDecimal:G,value:"100"})}}return{broadcastTransaction:M,createTransaction:A,estimateTransactionFee:q,getAddress:H,getBalance:_,signAndBroadcastTransaction:w,signTransaction:X,transfer:l,validateAddress:_T}}var Kw;var z_=k(()=>{Kw=/^G[A-Z2-7]{55}$/});var AT={};e(AT,{validateStellarAddress:()=>_T,getStellarToolbox:()=>N_});var UT=k(()=>{z_()});import{AssetValue as cw,Chain as $,CosmosChains as D0,EVMChains as O0,FeeOption as iw,SwapKitError as hw,UTXOChains as O_}from"@swapkit/helpers";async function wX(){let{match:n}=await import("ts-pattern"),{validateAptosAddress:y}=await Promise.resolve().then(() => (Vy(),vy)),{validateEVMAddress:T}=await Promise.resolve().then(() => ($T(),UC)),{validateCardanoAddress:o}=await Promise.resolve().then(() => (jT(),KT)),{getCosmosAddressValidator:f}=await Promise.resolve().then(() => (Lf(),Mf)),{validateHyperCoreAddress:t}=await Promise.resolve().then(() => (Lt(),Mt)),{validateSolanaAddress:C}=await Promise.resolve().then(() => (Nt(),Yt)),{validateStarknetAddress:H}=await Promise.resolve().then(() => (Rf(),Of)),{validateSuiAddress:_}=await Promise.resolve().then(() => (Sf(),Ff)),{validateTonAddress:A}=await Promise.resolve().then(() => (uf(),kf)),{getUTXOAddressValidator:X}=await Promise.resolve().then(() => (rt(),mt)),{validateNearAddress:M}=await Promise.resolve().then(() => (U0(),A0)),{validateRadixAddress:l}=await Promise.resolve().then(() => (G0(),q0)),{validateRippleAddress:w}=await Promise.resolve().then(() => (X0(),l0)),{validateTronAddress:q}=await Promise.resolve().then(() => (z0(),N0)),{validateStellarAddress:G}=await Promise.resolve().then(() => (UT(),AT));return function({address:z,chain:L}){return n(L).with(...O0,()=>T(z)).with(...O_,(Z)=>{return X(Z)(z)}).with(...D0,(Z)=>{return f(Z)(z)}).with($.Aptos,()=>y(z)).with($.Radix,()=>l(z)).with($.HyperCore,()=>t(z)).with($.Near,()=>M(z)).with($.Ripple,()=>w(z)).with($.Solana,()=>C(z)).with($.Stellar,()=>G(z)).with($.Starknet,()=>H(z)).with($.Sui,()=>_(z)).with($.Ton,()=>A(z)).with($.Tron,()=>q(z)).with($.Cardano,()=>o(z)).otherwise(()=>!1)}}function qX(n){return async function(T){let{match:o}=await import("ts-pattern");return o(n).returnType().with(...O0,async(f)=>{let t=await D_(f),C=await t.createTransaction(T),H="feeOptionKey"in T?T.feeOptionKey:iw.Fast;return t.estimateTransactionFee({...C,feeOption:H})}).with($.Bitcoin,$.BitcoinCash,$.Dogecoin,$.Dash,$.Litecoin,$.Solana,$.Ripple,$.Tron,$.Near,$.Cardano,$.HyperCore,async(f)=>{return(await D_(f)).estimateTransactionFee(T)}).with($.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (Vy(),vy));return f().estimateTransactionFee(T)}).with($.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (Rf(),Of));return(await f()).estimateTransactionFee(T)}).with($.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (UT(),AT));return f().estimateTransactionFee()}).with($.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (Sf(),Ff));return f().estimateTransactionFee(T)}).with($.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (uf(),kf));return f().estimateTransactionFee(T)}).with(...D0,async()=>{let{estimateTransactionFee:f}=await Promise.resolve().then(() => (Lf(),Mf));return f(T)}).otherwise(async()=>cw.from({chain:n}))}}async function D_(n,y){let{match:T}=await import("ts-pattern");return T(n).returnType().with(...O0,async()=>{let{getEvmToolboxAsync:o}=await Promise.resolve().then(() => (IT(),HC));return await o(n,y)}).with(...O_,async()=>{let{getUtxoToolbox:o}=await Promise.resolve().then(() => (rt(),mt));return o(n,y)}).with(...D0,async()=>{let{getCosmosToolbox:o}=await Promise.resolve().then(() => (Lf(),Mf));return o(n,y)}).with($.Aptos,async()=>{let{getAptosToolbox:o}=await Promise.resolve().then(() => (Vy(),vy));return o(y)}).with($.HyperCore,async()=>{let{getHyperCoreToolbox:o}=await Promise.resolve().then(() => (Lt(),Mt));return o(y)}).with($.Radix,async()=>{let{getRadixToolbox:o}=await Promise.resolve().then(() => (G0(),q0));return o(y)}).with($.Ripple,async()=>{let{getRippleToolbox:o}=await Promise.resolve().then(() => (X0(),l0));return o(y)}).with($.Solana,async()=>{let{getSolanaToolbox:o}=await Promise.resolve().then(() => (Nt(),Yt));return o(y)}).with($.Stellar,async()=>{let{getStellarToolbox:o}=await Promise.resolve().then(() => (UT(),AT));return o(y)}).with($.Starknet,async()=>{let{getStarknetToolbox:o}=await Promise.resolve().then(() => (Rf(),Of));return o(y)}).with($.Sui,async()=>{let{getSuiToolbox:o}=await Promise.resolve().then(() => (Sf(),Ff));return o(y)}).with($.Tron,async()=>{let{getTronToolbox:o}=await Promise.resolve().then(() => (z0(),N0));return o(y)}).with($.Near,async()=>{let{getNearToolbox:o}=await Promise.resolve().then(() => (U0(),A0));return o(y)}).with($.Cardano,async()=>{let{getCardanoToolbox:o}=await Promise.resolve().then(() => (jT(),KT));return o(y)}).with($.Ton,async()=>{let{getTONToolbox:o}=await Promise.resolve().then(() => (uf(),kf));return o(y)}).otherwise(()=>{throw new hw("toolbox_not_supported",{chain:n})})}export{D_ as getToolbox,qX as getFeeEstimator,wX as getAddressValidator};
|
|
1
|
+
var IU=Object.defineProperty;var PU=(y)=>y;function tU(y,n){this[y]=PU.bind(null,n)}var yy=(y,n)=>{for(var o in n)IU(y,o,{get:n[o],enumerable:!0,configurable:!0,set:tU.bind(n,o)})};var I=(y,n)=>()=>(y&&(n=y(y=0)),n);var F=((y)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(y,{get:(n,o)=>(typeof require<"u"?require:n)[o]}):y)(function(y){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+y+'" is not supported')});import{AssetValue as nn,Chain as py,derivationPathToString as pU,getChainConfig as Q0,getRPCUrlSync as xC,NetworkDerivationPath as EU,SwapKitError as Ty}from"@swapkit/helpers";import{match as FC,P as Z0}from"ts-pattern";function Df(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let n=y.slice(2);if(n.length===0||n.length>64)return!1;return VU.test(n)}function $C({derivationPath:y,provider:n,...o}={}){let f,T=pU(y||EU[py.Aptos],{allHardened:!0});async function C(){if(f)return f;return f=await FC(o).with({phrase:Z0.string},async({phrase:Q})=>{let{Ed25519Account:B}=await import("@aptos-labs/ts-sdk");return B.fromDerivationPath({mnemonic:Q,path:T})}).with({signer:Z0.any},({signer:Q})=>Q).otherwise(()=>{return}),f}async function H(){let{Aptos:Q,AptosConfig:B}=await import("@aptos-labs/ts-sdk"),D=new B({fullnode:n||xC(py.Aptos)});return new Q(D)}async function U(){return(await C())?.accountAddress.toString()||""}async function _(Q){let B=Q||await U();if(!B)throw new Ty("toolbox_aptos_address_required");let{baseDecimal:D,chain:L}=Q0(py.Aptos);try{let w=await H(),N=await w.getAccountAPTAmount({accountAddress:B}),z=[nn.from({chain:L,fromBaseDecimal:D,value:N.toString()})],J=await w.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:B}}}});for(let Y of J){if(Y.asset_type===qf.COIN_TYPE||Number(Y.amount)<=0)continue;let R=Y.asset_type;if(R){let q=("metadata"in Y&&typeof Y.metadata==="object"&&Y.metadata!==null?Y.metadata:void 0)?.decimals??D;z.push(nn.from({asset:`${py.Aptos}.APT-${R}`,fromBaseDecimal:q,value:String(Y.amount)}))}}return z}catch{return[nn.from({chain:L})]}}async function A(Q){if(!Q){let{baseDecimal:J}=Q0(py.Aptos),Y=n||xC(py.Aptos),R=await fetch(`${Y}/estimate_gas_price`),{gas_estimate:l}=await R.json();return nn.from({chain:py.Aptos,fromBaseDecimal:J,value:String(l)})}let B=await C();if(!B)throw new Ty("toolbox_aptos_no_signer");let D=await Z(Q),L=await H(),[w]=await L.transaction.simulate.simple({signerPublicKey:B.publicKey,transaction:D});if(!w)throw new Ty("toolbox_aptos_transaction_creation_error");let N=BigInt(w.gas_used)*BigInt(w.gas_unit_price),{baseDecimal:z}=Q0(py.Aptos);return nn.from({chain:py.Aptos,fromBaseDecimal:z,value:N.toString()})}async function Z({recipient:Q,assetValue:B,maxGasAmount:D,sender:L}){if(!Df(Q))throw new Ty("core_transaction_invalid_recipient_address");let w=L||await U();if(!w)throw new Ty("toolbox_aptos_no_sender");let{AccountAddress:N}=await import("@aptos-labs/ts-sdk"),z=await H(),J=N.from(w);try{let Y=B.isGasAsset?qf.TRANSFER:qf.FUNGIBLE_STORE_TRANSFER,R=FC({address:B?.address,isGasAsset:B.isGasAsset}).with({isGasAsset:!0},()=>[N.from(Q),B.getBaseValue("bigint")]).with({address:Z0.string},({address:l})=>[N.from(l),N.from(Q),B.getBaseValue("bigint")]).otherwise(()=>null);if(!R)throw new Ty("toolbox_aptos_missing_asset_type");return z.transaction.build.simple({data:{function:Y,functionArguments:R,typeArguments:B.isGasAsset?[]:[qf.FUNGIBLE_ASSET_METADATA]},options:D?{maxGasAmount:D}:void 0,sender:J})}catch(Y){if(Y instanceof Ty)throw Y;throw new Ty("toolbox_aptos_transaction_creation_error",Y)}}async function M(Q){let B=await C();if(!B)throw new Ty("toolbox_aptos_no_signer");return(await H()).transaction.sign({signer:B,transaction:Q})}async function W({assetValue:Q,maxGasAmount:B,recipient:D}){let L=await C();if(!L)throw new Ty("toolbox_aptos_no_signer");if(!Df(D))throw new Ty("core_transaction_invalid_recipient_address");try{let w=L.accountAddress.toString(),N=await Z({assetValue:Q,maxGasAmount:B,recipient:D,sender:w});return(await(await H()).signAndSubmitTransaction({signer:L,transaction:N})).hash}catch(w){if(w instanceof Ty)throw w;throw new Ty("toolbox_aptos_transaction_creation_error",w)}}async function G({senderAuthenticator:Q,transaction:B}){try{return(await(await H()).transaction.submit.simple({senderAuthenticator:Q,transaction:B})).hash}catch(D){throw new Ty("toolbox_aptos_broadcast_error",D)}}async function X(Q){let B=await M(Q);return G({senderAuthenticator:B,transaction:Q})}return{broadcastTransaction:G,createTransaction:Z,estimateTransactionFee:A,getAddress:U,getBalance:_,signAndBroadcastTransaction:X,signTransaction:M,transfer:W,validateAddress:Df}}function IC({provider:y}){return async function({assetValue:o,recipient:f}){if(!Df(f))throw new Ty("core_transaction_invalid_recipient_address");let{AccountAddress:T}=await import("@aptos-labs/ts-sdk");if(o.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[T.from(f).toString(),o.getBaseValue("string")],function:qf.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let C=o.address;if(!C)throw new Ty("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[C,T.from(f).toString(),o.getBaseValue("string")],function:qf.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[qf.FUNGIBLE_ASSET_METADATA]})).hash}}var qf,VU;var PC=I(()=>{qf={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},VU=/^[0-9a-fA-F]+$/});var vn={};yy(vn,{validateAptosAddress:()=>Df,getAptosToolbox:()=>$C,createAptosExtensionTransfer:()=>IC});var jn=I(()=>{PC()});import{AssetValue as tC,getChainConfig as bU}from"@swapkit/helpers";import{SwapKitApi as uU}from"@swapkit/helpers/api";function pC(){function y(){let n=Date.now(),o=J0||n;return J0=o,n>J0?n:o+1}return vU+y().toString(36)}function Xy(y){return async function(o,f=!0){let T=await uU.getChainBalance({address:o,chain:y,scamFilter:f}),{baseDecimal:C}=bU(y),H=T.map(({identifier:_,value:A,decimal:Z})=>{return new tC({decimal:Z||C,identifier:_,value:A})});if(!H.some((_)=>_.isGasAsset))return[tC.from({chain:y}),...H];return H}}var vU,J0=0;var Ey=I(()=>{vU=typeof process<"u"&&process.pid?process.pid.toString(36):""});function Tn(y){return{getBalance:Xy(y)}}function jU(y){return y}var Kn=I(()=>{Ey()});import{Chain as c,getChainConfig as B0,getRPCUrl as KU,SwapKitError as hn}from"@swapkit/helpers";import{getAddress as VC,Interface as hU,JsonRpcProvider as mU}from"ethers";import{match as bC}from"ts-pattern";function uC(y){return new mU(y)}async function z0(y,n){return uC(n||await KU(y))}function on(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function N0(y){let{explorerUrl:n,chainIdHex:o,rpcUrls:f}=B0(y);return function(){return y!==c.Ethereum?{...cU({chain:y}),blockExplorerUrls:[n],chainId:o,rpcUrls:f}:void 0}}function O0(y){return![c.Adi,c.Arbitrum,c.BinanceSmartChain].includes(y)}function cU({chain:y}){let{name:n,nativeCurrency:o,baseDecimal:f}=B0(y);return bC(y).with(c.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(c.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(c.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(c.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(c.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(c.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:c.Ethereum}})).with(c.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:c.Polygon}})).otherwise(()=>({chainName:n,nativeCurrency:{decimals:f,name:o,symbol:o}}))}async function w0(y,n){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let o={...n,nonce:n.nonce!==void 0?BigInt(n.nonce):void 0};return await y.authorize(o)}function vC(y,n){let o=n!==void 0?`index ${n}: `:"",f=(T,C)=>{throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:T,message:`${o}${C}`}})};bC(y).when(({chainId:T})=>typeof T!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:T})=>!gU(T),()=>f("address","address must be a valid checksummed address")).when(({nonce:T})=>typeof T!=="bigint"||T<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:T})=>!T,()=>f("signature","signature is required")).when(({signature:T})=>typeof T?.yParity!=="number"||![0,1].includes(T.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:T})=>!EC(T?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:T})=>!EC(T?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function jC(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:n})=>y[n]!=null).map(({key:n,type:o})=>({name:n,type:o}))}function M0(y){return y.charAt(0).toUpperCase()+y.slice(1)}function L0(y,n){if(y.isTuple()&&y.components){let o=M0(y.name);return n[o]=y.components.map((f)=>({name:f.name,type:L0(f,n)})),o}if(y.isArray()){let o=y.arrayChildren;if(o?.isTuple()&&o.components){let f=M0(y.name.replace(/s$/,""));return n[f]=o.components.map((T)=>({name:T.name,type:L0(T,n)})),`${f}[]`}return`${o?.type??"bytes"}[]`}return y.type}function Y0(y,n){if(typeof y==="bigint")return y;if(n?.isTuple()&&typeof y?.toObject==="function"){let o=y.toObject(),f={};for(let[T,C]of(n.components??[]).entries())f[C.name]=Y0(o[C.name]??y[T],C);return f}if(Array.isArray(y)){let o=n?.arrayChildren;return y.map((f)=>Y0(f,o??void 0))}return y}function iU({chain:y,abi:n,data:o,to:f}){let C=new hU(n).parseTransaction({data:o});if(!C)throw new hn({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let H={},U=M0(C.name);H[U]=C.fragment.inputs.map((W)=>({name:W.name,type:L0(W,H)}));let _={};for(let[W,G]of C.fragment.inputs.entries())_[G.name]=Y0(C.args[W],G);let{chainId:A}=B0(y),Z={chainId:Number(A),verifyingContract:VC(f)},M=jC(Z);return{domain:Z,message:_,primaryType:U,types:{EIP712Domain:M,...H}}}function D0(y,n){if(!Array.isArray(y)||y.length===0)throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[o,f]of y.entries())if(vC(f,o),n!==void 0&&f.chainId!==n)throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${o}: authorization chainId (${f.chainId}) does not match transaction chainId (${n})`}})}var EC=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),gU=(y)=>{try{return typeof y==="string"&&!!VC(y)}catch{return!1}};var Cn=()=>{};var KC;var hC=I(()=>{KC=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as dU,applyFeeMultiplierToBigInt as Wy,Chain as Oy,EVMChains as rU,FeeOption as v,isGasAsset as aU,SwapKitError as h,SwapKitNumber as mn}from"@swapkit/helpers";import{erc20ABI as Hn}from"@swapkit/helpers/contracts";import{BrowserProvider as sU,Contract as mC,getAddress as cn,Interface as cC}from"ethers";import{match as gC}from"ts-pattern";function Rf({chain:y=Oy.Ethereum,provider:n,signer:o,isEIP1559Compatible:f=!0}){return{approve:T2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),approvedAmount:rC({chain:y,provider:n}),broadcastTransaction:n.broadcastTransaction,call:x0({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),createApprovalTx:U2({chain:y,provider:n,signer:o}),createContract:k0({chain:y,provider:n}),createContractTxObject:Gf({chain:y,provider:n}),createTransaction:R0({chain:y,provider:n,signer:o}),createTransferTx:R0({chain:y,provider:n,signer:o}),EIP1193SendTransaction:lf(n),estimateCall:aC({provider:n,signer:o}),estimateGasLimit:C2({chain:y,provider:n,signer:o}),estimateGasPrices:Xf({chain:y,isEIP1559Compatible:f,provider:n}),estimateTransactionFee:_2({chain:y,isEIP1559Compatible:f,provider:n}),getAddress:()=>{return o?o.getAddress():void 0},getBalance:Tn(y).getBalance,getNetworkParams:N0(y),isApproved:n2({chain:y,provider:n}),sendTransaction:sC({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),signAuthorization:H2({signer:o}),signMessage:o?(T)=>o.signMessage(T):void 0,signTypedData:o?({domain:T,types:C,value:H})=>o.signTypedData(T,C,H):void 0,transfer:o2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),validateAddress:_n}}function _n(y){try{return cn(y),!0}catch{return!1}}function kf(y){return y instanceof sU}function An(y,n,o){return new mC(y,cC.from(n),o)}function k0({provider:y}){return function(o,f){return new mC(o,cC.from(f),y)}}function l0({abi:y,funcName:n}){let o=y.find((f)=>f.name===n);if(!o)throw new h("toolbox_evm_no_abi_fragment",{funcName:n});return o.stateMutability&&eU.includes(o.stateMutability)}function iC(y){return cn(y)}function lf(y){return function({value:o,...f}){if(!kf(y))throw new h("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:T,gasPrice:C,maxFeePerGas:H,maxPriorityFeePerGas:U,..._}=f;return y.send("eth_sendTransaction",[{..._,value:on(BigInt(o||0))}])}}function dC(y,n){let o=Sf(y,n);if(o)return cn(o.toLowerCase());throw new h("toolbox_evm_invalid_gas_asset_address")}function Sf({chain:y,symbol:n,ticker:o},f){try{let T=y===Oy.BinanceSmartChain&&n==="BNB"&&o==="BNB",C=y===Oy.Hyperevm&&n==="HYPE"&&o==="HYPE",H=y===f&&n===f&&o===f,U=f2.includes(y)&&n==="ETH"&&o==="ETH";if(H||T||C||U)return S0[f];return cn(n.slice(o.length+1).replace(/^0X/,""))}catch{return null}}function Gf({provider:y}){return async({contractAddress:n,abi:o,funcName:f,funcParams:T=[],txOverrides:C})=>An(n,o,y).getFunction(f).populateTransaction(...T.concat(C).filter((H)=>typeof H<"u"))}function Xf({chain:y,provider:n,isEIP1559Compatible:o=!0}){return gC(y).with(Oy.Gnosis,()=>{return async function(){try{let{gasPrice:T,maxPriorityFeePerGas:C}=await n.getFeeData();if(!T||C===null)throw new h("toolbox_evm_no_fee_data");return{[v.Average]:{maxFeePerGas:Wy(T,v.Average),maxPriorityFeePerGas:Wy(C,v.Average)},[v.Fast]:{maxFeePerGas:Wy(T,v.Fast),maxPriorityFeePerGas:Wy(C,v.Fast)},[v.Fastest]:{maxFeePerGas:Wy(T,v.Fastest),maxPriorityFeePerGas:Wy(C,v.Fastest)}}}catch(T){throw new h("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).with(Oy.Arbitrum,()=>{return async function(){try{let{gasPrice:T}=await n.getFeeData();if(!T)throw new h("toolbox_evm_no_fee_data");let C=T*12n/10n;return{[v.Average]:{gasPrice:C},[v.Fast]:{gasPrice:Wy(C,v.Fast)},[v.Fastest]:{gasPrice:Wy(C,v.Fastest)}}}catch(T){throw new h("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:C,gasPrice:H}=await n.getFeeData();if(o){if(T===null||C===null)throw new h("toolbox_evm_no_fee_data");return{[v.Average]:{maxFeePerGas:T,maxPriorityFeePerGas:C},[v.Fast]:{maxFeePerGas:Wy(T,v.Fast),maxPriorityFeePerGas:Wy(C,v.Fast)},[v.Fastest]:{maxFeePerGas:Wy(T,v.Fastest),maxPriorityFeePerGas:Wy(C,v.Fastest)}}}if(!H)throw new h("toolbox_evm_no_gas_price");return{[v.Average]:{gasPrice:H},[v.Fast]:{gasPrice:Wy(H,v.Fast)},[v.Fastest]:{gasPrice:Wy(H,v.Fastest)}}}catch(T){throw new h("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}})}function x0({provider:y,isEIP1559Compatible:n,signer:o,chain:f}){return async function({callProvider:C,contractAddress:H,abi:U,funcName:_,funcParams:A=[],txOverrides:Z={},feeOption:M=v.Fast}){let W=C||y;if(!H)throw new h("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let G=l0({abi:U,funcName:_});if(G&&kf(W)&&o){let B=Gf({chain:f,provider:W}),D=Z?.from||await o?.getAddress(),L=await B({abi:U,contractAddress:H,funcName:_,funcParams:A,txOverrides:{...Z,from:D}});return lf(W)(L)}let X=An(H,U,W);if(G){if(!o)throw new h("toolbox_evm_no_signer");let B=Z?.from||await o.getAddress();if(!B)throw new h("toolbox_evm_no_signer_address");let D=X.connect(o),L=Xf({chain:f,isEIP1559Compatible:n,provider:y}),{maxFeePerGas:w,maxPriorityFeePerGas:N,gasPrice:z}=(await L())[M],J=await X.getFunction(_).estimateGas(...A,Z),Y=await D[_](...A,{...Z,gasLimit:J,gasPrice:z,maxFeePerGas:w,maxPriorityFeePerGas:N,nonce:Z?.nonce||await W.getTransactionCount(B)});return typeof Y?.hash==="string"?Y?.hash:Y}let Q=await X[_]?.(...A);return typeof Q?.hash==="string"?Q?.hash:Q}}function rC({provider:y,chain:n}){return function({assetAddress:f,spenderAddress:T,from:C}){return x0({chain:n,isEIP1559Compatible:!0,provider:y})({abi:Hn,contractAddress:f,funcName:"allowance",funcParams:[C,T]})}}function n2({provider:y,chain:n}){return async function({assetAddress:f,spenderAddress:T,from:C,amount:H=Un}){let U=await rC({chain:n,provider:y})({assetAddress:f,from:C,spenderAddress:T});return mn.fromBigInt(U).gte(mn.fromBigInt(BigInt(H)))}}function T2({signer:y,isEIP1559Compatible:n=!0,provider:o,chain:f}){return async function({assetAddress:C,spenderAddress:H,feeOptionKey:U=v.Fast,amount:_,gasLimitFallback:A,from:Z,nonce:M}){let W=[H,BigInt(_||Un)],G=await y?.getAddress()||Z,X={abi:Hn,contractAddress:C,funcName:"approve",funcParams:W,signer:y,txOverrides:{from:G}};if(kf(o)){let B=Gf({chain:f,provider:o}),D=lf(o),L=await B(X);return D(L)}return x0({chain:f,isEIP1559Compatible:n,provider:o,signer:y})({...X,feeOption:U,funcParams:W,txOverrides:{from:G,gasLimit:A?BigInt(A.toString()):void 0,nonce:M}})}}function o2({signer:y,isEIP1559Compatible:n=!0,provider:o}){return async function({assetValue:T,memo:C,recipient:H,feeOptionKey:U=v.Fast,sender:_,...A}){let{hexlify:Z,toUtf8Bytes:M}=await import("ethers"),W=T.getBaseValue("bigint"),G=T.chain,X=_||await y?.getAddress(),Q=sC({chain:G,isEIP1559Compatible:n,provider:o,signer:y});if(!X)throw new h("toolbox_evm_no_from_address");if(T.isGasAsset){let z={...A,data:Z(M(C||"")),feeOptionKey:U,from:X,to:H,value:W};return Q(z)}if(!Sf(T,G))throw new h("toolbox_evm_no_contract_address");let{maxFeePerGas:D,maxPriorityFeePerGas:L,gasPrice:w}=(await Xf({chain:G,isEIP1559Compatible:n,provider:o})())[U],N=await R0({chain:G,provider:o,signer:y})({assetValue:T,data:Z(M(C||"")),gasPrice:w,maxFeePerGas:D,maxPriorityFeePerGas:L,memo:C,recipient:H,sender:X});return Q(N)}}function aC({provider:y,signer:n}){return function({contractAddress:f,abi:T,funcName:C,funcParams:H=[],txOverrides:U}){if(!f)throw new h("toolbox_evm_no_contract_address");let _=An(f,T,y);return n?_.connect(n).getFunction(C).estimateGas(...H,U):_.getFunction(C).estimateGas(...H,U)}}function C2({provider:y,signer:n}){return async function({assetValue:f,recipient:T,memo:C,data:H,sender:U,funcName:_,funcParams:A,txOverrides:Z}){let M=f.bigIntValue,W=f.isGasAsset?null:Sf(f,f.chain);if(W&&_)return aC({provider:y,signer:n})({abi:Hn,contractAddress:W,funcName:_,funcParams:A,txOverrides:Z});let{hexlify:G,toUtf8Bytes:X}=await import("ethers");return y.estimateGas({data:H?H:C?G(X(C)):void 0,from:U,to:T,value:M})}}function H2({signer:y}){if(!y)return;return(n)=>w0(y,n)}function sC({provider:y,signer:n,isEIP1559Compatible:o=!0,chain:f}){return async function({feeOptionKey:C=v.Fast,...H}){let{from:U,to:_,data:A,value:Z,...M}=H;if(!n)throw new h("toolbox_evm_no_signer");if(!_)throw new h("toolbox_evm_no_to_address");let W={...M,data:A||"0x",from:U,to:_,value:BigInt(Z||0)};if(kf(y))return lf(y)(W);let G=U||await n.getAddress(),X=H.nonce||await y.getTransactionCount(G),Q=(await y.getNetwork()).chainId,B=$0(W,o);if(B==="eip7702")D0(W.authorizations||[],Q);let D=gC(B).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),L={...W,chainId:Q,nonce:X,type:D,...B==="eip7702"&&{authorizationList:W.authorizations}},w=Xf({chain:f,isEIP1559Compatible:o,provider:y}),z=B!=="legacy"&&!(W.maxFeePerGas&&W.maxPriorityFeePerGas)||!W.gasPrice?Object.entries((await w())[C]).reduce((Y,[R,l])=>({...Y,[R]:on(BigInt(l))}),{}):{},J;try{J=on(W.gasLimit||await y.estimateGas(L)*11n/10n)}catch(Y){throw new h("toolbox_evm_error_estimating_gas_limit",{error:Y})}try{let Y={...L,gasLimit:J,...z};try{return(await n.sendTransaction(Y)).hash}catch{let R=await n.signTransaction({...Y,from:G});return(await y.broadcastTransaction(R)).hash}}catch(Y){throw new h("toolbox_evm_error_sending_transaction",{error:Y})}}}function R0({provider:y,signer:n}){return async function({assetValue:f,memo:T,recipient:C,data:H,sender:U,maxFeePerGas:_,maxPriorityFeePerGas:A,gasPrice:Z,...M}){let W=f.getBaseValue("bigint"),G=f.chain,X=U||await n?.getAddress();if(!X)throw new h("toolbox_evm_no_from_address");if(aU(f)){let{hexlify:D,toUtf8Bytes:L}=await import("ethers");return{...M,data:H||D(L(T||"")),from:X,to:C,value:W}}let Q=Sf(f,G);if(!Q)throw new h("toolbox_evm_no_contract_address");return Gf({chain:f.chain,provider:y})({abi:Hn,contractAddress:Q,funcName:"transfer",funcParams:[C,W],txOverrides:{from:X,gasPrice:Z,maxFeePerGas:_,maxPriorityFeePerGas:A}})}}function U2({provider:y,signer:n,chain:o}){return async function({assetAddress:T,spenderAddress:C,amount:H,from:U}){let _=await n?.getAddress()||U,A=Gf({chain:o,provider:y}),Z=["bigint","number"].includes(typeof H)?H:H||Un;return await A({abi:Hn,contractAddress:T,funcName:"approve",funcParams:[C,BigInt(Z)],txOverrides:{from:_}})}}function _2({provider:y,isEIP1559Compatible:n=!0,chain:o}){return async function({feeOption:T=v.Fast,...C}){let U=await Xf({chain:o,isEIP1559Compatible:n,provider:y})(),_=await y.estimateGas(C),A=dU.from({chain:o}),{gasPrice:Z,maxFeePerGas:M,maxPriorityFeePerGas:W}=U[T];if(!n&&Z)return A.set(mn.fromBigInt(Z*_,A.decimal));if(M&&W){let G=(M+W)*_;return A.set(mn.fromBigInt(G,A.decimal))}throw new h("toolbox_evm_no_gas_price")}}var Un,eU,y2,S0,f2,gn=(y)=>y.type===4||(y.authorizations?.length??0)>0,F0=(y)=>!gn(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),$0=(y,n=!0)=>{if(gn(y))return"eip7702";if(F0(y)||n)return"eip1559";return"legacy"};var dn=I(()=>{Kn();Cn();Un=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");eU=["payable","nonpayable"];y2=rU.reduce((y,n)=>{return y[n]="0x0000000000000000000000000000000000000000",y},{}),S0={...y2,[Oy.Optimism]:"0x4200000000000000000000000000000000000042",[Oy.Polygon]:"0x0000000000000000000000000000000000001010"},f2=[Oy.Arbitrum,Oy.Aurora,Oy.Base,Oy.Optimism]});import{Chain as i,FeeOption as A2}from"@swapkit/helpers";import{HDNodeWallet as q2}from"ethers";import{match as G2,P as eC}from"ts-pattern";function rn(y){let n=d(i.Ethereum)(y);async function o(f,T="0x5ba1e12693dc8f9c48aad8770482f4739beed696",C="aggregate",H=A2.Fast){let U=await n.createContractTxObject({abi:KC,contractAddress:T,funcName:C,funcParams:[f]});return n.sendTransaction({...U,feeOptionKey:H})}return{...n,multicall:o}}function d(y){return function({provider:o,...f}){let T=O0(y),C=G2(f).with({phrase:eC.string},({phrase:U})=>q2.fromPhrase(U).connect(o)).with({signer:eC.any},({signer:U})=>U).otherwise(()=>{return});return Rf({chain:y,isEIP1559Compatible:T,provider:o,signer:C})}}var an,sn,en,yT,fT,nT,TT,y1,oT,CT,HT,UT,_T,AT,qn,qT,GT,XT,WT;var I0=I(()=>{hC();Cn();dn();an=d(i.Adi),sn=d(i.Arbitrum),en=d(i.Aurora),yT=d(i.Avalanche),fT=d(i.Base),nT=d(i.Berachain),TT=d(i.BinanceSmartChain),y1=d(i.Botanix),oT=d(i.Core),CT=d(i.Corn),HT=d(i.Cronos),UT=d(i.Gnosis),_T=d(i.Hyperevm),AT=d(i.Polygon),qn=d(i.Sonic),qT=d(i.Unichain),GT=d(i.XLayer),XT=d(i.Monad),WT=d(i.MegaETH)});var f1;var n1=I(()=>{f1=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as xf,Chain as W2,FeeOption as Vy,SwapKitError as P0}from"@swapkit/helpers";import{Contract as Q2,HDNodeWallet as Z2}from"ethers";import{match as J2,P as T1}from"ts-pattern";function t0(y){return new Q2(M2,f1,y)}function o1(y){return async function(){let o=t0(y);if(o&&"l1BaseFee"in o)return await o?.l1BaseFee();return}}function C1(y){return async function({from:o,to:f,nonce:T,...C}){let{Transaction:H}=await import("ethers");if(!f)throw new P0("toolbox_evm_invalid_transaction",{error:"Missing to address"});return H.from({...C,authorizationList:C.authorizationList,nonce:T?T:o?await y.getTransactionCount(o):0,to:f}).serialized}}function H1(y){return async function(o){let f=t0(y),T=await C1(y)(o);if(f&&"getL1Fee"in f)return f.getL1Fee(T)}}function U1(y){return async function(o){let T=(await y.getFeeData()).gasPrice??0n,C=await y.estimateGas(o);return T*C}}function L2(y){return async function(o){let f=await H1(y)(o)??0n,T=await U1(y)(o);return f+T}}function Y2(y){return async function(o){let f=t0(y),T=await C1(y)(o);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(T)}}function B2(y){return async function(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:f,gasPrice:T}=await y.getFeeData(),C=await o1(y)(),H=T;if(!(o&&f))throw new P0("toolbox_evm_no_fee_data");return{[Vy.Average]:{gasPrice:H,l1GasPrice:C,maxFeePerGas:o,maxPriorityFeePerGas:f},[Vy.Fast]:{gasPrice:xf(H,Vy.Fast),l1GasPrice:xf(C||0n,Vy.Fast),maxFeePerGas:o,maxPriorityFeePerGas:xf(f,Vy.Fast)},[Vy.Fastest]:{gasPrice:xf(H,Vy.Fastest),l1GasPrice:xf(C||0n,Vy.Fastest),maxFeePerGas:o,maxPriorityFeePerGas:xf(f,Vy.Fastest)}}}catch(o){throw new P0("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}}function QT({provider:y,...n}){let o=J2(n).with({phrase:T1.string},({phrase:C})=>Z2.fromPhrase(C).connect(y)).with({signer:T1.any},({signer:C})=>C).otherwise(()=>{return}),f=Rf({provider:y,signer:o}),T=o1(y);return{...f,estimateGasPrices:B2(y),estimateL1Gas:Y2(y),estimateL1GasCost:H1(y),estimateL2GasCost:U1(y),estimateTotalGasCost:L2(y),getBalance:Tn(W2.Optimism).getBalance,getL1GasPrice:T}}var M2="0x420000000000000000000000000000000000000f";var p0=I(()=>{Kn();n1();dn()});var A1={};yy(A1,{validateEVMAddress:()=>_n,toChecksumAddress:()=>iC,isStateChangingCall:()=>l0,isEIP7702Transaction:()=>gn,isEIP1559Transaction:()=>F0,isBrowserProvider:()=>kf,getTokenAddress:()=>Sf,getEvmToolboxAsync:()=>_1,getEvmToolbox:()=>E0,getEstimateGasPrices:()=>Xf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>lf,getCreateContractTxObject:()=>Gf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>dC,createContract:()=>An,XLayerToolbox:()=>GT,UNIToolbox:()=>qT,SONICToolbox:()=>qn,OPToolbox:()=>QT,MONADToolbox:()=>XT,MEGAETHToolbox:()=>WT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>AT,HYPEREVMToolbox:()=>_T,GNOToolbox:()=>UT,ETHToolbox:()=>rn,ContractAddress:()=>S0,CROToolbox:()=>HT,CORNToolbox:()=>CT,COREToolbox:()=>oT,BotanixToolbox:()=>y1,BaseEVMToolbox:()=>Rf,BSCToolbox:()=>TT,BERAToolbox:()=>nT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>en,ARBToolbox:()=>sn,ADIToolbox:()=>an});import{Chain as g}from"@swapkit/helpers";import{match as z2}from"ts-pattern";function E0(y,n){return z2(y).with(g.Adi,()=>an(n)).with(g.Arbitrum,()=>sn(n)).with(g.Aurora,()=>en(n)).with(g.Avalanche,()=>yT(n)).with(g.Base,()=>fT(n)).with(g.Berachain,()=>nT(n)).with(g.BinanceSmartChain,()=>TT(n)).with(g.Botanix,()=>qn(n)).with(g.Core,()=>oT(n)).with(g.Corn,()=>CT(n)).with(g.Cronos,()=>HT(n)).with(g.Ethereum,()=>rn(n)).with(g.Gnosis,()=>UT(n)).with(g.Hyperevm,()=>_T(n)).with(g.Optimism,()=>QT(n)).with(g.Polygon,()=>AT(n)).with(g.Sonic,()=>qn(n)).with(g.Unichain,()=>qT(n)).with(g.XLayer,()=>GT(n)).with(g.Monad,()=>XT(n)).with(g.MegaETH,()=>WT(n)).exhaustive()}async function _1(y,n){let o={...n,provider:n?.provider||await z0(y)};return E0(y,o)}var V0=I(()=>{Cn();I0();p0();dn();I0();p0()});var q1;var G1=I(()=>{((o)=>{o.Test="goerli";o.Main="homestead"})(q1||={})});var X1={};yy(X1,{validateEVMAddress:()=>_n,validateAuthorizations:()=>D0,validateAuthorization:()=>vC,toHexString:()=>on,toChecksumAddress:()=>iC,signAuthorization:()=>w0,parseEIP712FromEVMTx:()=>iU,isStateChangingCall:()=>l0,isEIP7702Transaction:()=>gn,isEIP1559Transaction:()=>F0,isBrowserProvider:()=>kf,getTokenAddress:()=>Sf,getProviderSync:()=>uC,getProvider:()=>z0,getNetworkParams:()=>N0,getIsEIP1559Compatible:()=>O0,getEvmToolboxAsync:()=>_1,getEvmToolbox:()=>E0,getEvmApi:()=>Tn,getEstimateGasPrices:()=>Xf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>lf,getCreateContractTxObject:()=>Gf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>dC,createCustomEvmApi:()=>jU,createContract:()=>An,buildEIP712DomainType:()=>jC,XLayerToolbox:()=>GT,UNIToolbox:()=>qT,SONICToolbox:()=>qn,OPToolbox:()=>QT,MONADToolbox:()=>XT,MEGAETHToolbox:()=>WT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>AT,HYPEREVMToolbox:()=>_T,GNOToolbox:()=>UT,EthNetwork:()=>q1,ETHToolbox:()=>rn,ContractAddress:()=>S0,CROToolbox:()=>HT,CORNToolbox:()=>CT,COREToolbox:()=>oT,BotanixToolbox:()=>y1,BaseEVMToolbox:()=>Rf,BSCToolbox:()=>TT,BERAToolbox:()=>nT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>en,ARBToolbox:()=>sn,ADIToolbox:()=>an});var b0=I(()=>{Kn();Cn();V0();G1()});import{bech32 as N2}from"@scure/base";import{mnemonicToSeed as O2}from"@scure/bip39";import{Bip32PrivateKey as w2}from"@stricahq/bip32ed25519";import{Transaction as D2,types as j0,address as R2,crypto as u0,utils as W1}from"@stricahq/typhonjs";import{AssetValue as Ff,Chain as Wf,getChainConfig as k2,SwapKitError as Gn}from"@swapkit/helpers";import Ly from"bignumber.js";async function K0(y,n){let o=await fetch(`${M1}${y}`,{...n,headers:{project_id:J1,...n?.headers}});if(!o.ok)throw Error(`Blockfrost API error: ${o.status} ${o.statusText}`);return o.json()}async function L1(y){try{return await K0(`/addresses/${y}/utxos`)}catch{return[]}}async function S2(){return(await K0("/blocks/latest")).slot}async function x2(){let y=await K0("/epochs/latest/parameters"),n={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new Ly(y.collateral_percent),languageView:n,maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new Ly(y.min_fee_a),minFeeB:new Ly(y.min_fee_b),minFeeRefScriptCostPerByte:new Ly(15),priceMem:new Ly(y.price_mem),priceSteps:new Ly(y.price_step),stakeKeyDeposit:new Ly(2000000),utxoCostPerByte:new Ly(y.coins_per_utxo_size)}}async function Z1(y){let n=await fetch(`${M1}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:J1},method:"POST"});if(!n.ok){let o=await n.text();throw Error(`Transaction submission failed: ${o}`)}return n.json()}function F2(y,n){return y.map((o)=>{let f=o.amount.find((H)=>H.unit==="lovelace"),T=f?new Ly(f.quantity):new Ly(0),C=o.amount.filter((H)=>H.unit!=="lovelace").map((H)=>({amount:new Ly(H.quantity),assetName:H.unit.slice(56),policyId:H.unit.slice(0,56)}));return{address:n,amount:T,index:o.output_index,tokens:C,txId:o.tx_hash}})}async function $2(y){try{let n=await L1(y),o=0n,f=new Map;for(let H of n){if(!H.amount||!Array.isArray(H.amount))continue;for(let U of H.amount){let{unit:_,quantity:A}=U;if(_==="lovelace")o+=BigInt(A);else{let Z=f.get(_)||0n;f.set(_,Z+BigInt(A))}}}let T=[],{baseDecimal:C}=k2(Wf.Cardano);if(o>0n)T.push(Ff.from({chain:Wf.Cardano,fromBaseDecimal:C,value:o.toString()}));for(let[H,U]of f)T.push(Ff.from({asset:`${Wf.Cardano}.${H}`,value:U.toString()}));if(T.length===0)return[Ff.from({chain:Wf.Cardano})];return T}catch(n){let o=n instanceof Error?n.message:String(n);return console.error(`Cardano balance fetch error: ${o}`),[Ff.from({chain:Wf.Cardano})]}}function Y1(y){if(!y||typeof y!=="string")return!1;try{let n=N2.decode(y,120);return n.prefix==="addr"||n.prefix==="addr_test"}catch{return!1}}async function I2(y,n=0,o=0){let f=await O2(y,""),C=(await w2.fromEntropy(Buffer.from(f.slice(0,64)))).derive(v0+1852).derive(v0+1815).derive(v0+n),H=C.derive(0).derive(o),U=H.toBip32PublicKey().toPublicKey().toBytes(),_=u0.hash28(U),Z=C.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),M=u0.hash28(Z),W={hash:_,type:j0.HashType.ADDRESS},G={hash:M,type:j0.HashType.ADDRESS},Q=new R2.BaseAddress(l2,W,G).getBech32(),B=H.toPrivateKey();return{getAddress:()=>Q,publicKey:U,publicKeyHash:_,signTransaction:async(D)=>{try{let L=await import("@stricahq/cbors"),w=Buffer.from(D,"hex"),N=L.Decoder.decode(w),[z,J,Y,R]=N.value,l=L.Encoder.encode(z),q=u0.hash32(l),O=B.sign(q),k=J instanceof Map?J:new Map,S=k.get(Q1)||[];S.push([U,O]),k.set(Q1,S);let x=[z,k,Y,R];return L.Encoder.encode(x).toString("hex")}catch(L){throw new Gn("toolbox_cardano_sign_transaction_failed",{message:String(L)})}}}}function P2(y){let n,o,f;async function T(){if(!f)f=await x2();return f}async function C(){if(n!==void 0)return n;if(y&&"phrase"in y&&y.phrase){let G=y.index??0;return n=await I2(y.phrase,0,G),n}if(y&&"signer"in y&&y.signer)return n=y.signer,n;return}async function H(){if(o)return o;let G=await C();if(!G)return"";if("getAddress"in G)return o=await G.getAddress(),o;return""}async function U(G){let X=G||await H();if(!X)throw new Gn("core_wallet_connection_not_found");return $2(X)}async function _(G){if(G)try{let{tx:D}=await A(G),L=D.getFee();return Ff.from({chain:Wf.Cardano,fromBaseDecimal:6,value:L.toString()})}catch{}let X=await T(),Q=400,B=X.minFeeB.plus(X.minFeeA.times(Q));return Ff.from({chain:Wf.Cardano,fromBaseDecimal:6,value:B.toString()})}async function A({sender:G="",recipient:X,assetValue:Q,memo:B,pureLovelaceOnly:D=!1}){let L=G||await H();if(!L)throw new Gn("core_wallet_connection_not_found");let[w,N,z]=await Promise.all([L1(L),S2(),T()]),J=w.filter((b)=>D?b.amount.every((j)=>j.unit==="lovelace"):b.amount.some((j)=>j.unit==="lovelace")).sort((b,j)=>{let e=b.amount.some((r)=>r.unit!=="lovelace"),_y=j.amount.some((r)=>r.unit!=="lovelace");if(e===_y)return 0;return e?1:-1}),Y=W1.getAddressFromString(L),R=W1.getAddressFromString(X),l=F2(J,Y),q=new Ly(Q.getBaseValue("string")),O=[{address:R,amount:q,tokens:[]}],k;if(B){let b=new Map;b.set("msg",[B]),k={metadata:[{data:b,label:674}]}}let S={...z,minFeeB:z.minFeeB.plus(z.minFeeA.times(4))},t=new D2({protocolParams:S}).paymentTransaction({auxiliaryData:k,changeAddress:Y,inputs:l,outputs:O,ttl:N+3600}),{payload:V}=t.buildTransaction();return{tx:t,unsignedTx:V}}async function Z(G){let X=await C();if(!X||!("signTransaction"in X))throw new Gn("core_wallet_connection_not_found");return X.signTransaction(G)}async function M({recipient:G,assetValue:X,memo:Q}){let B=await C();if(!B||!("signTransaction"in B))throw new Gn("core_wallet_connection_not_found");let{unsignedTx:D}=await A({assetValue:X,memo:Q,recipient:G,sender:await H()}),L=await Z(D);return await Z1(L)}async function W(G){let X=await Z(G);return await Z1(X)}return{createTransaction:A,estimateTransactionFee:_,getAddress:H,getBalance:U,signAndBroadcastTransaction:W,signTransaction:Z,transfer:M,validateAddress:Y1}}var J1="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",M1="https://cardano-mainnet.blockfrost.io/api/v0",l2,v0=2147483648,Q1=0;var B1=I(()=>{l2=j0.NetworkId.MAINNET});var h0={};yy(h0,{validateCardanoAddress:()=>Y1,getCardanoToolbox:()=>P2});var m0=I(()=>{B1()});import{base64 as JT,bech32 as ZT}from"@scure/base";import{SwapKitError as t2}from"@swapkit/helpers";function Xn(y){return JT.encode(Uint8Array.from(ZT.fromWords(ZT.decode(y).words)))}function Wn(y,n="thor"){return ZT.encode(n,ZT.toWords(JT.decode(y)))}function p2(y){return JT.encode(y)}function E2(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new t2("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return JT.decode(y)}var c0=()=>{};import{AssetValue as g0,Chain as u,getChainConfig as Fy,getRPCUrl as V2,SwapKitError as z1}from"@swapkit/helpers";function by(y){switch(y){case u.Maya:return{amount:[],gas:"10000000000"};case u.THORChain:return{amount:[],gas:"500000000"};case u.Kujira:return w1;case u.Noble:return D1;default:return O1}}async function uy(y){let n=await import("@cosmjs/stargate"),o=n.StargateClient??n.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return o.connect({headers:f,url:y})}async function Qf(y,n,o={}){let f=await import("@cosmjs/stargate"),T=f.SigningStargateClient??f.default?.SigningStargateClient,C=f.GasPrice??f.default?.GasPrice,H=typeof o==="string"?o:"0.0003uatom",U=typeof o==="string"?{}:o;return T.connectWithSigner(y,n,{gasPrice:C.fromString(H),...U})}async function d0(y,n){let o=await import("@cosmjs/stargate");return(o.SigningStargateClient??o.default?.SigningStargateClient).offline(y,n)}async function r0({sender:y,recipient:n,assetValue:o,memo:f="",feeRate:T,sequence:C,accountNumber:H}){let{chain:U,chainId:_}=o,A=await V2(U),M=await(await uy(A)).getAccount(y);if(!M)throw new z1("toolbox_cosmos_account_not_found",{sender:y});let W=g0.from({chain:U}),G=dy(W.symbol),X=by(U),Q=G&&T?{amount:[{amount:T.toString(),denom:G}],gas:X.gas}:X,B={amount:[{amount:o.getBaseValue("string"),denom:dy(o.symbol)}],fromAddress:y,toAddress:n};return{accountNumber:H??Number(M.accountNumber),chainId:_,fee:Q,memo:f,msgs:[{typeUrl:b2(U),value:B}],sequence:C??M.sequence}}var i0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",N1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",O1,w1,D1,dy=(y,n=!1)=>{if(n)return y.toLowerCase();switch(y){case"uUSK":case"USK":return i0;case"uYUM":case"YUM":return N1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return y}},Qn=({symbol:y,chain:n})=>{if(n===u.Maya)return(y.toUpperCase()!=="CACAO"?y:`${u.Maya}.${y}`).toUpperCase();if(n===u.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${u.THORChain}.${y}`:y).toUpperCase();return dy(y,!1)},b2=(y)=>{switch(y){case u.Maya:case u.THORChain:return"/types.MsgSend";case u.Cosmos:case u.Kujira:case u.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new z1("toolbox_cosmos_not_supported",{chain:y})}},u2,a0=(y,n)=>{let o=u2[y.toLowerCase()];if(!o)return g0.from({asset:y,fromBaseDecimal:8,value:n});let{chain:f,asset:T,decimals:C}=o,H=f?{chain:f}:{asset:T};return g0.from({...H,fromBaseDecimal:C,value:n})};var Zn=I(()=>{O1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},w1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},D1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};u2={atom:{chain:u.Cosmos,decimals:Fy(u.Cosmos).baseDecimal},cacao:{chain:u.Maya,decimals:10},kuji:{chain:u.Kujira,decimals:Fy(u.Kujira).baseDecimal},maya:{asset:`${u.Maya}.${u.Maya}`,decimals:4},rune:{chain:u.THORChain,decimals:Fy(u.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Fy(u.THORChain).baseDecimal},uatom:{chain:u.Cosmos,decimals:Fy(u.Cosmos).baseDecimal},ukuji:{chain:u.Kujira,decimals:Fy(u.Kujira).baseDecimal},usdc:{chain:u.Noble,decimals:Fy(u.Noble).baseDecimal},uusdc:{chain:u.Noble,decimals:Fy(u.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Fy(u.THORChain).baseDecimal},[i0.toLowerCase()]:{asset:`${u.Kujira}.USK`,decimals:Fy(u.Kujira).baseDecimal}}});var R1={};yy(R1,{$root:()=>$});import fy from"protobufjs/minimal.js";var p,Yy,P,$;var k1=I(()=>{p=fy.Reader,Yy=fy.Writer,P=fy.util,$=fy.roots.default||(fy.roots.default={});$.common=(()=>{let y={};return y.Asset=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.chain="",n.prototype.symbol="",n.prototype.ticker="",n.prototype.synth=!1,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))T.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))T.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))T.uint32(32).bool(f.synth);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Asset;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.chain=f.string();break;case 2:H.symbol=f.string();break;case 3:H.ticker=f.string();break;case 4:H.synth=f.bool();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!P.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!P.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!P.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Asset)return f;let T=new $.common.Asset;if(f.chain!=null)T.chain=String(f.chain);if(f.symbol!=null)T.symbol=String(f.symbol);if(f.ticker!=null)T.ticker=String(f.ticker);if(f.synth!=null)T.synth=Boolean(f.synth);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.chain="",C.symbol="",C.ticker="",C.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))C.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))C.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))C.synth=f.synth;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.Coin=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.asset=null,n.prototype.amount="",n.prototype.decimals=P.Long?P.Long.fromBits(0,0,!1):0,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))$.common.Asset.encode(f.asset,T.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))T.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))T.uint32(24).int64(f.decimals);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Coin;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.asset=$.common.Asset.decode(f,f.uint32());break;case 2:H.amount=f.string();break;case 3:H.decimals=f.int64();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let T=$.common.Asset.verify(f.asset);if(T)return"asset."+T}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!P.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!P.isInteger(f.decimals)&&!(f.decimals&&P.isInteger(f.decimals.low)&&P.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Coin)return f;let T=new $.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");T.asset=$.common.Asset.fromObject(f.asset)}if(f.amount!=null)T.amount=String(f.amount);if(f.decimals!=null){if(P.Long)(T.decimals=P.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")T.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")T.decimals=f.decimals;else if(typeof f.decimals==="object")T.decimals=new P.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)if(C.asset=null,C.amount="",P.Long){let H=new P.Long(0,0,!1);C.decimals=T.longs===String?H.toString():T.longs===Number?H.toNumber():H}else C.decimals=T.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))C.asset=$.common.Asset.toObject(f.asset,T);if(f.amount!=null&&f.hasOwnProperty("amount"))C.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")C.decimals=T.longs===String?String(f.decimals):f.decimals;else C.decimals=T.longs===String?P.Long.prototype.toString.call(f.decimals):T.longs===Number?new P.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.PubKeySet=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.secp256k1="",n.prototype.ed25519="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))T.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))T.uint32(18).string(f.ed25519);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.PubKeySet;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.secp256k1=f.string();break;case 2:H.ed25519=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!P.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!P.isString(f.ed25519))return"ed25519: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.PubKeySet)return f;let T=new $.common.PubKeySet;if(f.secp256k1!=null)T.secp256k1=String(f.secp256k1);if(f.ed25519!=null)T.ed25519=String(f.ed25519);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.secp256k1="",C.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))C.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))C.ed25519=f.ed25519;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.Tx=(()=>{function n(o){if(this.coins=[],this.gas=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.id="",n.prototype.chain="",n.prototype.fromAddress="",n.prototype.toAddress="",n.prototype.coins=P.emptyArray,n.prototype.gas=P.emptyArray,n.prototype.memo="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))T.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(34).string(f.toAddress);if(f.coins?.length)for(let C=0;C<f.coins.length;++C)$.common.Coin.encode(f.coins[C],T.uint32(42).fork()).ldelim();if(f.gas?.length)for(let C=0;C<f.gas.length;++C)$.common.Coin.encode(f.gas[C],T.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(58).string(f.memo);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Tx;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.id=f.string();break;case 2:H.chain=f.string();break;case 3:H.fromAddress=f.string();break;case 4:H.toAddress=f.string();break;case 5:if(!H.coins?.length)H.coins=[];H.coins.push($.common.Coin.decode(f,f.uint32()));break;case 6:if(!H.gas?.length)H.gas=[];H.gas.push($.common.Coin.decode(f,f.uint32()));break;case 7:H.memo=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!P.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!P.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!P.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!P.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=$.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let T=0;T<f.gas.length;++T){let C=$.common.Coin.verify(f.gas[T]);if(C)return"gas."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!P.isString(f.memo))return"memo: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Tx)return f;let T=new $.common.Tx;if(f.id!=null)T.id=String(f.id);if(f.chain!=null)T.chain=String(f.chain);if(f.fromAddress!=null)T.fromAddress=String(f.fromAddress);if(f.toAddress!=null)T.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Tx.coins: object expected");T.coins[C]=$.common.Coin.fromObject(f.coins[C])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");T.gas=[];for(let C=0;C<f.gas.length;++C){if(typeof f.gas[C]!=="object")throw TypeError(".common.Tx.gas: object expected");T.gas[C]=$.common.Coin.fromObject(f.gas[C])}}if(f.memo!=null)T.memo=String(f.memo);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[],C.gas=[];if(T.defaults)C.id="",C.chain="",C.fromAddress="",C.toAddress="",C.memo="";if(f.id!=null&&f.hasOwnProperty("id"))C.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=f.toAddress;if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=$.common.Coin.toObject(f.coins[H],T)}if(f.gas?.length){C.gas=[];for(let H=0;H<f.gas.length;++H)C.gas[H]=$.common.Coin.toObject(f.gas[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.Fee=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=P.emptyArray,n.prototype.poolDeduct="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)$.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))T.uint32(18).string(f.poolDeduct);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.Fee;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push($.common.Coin.decode(f,f.uint32()));break;case 2:H.poolDeduct=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=$.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!P.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.Fee)return f;let T=new $.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Fee.coins: object expected");T.coins[C]=$.common.Coin.fromObject(f.coins[C])}}if(f.poolDeduct!=null)T.poolDeduct=String(f.poolDeduct);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults)C.poolDeduct="";if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=$.common.Coin.toObject(f.coins[H],T)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))C.poolDeduct=f.poolDeduct;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.ProtoUint=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.value="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))T.uint32(10).string(f.value);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.common.ProtoUint;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.value=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!P.isString(f.value))return"value: string expected"}return null},n.fromObject=function(f){if(f instanceof $.common.ProtoUint)return f;let T=new $.common.ProtoUint;if(f.value!=null)T.value=String(f.value);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.value="";if(f.value!=null&&f.hasOwnProperty("value"))C.value=f.value;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y})();$.types=(()=>{let y={};return y.MsgDeposit=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=P.emptyArray,n.prototype.memo="",n.prototype.signer=P.newBuffer([]),n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)$.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))T.uint32(26).bytes(f.signer);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.types.MsgDeposit;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push($.common.Coin.decode(f,f.uint32()));break;case 2:H.memo=f.string();break;case 3:H.signer=f.bytes();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=$.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!P.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||P.isString(f.signer)))return"signer: buffer expected"}return null},n.fromObject=function(f){if(f instanceof $.types.MsgDeposit)return f;let T=new $.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");T.coins[C]=$.common.Coin.fromObject(f.coins[C])}}if(f.memo!=null)T.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")P.base64.decode(f.signer,T.signer=P.newBuffer(P.base64.length(f.signer)),0);else if(f.signer.length)T.signer=f.signer}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults){if(C.memo="",T.bytes===String)C.signer="";else if(C.signer=[],T.bytes!==Array)C.signer=P.newBuffer(C.signer)}if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=$.common.Coin.toObject(f.coins[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))C.signer=T.bytes===String?P.base64.encode(f.signer,0,f.signer.length):T.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y.MsgSend=(()=>{function n(o){if(this.amount=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.fromAddress=P.newBuffer([]),n.prototype.toAddress=P.newBuffer([]),n.prototype.amount=P.emptyArray,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=Yy.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let C=0;C<f.amount.length;++C)$.cosmos.base.v1beta1.Coin.encode(f.amount[C],T.uint32(26).fork()).ldelim();return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof p))f=p.create(f);let C=T===void 0?f.len:f.pos+T,H=new $.types.MsgSend;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.fromAddress=f.bytes();break;case 2:H.toAddress=f.bytes();break;case 3:if(!H.amount?.length)H.amount=[];H.amount.push($.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||P.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||P.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let T=0;T<f.amount.length;++T){let C=$.cosmos.base.v1beta1.Coin.verify(f.amount[T]);if(C)return"amount."+C}}return null},n.fromObject=function(f){if(f instanceof $.types.MsgSend)return f;let T=new $.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")P.base64.decode(f.fromAddress,T.fromAddress=P.newBuffer(P.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)T.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")P.base64.decode(f.toAddress,T.toAddress=P.newBuffer(P.base64.length(f.toAddress)),0);else if(f.toAddress.length)T.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");T.amount=[];for(let C=0;C<f.amount.length;++C){if(typeof f.amount[C]!=="object")throw TypeError(".types.MsgSend.amount: object expected");T.amount[C]=$.cosmos.base.v1beta1.Coin.fromObject(f.amount[C])}}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.amount=[];if(T.defaults){if(T.bytes===String)C.fromAddress="";else if(C.fromAddress=[],T.bytes!==Array)C.fromAddress=P.newBuffer(C.fromAddress);if(T.bytes===String)C.toAddress="";else if(C.toAddress=[],T.bytes!==Array)C.toAddress=P.newBuffer(C.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=T.bytes===String?P.base64.encode(f.fromAddress,0,f.fromAddress.length):T.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=T.bytes===String?P.base64.encode(f.toAddress,0,f.toAddress.length):T.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){C.amount=[];for(let H=0;H<f.amount.length;++H)C.amount[H]=$.cosmos.base.v1beta1.Coin.toObject(f.amount[H],T)}return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},n})(),y})();$.cosmos=(()=>{let y={};return y.base=(()=>{let n={};return n.v1beta1=(()=>{let o={};return o.Coin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.Coin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!P.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!P.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.Coin)return C;let H=new $.cosmos.base.v1beta1.Coin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o.DecCoin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.DecCoin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!P.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!P.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.DecCoin)return C;let H=new $.cosmos.base.v1beta1.DecCoin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o.IntProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.int="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.int!=null&&Object.hasOwnProperty.call(C,"int"))H.uint32(10).string(C.int);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.IntProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.int=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.int!=null&&C.hasOwnProperty("int")){if(!P.isString(C.int))return"int: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.IntProto)return C;let H=new $.cosmos.base.v1beta1.IntProto;if(C.int!=null)H.int=String(C.int);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.int="";if(C.int!=null&&C.hasOwnProperty("int"))U.int=C.int;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o.DecProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.dec="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=Yy.create();if(C.dec!=null&&Object.hasOwnProperty.call(C,"dec"))H.uint32(10).string(C.dec);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof p))C=p.create(C);let U=H===void 0?C.len:C.pos+H,_=new $.cosmos.base.v1beta1.DecProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.dec=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof p))C=new p(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.dec!=null&&C.hasOwnProperty("dec")){if(!P.isString(C.dec))return"dec: string expected"}return null},f.fromObject=function(C){if(C instanceof $.cosmos.base.v1beta1.DecProto)return C;let H=new $.cosmos.base.v1beta1.DecProto;if(C.dec!=null)H.dec=String(C.dec);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.dec="";if(C.dec!=null&&C.hasOwnProperty("dec"))U.dec=C.dec;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,fy.util.toJSONOptions)},f})(),o})(),n})(),y})()});import{Chain as v2}from"@swapkit/helpers";async function Zf(){let{$root:y}=await Promise.resolve().then(() => (k1(),R1)),n=await import("@cosmjs/proto-signing"),o=n.Registry??n.default?.Registry,f=await import("@cosmjs/stargate"),T=f.defaultRegistryTypes??f.default?.defaultRegistryTypes;return new o([...T,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function ry(y){let n=await import("@cosmjs/stargate"),o=n.AminoTypes??n.default?.AminoTypes,f=y===v2.THORChain?"thorchain":"mayachain";return new o({"/types.MsgDeposit":{aminoType:`${f}/MsgDeposit`,fromAmino:({signer:T,...C})=>({...C,signer:Xn(T)}),toAmino:({signer:T,...C})=>({...C,signer:Wn(T)})},"/types.MsgSend":{aminoType:`${f}/MsgSend`,fromAmino:({from_address:T,to_address:C,...H})=>({...H,fromAddress:Xn(T),toAddress:Xn(C)}),toAmino:({fromAddress:T,toAddress:C,...H})=>({...H,from_address:Wn(T),to_address:Wn(C)})}})}var s0=I(()=>{c0()});import{AssetValue as j2,Chain as MT,getChainConfig as l1,getRPCUrl as S1,SwapKitError as K2}from"@swapkit/helpers";function fo(y){let{assetValue:n,recipient:o,memo:f,sender:T,asSignable:C,asAminoMessage:H}=y;if(o)return F1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,recipient:o,sender:T});return $1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,sender:T})}async function F1({sender:y,recipient:n,assetValue:o,memo:f="",asSignable:T=!0,asAminoMessage:C=!1,sequence:H,accountNumber:U}){let _=o.chain,A=await S1(_),Z=await x1({rpcUrl:A,sender:y}),{chainId:M}=l1(_),W=e0({assetValue:o,recipient:n,sender:y}),G=T?await ay(C?W:sy(W),_):W;return{accountNumber:U||Number(Z.accountNumber),chainId:M,fee:by(_),memo:f,msgs:[G],sequence:H||Z.sequence}}async function $1({sender:y,assetValue:n,memo:o="",asSignable:f=!0,asAminoMessage:T=!1,sequence:C,accountNumber:H}){let U=n.chain,_=await S1(U),A=await x1({rpcUrl:_,sender:y}),{chainId:Z}=l1(U),M=yo({assetValue:n,memo:o,sender:y}),W=f?await ay(T?M:sy(M),U):M;return{accountNumber:H||Number(A.accountNumber),chainId:Z,fee:by(U),memo:o,msgs:[W],sequence:C||A.sequence}}function sy(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((n)=>{let o=j2.from({asset:n.asset}),f=(o.isSynthetic?o.symbol.split("/")?.[1]:o.symbol)?.toUpperCase(),T=(o.isSynthetic?o.symbol.split("/")?.[0]:o.chain)?.toUpperCase();return{...n,asset:{chain:T,symbol:f,synth:o.isSynthetic,ticker:o.ticker}}})}}}async function Jn({chain:y,memo:n,msgs:o}){let f=await Zf(),T=await ry(y),C={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:n,messages:o.map((H)=>T.fromAmino(H))}};return f.encode(C)}var h2,m2,e0=({sender:y,recipient:n,assetValue:o})=>{return{type:`${o.chain===MT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:o.getBaseValue("string"),denom:dy(o.symbol,!0)}],from_address:y,to_address:n}}},yo=({sender:y,assetValue:n,memo:o=""})=>{return{type:`${n.chain===MT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:n.getBaseValue("string"),asset:Qn(n)}],memo:o,signer:y}}},LT=({sender:y,recipient:n,assetValue:o,memo:f})=>{return!n?yo({assetValue:o,memo:f,sender:y}):e0({assetValue:o,recipient:n,sender:y})},ay=async(y,n)=>{return(await ry(n)).fromAmino(y)},x1=async({rpcUrl:y,sender:n})=>{let f=await(await uy(y)).getAccount(n);if(!f)throw new K2("toolbox_cosmos_account_not_found",{sender:n});return f};var I1=I(()=>{Zn();s0();h2=by(MT.THORChain).gas,m2=by(MT.Maya).gas});var P1=()=>{};var t1=I(()=>{P1()});var no=I(()=>{c0();I1();s0();t1()});import{stringToPath as c2}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as g2}from"@cosmjs/proto-signing";import{base64 as Co,bech32 as To}from"@scure/base";import{AssetValue as Ho,applyFeeMultiplier as p1,Chain as oy,CosmosChainPrefixes as j1,DerivationPath as i2,derivationPathToString as E1,FeeOption as Uo,getChainConfig as d2,getRPCUrl as Mn,NetworkDerivationPath as r2,SwapKitError as $f,SwapKitNumber as oo,updateDerivationPath as a2}from"@swapkit/helpers";import{SwapKitApi as K1}from"@swapkit/helpers/api";import{match as s2,P as V1}from"ts-pattern";async function Ao(y,n){try{let f=(await K1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}async function _o({phrase:y,prefix:n,...o}){let f="derivationPath"in o?o.derivationPath:`${i2[o.chain]}/${o.index}`;return await g2.fromMnemonic(y,{hdPaths:[c2(f)],prefix:n})}async function e2({privateKey:y,prefix:n}){let o=await import("@cosmjs/proto-signing");return(o.DirectSecp256k1Wallet??o.default?.DirectSecp256k1Wallet).fromKey(y,n)}function h1(y){return async function({signature:o,message:f,address:T}){let C=await y(T);if(!C?.pubkey)throw new $f("toolbox_cosmos_verify_signature_no_pubkey");let H=await import("@cosmjs/crypto"),U=H.Secp256k1Signature??H.default?.Secp256k1Signature,_=H.Secp256k1??H.default?.Secp256k1,A=U.fromFixedLength(Co.decode(o));return _.verifySignature(A,Co.decode(f),C.pubkey.value)}}function Ln({chain:y,...n}){let o=j1[y],f="index"in n?n.index||0:0,T=E1("derivationPath"in n&&n.derivationPath?n.derivationPath:a2(r2[y],{index:f})),C;async function H(){if(C)return C;return C=await s2(n).with({phrase:V1.string},({phrase:G})=>_o({derivationPath:T,phrase:G,prefix:o})).with({signer:V1.any},({signer:G})=>G).otherwise(()=>{return}),C}async function U(G){let X=await Mn(y);return(await uy(X)).getAccount(G)}async function _(){let G=await H(),[X]=await G?.getAccounts()||[];return X?.address}async function A(){let G=await H(),[X]=await G?.getAccounts()||[];if(!X?.pubkey)throw new $f("toolbox_cosmos_signer_not_defined");return Co.encode(X?.pubkey)}async function Z(G){let X=await H(),Q=await _(),B=await Mn(y);if(!(X&&Q))throw new $f("toolbox_cosmos_signer_not_defined");return await(await Qf(B,X)).sign(Q,G.msgs,G.fee,G.memo,{accountNumber:BigInt(G.accountNumber),chainId:G.chainId,sequence:G.sequence})}async function M(G){let X=await H(),Q=await _(),B=await Mn(y);if(!(X&&Q))throw new $f("toolbox_cosmos_signer_not_defined");let L=await(await Qf(B,X)).signAndBroadcast(Q,G.msgs,G.fee,G.memo);if(L.code!==0)throw new $f("core_swap_transaction_error",{code:L.code,message:L.rawLog});return L.transactionHash}async function W({recipient:G,assetValue:X,memo:Q="",feeRate:B,feeOptionKey:D=Uo.Fast}){let L=await H(),w=await _();if(!(L&&w))throw new $f("toolbox_cosmos_signer_not_defined");let N=await Mn(y),z=Ho.from({chain:y}),J=Qn(z),Y=B||n_((await u1(y,b1[y]))[D],J),R=await Qf(N,L),l=dy(X.symbol),q=[{amount:X.getBaseValue("string"),denom:l}],{transactionHash:O}=await R.sendTokens(w,G,q,Y,Q);return O}return{createPrivateKeyFromPhrase:o_(T),createTransaction:r0,fetchFeeRateFromSwapKit:Ao,getAccount:U,getAddress:_,getBalance:async(G,X)=>{let Q=await v1(y)(G),B=await Promise.all(Q.filter(({denom:D})=>D&&!D.includes("IBC/")&&!([oy.THORChain,oy.Maya].includes(y)&&D.split("-").length>2)).map(({denom:D,amount:L})=>{let w=[oy.THORChain,oy.Maya].includes(y)&&(D.includes("/")||D.includes("˜"))?`${y}.${D}`:D;return a0(w,L)}));if(B.length===0)return[Ho.from({chain:y})];return B},getBalanceAsDenoms:v1(y),getFees:()=>u1(y,b1[y]),getPubKey:A,getSignerFromPhrase:({phrase:G,derivationPath:X})=>_o({derivationPath:E1(X),index:f,phrase:G,prefix:o}),getSignerFromPrivateKey:async(G)=>{let X=await import("@cosmjs/proto-signing");return(X.DirectSecp256k1Wallet??X.default?.DirectSecp256k1Wallet).fromKey(G,o)},signAndBroadcastTransaction:M,signTransaction:Z,transfer:W,validateAddress:m1(y),verifySignature:h1(U)}}async function y_(y,n){try{let f=(await K1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}function f_({assetValue:{chain:y}}){return Ho.from({chain:y,value:T_(y)})}async function u1(y,n){let{chainId:o,baseDecimal:f}=d2(y),T=await Ao(o,n);return{average:oo.fromBigInt(BigInt(T),f),fast:oo.fromBigInt(BigInt(p1(T,Uo.Fast,!0)),f),fastest:oo.fromBigInt(BigInt(p1(T,Uo.Fastest,!0)),f)}}function n_(y,n){return{amount:[{amount:y.getBaseValue("string"),denom:n}],gas:"200000"}}function T_(y){return{[oy.Cosmos]:0.007,[oy.Kujira]:0.02,[oy.Noble]:0.01,[oy.THORChain]:0.02,[oy.Maya]:0.02,[oy.Harbor]:0.02}[y]||0}function m1(y){let n=j1[y];return function(f){if(!f.startsWith(n))return!1;try{let{prefix:T,words:C}=To.decode(f);return To.encode(T,C)===f.toLocaleLowerCase()}catch{return!1}}}function v1(y){return async function(o){let f=await Mn(y);return(await(await uy(f)).getAllBalances(o)).map((U)=>({...U,denom:U.denom.includes("/")?U.denom.toUpperCase():U.denom}))}}function o_(y){return async function(o){let f=await import("@cosmjs/crypto"),T=f.stringToPath??f.default?.stringToPath,C=f.Slip10Curve??f.default?.Slip10Curve,H=f.Slip10??f.default?.Slip10,U=f.EnglishMnemonic??f.default?.EnglishMnemonic,_=f.Bip39??f.default?.Bip39,A=new U(o),Z=await _.mnemonicToSeed(A),{privkey:M}=H.derivePath(C.Secp256k1,Z,T(y));return M}}var b1;var YT=I(()=>{Zn();b1={[oy.Cosmos]:1000,[oy.Kujira]:1000,[oy.Noble]:1000,[oy.THORChain]:5000000,[oy.Maya]:5000000,[oy.Harbor]:5000000}});import{base64 as Jf}from"@scure/base";import{Chain as C_,CosmosChainPrefixes as H_,derivationPathToString as U_,FeeOption as qo,getChainConfig as __,getRPCUrl as r1,NetworkDerivationPath as A_,RequestClient as q_,SKConfig as c1,SwapKitError as If,SwapKitNumber as g1,updateDerivationPath as G_}from"@swapkit/helpers";import{match as i1,P as d1}from"ts-pattern";function X_({prefix:y,derivationPath:n}){return async function(f,T=0){let C=await import("@cosmjs/amino"),H=C.Secp256k1HdWallet??C.default?.Secp256k1HdWallet,U=await import("@cosmjs/crypto"),_=U.stringToPath??U.default?.stringToPath;return H.fromMnemonic(f,{hdPaths:[_(`${n}/${T}`)],prefix:y})}}function W_(y){return Jf.encode(y)}function Q_(y){return async function({wallet:o,tx:f}){let{msgs:T,accountNumber:C,sequence:H,chainId:U,fee:_,memo:A}=typeof f==="string"?JSON.parse(f):f,Z=(await o.getAccounts())?.[0]?.address||"",M=await ry(y),W=await Zf(),G=await d0(o,{aminoTypes:M,registry:W}),X=[];for(let D of T){let L=await ay(D,y);X.push(L)}let{signatures:[Q]}=await G.sign(Z,X,_,A,{accountNumber:BigInt(C),chainId:U,sequence:H});return{bodyBytes:await Jn({chain:y,memo:A,msgs:T.map(sy)}),signature:W_(Q)}}}function Z_({prefix:y,chain:n}){return async function(f,T,C,H,U){let _=await r1(n),{encodeSecp256k1Pubkey:A,pubkeyToAddress:Z}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:M}=(await import("@cosmjs/stargate")).default,{sequence:W,fee:G}=JSON.parse(f),X=await a1(C,H),Q=T.map((L)=>[Z(A(Jf.decode(L.pubKey)),y),Jf.decode(L.signature)]),B=await uy(_),{transactionHash:D}=await B.broadcastTx(M(X,W,G,U,new Map(Q)));return D}}async function a1(y,n,o=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:T}=(await import("@cosmjs/amino")).default;return f(y.map((C)=>T(Jf.decode(C))),n,o)}function J_(y){return Jf.decode(y)}async function M_({privateKey:y,message:n}){let{Secp256k1:o}=(await import("@cosmjs/crypto")).default,f=await o.createSignature(Jf.decode(n),y);return Jf.encode(Buffer.concat([f.r(32),f.s(32)]))}function Go({chain:y,...n}){let{isStagenet:o}=c1.get("envs"),f=c1.get("thornodeUrls"),T=y===C_.Maya,C=i1({isMayachain:T,isStagenet:o}).with({isMayachain:!0},({isStagenet:L})=>L?f.MAYA_STAGENET:f.MAYA).otherwise(({isStagenet:L})=>L?f.THOR_STAGENET:f.THOR),H=`${o?"s":""}${H_[y]}`,U="index"in n?n.index||0:0,_="derivationPath"in n&&n.derivationPath?n.derivationPath:G_(A_[y],{index:U}),A=Ln({chain:y,...n}),Z=by(y),M;function W(){return M??=i1(n).with({phrase:d1.string},({phrase:L})=>A.getSignerFromPhrase({derivationPath:_,phrase:L})).with({signer:d1.any},({signer:L})=>Promise.resolve(L)).otherwise(()=>Promise.resolve(void 0)),M}async function G(){let L=await r1(y),w=await W();if(!w)throw new If("toolbox_cosmos_no_signer");let N=await Zf(),z=await ry(y),J=await Qf(L,w,{aminoTypes:z,registry:N});return{signer:w,signingClient:J}}async function X({fee:L,memo:w,msgs:N}){let{signer:z,signingClient:J}=await G(),Y=(await z.getAccounts())?.[0]?.address;if(!Y)throw new If("toolbox_cosmos_signer_not_defined");let R=await J.signAndBroadcast(Y,N,L,w);if(R.code!==0)throw new If("core_swap_transaction_error",{code:R.code,message:R.rawLog});return R.transactionHash}async function Q(){let L,w=`${C}/${T?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:N}}=await q_.get(w);if(!N||Number.isNaN(N)||N<0)throw new If("toolbox_cosmos_invalid_fee",{nativeFee:N.toString()});L=new g1(N)}catch{L=new g1({decimal:__(y).baseDecimal,value:T?1:0.02})}return{[qo.Average]:L,[qo.Fast]:L,[qo.Fastest]:L}}async function B({assetValue:L,memo:w="",recipient:N}){let{TxRaw:z}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:J,signingClient:Y}=await G(),R=(await J.getAccounts())?.[0]?.address;if(!R)throw new If("toolbox_cosmos_no_signer");let l="signAmino"in J,q=LT({assetValue:L,memo:w,recipient:N,sender:R});if(l){let S=await ay(q,y),{signatures:x,authInfoBytes:t}=await Y.sign(R,[S],Z,w),V=z.encode({authInfoBytes:t,bodyBytes:await Jn({chain:y,memo:w,msgs:[q].map(sy)}),signatures:x}).finish();return(await Y.broadcastTx(V)).transactionHash}let O=sy(q),k=await ay(O,y);return X({fee:Z,memo:w,msgs:[k]})}async function D(L){let{signer:w,signingClient:N}=await G(),z=(await w.getAccounts())?.[0]?.address;if(!z)throw new If("toolbox_cosmos_signer_not_defined");return N.sign(z,L.msgs,L.fee,L.memo,{accountNumber:BigInt(L.accountNumber),chainId:L.chainId,sequence:L.sequence})}return{...A,broadcastMultisigTx:Z_({chain:y,prefix:H}),buildAminoMsg:LT,buildEncodedTxBody:Jn,convertToSignable:ay,createDefaultAminoTypes:()=>ry(y),createDefaultRegistry:Zf,createMultisig:a1,createTransaction:fo,deposit:B,getFees:Q,importSignature:J_,parseAminoMessageForDirectSigning:sy,pubkeyToAddress:async(L)=>{let{pubkeyToAddress:w}=(await import("@cosmjs/amino")).default;return w(L,H)},secp256k1HdWalletFromMnemonic:X_({derivationPath:U_(_),prefix:H}),signAndBroadcastTransaction:X,signMultisigTx:Q_(y),signTransaction:D,signWithPrivateKey:M_,transfer:B}}var Xo=I(()=>{no();Zn();YT()});import{Chain as Yn,SwapKitError as L_}from"@swapkit/helpers";var Y_=(y,n)=>{switch(y){case Yn.Cosmos:case Yn.Kujira:case Yn.Noble:return Ln({chain:y,...n});case Yn.Maya:case Yn.THORChain:return Go({chain:y,...n});default:throw new L_("toolbox_cosmos_not_supported",{chain:y})}};var s1=I(()=>{YT();Xo();YT();Xo()});var BT={};yy(BT,{verifySignature:()=>h1,transferMsgAmino:()=>e0,toBase64:()=>p2,parseAminoMessageForDirectSigning:()=>sy,getSignerFromPrivateKey:()=>e2,getSignerFromPhrase:()=>_o,getMsgSendDenom:()=>dy,getFeeRateFromSwapKit:()=>y_,getDenomWithChain:()=>Qn,getDefaultChainFee:()=>by,getCosmosToolbox:()=>Y_,getCosmosAddressValidator:()=>m1,getAssetFromDenom:()=>a0,fromBase64:()=>E2,fetchFeeRateFromSwapKit:()=>Ao,estimateTransactionFee:()=>f_,depositMsgAmino:()=>yo,createTransaction:()=>fo,createThorchainToolbox:()=>Go,createStargateClient:()=>uy,createSigningStargateClient:()=>Qf,createOfflineStargateClient:()=>d0,createDefaultRegistry:()=>Zf,createDefaultAminoTypes:()=>ry,createCosmosToolbox:()=>Ln,cosmosCreateTransaction:()=>r0,convertToSignable:()=>ay,buildTransferTx:()=>F1,buildEncodedTxBody:()=>Jn,buildDepositTx:()=>$1,buildAminoMsg:()=>LT,bech32ToBase64:()=>Xn,base64ToBech32:()=>Wn,YUM_KUJIRA_FACTORY_DENOM:()=>N1,USK_KUJIRA_FACTORY_DENOM:()=>i0,THORCHAIN_GAS_VALUE:()=>h2,MAYA_GAS_VALUE:()=>m2,DEFAULT_NOBLE_FEE_MAINNET:()=>D1,DEFAULT_KUJI_FEE_MAINNET:()=>w1,DEFAULT_COSMOS_FEE_MAINNET:()=>O1});var zT=I(()=>{no();s1();Zn()});function B_({builder:y,grouping:n="na",orders:o}){return{builder:y,grouping:n,orders:o,type:"order"}}function z_({cancels:y}){return{cancels:y,type:"cancel"}}function N_({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function O_({oid:y,order:n}){return{oid:y,order:n,type:"modify"}}function w_({modifies:y}){return{modifies:y,type:"batchModify"}}function D_({asset:y,isCross:n,leverage:o}){return{asset:y,isCross:n,leverage:o,type:"updateLeverage"}}function R_({asset:y,isBuy:n,ntli:o}){return{asset:y,isBuy:n,ntli:o,type:"updateIsolatedMargin"}}function k_({asset:y,leverage:n}){return{asset:y,leverage:n,type:"topUpIsolatedOnlyMargin"}}function l_({time:y}){return{time:y,type:"scheduleCancel"}}function S_({amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T}){return{amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T,type:"usdClassTransfer"}}function x_({amount:y,destination:n,destinationDex:o,fromSubAccount:f,hyperliquidChain:T,nonce:C,signatureChainId:H,sourceDex:U,token:_}){return{amount:y,destination:n,destinationDex:o,fromSubAccount:f,hyperliquidChain:T,nonce:C,signatureChainId:H,sourceDex:U,token:_,type:"sendAsset"}}function F_({agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T}){return{agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T,type:"approveAgent"}}function $_({builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T}){return{builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T,type:"approveBuilderFee"}}function I_({hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,validator:T,wei:C}){return{hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,type:"tokenDelegate",validator:T,wei:C}}import{SwapKitError as Wo}from"@swapkit/helpers";import{keccak256 as P_,Signature as t_}from"ethers";function Qy(...y){let n=y.reduce((T,C)=>T+C.length,0),o=new Uint8Array(n),f=0;for(let T of y)o.set(T,f),f+=T.length;return o}function v_(y,n,o){if(o<n)return new Uint8Array([y+o]);if(o<=255)return new Uint8Array([y+n,o]);if(o<=65535)return new Uint8Array([y+n+1,o>>8,o&255]);return new Uint8Array([y+n+2,o>>>24&255,o>>>16&255,o>>>8&255,o&255])}function ey(y,n){let o=new Uint8Array(n),f=y;for(let T=n-1;T>=0;T-=1)o[T]=Number(f&0xffn),f>>=8n;return o}function e1(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return Qy(new Uint8Array([205]),ey(y,2));if(y<=0xffffffffn)return Qy(new Uint8Array([206]),ey(y,4));return Qy(new Uint8Array([207]),ey(y,8))}if(y>=-32n)return new Uint8Array([256+Number(y)]);if(y>=-128n)return new Uint8Array([208,256+Number(y)]);if(y>=-32768n)return Qy(new Uint8Array([209]),ey(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return Qy(new Uint8Array([210]),ey(BigInt.asUintN(32,y),4));return Qy(new Uint8Array([211]),ey(BigInt.asUintN(64,y),8))}function nH(y){let n=u_.encode(y);if(n.length<32)return Qy(new Uint8Array([160+n.length]),n);return Qy(v_(217,0,n.length),n)}function j_(y){let n=y.map((f)=>Qo(f)),o=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Qy(o,...n)}function K_(y){let n=Object.entries(y).filter(([,f])=>typeof f<"u"),o=n.length<16?new Uint8Array([128+n.length]):n.length<=65535?new Uint8Array([222,n.length>>8,n.length&255]):new Uint8Array([223,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return Qy(o,...n.flatMap(([f,T])=>[nH(f),Qo(T)]))}function Qo(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return nH(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new Wo("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return e1(BigInt(y))}if(typeof y==="bigint")return e1(y);if(y instanceof Uint8Array){let n=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Qy(n,y)}if(Array.isArray(y))return j_(y);if(typeof y==="object")return K_(y);throw new Wo("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function h_(y){let n=y.startsWith("0x")?y.slice(2):y;if(n.length%2!==0||/[^a-fA-F0-9]/u.test(n))throw new Wo("helpers_invalid_params",{hexValue:y});let o=new Uint8Array(n.length/2);for(let f=0;f<n.length;f+=2)o[f/2]=Number.parseInt(n.slice(f,f+2),16);return o}function TH(y){return{domain:p_,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...E_.Agent]}}}function oH(y){let n=b_[y.type],o=V_[y.type],{type:f,...T}=y;return{domain:{chainId:Number.parseInt(T.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:yH,version:"1"},message:{...T,hyperliquidChain:T.hyperliquidChain||fH},primaryType:n,types:{[n]:o}}}function CH(y){let n=t_.from(y);return{r:n.r,s:n.s,v:n.v}}function HH(y,n,{expiresAfter:o,vaultAddress:f}={}){let T=Qo(y),C=ey(BigInt(n),8),H=f?Qy(new Uint8Array([1]),h_(f.toLowerCase())):new Uint8Array([0]),U=typeof o==="number"?Qy(new Uint8Array([0]),ey(BigInt(o),8)):new Uint8Array;return P_(Qy(T,C,H,U))}function UH(y){let n=y.hyperliquidChain||fH;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:n};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:n};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:n};case"tokenDelegate":return{...y,hyperliquidChain:n,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:n};default:return y}}var yH="0x0000000000000000000000000000000000000000",p_,E_,fH="Mainnet",V_,b_,u_;var _H=I(()=>{p_={chainId:1337,name:"Exchange",verifyingContract:yH,version:"1"},E_={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},V_={approveAgent:[{name:"hyperliquidChain",type:"string"},{name:"agentAddress",type:"address"},{name:"agentName",type:"string"},{name:"nonce",type:"uint64"}],approveBuilderFee:[{name:"hyperliquidChain",type:"string"},{name:"maxFeeRate",type:"string"},{name:"builder",type:"address"},{name:"nonce",type:"uint64"}],sendAsset:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"sourceDex",type:"string"},{name:"destinationDex",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"fromSubAccount",type:"string"},{name:"nonce",type:"uint64"}],tokenDelegate:[{name:"hyperliquidChain",type:"string"},{name:"validator",type:"address"},{name:"wei",type:"uint64"},{name:"isUndelegate",type:"bool"},{name:"nonce",type:"uint64"}],usdClassTransfer:[{name:"hyperliquidChain",type:"string"},{name:"amount",type:"string"},{name:"toPerp",type:"bool"},{name:"nonce",type:"uint64"}]},b_={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},u_=new TextEncoder});import{AssetValue as Mo,Chain as m_,derivationPathToString as c_,getChainConfig as GH,getRPCUrl as g_,NetworkDerivationPath as i_,RequestClient as Pf,SwapKitError as tf,updateDerivationPath as d_}from"@swapkit/helpers";import{HDNodeWallet as r_}from"ethers";import{match as a_,P as Zo}from"ts-pattern";function wy(y,n){if(!Yo(y))throw new tf(n,{address:y});return y.toLowerCase()}async function Mf(y){let n=await NT();return Pf.post(`${n}/info`,{json:y})}function o8({dex:y,user:n}){return Mf({...y?{dex:y}:{},type:"clearinghouseState",user:wy(n,"helpers_invalid_params")})}function C8({user:y}){return Mf({type:"spotClearinghouseState",user:wy(y,"helpers_invalid_params")})}function H8({dex:y,user:n}){return Mf({...y?{dex:y}:{},type:"openOrders",user:wy(n,"helpers_invalid_params")})}function U8({dex:y,user:n}){return Mf({...y?{dex:y}:{},type:"frontendOpenOrders",user:wy(n,"helpers_invalid_params")})}function _8({oidOrCloid:y,user:n}){return Mf({oid:y,type:"orderStatus",user:wy(n,"helpers_invalid_params")})}function A8({aggregateByTime:y,user:n}){return Mf({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:wy(n,"helpers_invalid_params")})}function q8({aggregateByTime:y,endTime:n,startTime:o,user:f}){return Mf({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof n==="number"?{endTime:n}:{},startTime:o,type:"userFillsByTime",user:wy(f,"helpers_invalid_params")})}function AH({coin:y,token:n,value:o,spotMeta:f}){if(!o||Number(o)<=0)return null;let T=y?.toUpperCase()||`TOKEN-${n||"UNKNOWN"}`,C=s_[T]||XH,H=f?.tokens?.find((_)=>_.name===y||n!==void 0&&_.index===Number(n)),U=H?`${$y}.${T}-${H.name}:${H.tokenId}`:`${$y}.${T}`;return new Mo({decimal:C,identifier:U,value:o})}function G8(y){let n=new Map;for(let o of y){let f=o.toString({includeSynthProtocol:!0}),T=n.get(f);n.set(f,T?T.add(o):o)}if(![...n.values()].some((o)=>o.isGasAsset||o.ticker==="HYPE")){let o=Mo.from({chain:$y,value:0});n.set(o.toString({includeSynthProtocol:!0}),o)}return[...n.values()]}async function NT(){try{return await g_($y)}catch{let[y]=GH($y).rpcUrls;if(!y)throw new tf("helpers_chain_no_public_or_set_rpc_url",{chain:$y});return y}}async function Lo(){return`${await NT()}/exchange`}function X8(y){let n=T8[y.type],{type:o,...f}=y,T=n8[o];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:f8,version:"1"},message:f,primaryType:n,types:{[n]:T}}}async function WH({action:y,expiresAfter:n,nonce:o,vaultAddress:f}){let T=o||Date.now(),C=f?wy(f,"helpers_invalid_params"):void 0,H=await Lo(),U=HH(y,T,{expiresAfter:n,vaultAddress:C});return{action:y,endpoint:H,expiresAfter:n,nonce:T,typedData:TH(U),vaultAddress:C}}async function QH({action:y,nonce:n,signatureChainId:o}){let f=n||y.nonce||Date.now(),T=o||y.signatureChainId||"0xa4b1",C=UH({...y,nonce:f,signatureChainId:T});return{action:C,endpoint:await Lo(),nonce:f,typedData:oH(C)}}async function Jo({assetValue:y,recipient:n,sender:o,signatureChainId:f,time:T}){let C=wy(n,"core_transaction_invalid_recipient_address"),H=wy(o,"core_transaction_invalid_sender_address"),U=await Lo(),_=y.getValue("string"),A=T||Date.now(),Z=y.address;if(!Z)throw new tf("helpers_invalid_params",{asset:y.toString(),from:H});let M={amount:_,destination:C,hyperliquidChain:e_,signatureChainId:f||y8,time:A,token:Z,type:"spotSend"};return{action:M,endpoint:U,nonce:A,typedData:X8(M)}}async function qH(y){let n=await Pf.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(n.status!=="ok")throw new tf("core_transaction_failed",{response:n});return n}async function W8(y,n){let o=await NT(),f=n-5000;for(let T=0;T<5;T++){if(T>0)await new Promise((C)=>setTimeout(C,1000));try{let C=await Pf.post(`${o}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),H=Array.isArray(C)?C.find((U)=>U.time&&U.time>=n&&(U.delta?.type==="spotTransfer"||U.delta?.type==="internalTransfer")):void 0;if(H?.hash)return H.hash}catch{}}return""}function Yo(y){return y.startsWith("0x")&&_n(y)}function Q8(y){let n=Xy($y),o=y&&"index"in y?y.index||0:0,f=c_(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:d_(i_[$y],{index:o})),T,C=!1;function H(){if(C)return T;return T=a_(y).with({phrase:Zo.string},({phrase:W})=>{return r_.fromPhrase(W,void 0,f)}).with({signer:Zo.not(Zo.nullish)},({signer:W})=>W).otherwise(()=>{return}),C=!0,T}async function U(){let W=H();return W?await W.getAddress():""}async function _(W){let G=H();if(!G)throw new tf("toolbox_hypercore_no_signer");let X=await G.signTypedData(W.typedData.domain,W.typedData.types,W.typedData.message);return{action:W.action,endpoint:W.endpoint,nonce:W.nonce,signature:CH(X),..."expiresAfter"in W?{expiresAfter:W.expiresAfter}:{},..."vaultAddress"in W?{vaultAddress:W.vaultAddress}:{}}}async function A(W){let G=wy(W,"helpers_invalid_params");try{let X=await NT(),[Q,B,D]=await Promise.all([Pf.post(`${X}/info`,{json:{type:"spotClearinghouseState",user:G}}),Pf.post(`${X}/info`,{json:{type:"clearinghouseState",user:G}}),Pf.post(`${X}/info`,{json:{type:"spotMeta"}})]),L=(Q.spotState?.balances||Q.balances||[]).map(({coin:N,token:z,total:J})=>AH({coin:N,spotMeta:D,token:z,value:J})).filter((N)=>!!N),w=AH({coin:"USDC",spotMeta:D,value:B.withdrawable||B.marginSummary?.accountValue||B.marginSummary?.totalRawUsd});return G8(w?[...L,w]:L)}catch{return n(G)}}async function Z(W){let G=H();if(!G)throw new tf("toolbox_hypercore_no_signer");let X=W.sender||await G.getAddress(),Q=await Jo({...W,feeRate:0,sender:X}),B=await _(Q);return await qH(B),W8(X,Q.nonce)}function M(){return Mo.from({chain:$y,value:0})}return{broadcastTransaction:qH,createL1ActionRequest:WH,createTransaction:Jo,createUserSignedActionRequest:QH,estimateTransactionFee:M,getAddress:U,getBalance:A,getState:{clearinghouse:o8,frontendOpenOrders:U8,openOrders:H8,orderStatus:_8,spotClearinghouse:C8,userFills:A8,userFillsByTime:q8},signTransaction:_,transfer:Z,validateAddress:Yo}}var $y,XH,s_,e_="Mainnet",y8="0xa4b1",f8="0x0000000000000000000000000000000000000000",n8,T8;var ZH=I(()=>{b0();Ey();_H();$y=m_.HyperCore,{baseDecimal:XH}=GH($y),s_={HYPE:XH,USDC:6,USDT:6},n8={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},T8={spotSend:"HyperliquidTransaction:SpotSend"}});var Bo={};yy(Bo,{validateHyperCoreAddress:()=>Yo,getHyperCoreToolbox:()=>Q8,createUserSignedActionRequest:()=>QH,createTransaction:()=>Jo,createL1ActionRequest:()=>WH,buildUsdClassTransferAction:()=>S_,buildUpdateLeverageAction:()=>D_,buildUpdateIsolatedMarginAction:()=>R_,buildTopUpIsolatedOnlyMarginAction:()=>k_,buildTokenDelegateAction:()=>I_,buildSendAssetAction:()=>x_,buildScheduleCancelAction:()=>l_,buildOrderAction:()=>B_,buildModifyAction:()=>O_,buildCancelByCloidAction:()=>N_,buildCancelAction:()=>z_,buildBatchModifyAction:()=>w_,buildApproveBuilderFeeAction:()=>$_,buildApproveAgentAction:()=>F_});var zo=I(()=>{ZH()});import{PublicKey as yf}from"@solana/web3.js";import{AssetValue as OT,Chain as jy,DerivationPath as Z8,derivationPathToString as J8,getChainConfig as YH,getRPCUrl as M8,NetworkDerivationPath as L8,SwapKitError as pf,updateDerivationPath as Y8}from"@swapkit/helpers";import{match as B8,P as JH}from"ts-pattern";async function BH(y){let n=OT.from({address:y,chain:jy.Solana});if(n.symbol!=="UNKNOWN")return{decimals:n.decimal||0,id:y,logoURI:n.getIconUrl(),name:n.symbol,symbol:n.ticker};let o=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(o);if(!f.ok)return null;let T=await f.json();if(!Array.isArray(T)||T.length===0)return null;return T.find((H)=>H.id===y)||null}catch{return null}}async function z8(y){let n=await vy(),{PublicKey:o}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),T=new o(y),{baseDecimal:C}=YH(jy.Solana),H=await n.getBalance(T),U=[OT.from({chain:jy.Solana,fromBaseDecimal:C,value:H||0})],_=await n.getParsedTokenAccountsByOwner(T,{programId:f});for(let{account:A}of _.value){let Z=A.data.parsed.info,M=Z.mint,W=Z.tokenAmount.amount;if(Number(W)===0)continue;let G=await BH(M),X=G?.symbol||"UNKNOWN",Q=G?.decimals||Z.tokenAmount.decimals;U.push(OT.from({asset:`${jy.Solana}.${X}-${M}`,fromBaseDecimal:Q,value:W}))}return U}function Oo(y){try{let n=new yf(y);return yf.isOnCurve(n.toBytes())}catch{return!1}}function N8(y){let n=y&&"index"in y?y.index||0:0,o=J8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:Y8(L8[jy.Solana],{index:n})),f;async function T(){if(f)return f;return f=await B8(y).with({phrase:JH.string},({phrase:H})=>No({derivationPath:o,phrase:H})).with({signer:JH.any},({signer:H})=>H).otherwise(()=>{return}),f}async function C(){let H=await T();return H?.publicKey?LH(H.publicKey):""}return{broadcastTransaction:wT(vy),createKeysForPath:No,createTransaction:wo(vy),createTransactionFromInstructions:R8,estimateTransactionFee:O8(vy),getAddress:C,getAddressFromPubKey:LH,getBalance:Xy(jy.Solana),getBalanceFromRPC:z8,getConnection:vy,getPubkeyFromAddress:(H)=>new yf(H),signAndBroadcastTransaction:async(H)=>{let U=await MH(vy,T)(H);return wT(vy)(U)},signTransaction:MH(vy,T),transfer:k8(vy,T),validateAddress:Oo}}function O8(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let H=await y(),_=(await wo(y)({assetValue:o,isProgramDerivedAddress:T,memo:f,recipient:n,sender:C})).compileMessage(),A=await H.getFeeForMessage(_);if(A.value===null)throw new pf("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:Z}=YH(jy.Solana);return OT.from({chain:jy.Solana,fromBaseDecimal:Z,value:A.value})}}async function vy(){let{Connection:y}=await import("@solana/web3.js"),n=await M8(jy.Solana);return new y(n,{commitment:"confirmed",fetchMiddleware:(o,f,T)=>{let C={};for(let[H,U]of Object.entries(f?.headers??{})){let _=H.toLowerCase();if(_!=="pragma"&&_!=="solana-client")C[H]=U}T(o,{...f,headers:C})}})}function w8(y){return async({assetValue:n,recipient:o,sender:f,isProgramDerivedAddress:T})=>{let C=await y(),H=new yf(f);if(n.isGasAsset){let{Transaction:U,SystemProgram:_}=await import("@solana/web3.js");return new U().add(_.transfer({fromPubkey:H,lamports:n.getBaseValue("number"),toPubkey:new yf(o)}))}if(n.address)return D8({amount:n.getBaseValue("number"),connection:C,decimals:n.decimal,from:H,isProgramDerivedAddress:T,recipient:o,tokenAddress:n.address});return}}async function D8({tokenAddress:y,recipient:n,from:o,connection:f,amount:T,decimals:C,isProgramDerivedAddress:H}){let{getAssociatedTokenAddress:U,getAccount:_,createAssociatedTokenAccountInstruction:A,createTransferCheckedInstruction:Z}=await import("@solana/spl-token"),{Transaction:M}=await import("@solana/web3.js"),W=new M,G=new yf(y),X=await U(G,o),Q=new yf(n),B=await U(G,Q,H),D=!1;try{await _(f,B),D=!0}catch{}if(!D)W.add(A(o,B,Q,G));return W.add(Z(X,G,B,o,T,C)),W}function wo(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let{createMemoInstruction:H}=await import("@solana/spl-memo"),U=new yf(C);if(!(T||Oo(n)))throw new pf("core_transaction_invalid_recipient_address");let _=await y(),A=await w8(y)({assetValue:o,isProgramDerivedAddress:T,recipient:n,sender:C});if(!A)throw new pf("core_transaction_invalid_sender_address");if(f)A.add(H(f));let Z=await _.getLatestBlockhash();return A.recentBlockhash=Z.blockhash,A.feePayer=U,A}}async function R8({instructions:y}){let{Transaction:n}=await import("@solana/web3.js"),o=new n().add(...y);if(!o)throw new pf("core_transaction_invalid_sender_address");return o}function k8(y,n){return async({recipient:o,assetValue:f,memo:T,isProgramDerivedAddress:C})=>{let H=await n();if(!H)throw new pf("core_transaction_invalid_sender_address");let U=H.publicKey?.toString()??(await H.connect()).publicKey.toString(),_=await wo(y)({assetValue:f,isProgramDerivedAddress:C,memo:T,recipient:o,sender:U});if("signTransaction"in H){let A=await H.signTransaction(_);return wT(y)(A)}return _.sign(H),wT(y)(_)}}function wT(y){return async(n)=>{return(await y()).sendRawTransaction(n.serialize())}}function MH(y,n){return async(o)=>{let f=await n();if(!f)throw new pf("toolbox_solana_no_signer");let{VersionedTransaction:T}=await import("@solana/web3.js");if(!(o instanceof T)){let H=await(await y()).getLatestBlockhash();o.recentBlockhash=H.blockhash,o.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(o);return o.sign([f]),o}}async function No({phrase:y,derivationPath:n=Z8.SOL}){let{HDKey:o}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:T}=await import("@solana/web3.js"),C=f(y),H=o.fromMasterSeed(C);return T.fromSeed(H.derive(n,!0).privateKey)}function LH(y){return y.toString()}var zH=I(()=>{Ey()});var Do={};yy(Do,{validateSolanaAddress:()=>Oo,getSolanaToolbox:()=>N8,fetchTokenMetaData:()=>BH,createKeysForPath:()=>No});var Ro=I(()=>{zH()});import{AssetValue as DT,Chain as RT,DerivationPath as OH,derivationPathToString as l8,getChainConfig as S8,getRPCUrl as So,NetworkDerivationPath as x8,SwapKitError as By,updateDerivationPath as F8}from"@swapkit/helpers";import{match as ko,P as Ef}from"ts-pattern";function kT(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function lT({phrase:y,derivationPath:n=OH.STRK}){let{HDKey:o}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:T,hash:C,encode:H,CallData:U}=await import("starknet"),_=f(y),Z=o.fromMasterSeed(_).derive(n);if(!Z.privateKey)throw new By("toolbox_starknet_no_signer");let M=H.addHexPrefix(Buffer.from(Z.privateKey).toString("hex")),W=T.starkCurve.grindKey(M),G=H.addHexPrefix(W),X=T.starkCurve.getStarkKey(G),Q=U.compile([X,0]);return{address:C.calculateContractAddressFromHash(X,xo,Q,0),privateKey:G,publicKey:X}}async function Fo({phrase:y,derivationPath:n=OH.STRK}){let{Account:o,RpcProvider:f}=await import("starknet"),{privateKey:T,address:C}=await lT({derivationPath:n,phrase:y}),H=await So(RT.Starknet),U=new f({nodeUrl:H});return new o({address:C,provider:U,signer:T})}function wH(y){let n=RT.Starknet,o=y&&"index"in y?y.index||0:0,f=l8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:F8(x8[n],{index:o})),T,C,H;async function U(){if(C)return C;let{RpcProvider:z}=await import("starknet"),J=await So(n);return C=new z({nodeUrl:J}),C}async function _(z){let J=await U(),Y=z||await W();if(!Y)return!1;try{return await J.getClassHashAt(Y),!0}catch(R){if(R instanceof Error&&R.message.includes("Contract not found"))return!1;let l=R;if(l?.code===20||l?.code===19)return!1;throw R}}async function A(){let{CallData:z,hash:J}=await import("starknet"),Y=await U(),R=await M();if(!R)throw new By("toolbox_starknet_no_signer");if(!H)throw new By({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await _())return R.address;let q=z.compile([H,0]);if(J.calculateContractAddressFromHash(H,xo,q,0).toLowerCase()!==R.address.toLowerCase())throw new By({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let k={addressSalt:H,classHash:xo,constructorCalldata:q},{transaction_hash:S}=await R.deployAccount(k);return await Y.waitForTransaction(S),S}async function Z(){if(!await _()){if(!H)throw new By({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await A()}}async function M(){if(T)return T;return T=await ko(y).with({phrase:Ef.string},async({phrase:z})=>{let{Account:J,RpcProvider:Y}=await import("starknet"),{privateKey:R,address:l,publicKey:q}=await lT({derivationPath:f,phrase:z});H=q;let O=await So(RT.Starknet),k=new Y({nodeUrl:O});return new J({address:l,provider:k,signer:R})}).with({address:Ef.string,privateKey:Ef.string},async({privateKey:z,address:J})=>{let{Account:Y}=await import("starknet"),R=await U();return new Y({address:J,provider:R,signer:z})}).with({signer:Ef.instanceOf(Object)},({signer:z})=>z).otherwise(()=>{return}),T}async function W(){return(await M())?.address??""}async function G(z){let J=await U(),{uint256:Y,CallData:R}=await import("starknet"),l=[],q=[lo,NH];for(let O of q)try{let[k="0",S="0"]=await J.callContract({calldata:R.compile({account:z}),contractAddress:O,entrypoint:"balanceOf"}),x=Y.uint256ToBN({high:k,low:S});ko(O).with(lo,()=>{l.push(DT.from({chain:n,value:x}))}).with(NH,()=>{if(x>0n)l.push(DT.from({asset:`${n}.ETH-${O}`,value:x}))}).otherwise(()=>{})}catch{}return l}async function X({recipient:z,assetValue:J}){let{CallData:Y,uint256:R}=await import("starknet");if(!kT(z))throw new By("core_transaction_invalid_recipient_address",{address:z});let l=J.isGasAsset?lo:J.address;if(!l)throw new By("toolbox_starknet_invalid_address",{address:l,assetValue:J});let q=R.bnToUint256(J.getBaseValue("bigint"));return[{calldata:Y.compile([z,q]),contractAddress:l,entrypoint:"transfer"}]}async function Q({recipient:z,assetValue:J,sender:Y}){let{baseDecimal:R}=S8(RT.Starknet),l=await M(),q=await ko({sender:Y,signer:l}).with({sender:Ef.string},async({sender:O})=>{let{Account:k}=await import("starknet"),S=await U();return new k({address:O,provider:S,signer:"0x0"})}).with({signer:Ef.nonNullable},({signer:O})=>O).otherwise((O)=>{throw new By({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:O}})});try{let O=await X({assetValue:J,recipient:z}),k=await q.estimateInvokeFee(O);if(k?.overall_fee)return DT.from({chain:n,fromBaseDecimal:R,value:k.overall_fee})}catch(O){throw new By("toolbox_starknet_fee_estimation_failed",O)}return DT.from({chain:n,value:"0.00001"})}async function B({recipient:z,assetValue:J,memo:Y}){let R=await M();if(!R)throw new By("toolbox_starknet_no_signer");await Z();let l=await X({assetValue:J,memo:Y,recipient:z});return(await R.execute(l)).transaction_hash}async function D(z){let J=await M();if(!J)throw new By("toolbox_starknet_no_signer");let Y=await J.signMessage(z);return Array.isArray(Y)?Y:[Y.r.toString(),Y.s.toString()]}async function L(z){let J=await M();if(!J)throw new By("toolbox_starknet_no_signer");return await Z(),(await J.execute(z)).transaction_hash}function w(z){return L(z)}function N(z,J=!0){try{return Xy(n)(z,J)}catch{return G(z)}}return{broadcastTransaction:L,createKeysForPath:Fo,createTransaction:X,deployAccount:A,estimateTransactionFee:Q,getAddress:W,getBalance:N,getProvider:U,isAccountDeployed:_,signAndBroadcastTransaction:w,signMessage:D,transfer:B,validateAddress:kT}}var lo="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",NH="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",xo="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var DH=I(()=>{Ey()});var ST={};yy(ST,{validateStarknetAddress:()=>kT,starknetCreateKeysForPath:()=>Fo,getStarknetToolbox:()=>wH,deriveStarknetKeys:()=>lT});var xT=I(()=>{DH()});import{isValidSuiAddress as $8}from"@mysten/sui/utils";import{AssetValue as Vf,Chain as FT,getChainConfig as I8,SwapKitError as Dy}from"@swapkit/helpers";import{match as P8,P as RH}from"ts-pattern";async function lH(y,n,o,f=[],T){let C=await y.getCoins({coinType:o,cursor:T,owner:n}),H=[...f,...C.data];return C.hasNextPage?lH(y,n,o,H,C.nextCursor):H}function t8(y,n,o){let f=n.reduce((_,A)=>_+BigInt(A.balance),0n);if(f<o)throw new Dy("toolbox_sui_insufficient_balance",{available:f.toString(),required:o.toString()});let{ids:T}=n.reduce((_,A)=>{if(_.total>=o)return _;return{ids:[..._.ids,A.coinObjectId],total:_.total+BigInt(A.balance)}},{ids:[],total:0n}),C=T[0],H=T.slice(1);if(H.length>0)y.mergeCoins(C,H);let[U]=y.splitCoins(C,[o]);return U}function SH(y){try{return $8(y)}catch{return!1}}function kH(y){return"signWithIntent"in y}function p8({provider:y,...n}={}){let o;async function f(){if(o)return o;return o=await P8(n).with({phrase:RH.string},async({phrase:X})=>{let{Ed25519Keypair:Q}=await import("@mysten/sui/keypairs/ed25519");return Q.deriveKeypair(X)}).with({signer:RH.any},({signer:X})=>X).otherwise(()=>{return}),o}async function T(X=y){let{SuiClient:Q,getFullnodeUrl:B}=await import("@mysten/sui/client");return new Q({url:X||B("mainnet")})}async function C(){return(await f())?.toSuiAddress()||""}function H(X){try{let Q=Vf.from({address:X,chain:FT.Sui});return{asset:Q.toString(),decimals:Q.decimal}}catch{}return null}async function U(X){let Q=X||await C();if(!Q)throw new Dy("toolbox_sui_address_required");let{baseDecimal:B,chain:D}=I8(FT.Sui);try{let L=await T(),{totalBalance:w}=await L.getBalance({owner:Q}),N=[Vf.from({chain:D,fromBaseDecimal:B,value:w})],z=await L.getAllBalances({owner:Q});for(let{coinType:J,totalBalance:Y}of z){if(J==="0x2::sui::SUI"||Number(Y)<=0)continue;let R=H(J);if(R)N.push(Vf.from({asset:R.asset,fromBaseDecimal:R.decimals,value:Y}))}return N}catch{return[Vf.from({chain:D})]}}async function _(X){let Q=Vf.from({chain:FT.Sui,value:"0.01"});if(!X)return Q;try{let B=await T(),{txBytes:D}=await A(X),{effects:{status:L,gasUsed:w}}=await B.dryRunTransactionBlock({transactionBlock:D});if(L.status!=="success")return Q;let N=Number(w.computationCost)+Number(w.storageCost)-Number(w.storageRebate);return Vf.from({chain:FT.Sui,value:N.toString()})}catch{return Q}}async function A({recipient:X,assetValue:Q,gasBudget:B,sender:D}){let{Transaction:L}=await import("@mysten/sui/transactions"),w=D||await C();if(!w)throw new Dy("toolbox_sui_no_sender");try{let N=new L;if(N.setSender(w),Q.isGasAsset||Q.symbol==="SUI"){let[Y]=N.splitCoins(N.gas,[Q.getBaseValue("string")]);N.transferObjects([Y],X)}else{let Y=Q.address;if(!Y)throw new Dy("toolbox_sui_missing_coin_type");let R=await T(),l=Q.getBaseValue("bigint"),q=await lH(R,w,Y);if(!q.length)throw new Dy("toolbox_sui_no_coins_found",{coinType:Y});let O=t8(N,q,l);N.transferObjects([O],X)}if(B)N.setGasBudget(B);let z=await T(),J=await N.build({client:z});return{tx:N,txBytes:J}}catch(N){if(N instanceof Dy)throw N;throw new Dy("toolbox_sui_transaction_creation_error",{error:N})}}async function Z(X){let Q=await f();if(!Q)throw new Dy("toolbox_sui_no_signer");if(X instanceof Uint8Array)return Q.signTransaction(X);let{txBytes:B}="tx"in X?X:await A(X);return Q.signTransaction(B)}async function M({assetValue:X,gasBudget:Q,recipient:B}){let D=await f();if(!D)throw new Dy("toolbox_sui_no_signer");let L=D.toSuiAddress()||await C();if(!L)throw new Dy("toolbox_sui_no_sender");let{txBytes:w}=await A({assetValue:X,gasBudget:Q,recipient:B,sender:L}),N=await T();if(!kH(D)){let J=await D.signTransaction(w),{digest:Y}=await N.executeTransactionBlock({signature:J.signature,transactionBlock:J.bytes});return Y}let{digest:z}=await N.signAndExecuteTransaction({signer:D,transaction:w});return z}async function W(X){let Q=await T(),{digest:B}=await Q.executeTransactionBlock({signature:X.signature,transactionBlock:X.bytes});return B}async function G(X){let Q=await f();if(!Q)throw new Dy("toolbox_sui_no_signer");let B=await T(),D;if(typeof X==="string")D=Uint8Array.from(Buffer.from(X,"base64"));else if(X instanceof Uint8Array)D=X;else D=await X.build({client:B});if(!kH(Q)){let w=await Q.signTransaction(D),{digest:N}=await B.executeTransactionBlock({signature:w.signature,transactionBlock:w.bytes});return N}let{digest:L}=await B.signAndExecuteTransaction({signer:Q,transaction:D});return L}return{broadcastTransaction:W,createTransaction:A,estimateTransactionFee:_,getAddress:C,getBalance:U,signAndBroadcastTransaction:G,signTransaction:Z,transfer:M,validateAddress:SH}}var xH=()=>{};var $T={};yy($T,{validateSuiAddress:()=>SH,getSuiToolbox:()=>p8});var IT=I(()=>{xH()});import{getHttpEndpoint as E8}from"@orbs-network/ton-access";import{AssetValue as V8,Chain as zn,getChainConfig as b8,getRPCUrl as u8,SwapKitError as Bn,SwapKitNumber as v8}from"@swapkit/helpers";import{mnemonicToWalletKey as j8}from"@ton/crypto";import{Address as Ky,beginCell as $o,Cell as FH,external as K8,internal as h8,JettonMaster as m8,loadStateInit as c8,SendMode as $H,storeMessage as g8,TonClient as i8,toNano as pH,WalletContractV4 as d8}from"@ton/ton";import{match as IH,P as Io}from"ts-pattern";async function yA(){let y=Date.now();if(PT&&y-tH<e8)return PT;try{return PT=await E8(),tH=y,PT}catch{return u8(zn.Ton)}}function fA(y={}){let n,o,f;async function T(){if(!n){let N=y.provider??await yA();n=new i8({endpoint:N})}return n}async function C(){return(await U()).address.toString()}async function H(){if(f)return f;return f=await IH(y).with({phrase:Io.string},async({phrase:N})=>j8(N.split(" "))).with({signer:Io.any},({signer:N})=>N).otherwise(()=>{return}),f}async function U(N){if(!o||N){let z=await H(),J=await T(),Y=N||z;if(!Y)throw new Bn("core_wallet_connection_not_found");let R=d8.create({publicKey:Y.publicKey,workchain:0});o=J.open(R)}return o}let _=Xy(zn.Ton);async function A({assetValue:N,recipient:z,memo:J,sender:Y}){if(N.isGasAsset){let V=J?w(J).toBoc().toString("base64"):void 0;return[{address:z,amount:N.getBaseValue("string"),payload:V}]}let R=N.address;if(!R)throw new Bn({errorKey:"core_swap_contract_not_found",info:{asset:N.toString()}});let l=Y??await C(),q=await D({jettonMasterAddress:R,ownerAddress:l}),O=Ky.parse(z),k=Ky.parse(l),S=N.getBaseValue("bigint"),x=J?w(J):void 0,t=L({destinationAddress:O,forwardPayload:x,jettonAmount:S,responseAddress:k});return[{address:q.toString(),amount:s8.toString(),payload:t.toBoc().toString("base64")}]}function Z({sender:N,...z}){return A({...z,sender:N})}function M(N){return N.map((z)=>{let J=z.payload?FH.fromBase64(z.payload):void 0,Y=z.stateInit?c8(FH.fromBase64(z.stateInit).asSlice()):void 0,R=Ky.parse(z.address),l=Ky.isFriendly(z.address)?Ky.parseFriendly(z.address).isBounceable:!0;return h8({body:J,bounce:l,init:Y,to:R,value:BigInt(z.amount)})})}async function W(N){let z=await H(),J=await U();if(!J||!z)throw new Bn("core_wallet_connection_not_found");let Y=await T(),{state:R}=await Y.getContractState(J.address),l=R==="active",q=l?await J.getSeqno():0,O=J.createTransfer({messages:M(N),secretKey:z.secretKey,sendMode:PH,seqno:q}),k=K8({body:O,init:l?void 0:J.init,to:J.address});return $o().store(g8(k)).endCell()}async function G(N){return await(await T()).sendFile(N.toBoc()),N.hash().toString("hex")}async function X(N){let z=await W(N);return G(z)}async function Q({assetValue:N,recipient:z,memo:J}){let Y=await Z({assetValue:N,memo:J,recipient:z});return X(Y)}async function B({sender:N,...z}){let{baseDecimal:J}=b8(zn.Ton),Y=await IH(N).with(Io.string,(q)=>{return Ky.parseFriendly(q).address}).otherwise(async()=>{return(await U()).address});if(!Y)throw new Bn("toolbox_fee_estimation_failed",{chain:zn.Ton});let R=V8.from({chain:zn.Ton,value:"0.01"}),l=await T();try{let q=await Z({sender:N,...z}),O=await H(),k=await U();if(!k||!O)return R;let S=await k.getSeqno(),x=k.createTransfer({messages:M(q),secretKey:O.secretKey,sendMode:PH,seqno:S}),{source_fees:t}=await l.estimateExternalMessageFee(Y,{body:x,ignoreSignature:!0,initCode:null,initData:null}),V=t.in_fwd_fee+t.storage_fee+t.gas_fee+t.fwd_fee;return R.set(v8.fromBigInt(BigInt(V),J))}catch{return R}}async function D({jettonMasterAddress:N,ownerAddress:z}){try{let J=await T(),Y=Ky.parse(N),R=Ky.parse(z);return await J.open(m8.create(Y)).getWalletAddress(R)}catch{throw new Bn({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:N,ownerAddress:z}})}}function L({jettonAmount:N,destinationAddress:z,responseAddress:J,forwardAmount:Y=a8,forwardPayload:R}){let l=$o().storeUint(r8,32).storeUint(0,64).storeCoins(N).storeAddress(z).storeAddress(J).storeBit(0).storeCoins(Y);if(R)l.storeBit(1).storeRef(R);else l.storeBit(0);return l.endCell()}function w(N){return $o().storeUint(0,32).storeStringTail(N).endCell()}return{broadcastTransaction:G,createTransaction:Z,estimateTransactionFee:B,getAddress:C,getBalance:_,getJettonWalletAddress:D,sign:W,signAndBroadcastTransaction:X,transfer:Q,validateAddress:EH}}function EH(y){try{return Ky.parse(y),!0}catch{return!1}}var r8=260734629,a8,s8,PH,e8=60000,PT,tH=0;var VH=I(()=>{Ey();a8=pH("0.01"),s8=pH("0.05"),PH=$H.PAY_GAS_SEPARATELY+$H.IGNORE_ERRORS});var tT={};yy(tT,{validateTonAddress:()=>EH,getTONToolbox:()=>fA});var pT=I(()=>{VH()});import{NetworkDerivationPath as nA}from"@swapkit/helpers";function Ry(y,n){if(!Number.isInteger(n)||n<0)throw RangeError(`${y} must be a non-negative integer, got: ${n}`)}function ff({accountIndex:y,chain:n,derivationPath:o}){if(y!==void 0)Ry("accountIndex",y);let f=[...o?.slice(0,3)??nA[n].slice(0,3)];if(y!==void 0)f[2]=y;return f}function bf({accountIndex:y,change:n=!1,chain:o,derivationPath:f,index:T}){return Ry("index",T),[...ff({accountIndex:y,chain:o,derivationPath:f}),Number(n),T]}function Lf(y){return y[2]??0}function bH({deriveAddress:y,getBalance:n,getUtxos:o}){async function f(U){let{accountIndex:_,count:A,startIndex:Z=0,change:M=!1}=U;if(Ry("count",A),A<1)throw RangeError("count must be at least 1");Ry("startIndex",Z);let W=[];for(let G=0;G<A;G++){let X=await y({accountIndex:_,change:M,index:Z+G});if(X)W.push(X)}return W}async function T(U){let{gapLimit:_=20,change:A=!1}=U??{},Z=[],M=0,W=0;while(M<_){let G=await y({change:A,index:W});if(!G)break;if((await n(G.address)).some((B)=>B.getValue("number")>0))Z.push(G),M=0;else M++;W++}return Z}async function C(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),Z=[..._,...A],M=await Promise.all(Z.map(async(G)=>{let Q=(await n(G.address)).reduce((B,D)=>B+D.getValue("number"),0);return{...G,balance:Q}})),W=M.reduce((G,X)=>G+X.balance,0);return{addresses:M,total:W}}async function H(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),Z=[..._,...A];return(await Promise.all(Z.map(async(W)=>{return(await o(W.address)).map((X)=>({...X,address:W.address,derivationIndex:W.index,isChange:W.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:C,getAggregatedUtxos:H,scanForAddresses:T}}var Nn=()=>{};import{Chain as Cy,getRPCUrl as TA,RequestClient as ET,SKConfig as oA,SwapKitError as Iy,warnOnce as CA}from"@swapkit/helpers";import{NETWORKS as uf}from"@swapkit/utxo-signer";async function HA({chain:y,txHash:n}){let o=`${On(y)}/push/transaction`,f=JSON.stringify({data:n});try{let T=await ET.post(o,{body:f,headers:{"Content-Type":"application/json"}});if(T.context.code!==200)throw new Iy("toolbox_utxo_broadcast_failed",{error:T.context.error||"Transaction broadcast failed"});return T.data?.transaction_hash||n}catch(T){let C=await TA(y);if(C){let H=JSON.stringify({id:pC(),jsonrpc:"2.0",method:"sendrawtransaction",params:[n]}),U=await ET.post(C,{body:H,headers:{"Content-Type":"application/json"}});if(U.error)throw new Iy("toolbox_utxo_broadcast_failed",{error:U.error?.message});if(U.result.includes('"code":-26'))throw new Iy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return U.result}throw T}}function On(y){return`https://api.blockchair.com/${UA(y)}`}function uH(y){switch(y){case Cy.Bitcoin:return 5;case Cy.Dogecoin:return 1e4;case Cy.Litecoin:return 1;case Cy.Zcash:return 1;default:return 2}}function UA(y){switch(y){case Cy.BitcoinCash:return"bitcoin-cash";case Cy.Litecoin:return"litecoin";case Cy.Dash:return"dash";case Cy.Dogecoin:return"dogecoin";case Cy.Zcash:return"zcash";case Cy.Polkadot:return"polkadot";default:return"bitcoin"}}async function _A(y){try{let{feePerKb:n}=await ET.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),o=n/1000;return Math.max(o,uH(y))}catch{return uH(y)}}async function VT(y,n){let o=await ET.get(`${y}${n?`${y.includes("?")?"&":"?"}key=${n}`:""}`);if(!o||o.context.code!==200)throw new Iy("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return o.data}async function jH({address:y,chain:n,apiKey:o}){if(!y)throw new Iy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await VT(`${On(n)}/dashboards/address/${y}?transaction_details=true`,o))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function AA({address:y,chain:n,apiKey:o}){return(await jH({address:y,apiKey:o,chain:n}))?.address.balance||0}async function KH({chain:y,apiKey:n,txHash:o}){if(!o)throw new Iy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await VT(`${On(y)}/raw/transaction/${o}`,n))?.[o]?.raw_transaction||""}catch(f){let T=f instanceof Error?f.message:String(f);return console.error(`Failed to fetch raw transaction: ${T}`),""}}async function GA({chain:y,apiKey:n,txHash:o}){if(!o)throw new Iy("toolbox_utxo_invalid_params",{error:"TxHash is required"});let T=(await VT(`${On(y)}/dashboards/transaction/${o}`,n))?.[o];if(!T)throw new Iy("toolbox_utxo_tx_not_found",{txHash:o});let{transaction:C,inputs:H,outputs:U}=T,_=H.map((Z)=>Z.spending_sequence),A=C.is_rbf===!0||_.some((Z)=>Z<qA);return{blockId:C.block_id,confirmed:C.block_id!==-1,fee:C.fee,inputs:H,isRBF:A,outputs:U,sequences:_,size:C.size,txid:C.hash,weight:C.weight}}async function XA({chain:y,address:n,apiKey:o,offset:f=0,limit:T=30}){return(await VT(`${On(y)}/outputs?q=recipient(${n}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${T}&offset=${f}`,o)).map(({is_spent:_,script_hex:A,block_id:Z,transaction_hash:M,index:W,value:G,spending_signature_hex:X})=>({hash:M,index:W,is_confirmed:Z!==-1,is_spent:_,script_hex:A,txHex:X,value:G}))}function WA(y){return y.reduce((n,o)=>n+o.value,0)}function vH(y,n){let o=[...y].sort((f,T)=>T.value-f.value);if(n){let f=[],T=0;for(let C of o)if(f.push(C),T+=C.value,T>=n)break;return f}return o}async function hH({chain:y,address:n,apiKey:o,targetValue:f,accumulativeValue:T=0,offset:C=0,limit:H=30}){if(!n)throw new Iy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let U=await XA({address:n,apiKey:o,chain:y,limit:H,offset:C,targetValue:f}),A=U.length<H,Z=U.filter(({is_spent:B})=>!B),M=WA(Z),W=T+M,G=f&&W>=f;if(A||G)return vH(Z,f);let X=await hH({accumulativeValue:W,address:n,apiKey:o,chain:y,limit:H,offset:C+H,targetValue:f}),Q=[...Z,...X];return vH(Q,f)}catch(U){let _=U instanceof Error?U.message:String(U);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function QA({address:y,chain:n,apiKey:o,fetchTxHex:f=!0,targetValue:T}){let C=await hH({address:y,apiKey:o,chain:n,targetValue:T}),H=[];for(let{hash:U,index:_,script_hex:A,value:Z}of C){let M;if(f)M=await KH({apiKey:o,chain:n,txHash:U});H.push({address:y,hash:U,index:_,txHex:M,value:Z,witnessUtxo:{script:Buffer.from(A,"hex"),value:Z}})}return H}function a(y){let n=oA.get("apiKeys").blockchair||"";return CA({condition:!n,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(o)=>HA({chain:y,txHash:o}),getAddressData:(o)=>jH({address:o,apiKey:n,chain:y}),getBalance:(o)=>AA({address:o,apiKey:n,chain:y}),getRawTx:(o)=>KH({apiKey:n,chain:y,txHash:o}),getSuggestedTxFee:()=>_A(y),getTransactionDetails:(o)=>GA({apiKey:n,chain:y,txHash:o}),getUtxos:(o)=>QA({...o,apiKey:n,chain:y})}}function ZA(y){return y}function JA(){return function(n){switch(n){case Cy.Bitcoin:return uf.bitcoin;case Cy.BitcoinCash:return uf.bitcoinCash;case Cy.Dash:return uf.dash;case Cy.Litecoin:return uf.litecoin;case Cy.Dogecoin:return uf.dogecoin;case Cy.Zcash:return uf.zcash;default:throw new Iy("toolbox_utxo_not_supported",{chain:n})}}}var qA=4294967294;var mH=I(()=>{Ey()});import{CashAddrType as bT,decodeCashAddr as MA,encodeCashAddr as LA}from"@swapkit/utxo-signer";function zA(y,n,o){return LA({hash:o,prefix:y,type:YA[n]})}function NA(y){let n=MA(y),o=BA[n.type];if(!o)throw Error(`Unknown CashAddr type: ${n.type}`);return{hash:n.hash,prefix:n.prefix,type:o}}var YA,BA,Po;var cH=I(()=>{YA={P2PKH:bT.P2PKH,P2SH:bT.P2SH},BA={[bT.P2PKH]:"P2PKH",[bT.P2SH]:"P2SH"};Po={decode:NA,encode:zA}});import{sha256 as OA}from"@noble/hashes/sha2.js";import{createBase58check as wA}from"@scure/base";import{SwapKitError as iH}from"@swapkit/helpers";function po(y){try{return uT(y),!0}catch{return!1}}function Eo(y){return uT(y)?.network}function hy(y){let n=uT(y);if(n?.format==="legacy")return y;return kA(n)}function wn(y){let n=uT(y);return lA(n)}function uT(y){try{let n=DA(y);if(n)return n}catch{}try{let n=RA(y);if(n)return n}catch{}throw new iH("toolbox_utxo_invalid_address",{address:y})}function DA(y){try{let n=dH.decode(y);if(n.length!==21)throw new iH("toolbox_utxo_invalid_address",{address:y});let o=n[0],f=Array.prototype.slice.call(n,1);switch(o){case Yf.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case Yf.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case Yf.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case Yf.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case Yf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case Yf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function RA(y){if(y.indexOf(":")!==-1)try{return gH(y)}catch{}else{let n=["bitcoincash","bchtest","bchreg"];for(let o of n)try{return gH(`${o}:${y}`)}catch{}}return}function gH(y){try{let{hash:n,prefix:o,type:f}=Po.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(n,0),network:o==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function kA(y){let n=Yf.legacy[y.network][y.type],o=Buffer.alloc(1+y.hash.length);return o[0]=n,o.set(y.hash,1),dH.encode(o)}function lA(y){let n=y.network==="mainnet"?"bitcoincash":"bchtest",o=y.type==="p2pkh"?"P2PKH":"P2SH",f=new Uint8Array(y.hash);return Po.encode(n,o,f)}var dH,to,Yf;var rH=I(()=>{cH();dH=wA(OA);((o)=>{o.Mainnet="mainnet";o.Testnet="testnet"})(to||={});Yf={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as SA}from"@swapkit/helpers";import{Script as xA}from"@swapkit/utxo-signer";function Jy(y){let n=new Uint8Array(Buffer.from(y,"utf8"));return xA.encode(["RETURN",n])}var FA=1000,jT=10,KT=2,aH=10,$A=41,IA=107,hT,vT,Dn,vf=(y)=>{if(y.startsWith("bc1")||y.startsWith("tb1")||y.startsWith("ltc1")||y.startsWith("tltc1"))return"P2WPKH";if(y.startsWith("1")||y.startsWith("m")||y.startsWith("n")||y.startsWith("bitcoincash:q")||y.startsWith("bitcoincash:p")||y.startsWith("q")||y.startsWith("p")||y.startsWith("L")||y.startsWith("M")||y.startsWith("3")||y.startsWith("D")||y.startsWith("A")||y.startsWith("9")||y.startsWith("X")||y.startsWith("7")||y.startsWith("y")||y.startsWith("t1")||y.startsWith("t3")||y.startsWith("tm"))return"P2PKH";throw new SA("toolbox_utxo_invalid_address",{address:y})},Bf=({inputs:y,outputs:n,feeRate:o})=>{let f=y[0]&&"address"in y[0]&&y[0].address?vf(y[0].address):"P2PKH",C=(o?y.filter((A)=>A.value>=vT["type"in A&&A.type?A.type:"P2PKH"]*Math.ceil(o)):y).reduce((A,Z)=>A+nf(Z),0),H=n?.reduce((A,Z)=>A+Rn(Z),0)||Dn[f],U=jT+C+H;return f==="P2WPKH"?Math.ceil(U+KT/4):U},nf=(y)=>{if("type"in y&&y.type)return vT[y.type];if("address"in y&&y.address)return vT[vf(y.address)];return $A+IA},Rn=(y,n)=>{if(y?.script)return aH+y.script.length+(y.script.length>=74?2:1);if(n)return Dn[n];if("address"in y&&y.address)return Dn[vf(y.address)];return Dn.P2PKH};var Vo=I(()=>{((o)=>{o.P2PKH="P2PKH";o.P2WPKH="P2WPKH"})(hT||={});vT={["P2PKH"]:148,["P2WPKH"]:68},Dn={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as zf,SwapKitError as PA}from"@swapkit/helpers";function kn(y){switch(y){case zf.Bitcoin:case zf.BitcoinCash:return 550;case zf.Dash:case zf.Litecoin:return 5500;case zf.Dogecoin:return 1e5;case zf.Zcash:return 546;default:throw new PA("toolbox_utxo_not_supported",{chain:y})}}function ky({inputs:y,outputs:n,feeRate:o=1,chain:f=zf.Bitcoin,changeAddress:T=""}){let C=y[0]&&"address"in y[0]&&y[0].address?vf(y[0].address):"P2PKH",H=y.filter((X)=>nf(X)*o<=X.value),_=C==="P2WPKH"?Math.ceil(KT/4):0,A=jT+_+n.reduce((X,Q)=>X+Rn(Q),0),Z=n.reduce((X,Q)=>X+Q.value,0),M=A*o,W=0,G=[];for(let X of H){let Q=nf(X),B=o*Q;M+=B,W+=X.value,G.push(X);let D=M+Z;if(W<D)continue;let L=W-D,w=o*Rn({address:T,value:0});if(L>w){let N=w+M,z=W-(Z+Math.ceil(N));if(z>Math.max(nf({value:0})*o,kn(f)))return{fee:Math.ceil(N),inputs:G,outputs:n.concat({address:T,value:z})}}return{fee:Math.ceil(M),inputs:G,outputs:n}}return{fee:Math.ceil(o*Bf({inputs:y,outputs:n}))}}var sH=I(()=>{Vo()});var jf=I(()=>{mH();rH();sH();Vo()});import{Address as tA,ZCASH_NETWORK as pA}from"@swapkit/utxo-signer";function Nf(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function Tf(y){let n=Nf(y);return po(n)&&Eo(n)==="mainnet"}function Kf(y){try{if(y.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let o=tA(pA).decode(y);return o.type==="pkh"||o.type==="sh"}catch{return!1}}var ln=I(()=>{jf()});import{secp256k1 as EA}from"@noble/curves/secp256k1.js";import{hex as Of}from"@scure/base";import{HDKey as n5}from"@scure/bip32";import{mnemonicToSeedSync as uo}from"@scure/bip39";import{AssetValue as mT,applyFeeMultiplier as eH,Chain as s,derivationPathToString as Sn,FeeOption as Py,NetworkDerivationPath as T5,SwapKitError as m,SwapKitNumber as VA,updateDerivationPath as bA,warnOnce as uA}from"@swapkit/helpers";import{Address as vA,BCHSigHash as vo,CashAddrPrefix as jA,CashAddrType as KA,encodeCashAddr as hA,NETWORKS as hf,p2pkh as y5,p2wpkh as mA,RBF_SEQUENCE as cA,SigHash as o5,Transaction as bo,WIF as C5}from"@swapkit/utxo-signer";import{match as H5}from"ts-pattern";function jo({address:y,chain:n}){return H5(n).with(s.BitcoinCash,()=>Tf(y)).with(s.Zcash,()=>Kf(y)).otherwise(()=>{try{return vA(Ay(n)).decode(y),!0}catch{return!1}})}function Ay(y){return H5(y).with(s.Bitcoin,()=>hf.bitcoin).with(s.BitcoinCash,()=>hf.bitcoinCash).with(s.Dash,()=>hf.dash).with(s.Dogecoin,()=>hf.dogecoin).with(s.Litecoin,()=>hf.litecoin).with(s.Zcash,()=>hf.zcash).exhaustive()}function gA({phrase:y,derivationPath:n,network:o,seed:f}){let T=f??uo(y),H=n5.fromMasterSeed(T,o.bip32).derive(n);if(!H.privateKey)throw new m("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return H.privateKey}function f5(y){return EA.getPublicKey(y,!0)}function Fn({publicKey:y,chain:n,network:o}){if(n===s.BitcoinCash){let C=y5(y,o);if(!C.hash)throw new m("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return hA({hash:C.hash,prefix:jA.MAINNET,type:KA.P2PKH}).replace(/^bitcoincash:/,"")}let T=!xn.includes(n)?mA(y,o):y5(y,o);if(!T.address)throw new m("toolbox_utxo_invalid_address",{error:"Could not derive address"});return T.address}function mf({phrase:y,derivationPath:n,chain:o,wif:f,seed:T}){let C=Ay(o);if(f){let A=C5(C).decode(f),Z=f5(A);return{privateKey:A,publicKey:Z}}if(!y)throw new m("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let H=n||Sn(T5[o]),U=gA({derivationPath:H,network:C,phrase:y,seed:T}),_=f5(U);return{privateKey:U,publicKey:_}}function iA(y,n){return C5(Ay(n)).encode(y)}function dA({phrase:y,derivationPath:n,chain:o,seed:f}){let T=n.split("/");if(T.length<4)throw new m("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${T.length}): ${n}`});let C=Ay(o),H=f??uo(y),U=n5.fromMasterSeed(H,C.bip32),_=T.slice(0,4).join("/");return U.derive(_)}function of({inputs:y,outputs:n,chain:o,tx:f,sender:T,compiledMemo:C,enableRBF:H=!1}){let U=Ay(o),_=!xn.includes(o),A=H?cA:void 0,Z=new Set;for(let M of y){let W=`${M.hash}:${M.index}`;if(Z.has(W))throw new m("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});Z.add(W);let G=typeof M.hash==="string"?Of.decode(M.hash):M.hash;if(_&&M.witnessUtxo)f.addInput({index:M.index,sequence:A,txid:G,witnessUtxo:{amount:BigInt(M.witnessUtxo.value),script:M.witnessUtxo.script}});else if(M.txHex)f.addInput({index:M.index,nonWitnessUtxo:Of.decode(M.txHex),sequence:A,txid:G,...o===s.BitcoinCash?{sighashType:vo.ALL}:{}});else throw new m("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let M of n){let W="address"in M&&M.address?M.address:T;if(o===s.BitcoinCash)W=hy(W);if(M.script){if(C)f.addOutput({amount:0n,script:C})}else f.addOutputAddress(W,BigInt(M.value),U)}return{inputs:y,tx:f}}async function cf(y){let n=await a(y).getSuggestedTxFee();return{[Py.Average]:n,[Py.Fast]:eH(n,Py.Fast),[Py.Fastest]:eH(n,Py.Fastest)}}async function U5({assetValue:y,recipient:n,memo:o,sender:f,fetchTxHex:T=!1}){let C=y.chain,H=(await cf(C))[Py.Fastest],U=T||xn.includes(C),_=y.getBaseValue("number"),A=Math.ceil(_+H*5000);return{inputs:await a(C).getUtxos({address:f,fetchTxHex:U,targetValue:A}),outputs:[{address:n,value:_},...o?[{address:"",script:Jy(o),value:0}]:[]]}}async function _5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T,fetchTxHex:C=!1,enableRBF:H=!1}){let U=y.chain,_=o?Jy(o):null,A=await U5({assetValue:y,fetchTxHex:C,memo:o,recipient:n,sender:T}),{inputs:Z,outputs:M}=ky({...A,chain:U,feeRate:f});if(!(Z&&M))throw new m("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let W=new bo({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:G,tx:X}=of({chain:U,compiledMemo:_,enableRBF:H,inputs:Z,outputs:M,sender:T,tx:W});return{inputs:G,tx:X,utxos:A.inputs}}async function A5({assetValue:y,feeOptionKey:n=Py.Fast,feeRate:o,memo:f,sender:T,recipient:C}){let H=y.chain,U=await U5({assetValue:y,memo:f,recipient:C,sender:T}),_=o?Math.floor(o):(await cf(H))[n];return ky({...U,chain:H,feeRate:_})}function rA(y){return async function({from:o,memo:f,feeRate:T,feeOptionKey:C=Py.Fast,recipients:H=1}){let U=await a(y).getAddressData(o),_=T?Math.ceil(T):(await cf(y))[C],A=U?.utxo.map((Q)=>({...Q,hash:"",type:"P2PKH"})).filter((Q)=>Q.value>Math.max(kn(y),nf(Q)*_));if(!A?.length)return mT.from({chain:y});let Z=BigInt(A.reduce((Q,B)=>Q+B.value,0)),M=mT.from({chain:y,value:Z}),W=typeof H==="number"?Array.from({length:H},()=>({address:o,value:0})):H;if(f)W.push({address:o,script:Jy(f),value:0});let G=Bf({inputs:A,outputs:W}),X=mT.from({chain:y,value:BigInt(G*_)});return M.sub(X)}}function aA(y){return async function(o){let{fee:f}=await A5(o);return mT.from({chain:y,value:VA.fromBigInt(BigInt(f),8).getValue("string")})}}function sA({chain:y,phrase:n,derivationPath:o,seed:f}){let T=Ay(y),{privateKey:C,publicKey:H}=mf({chain:y,derivationPath:o,phrase:n,seed:f}),U=y===s.BitcoinCash?[vo.ALL]:[o5.ALL];return{getAddress:()=>Fn({chain:y,network:T,publicKey:H}),privateKey:C,publicKey:H,signTransaction:(_)=>{return _.sign(C,U),_}}}function eA(y,n){return async function({memo:f,recipient:T,feeOptionKey:C,feeRate:H,assetValue:U,enableRBF:_=!1}){let A=await n?.getAddress();if(!(n&&A))throw new m("toolbox_utxo_no_signer");if(!T)throw new m("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});uA({condition:_&&!cT.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let Z=_&&cT.includes(y),M=H||(await cf(y))[C||Py.Fast],{tx:W}=await _5({assetValue:U,enableRBF:Z,feeRate:M,memo:f,recipient:T,sender:A}),G=await n.signTransaction(W);return G.finalize(),a(y).broadcastTx(Of.encode(G.extract()))}}function Ko(y){return(n)=>jo({address:n,chain:y})}function ho(y){let n=Ay(y);return function(f){if(!f)throw new m("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return Fn({chain:y,network:n,publicKey:f.publicKey})}}function Cf({chain:y,...n}){let o="phrase"in n?n.phrase:void 0,f="index"in n?n.index||0:0,T=o?uo(o):void 0,C="derivationPath"in n&&n.derivationPath?n.derivationPath:bA(T5[y],{index:f}),H=Sn(C),U=o?sA({chain:y,derivationPath:H,phrase:o,seed:T}):void 0,_="signer"in n?n.signer:void 0,A=U||_,Z=o?mf({chain:y,derivationPath:H,phrase:o,seed:T}):void 0;function M(){if(A)return A.getAddress();return Promise.resolve(void 0)}function W(q){if(!o)return;let O=ff({accountIndex:q,chain:y,derivationPath:C});return dA({chain:y,derivationPath:Sn(O),phrase:o,seed:T})}let G=W();function X(){if(!G)return;return G.publicExtendedKey}function Q({accountIndex:q}={}){let O=q===void 0?G:W(q);if(!O)return;let k=ff({accountIndex:q,chain:y,derivationPath:C});return{accountIndex:Lf(k),path:Sn(k),xpub:O.publicExtendedKey}}function B({accountIndex:q,index:O,change:k=!1}){let S=q===void 0?G:W(q);if(!S)return;let x=bf({accountIndex:q,chain:y,change:k,derivationPath:C,index:O}),t=Ay(y),V=S.deriveChild(Number(k)).deriveChild(O);if(!V.publicKey)throw new m("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let b=Fn({chain:y,network:t,publicKey:V.publicKey}),j=Of.encode(V.publicKey);return{accountIndex:Lf(x),address:b,change:k,index:O,path:Sn(x),pubkey:j}}async function D(q){if(!cT.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let O=await a(y).getTransactionDetails(q);return{canReplace:O.isRBF&&!O.confirmed,confirmed:O.confirmed,enabled:O.isRBF,fee:O.fee,sequences:O.sequences,supported:!0}}async function L({txid:q,newFeeRate:O,recipient:k,memo:S}){if(!cT.includes(y))throw new m("toolbox_utxo_rbf_not_supported",{chain:y});let x=await a(y).getTransactionDetails(q);if(!x.isRBF)throw new m("toolbox_utxo_tx_not_replaceable",{txid:q});if(x.confirmed)throw new m("toolbox_utxo_tx_already_confirmed",{blockId:x.blockId,txid:q});let t=x.inputs.reduce((ny,iy)=>ny+iy.value,0),b=x.outputs.find((ny)=>ny.recipient===k)?.value||0;if(b===0)throw new m("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let j=await Promise.all(x.inputs.map(async(ny)=>{let iy=await a(y).getRawTx(ny.transaction_hash);return{hash:ny.transaction_hash,index:ny.index,txHex:iy,value:ny.value,witnessUtxo:void 0}})),e=S?Jy(S):null,_y=Bf({feeRate:O,inputs:j.map((ny)=>({...ny,type:"P2WPKH"})),outputs:[{address:k,value:b}]}),r=Math.ceil(_y*O);if(r<=x.fee)throw new m("toolbox_utxo_rbf_fee_too_low",{newFee:r,originalFee:x.fee});let Ny=r-x.fee,Gy=b-Ny;if(Gy<=0)throw new m("toolbox_utxo_rbf_insufficient_change");let xy=new bo({allowLegacyWitnessUtxo:!0,version:1}),_f=[{address:k,value:Gy},...S?[{address:"",script:Jy(S),value:0}]:[]],Af=t-Gy-r,gy=await M();if(Af>kn(y)&&gy)_f.push({address:gy,value:Af});return of({chain:y,compiledMemo:e,inputs:j,outputs:_f,sender:gy||k,tx:xy}),{feeDelta:Ny,newFee:r,originalFee:x.fee,tx:xy}}async function w({txid:q,newFeeRate:O,recipient:k,memo:S}){let{tx:x,originalFee:t,newFee:V}=await L({memo:S,newFeeRate:O,recipient:k,txid:q}),b=await R(x);b.finalize();let j=await a(y).broadcastTx(Of.encode(b.extract()));return{newFee:V,originalFee:t,txid:j}}function N({accountIndex:q,index:O,change:k=!1}){Ry("index",O);let S=q===void 0?G:W(q);if(!S)return;return S.deriveChild(Number(k)).deriveChild(O).privateKey||void 0}function z({tx:q,inputDerivations:O}){if(!G)throw new m("toolbox_utxo_no_signer");let k=y===s.BitcoinCash?[vo.ALL]:[o5.ALL];for(let S=0;S<O.length;S++){let x=O[S];if(!x)continue;let{derivationIndex:t,isChange:V}=x,b=N({change:V,index:t});if(!b)throw new m("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${S} at index ${t}`});q.signIdx(b,S,k)}return q}async function J({utxos:q,recipient:O,assetValue:k,memo:S,feeRate:x,feeOptionKey:t,changeAddress:V}){if(!G)throw new m("toolbox_utxo_no_signer");let b=x||(await cf(y))[t||Py.Fast],j=S?Jy(S):null,e=[{address:O,value:k.getBaseValue("number")}];if(j)e.push({address:"",script:j,value:0});let _y=q.map(({hash:gy,index:ny,value:iy,txHex:$U,witnessUtxo:W0})=>({hash:gy,index:ny,txHex:$U,value:iy,witnessUtxo:W0?{script:W0.script,value:W0.value}:void 0})),{inputs:r,outputs:Ny}=ky({chain:y,feeRate:b,inputs:_y,outputs:e});if(!(r&&Ny))throw new m("toolbox_utxo_insufficient_balance",{assetValue:k,sender:"multiple addresses"});let Gy=new bo({allowLegacyWitnessUtxo:!0,version:1}),xy=q[0]?.address,_f=V||await M()||xy||O;of({chain:y,compiledMemo:j,inputs:r,outputs:Ny,sender:_f,tx:Gy});let Af=r.map((gy)=>{let ny=q.find((iy)=>iy.hash===gy.hash&&iy.index===gy.index);return ny?{derivationIndex:ny.derivationIndex,isChange:ny.isChange}:{derivationIndex:0,isChange:!1}});return z({inputDerivations:Af,tx:Gy}),Gy.finalize(),a(y).broadcastTx(Of.encode(Gy.extract()))}function Y({address:q,gapLimit:O=20}){if(!G)return;for(let k=0;k<O;k++){let S=B({change:!1,index:k}),x=B({change:!0,index:k}),t=S?.address===q?!1:x?.address===q;if(S?.address===q||x?.address===q)return{change:t,index:k}}return}function R(q){if(!A)throw new m("toolbox_utxo_no_signer");return A.signTransaction(q)}async function l(q){let O=await R(q);return O.finalize(),await a(y).broadcastTx(Of.encode(O.extract()))}return{accumulative:ky,broadcastTx:(q)=>a(y).broadcastTx(q),bumpFee:w,calculateTxSize:Bf,createKeysForPath:(q)=>mf({...q,chain:y}),createReplacementTransaction:L,createTransaction:_5,deriveAddressAtIndex:B,derivePrivateKeyAtIndex:N,estimateMaxSendableAmount:rA(y),estimateTransactionFee:aA(y),getAddress:M,getAddressFromKeys:ho(y),getBalance:Xy(y),getExtendedPublicKey:X,getExtendedPublicKeyInfo:Q,getFeeRates:()=>cf(y),getInputsOutputsFee:A5,getNetworkForChain:()=>Ay(y),getPrivateKeyFromMnemonic:(q)=>iA(mf({...q,chain:y}).privateKey,y),isRBFEnabled:D,keys:Z,resolveDerivationIndex:Y,signAndBroadcastTransaction:l,signTransaction:R,signTransactionWithMultipleKeys:z,transfer:eA(y,A),transferFromMultipleAddresses:J,validateAddress:Ko(y)}}var xn,cT;var gf=I(()=>{Ey();Nn();jf();ln();xn=[s.Dash,s.Dogecoin,s.Zcash,s.BitcoinCash],cT=[s.Bitcoin]});import{hex as q5}from"@scure/base";import{Chain as yq,derivationPathToString as fq,FeeOption as nq,NetworkDerivationPath as Tq,SwapKitError as my,updateDerivationPath as oq}from"@swapkit/helpers";import{BCHSigHash as Cq,CashAddrPrefix as G5,CashAddrType as X5,encodeCashAddr as W5,NETWORKS as Hq,p2pkh as Q5,Transaction as Z5}from"@swapkit/utxo-signer";function $n(y){return Nf(wn(y))}function Uq(y){let n=Ay(ty);function o(T){return T.sign(y.privateKey,[Cq.ALL]),T}function f(){let T=Q5(y.publicKey,n);if(!T.hash)throw new my("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let C=W5({hash:T.hash,prefix:G5.MAINNET,type:X5.P2PKH});return Promise.resolve(C.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:o}}function mo(y){let n="phrase"in y?y.phrase:void 0,o="index"in y?y.index||0:0,f=fq("derivationPath"in y&&y.derivationPath?y.derivationPath:oq(Tq[ty],{index:o})),T=n?mf({chain:ty,derivationPath:f,phrase:n}):void 0,C=T?Uq(T):("signer"in y)?y.signer:void 0;function H(){return Promise.resolve(C?.getAddress())}let{getBalance:U,getFeeRates:_,broadcastTx:A,...Z}=Cf({chain:ty});function M(X,Q=!0){return U(Nf(wn(X)))}function W(X){if(!C)throw new my("toolbox_utxo_no_signer");return C.signTransaction(X)}async function G(X){let Q=await W(X);return Q.finalize(),await A(q5.encode(Q.extract()))}return{...Z,broadcastTx:A,buildTx:Aq,createTransaction:J5,getAddress:H,getAddressFromKeys:qq,getBalance:M,getFeeRates:_,signAndBroadcastTransaction:G,signTransaction:W,stripPrefix:Nf,stripToCashAddress:$n,transfer:_q({broadcastTx:A,getFeeRates:_,signer:C}),validateAddress:Tf}}async function J5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){if(!Tf(n))throw new my("toolbox_utxo_invalid_address",{address:n});let C=Math.ceil(y.getBaseValue("number")+f*7500),H=await a(ty).getUtxos({address:$n(T),fetchTxHex:!0,targetValue:C}),U=o?Jy(o):null,_=[],A=hy(n);if(_.push({address:A,value:y.getBaseValue("number")}),U)_.push({script:U,value:0});let{inputs:Z,outputs:M}=ky({chain:ty,feeRate:f,inputs:H,outputs:_});if(!(Z&&M))throw new my("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let W=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!U,version:1}),G=hy(T),{inputs:X,tx:Q}=of({chain:ty,compiledMemo:U,inputs:Z,outputs:M.map((B)=>("address"in B)&&B.address?{...B,address:hy(B.address)}:B),sender:G,tx:W});return{inputs:X,tx:Q,utxos:Z}}function _q({broadcastTx:y,getFeeRates:n,signer:o}){return async function({recipient:T,assetValue:C,feeOptionKey:H=nq.Fast,...U}){let _=await o?.getAddress();if(!(o&&_))throw new my("toolbox_utxo_no_signer");if(!T)throw new my("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let A=U.feeRate||(await n())[H],{tx:Z}=await J5({...U,assetValue:C,feeRate:A,recipient:T,sender:_}),M=await o.signTransaction(Z);return M.finalize(),y(q5.encode(M.extract()))}}async function Aq({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){let C=wn(n);if(!Tf(C))throw new my("toolbox_utxo_invalid_address",{address:C});let H=Math.ceil(y.getBaseValue("number")+f*7500),U=await a(ty).getUtxos({address:$n(T),fetchTxHex:!0,targetValue:H}),_=Number(f.toFixed(0)),A=o?Jy(o):null,Z=[];if(Z.push({address:hy(n),value:y.getBaseValue("number")}),A)Z.push({script:A,value:0});let{inputs:M,outputs:W}=ky({chain:ty,feeRate:_,inputs:U,outputs:Z});if(!(M&&W))throw new my("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let G=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:X,tx:Q}=of({chain:ty,compiledMemo:A,inputs:M,outputs:W,sender:hy(T),tx:G});return{inputs:X,tx:Q,utxos:U}}function qq(y){let n=Hq.bitcoinCash,o=Q5(y.publicKey,n);if(!o.hash)throw new my("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return W5({hash:o.hash,prefix:G5.MAINNET,type:X5.P2PKH}).replace(/^bitcoincash:/,"")}var ty;var gT=I(()=>{jf();gf();ln();ty=yq.BitcoinCash});import{createBase58check as Gq,hex as Xq}from"@scure/base";import{HDKey as Y5}from"@scure/bip32";import{mnemonicToSeedSync as B5}from"@scure/bip39";import{Chain as iT,derivationPathToString as Wq,FeeOption as Qq,NetworkDerivationPath as Zq,SKConfig as z5,SwapKitError as In,updateDerivationPath as Jq}from"@swapkit/helpers";import{Address as Mq,createZcashTransaction as Lq,OutScript as Yq,PCZT as Bq,utils as N5,WIF as zq,ZCASH_NETWORK as Nq,ZCASH_TEST_NETWORK as Oq,ZcashConsensusBranchId as wq,ZcashSigHash as M5,ZcashVersionGroupId as Dq}from"@swapkit/utxo-signer";import{match as Rq,P as co}from"ts-pattern";function O5(){let{isStagenet:y}=z5.get("envs");return y?Oq:Nq}function lq(y){return kq.encode(y)}function Sq({phrase:y,derivationPath:n}){let o=B5(y),T=Y5.fromMasterSeed(o).derive(n);if(!T.privateKey||!T.publicKey)throw new In("toolbox_utxo_invalid_params");let{privateKey:C,publicKey:H}=T,U=N5.hash160(H),{isStagenet:_}=z5.get("envs"),A=_?new Uint8Array([29,37]):new Uint8Array([28,184]),Z=new Uint8Array(A.length+U.length);Z.set(A,0),Z.set(U,A.length);let M=lq(Z);return{getAddress:()=>Promise.resolve(M),signTransaction:(W)=>{if(W instanceof Bq)return W.signAllInputs(C,H,M5.ALL),W.finalizeAllInputs(),Promise.resolve(W.extract());return W.signAllInputs(C,H,M5.ALL),Promise.resolve(W)}}}function xq({inputs:y,outputs:n,tx:o,sender:f,compiledMemo:T}){let C=O5();for(let H of y){let U=Mq(C).decode(f),_=Yq.encode(U);o.addInput({index:H.index,script:_,sequence:4294967295,txid:Xq.decode(H.hash),value:BigInt(H.value)})}for(let H of n){let U="address"in H&&H.address?H.address:f,_=H.script;if(_&&!T)continue;if(_&&T)o.addOutput({amount:0n,script:T});else o.addOutputAddress(U,BigInt(H.value),C)}return{inputs:y,tx:o}}async function L5(y){let{assetValue:n,recipient:o,memo:f,feeRate:T,sender:C,fetchTxHex:H}=y,U=f?Jy(f):null,_=await a(iT.Zcash).getUtxos({address:C,fetchTxHex:H!==!1}),A=[{address:o,value:Number(n.getBaseValue("string"))},...U?[{script:U,value:0}]:[]],{inputs:Z,outputs:M}=ky({chain:iT.Zcash,changeAddress:C,feeRate:T,inputs:_,outputs:A});if(!(Z&&M))throw new In("toolbox_utxo_insufficient_balance",{assetValue:n,sender:C});let W=Lq({consensusBranchId:wq.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:Dq.SAPLING}),{tx:G,inputs:X}=xq({compiledMemo:U,inputs:Z,outputs:M,sender:C,tx:W});return{inputs:X,outputs:M,tx:G}}function go(y){let n=Rq(y).with({signer:co.not(co.nullish)},({signer:_})=>_).with({phrase:co.string},({phrase:_,derivationPath:A,index:Z=0})=>{let M=A||Zq[iT.Zcash]||[44,133,0,0,0],W=Jq(M,{index:Z}),G=Wq(W);return Sq({derivationPath:G,phrase:_})}).otherwise(()=>{return}),o=Cf({chain:iT.Zcash,signer:n});async function f(_){if(!n)throw new In("toolbox_utxo_no_signer");return await n.signTransaction(_)}async function T(_){let A=await f(_);return o.broadcastTx(A.toHex())}async function C({recipient:_,assetValue:A,feeOptionKey:Z=Qq.Fast,...M}){let W=await n?.getAddress();if(!(n&&W))throw new In("toolbox_utxo_no_signer");let G=M.feeRate||(await o.getFeeRates())[Z],{tx:X}=await L5({...M,assetValue:A,feeRate:G,recipient:_,sender:W}),B=(await n.signTransaction(X)).toHex();return o.broadcastTx(B)}function H({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let Z=B5(_),W=Y5.fromMasterSeed(Z).derive(A);if(!W.privateKey||!W.publicKey)throw new In("toolbox_utxo_invalid_params");return{privateKey:W.privateKey,publicKey:W.publicKey}}function U({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let Z=H({derivationPath:A,phrase:_}),M=O5();return zq(M).encode(Z.privateKey)}return{...o,createKeysForPath:H,createTransaction:L5,getPrivateKeyFromMnemonic:U,signAndBroadcastTransaction:T,signTransaction:f,transfer:C,validateAddress:Kf}}var kq;var io=I(()=>{jf();gf();ln();kq=Gq(N5.sha256)});import{hex as Fq}from"@scure/base";import{HDKey as $q}from"@scure/bip32";import{derivationPathToString as Iq}from"@swapkit/helpers";function w5({xpub:y,chain:n,count:o,startIndex:f=0,accountIndex:T}){if(Ry("count",o),o<1)throw RangeError("count must be at least 1");Ry("startIndex",f);let C=Ay(n),H=$q.fromExtendedKey(y,C.bip32),U=ff({accountIndex:T,chain:n}),_=Lf(U),A=[];for(let Z of[!1,!0]){let M=H.deriveChild(Number(Z));for(let W=0;W<o;W++){let G=f+W,X=M.deriveChild(G);if(!X.publicKey)continue;let Q=bf({accountIndex:T,chain:n,change:Z,index:G});A.push({accountIndex:_,address:Fn({chain:n,network:C,publicKey:X.publicKey}),change:Z,index:G,path:Iq(Q),pubkey:Fq.encode(X.publicKey)})}}return A}var D5=I(()=>{Nn();gf()});import{Chain as df,SwapKitError as Pq}from"@swapkit/helpers";function tq(y,n){switch(y){case df.BitcoinCash:return mo(n||{});case df.Zcash:return go(n);case df.Bitcoin:case df.Dogecoin:case df.Litecoin:case df.Dash:return Cf({chain:y,...n});default:throw new Pq("toolbox_utxo_not_supported",{chain:y})}}var R5=I(()=>{gT();gf();io();Nn();D5();gT();ln()});var ro={};yy(ro,{validateZcashAddress:()=>Kf,validateUtxoAddress:()=>jo,validateBchAddress:()=>Tf,toLegacyAddress:()=>hy,toCashAddress:()=>wn,stripToCashAddress:()=>$n,stripPrefix:()=>Nf,nonSegwitChains:()=>xn,isValidAddress:()=>po,getUtxoToolbox:()=>tq,getUtxoNetwork:()=>JA,getUtxoApi:()=>a,getUTXOAddressValidator:()=>Ko,getUTXOAddressPath:()=>bf,getUTXOAccountPath:()=>ff,getUTXOAccountIndexFromPath:()=>Lf,getScriptTypeForAddress:()=>vf,getOutputSize:()=>Rn,getNetworkForChain:()=>Ay,getInputSize:()=>nf,getDustThreshold:()=>kn,detectAddressNetwork:()=>Eo,deriveAddressesFromXpub:()=>w5,createZcashToolbox:()=>go,createUTXOToolbox:()=>Cf,createHDWalletHelpers:()=>bH,createCustomUtxoApi:()=>ZA,createBCHToolbox:()=>mo,compileMemo:()=>Jy,calculateTxSize:()=>Bf,assertDerivationIndex:()=>Ry,addressFromKeysGetter:()=>ho,addInputsAndOutputs:()=>of,accumulative:()=>ky,UtxoNetwork:()=>to,UTXOScriptType:()=>hT,TX_OVERHEAD:()=>jT,SEGWIT_MARKER_FLAG_WEIGHT:()=>KT,OutputSizes:()=>Dn,OP_RETURN_OVERHEAD:()=>aH,MIN_TX_FEE:()=>FA,InputSizes:()=>vT});var ao=I(()=>{gf();Nn();jf();R5();gT();io()});import{KeyPairSigner as pq}from"@near-js/signers";import{derivationPathToString as Eq,SwapKitError as Vq}from"@swapkit/helpers";import*as k5 from"near-seed-phrase";function Pn(y){return y.length>=2&&y.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(y)}async function dT(y){let{KeyPair:n}=await import("@near-js/crypto"),o=y.index||0,f=y.derivationPath?Eq(y.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:T}=k5.parseSeedPhrase(y.phrase,f),C=n.fromString(T);return S5(C)}async function so(y){let{KeyPair:n}=await import("@near-js/crypto"),o=n.fromString(y);return S5(o)}function S5(y){return new l5(y)}async function rT(y,n){let f=(await y.query({account_id:n,finality:"final",request_type:"view_access_key_list"})).keys.find((U)=>U.access_key.permission==="FullAccess");if(!f)throw new Vq("toolbox_near_no_public_key_found");let{PublicKey:T}=await import("@near-js/crypto"),C=T.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:C}}var l5;var eo=I(()=>{l5=class l5 extends pq{#y;constructor(y){super(y);this.#y=y}getAddress(){let y=this.#y.getPublicKey(),n=Buffer.from(y.data).toString("hex");return Promise.resolve(n)}}});function yC(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function fC(y){return"contractId"in y&&"methodName"in y}function nC(y){return"actions"in y}function TC(y){return"newAccountId"in y}function oC(y){return"contractCode"in y}function CC(y){return"customEstimator"in y}function HC(y){let n=0;for(let o of y)switch(o.enum){case"transfer":n+=Number(Hy.SIMPLE_TRANSFER);break;case"functionCall":n+=Number(Hy.CONTRACT_CALL);break;case"createAccount":n+=Number(Hy.ACCOUNT_CREATION);break;case"deployContract":n+=Number(Hy.CONTRACT_DEPLOYMENT);break;case"addKey":n+=Number(Hy.ACCESS_KEY_ADDITION);break;case"deleteKey":n+=Number(Hy.ACCESS_KEY_DELETION);break;case"stake":n+=Number(Hy.STAKE);break;default:n+=Number(Hy.CONTRACT_CALL)}return n.toString()}function UC(y){if(y==="ft_transfer"||y==="ft_transfer_call")return Hy.TOKEN_TRANSFER;if(y==="storage_deposit")return Hy.STORAGE_DEPOSIT;return Hy.CONTRACT_CALL}function bq(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function uq(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var Hy;var _C=I(()=>{Hy={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function AC({account:y,contractId:n,viewMethods:o,changeMethods:f}){let{Contract:T}=await import("@near-js/accounts");return new T(y,n,{changeMethods:f,useLocalViewExecution:!0,viewMethods:o})}import{JsonRpcProvider as vq}from"@near-js/providers";import{AssetValue as qC,Chain as rf,getRPCUrl as x5,SwapKitError as Zy}from"@swapkit/helpers";import{match as F5,P as $5}from"ts-pattern";function jq(y){let n;async function o(){if(n)return n;return n=await F5(y).with({phrase:$5.string},async(q)=>{return await dT(q)}).with({signer:$5.any},({signer:q})=>q).otherwise(()=>{return}),n}async function f(){let q=await x5(rf.Near);return new vq({url:q})}async function T(q){let{Account:O}=await import("@near-js/accounts"),k=await f(),S=await o(),x=q||await C();return new O(x,k,S)}async function C(){let q=await o();if(!q)throw new Zy("toolbox_near_no_signer");return await q.getAddress()}async function H(q){return(await N({changeMethods:[],contractId:q.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:q.accountId})}async function U(q){let k=[await W({args:{account_id:q.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await W({args:{amount:q.assetValue.getBaseValue("string"),memo:q.memo||null,receiver_id:q.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return z({actions:k,receiverId:q.contractId})}async function _(q){if(!await o())throw new Zy("toolbox_near_no_signer");let{assetValue:k,recipient:S,memo:x}=q,t=await C();if(!k.isGasAsset&&k.address){if(!await H({accountId:S,contractId:k.address}))return U({assetValue:k,contractId:k.address,memo:x,recipient:S})}let V=await A({...q,sender:t});return Q(V)}async function A({recipient:q,assetValue:O,memo:k,attachedDeposit:S,sender:x,functionCall:t}){let V=await f();if(!Pn(q))throw new Zy("toolbox_near_invalid_address",{recipient:q});if(!Pn(x))throw new Zy("toolbox_near_invalid_address",{sender:x});if(t)return M({...t,sender:x});if(!O.isGasAsset){let Af=O.address;if(!Af)throw new Zy("toolbox_near_missing_contract_address");return M({args:{amount:O.getBaseValue("string"),memo:k||null,receiver_id:q},attachedDeposit:S||"1",contractId:Af,gas:"250000000000000",methodName:"ft_transfer",sender:x})}let{publicKey:b,nonce:j}=await rT(V,x),e=O.getBaseValue("bigint"),{actionCreators:_y,createTransaction:r}=await import("@near-js/transactions"),{baseDecode:Ny}=await import("@near-js/utils"),Gy=[_y.transfer(e)];if(k&&S)Gy.push(_y.functionCall("memo",{memo:k},BigInt("250000000000000"),BigInt(S)));let xy=await V.block({finality:"final"}),_f=Ny(xy.header.hash);return r(x,b,q,j+1,Gy,_f)}function Z(q){let O=q.encode();return Buffer.from(O).toString("base64")}async function M({args:q,attachedDeposit:O,contractId:k,gas:S,methodName:x,sender:t}){let V=await f(),{publicKey:b,nonce:j}=await rT(V,t),{createTransaction:e,actionCreators:_y}=await import("@near-js/transactions"),{baseDecode:r}=await import("@near-js/utils"),Ny=await V.block({finality:"final"}),Gy=r(Ny.header.hash),xy=[_y.functionCall(x,Buffer.from(JSON.stringify(q)),BigInt(S),BigInt(O))];return e(t,b,k,j+1,xy,Gy)}async function W(q){let{actionCreators:O}=await import("@near-js/transactions");return O.functionCall(q.methodName,Buffer.from(JSON.stringify(q.args)),BigInt(q.gas),BigInt(q.attachedDeposit))}async function G(q){let O=await o();if(!O)throw new Zy("toolbox_near_no_signer");let[k,S]=await O.signTransaction(q);return S}async function X(q){return(await(await f()).sendTransaction(q)).transaction.hash}async function Q(q){let O=await o();if(!O)throw new Zy("toolbox_near_no_signer");try{let k=await G(q);return await X(k)}catch{return O.signAndSendTransactions?.({transactions:[q]})}}async function B(q){let O=await o();if("assetValue"in q){let S=await D();try{let x=await x5(rf.Near),t=await fetch(x,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:V}}=await t.json(),{execution:b,send_sir:j}=V.transaction_costs.action_receipt_creation_config,{execution:e,send_sir:_y}=V.transaction_costs.action_creation_config.transfer_cost,r=BigInt(_y)+BigInt(e),Ny=BigInt(j)+BigInt(b),xy=(r+Ny)*BigInt(S.toString());return qC.from({chain:rf.Near,value:xy})}catch(x){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",x);let t=BigInt("115123062500"),V=BigInt("108059500000"),j=(t+V)*BigInt(S.toString());return qC.from({chain:rf.Near,value:j})}}let k=O?await T():void 0;return J(q,k)}async function D(){let q=await f();try{return await q.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function L(q,O,k){if(!await o())throw new Zy("toolbox_near_no_signer");let x=await T(),{formatNearAmount:t}=await import("@near-js/utils"),{PublicKey:V}=await import("@near-js/crypto"),b=t(k)||"0";return(await x.createAccount(q,V.fromString(O),BigInt(b))).transaction.hash}async function w(q){let O=await o();try{if(!O)throw new Zy("toolbox_near_no_signer");let{actionCreators:k}=await import("@near-js/transactions"),{contractId:S,methodName:x,args:t,deposit:V}=q,b=await T(),j=await J({args:t||{},contractId:S,methodName:x}),e=k.functionCall(x,t||{},j.getBaseValue("bigint"),BigInt(V||"1"));return(await b.signAndSendTransaction({actions:[e],receiverId:S})).transaction_outcome.id}catch(k){throw new Zy("toolbox_near_transfer_failed",{error:k})}}async function N(q){let O=await T();return AC({account:O,changeMethods:q.changeMethods,contractId:q.contractId,viewMethods:q.viewMethods})}async function z(q){if(!await o())throw new Zy("toolbox_near_no_signer");if(q.actions.length===0)throw new Zy("toolbox_near_empty_batch");return(await(await T()).signAndSendTransaction({actions:q.actions,receiverId:q.receiverId})).transaction.hash}async function J(q,O){let k=await F5(q).when(yC,()=>Hy.SIMPLE_TRANSFER).when(fC,(x)=>UC(x.methodName)).when(nC,(x)=>HC(x.actions)).when(TC,()=>Hy.ACCOUNT_CREATION).when(oC,()=>Hy.CONTRACT_DEPLOYMENT).when(CC,(x)=>{if(!O)throw new Zy("toolbox_near_no_account");return x.customEstimator(O)}).otherwise(()=>{throw new Zy("toolbox_near_invalid_gas_params")}),S=BigInt(k)*BigInt(1000000000000);return qC.from({chain:rf.Near,value:S})}function Y(q,O){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),J(q,O)}async function R(){let q=await f();try{return(await q.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function l(){let q=await o();return q?(await q.getPublicKey()).toString():""}return{broadcastTransaction:X,callFunction:w,createAction:W,createContract:N,createContractFunctionCall:M,createSubAccount:L,createTransaction:A,estimateGas:Y,estimateGasLimit:J,estimateTransactionFee:B,executeBatchTransaction:z,getAddress:C,getBalance:Xy(rf.Near),getGasPrice:R,getNearProvider:f,getPublicKey:l,getSignerFromPhrase:dT,getSignerFromPrivateKey:so,serializeTransaction:Z,signAndBroadcastTransaction:Q,signTransaction:G,transfer:_,validateAddress:Pn}}var GC=I(()=>{Ey();eo();_C()});var I5=I(()=>{GC()});var XC={};yy(XC,{validateNearAddress:()=>Pn,tgasToGas:()=>bq,isSimpleTransfer:()=>yC,isCustomEstimator:()=>CC,isContractDeployment:()=>oC,isContractCall:()=>fC,isBatchTransaction:()=>nC,isAccountCreation:()=>TC,getNearToolbox:()=>jq,getNearSignerFromPrivateKey:()=>so,getNearSignerFromPhrase:()=>dT,getFullAccessPublicKey:()=>rT,getContractMethodGas:()=>UC,gasToTGas:()=>uq,estimateBatchGas:()=>HC,createNearContract:()=>AC,GAS_COSTS:()=>Hy});var WC=I(()=>{eo();_C();GC();I5()});var ZC={};yy(ZC,{validateRadixAddress:()=>t5,getRadixToolbox:()=>aq});import{GatewayApiClient as Kq}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as hq}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as P5,Chain as QC,SKConfig as mq,SwapKitError as cq}from"@swapkit/helpers";function t5(y){return y.startsWith("account_rdx1")&&y.length===66}function gq({networkApi:y}){return async function(o){let f=await iq({address:o,networkApi:y}),T=await dq({networkApi:y,resources:f});if(!T.some((H)=>H.isGasAsset))return[P5.from({chain:QC.Radix}),...T];return T}}async function iq({address:y,networkApi:n}){let o=!0,f,T=[],C=await rq(n);while(o){let H={address:y,at_ledger_state:{state_version:C},cursor:f,limit_per_page:100},U=await n.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:H});if(T=T.concat(U.items),U.next_cursor)f=U.next_cursor;else o=!1}return T}async function dq({resources:y,networkApi:n}){let o=[],f=50,T=[];for(let C=0;C<y.length;C+=50)T.push(y.slice(C,C+50));for(let C of T){let H=C.map((A)=>A.resource_address),U=await n.state.getEntityDetailsVaultAggregated(H),_=new Map;for(let A of U)if(A.details!==void 0){let Z=A.metadata?.items.find((W)=>W.key==="symbol"),M=Z?.value.typed.type==="String"?Z.value.typed.value:"?";if(A.details.type==="FungibleResource")_.set(A.address,{decimals:A.details.divisibility,symbol:M})}for(let A of C)if(A.aggregation_level==="Global"){let Z=_.get(A.resource_address)||{decimals:0,symbol:"?"},M=P5.from({asset:Z.symbol!==QC.Radix?`${QC.Radix}.${Z.symbol}-${A.resource_address}`:"XRD.XRD",value:A.amount});o.push(M)}}return o}async function rq(y){return(await y.status.getCurrent()).ledger_state.state_version}function aq({dappConfig:y}={}){let n=y||mq.get("integrations").radix,o=hq({...n,networkId:n.network?.networkId||1}),f=Kq.initialize(o.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:gq({networkApi:f}),networkApi:f,signAndBroadcast:()=>{throw new cq("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:t5}}var JC=()=>{};import{SwapKitError as sq}from"@swapkit/helpers";function aT(y){return/^[0-9A-Fa-f]{40}$/.test(y)}function tn(y){if(aT(y))return y.toUpperCase();if(y.length<=3){let o=Buffer.from(y.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${o}${"0".repeat(10)}`.toUpperCase()}let n=Buffer.from(y).toString("hex").toUpperCase();if(n.length>40)throw new sq({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return n.padEnd(40,"0")}function eq(y){if(!aT(y))return y;if(y.toUpperCase().startsWith("00")){let n=y.slice(24,30);try{let o=Buffer.from(n,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(o)&&o.length>0)return o}catch{}return y.toUpperCase()}try{let n=y.replace(/0+$/,""),o=n.length%2===0?n:`${n}0`,f=Buffer.from(o,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function af(y){if(aT(y))return y.toUpperCase();if(y.length<=3)return y;return tn(y)}var sT=()=>{};import{RequestClient as yG,warnOnce as fG}from"@swapkit/helpers";async function nG(y,n){let o=af(y),f=eT.find((T)=>af(T.currency)===o&&T.issuer===n);if(f)return f;try{let T=await yG.get(`https://api.xrplmeta.org/token/${y}:${n}`);if(T)return{currency:y,decimals:15,description:T.desc,domain:T.domain,icon:T.icon,issuer:n,name:T.name,verified:T.self_assessment?.is_regulated||T.self_assessment?.is_licensed}}catch(T){fG({condition:!0,id:`xrpl_token_lookup_${y}_${n}`,warning:`Failed to fetch XRPL token info for ${y}:${n}: ${T}`})}return{currency:y,decimals:15,issuer:n,verified:!1}}function TG(y){return eT.filter((n)=>n.issuer===y)}function oG(y,n){let o=af(y);return eT.some((f)=>af(f.currency)===o&&f.issuer===n)}var eT;var p5=I(()=>{sT();eT=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var MC={};yy(MC,{validateRippleAddress:()=>n0,parseXrplTokenIdentifier:()=>K5,normalizeCurrency:()=>af,isKnownToken:()=>oG,isHexCurrency:()=>aT,hexToCurrency:()=>eq,hashes:()=>GG,getXrplTokenInfo:()=>nG,getRippleToolbox:()=>qG,getKnownTokensByIssuer:()=>TG,formatXrplTokenIdentifier:()=>h5,currencyToHex:()=>tn,XRPL_TOKEN_ERROR_CODES:()=>f0,XRPL_KNOWN_TOKENS:()=>eT});import{AssetValue as y0,Chain as ly,getChainConfig as E5,getRPCUrl as CG,SwapKitError as qy}from"@swapkit/helpers";import{match as V5,P as b5}from"ts-pattern";import{Client as HG,isValidAddress as j5,Wallet as UG,xrpToDrops as _G}from"xrpl";import{hashes as GG}from"xrpl";function K5(y){let n=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!n?.[1]||!n?.[2])return null;if(!j5(n[2]))return null;return{currency:n[1],issuer:n[2]}}function h5(y,n){return`${ly.Ripple}.${y}-${n}`}function AG(y){if(y.isGasAsset)return _G(y.getValue("string"));let n=K5(y.toString());if(!n)throw new qy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:n.currency,issuer:n.issuer,value:y.getValue("string")}}function v5(y){let n=UG.fromMnemonic(y);return{getAddress:()=>Promise.resolve(n.address),signTransaction:(o)=>Promise.resolve(n.sign(o))}}function n0(y){return j5(y)}function qG(y={}){let n=V5(y).with({phrase:b5.string},({phrase:L})=>v5(L)).with({signer:b5.any},({signer:L})=>L).otherwise(()=>{return}),o;async function f(){let L=await CG(ly.Ripple);if(!L)throw new qy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:ly.Ripple}});let w=new HG(L);return await w.connect(),w}async function T(){if(o){let L=await o.catch(()=>null);if(L?.isConnected())return L}return o=f(),o}let C=()=>{if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});return n.getAddress()},H=async(L)=>{let w=L||await C(),{baseDecimal:N}=E5(ly.Ripple),z=await T();try{let[J,Y]=await Promise.all([z.request({account:w,command:"account_info"}),z.request({account:w,command:"account_lines"})]),R=J.result.account_data.Balance,l=[y0.from({chain:ly.Ripple,fromBaseDecimal:N,value:R})];for(let q of Y.result.lines){let O=h5(q.currency,q.account);if(Number.parseFloat(q.balance)!==0)l.push(y0.from({asset:O,asyncTokenLookup:!1,value:q.balance}))}return l}catch(J){if(J.data?.error_code===u5.ACCOUNT_NOT_FOUND)return[y0.from({chain:ly.Ripple,value:0})];throw new qy({errorKey:"toolbox_ripple_get_balance_error",info:{address:w,error:J}})}},U=async()=>{let{baseDecimal:L}=E5(ly.Ripple),z=(await(await T()).request({command:"fee"})).result.drops.open_ledger_fee;return y0.from({chain:ly.Ripple,fromBaseDecimal:L,value:z})};async function _(L){let w=L||await C(),N=await T();try{return(await N.request({account:w,command:"account_lines"})).result.lines.map((J)=>({account:J.account,authorized:J.authorized??!1,balance:J.balance,currency:J.currency,freeze:J.freeze??!1,freezePeer:J.freeze_peer??!1,limit:J.limit,limitPeer:J.limit_peer,noRipple:J.no_ripple??!1,noRipplePeer:J.no_ripple_peer??!1,peerAuthorized:J.peer_authorized??!1,qualityIn:J.quality_in??0,qualityOut:J.quality_out??0}))}catch(z){if(z.data?.error_code===u5.ACCOUNT_NOT_FOUND)return[];throw new qy({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:w,error:z}})}}async function A({address:L,currency:w,issuer:N}){let z=await _(L),J=tn(w);return z.some((Y)=>{return tn(Y.currency)===J&&Y.account===N})}async function Z({currency:L,issuer:w,limit:N,sender:z}){let J=z||await C();if(!n0(w))throw new qy({errorKey:"core_transaction_invalid_recipient_address",info:{address:w}});let Y=Number.parseFloat(N);if(Number.isNaN(Y)||Y<0)throw new qy({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:N}});let R=await T(),l={Account:J,LimitAmount:{currency:L,issuer:w,value:N},TransactionType:"TrustSet"};return R.autofill(l)}async function M({assetValue:L,recipient:w,memo:N,sender:z,destinationTag:J,extendBySeconds:Y=150}){if(!n0(w))throw new qy({errorKey:"core_transaction_invalid_recipient_address"});let R=z||await C();if(L.chain!==ly.Ripple)throw new qy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:L.toString()}});let l=AG(L),q={Account:R,Amount:l,Destination:w,TransactionType:"Payment",...J!==void 0&&{DestinationTag:J}};if(N)q.Memos=[{Memo:{MemoData:Buffer.from(N).toString("hex")}}];let k=await(await T()).autofill(q);if(k.LastLedgerSequence&&Y>0)k.LastLedgerSequence+=Math.ceil(Y/4);return k}function W(L){if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});return n.signTransaction(L)}async function G(L){let N=await(await T()).submitAndWait(L),{result:z}=N;if(z.validated)return z.hash;let J=z.meta?.TransactionResult,Y=V5(J).with(f0.tecNO_LINE,()=>"No trust line exists for this token").with(f0.tecPATH_DRY,()=>"Payment path could not deliver funds").with(f0.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new qy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:ly.Ripple,...Y?{reason:Y}:{txResult:J}}})}let X=async(L)=>{try{let w=await W(L);return G(w.tx_blob)}catch(w){if(w instanceof qy)throw w;throw new qy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:ly.Ripple,error:w}})}};async function Q(L){if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});let w=await n.getAddress(),N=await M({...L,sender:w}),z=await W(N);return G(z.tx_blob)}async function B(L){if(!n)throw new qy({errorKey:"toolbox_ripple_signer_not_found"});let w=await n.getAddress(),N=await Z({...L,sender:w}),z=await W(N);return G(z.tx_blob)}function D(){let L=o;if(o=null,L)L.then((w)=>{if(w?.isConnected())return w.disconnect();return}).catch((w)=>{console.warn("XRPL Cleanup failed silently:",w)})}return{broadcastTransaction:G,createSigner:v5,createTransaction:M,disconnect:D,estimateTransactionFee:U,getAddress:C,getBalance:H,getTrustLines:_,hasTrustLine:A,setTrustLine:Z,setTrustLineAndBroadcast:B,signAndBroadcastTransaction:X,signTransaction:W,transfer:Q,validateAddress:n0}}var u5,f0;var LC=I(()=>{sT();sT();p5();u5={ACCOUNT_NOT_FOUND:19},f0={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});import{sha256 as XG}from"@noble/hashes/sha2.js";import{bytesToHex as m5,hexToBytes as c5}from"@noble/hashes/utils.js";import{SwapKitError as sf}from"@swapkit/helpers";function YC(y,n){let o=0n,f=0n,T=n;while(T<y.length&&T-n<10){let C=y[T++];if(C===void 0)break;if(o|=BigInt(C&127)<<f,f+=7n,(C&128)===0)return[o,T]}throw new sf("toolbox_tron_transaction_creation_failed")}function pn(y){let n=[],o=y<0n?y+2n**64n:y;while(o>=128n)n.push(Number(o&0x7fn)|128),o>>=7n;return n.push(Number(o)),n}function T0(y,n,o){let f=y.get(n);if(f)f.push(o);else y.set(n,[o])}function JG(y){let n=new Map,o=0;while(o<y.length){let[f,T]=YC(y,o);o=T;let C=Number(f>>3n),H=Number(f&7n);if(H===o0){let[U,_]=YC(y,o);o=_,T0(n,C,{data:new Uint8Array(pn(U)),wireType:o0})}else if(H===C0){let[U,_]=YC(y,o);o=_;let A=Number(U);if(A<0||o+A>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let Z=y.slice(o,o+A);o+=A,T0(n,C,{data:Z,wireType:C0})}else if(H===g5){if(o+8>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+8);o+=8,T0(n,C,{data:U,wireType:g5})}else if(H===i5){if(o+4>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+4);o+=4,T0(n,C,{data:U,wireType:i5})}else throw new sf("toolbox_tron_transaction_creation_failed")}return n}function MG(y){let n=[];for(let[C,H]of[...y.entries()].sort(([U],[_])=>U-_))for(let{wireType:U,data:_}of H){let A=BigInt(C<<3|U);if(n.push(new Uint8Array(pn(A))),U===C0)n.push(new Uint8Array(pn(BigInt(_.length))));n.push(_)}let o=n.reduce((C,H)=>C+H.length,0),f=new Uint8Array(o),T=0;for(let C of n)f.set(C,T),T+=C.length;return f}function d5(y,n){if(!y||y.length%2!==0)throw new sf("toolbox_tron_transaction_creation_failed");let o=c5(y),f=JG(o);if(n.expiration!==void 0)f.set(WG,[{data:new Uint8Array(pn(BigInt(n.expiration))),wireType:o0}]);if(n.data!==void 0)f.set(QG,[{data:c5(n.data),wireType:C0}]);if(n.fee_limit!==void 0)f.set(ZG,[{data:new Uint8Array(pn(BigInt(n.fee_limit))),wireType:o0}]);let T=MG(f),C=m5(T),H=m5(XG(T));return{raw_data_hex:C,txID:H}}var o0=0,g5=1,C0=2,i5=5,WG=8,QG=10,ZG=18;var r5=()=>{};import{secp256k1 as a5}from"@noble/curves/secp256k1.js";import{sha256 as s5}from"@noble/hashes/sha2.js";import{keccak_256 as LG}from"@noble/hashes/sha3.js";import{bytesToHex as ef,hexToBytes as H0}from"@noble/hashes/utils.js";import{createBase58check as YG}from"@scure/base";import{SwapKitError as e5}from"@swapkit/helpers";function Sy(y){if(typeof y!=="string")return!1;try{let n=U0.decode(y);return n.length===21&&n[0]===yU}catch{return!1}}function fU(y){return ef(U0.decode(y))}function zG(y){return U0.decode(y).slice(1)}function nU(y){let n=a5.getPublicKey(H0(y),!1),o=LG(n.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=yU,f.set(o,1),U0.encode(f)}function TU({txID:y,privateKey:n}){let o=a5.sign(H0(y),H0(n),{format:"recovered",prehash:!1}),f=o[0]??0,T=ef(o.slice(1,33)),C=ef(o.slice(33,65)),H=(f+27).toString(16).padStart(2,"0");return T+C+H}function yn({txID:y,raw_data_hex:n}){let o=ef(s5(H0(n)));if(y!==o)throw new e5("toolbox_tron_invalid_transaction_integrity",{expected:o,txID:y})}function NG(y){return`000000000000000000000000${ef(zG(y))}`}function OG(y){let n=typeof y==="bigint"?y:BigInt(y);if(n<0n||n>=BG)throw new e5("toolbox_tron_invalid_token_identifier",{identifier:n.toString()});return n.toString(16).padStart(64,"0")}function fn(y){return y.map(({type:n,value:o})=>n==="address"?NG(o):OG(BigInt(o))).join("")}function oU(y){return ef(new TextEncoder().encode(y))}var U0,yU=65,BG;var BC=I(()=>{U0=YG(s5),BG=2n**256n});import{Chain as wG,getRPCUrlSync as DG,SwapKitError as My,warnOnce as _0}from"@swapkit/helpers";function HU(){try{return DG(wG.Tron)}catch{return CU}}function UU(){let y=new AbortController,n=setTimeout(()=>y.abort(),xG);return{cleanup:()=>clearTimeout(n),signal:y.signal}}async function wf(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${HU()}${y}`,{body:JSON.stringify(n),headers:{"Content-Type":"application/json"},method:"POST",signal:o});if(!T.ok)throw new My("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function _U(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${n??HU()}${y}`,{headers:{"Content-Type":"application/json"},signal:o});if(!T.ok)throw new My("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function AU(y){if(!Sy(y))throw new My("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let n=await _U(`/v1/accounts/${y}`,CU);if(!(n.success&&n.data)||n.data.length===0)return;let o;try{o=fU(y).toLowerCase()}catch{o=y.toLowerCase()}let f=n.data.find((T)=>T.address.toLowerCase()===o);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(n){if(n instanceof My)throw n;throw new My("toolbox_tron_trongrid_api_error",{address:y,message:n instanceof Error?n.message:"Unknown error"})}}async function qU({from:y,to:n,amount:o}){let T=await wf("/wallet/createtransaction",{amount:o,owner_address:y,to_address:n,visible:!0});if(!T.txID||!T.raw_data_hex||!T.raw_data)throw new My("toolbox_tron_transaction_creation_failed");let H=T.raw_data?.contract?.[0]?.parameter?.value;if(H?.to_address!==n||H?.owner_address!==y||H?.amount!==o)throw new My("toolbox_tron_transaction_creation_failed");return yn(T),T}async function GU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f,feeLimit:T,callValue:C=0}){let H=await wf("/wallet/triggersmartcontract",{call_value:C,contract_address:n,fee_limit:T,function_selector:o,owner_address:y,parameter:f,visible:!0});if(!H.result.result||!H.transaction?.txID||!H.transaction?.raw_data_hex)throw new My("toolbox_tron_transaction_creation_failed");let _=H.transaction.raw_data?.contract?.[0]?.parameter?.value;if(_?.contract_address!==n||_?.owner_address!==y)throw new My("toolbox_tron_transaction_creation_failed");return yn(H.transaction),H.transaction}function XU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return wf("/wallet/triggerconstantcontract",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}function FG({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return wf("/wallet/estimateenergy",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}async function En(y){try{let{result:n,txid:o}=await wf("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!n||!o)throw new My("toolbox_tron_token_transfer_failed");return o}catch(n){throw new My("toolbox_tron_broadcast_failed",{error:n})}}async function Vn(){let y={};try{let{chainParameter:n}=await _U("/wallet/getchainparameters");for(let o of n)y[o.key]=o.value}catch(n){_0({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${n instanceof Error?n.message:n}`})}return{bandwidthFee:y.getTransactionFee??RG,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??kG,energyFee:y.getEnergyFee??lG,memoFee:y.getMemoFee??SG}}async function zC(y){try{let n=await wf("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(n.freeNetLimit??600)-(n.freeNetUsed??0),total:n.NetLimit??0,used:n.NetUsed??0},energy:{total:n.EnergyLimit??0,used:n.EnergyUsed??0}}}catch(n){return _0({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${n instanceof Error?n.message:n}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function bn(y){try{let n=await wf("/wallet/getaccount",{address:y,visible:!0});return n&&Object.keys(n).length>0}catch{return!1}}async function NC(y){try{let n=await FG({...y,ownerAddress:y.sender}),o=n.energy_required??n.energyRequired;if(n.result&&!n.result.result)throw new My("toolbox_tron_trongrid_api_error",{message:n.result.message||"estimateenergy failed"});if(o!==void 0){if(Number.isFinite(o)&&o>0)return o;throw new My("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(n){_0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${n instanceof Error?n.message:n}`})}try{let{energy_used:n}=await XU({...y,ownerAddress:y.sender});return n}catch(n){return _0({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy, using default: ${n instanceof Error?n.message:n}`}),65000}}async function WU({assetAddress:y,owner:n,spender:o}){let f=fn([{type:"address",value:n},{type:"address",value:o}]),C=(await XU({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:o,parameter:f})).constant_result?.[0];if(!C)return 0n;try{return BigInt(`0x${C}`)}catch{return 0n}}var CU="https://api.trongrid.io",RG=1000,kG=1e6,lG=420,SG=1e6,xG=30000;var QU=I(()=>{BC()});import{bytesToHex as $G}from"@noble/hashes/utils.js";import{HDKey as IG}from"@scure/bip32";import{mnemonicToSeedSync as PG}from"@scure/bip39";import{AssetValue as cy,BaseDecimal as A0,Chain as zy,derivationPathToString as BU,getRPCUrl as tG,NetworkDerivationPath as zU,SwapKitError as Uy,updateDerivationPath as NU,warnOnce as ZU}from"@swapkit/helpers";import{match as pG,P as OC}from"ts-pattern";function wU({phrase:y,derivationPath:n}){let o=IG.fromMasterSeed(PG(y)).derive(n);if(!o.privateKey)throw new Uy("toolbox_tron_no_signer");return $G(o.privateKey)}function DU({phrase:y,derivationPath:n,index:o}){let f=n||BU(NU(zU[zy.Tron],{index:o||0}));return wU({derivationPath:f,phrase:y})}function VG({phrase:y,derivationPath:n}){let o=wU({derivationPath:n,phrase:y}),f=nU(o);return{getAddress:()=>Promise.resolve(f),signTransaction:(T)=>{yn(T);let C=TU({privateKey:o,txID:T.txID});return Promise.resolve({...T,signature:[C]})}}}function YU({transaction:y,memo:n,expiration:o,feeLimit:f}){let T={},C={};if(f!==void 0&&y.raw_data)T.fee_limit=f,C.fee_limit=f;if(n){let _=oU(n);T.data=_,C.data=_}if(o){let _=y.raw_data.expiration+o*1000;T.expiration=_,C.expiration=_}if(Object.keys(T).length===0)return y;let{raw_data_hex:H,txID:U}=d5(y.raw_data_hex,T);return{...y,raw_data:{...y.raw_data,...C},raw_data_hex:H,txID:U}}function RU(y={}){let n="index"in y?y.index||0:0,o=BU("derivationPath"in y&&y.derivationPath?y.derivationPath:NU(zU[zy.Tron],{index:n})),f,T=!1;function C(){if(T)return Promise.resolve(f);return f=pG(y).with({phrase:OC.string},({phrase:J})=>VG({derivationPath:o,phrase:J})).with({signer:OC.not(OC.nullish)},({signer:J})=>J).otherwise(()=>{return}),T=!0,Promise.resolve(f)}async function H(){let J=await C();if(!J)throw new Uy("toolbox_tron_no_signer");return J.getAddress()}async function U(J,Y){let R=J||MU,l=Y??(await Vn()).energyFee,q=R*l,O=Math.ceil(q*1.5);return Math.min(Math.max(O,1e7),150000000)}async function _({contractAddress:J,functionSelector:Y,parameter:R,sender:l,memo:q,expiration:O,extraEnergy:k=0}){let S=await NC({contractAddress:J,functionSelector:Y,parameter:R,sender:l}),x=await U(S+k),t=await GU({contractAddress:J,feeLimit:x,functionSelector:Y,ownerAddress:l,parameter:R});return YU({expiration:O,feeLimit:x,memo:q,transaction:t})}async function A(J){if(!Sy(J))return[cy.from({chain:zy.Tron})];try{let Y=await AU(J);if(!Y)return[cy.from({chain:zy.Tron})];let R=[cy.from({chain:zy.Tron,fromBaseDecimal:6,value:String(Y.balance)})],l=Y.trc20?.find((q)=>(DC in q));if(l){let q=l[DC];R.push(cy.from({asset:`TRON.USDT-${DC}`,fromBaseDecimal:6,value:q}))}return R}catch(Y){return ZU({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${Y instanceof Error?Y.message:Y}`}),[cy.from({chain:zy.Tron})]}}async function Z({recipient:J,assetValue:Y,memo:R,expiration:l}){if(!Sy(J))throw new Uy("toolbox_tron_token_transfer_failed",{message:"invalid address"});let q=await C();if(!q)throw new Uy("toolbox_tron_no_signer");try{let O=await H(),k=await B({assetValue:Y,expiration:l,memo:R,recipient:J,sender:O}),S=await q.signTransaction(k),x=await En(S);if(!x)throw new Uy("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return x}catch(O){throw new Uy("toolbox_tron_token_transfer_failed",{message:O instanceof Error?O.message:String(O)})}}function M({requiredBandwidth:J,resources:Y,feePerUnit:R}){let l=Math.max(0,Y.free+Y.total-Y.used);return J>l?(J-l)*R:0}async function W({memo:J,recipient:Y,senderAddress:R}){let[l,q,O]=await Promise.all([Vn(),bn(Y),zC(R)]),k=q?0:l.createAccountFee,S=M({feePerUnit:l.bandwidthFee,requiredBandwidth:JU,resources:O.bandwidth}),x=J?l.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:k+S+x})}async function G({assetValue:J,memo:Y,recipient:R,senderAddress:l}){let q=J.address;if(!q)throw new Uy("toolbox_tron_invalid_token_identifier",{identifier:J.toString()});let[O,k,S,x]=await Promise.all([Vn(),bn(R),zC(l),NC({contractAddress:q,functionSelector:"transfer(address,uint256)",parameter:fn([{type:"address",value:R},{type:"uint256",value:J.getBaseValue("string")}]),sender:l})]),V=x+(k?0:wC),b=M({feePerUnit:O.bandwidthFee,requiredBandwidth:LU,resources:S.bandwidth}),j=Math.max(0,S.energy.total-S.energy.used),e=V>j?(V-j)*O.energyFee:0,_y=Y?O.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:b+e+_y})}async function X({assetValue:J,memo:Y,recipient:R}){let[l,q]=await Promise.all([Vn(),bn(R)]);if(J.isGasAsset){let x=q?0:l.createAccountFee,t=Y?l.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:x+JU*l.bandwidthFee+t})}let k=await U(MU+(q?0:wC),l.energyFee),S=Y?l.memoFee:0;return cy.from({chain:zy.Tron,fromBaseDecimal:A0.TRON,value:k+LU*l.bandwidthFee+S})}async function Q({assetValue:J,memo:Y,recipient:R,sender:l}){let q=await C();try{let O=l?l:q?await H():void 0;if(!O)return X({assetValue:J,memo:Y,recipient:R});return J.isGasAsset?W({memo:Y,recipient:R,senderAddress:O}):G({assetValue:J,memo:Y,recipient:R,senderAddress:O})}catch(O){throw ZU({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${O instanceof Error?O.message:O}`}),new Uy("toolbox_fee_estimation_failed",{chain:zy.Tron,error:O})}}async function B({recipient:J,assetValue:Y,memo:R,sender:l,expiration:q}){if(!Sy(J)||!Sy(l))throw new Uy("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(Y.isGasAsset){let S=await qU({amount:Y.getBaseValue("number"),from:l,to:J});return YU({expiration:q,memo:R,transaction:S})}let O=Y.address;if(!O)throw new Uy("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let k=await bn(J);return _({contractAddress:O,expiration:q,extraEnergy:k?0:wC,functionSelector:"transfer(address,uint256)",memo:R,parameter:fn([{type:"address",value:J},{type:"uint256",value:Y.getBaseValue("string")}]),sender:l})}async function D(J){yn(J);let Y=await C();if(!Y)throw new Uy("toolbox_tron_no_signer");return Y.signTransaction(J)}async function L(J){let Y=await D(J);return En(Y)}function w({assetAddress:J,spenderAddress:Y,from:R}){return WU({assetAddress:J,owner:R,spender:Y})}async function N({assetAddress:J,spenderAddress:Y,from:R,amount:l}){let q=await w({assetAddress:J,from:R,spenderAddress:Y});if(!l)return q>0n;return q>=BigInt(l)}async function z({assetAddress:J,spenderAddress:Y,amount:R,from:l}){if(!Sy(J)||!Sy(Y))throw new Uy("toolbox_tron_approve_failed");let q=await C();if(!q)throw new Uy("toolbox_tron_no_signer");let O=l||await H(),k=R!==void 0?BigInt(R).toString():EG;try{let S=await _({contractAddress:J,functionSelector:"approve(address,uint256)",parameter:fn([{type:"address",value:Y},{type:"uint256",value:k}]),sender:O}),x=await q.signTransaction(S),t=await En(x);if(!t)throw new Uy("toolbox_tron_approve_failed");return t}catch(S){if(S instanceof Uy)throw S;throw new Uy("toolbox_tron_approve_failed",{error:S})}}return{approve:z,broadcastTransaction:En,createTransaction:B,estimateTransactionFee:Q,getAddress:H,getApprovedAmount:w,getBalance:A,getRpcUrl:()=>tG(zy.Tron),isApproved:N,signAndBroadcastTransaction:L,signTransaction:D,transfer:Z,validateAddress:Sy}}var OU,JU=268,MU=65000,wC=25000,LU=345,DC="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",EG="115792089237316195423570985008687907853269984665640564039457584007913129639935";var kU=I(()=>{r5();QU();BC();OU=Sy});var RC={};yy(RC,{validateTronAddress:()=>OU,getTronToolbox:()=>RU,getTronPrivateKeyFromMnemonic:()=>DU});var kC=I(()=>{kU()});import{AssetValue as un,Chain as Hf,derivationPathToString as bG,getChainConfig as uG,getRPCUrl as vG,NetworkDerivationPath as jG,SwapKitError as Uf}from"@swapkit/helpers";import{match as KG,P as hG}from"ts-pattern";function q0(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return mG.test(y)}async function cG(y){if(!q0(y))return!1;try{let{StrKey:n}=await import("@stellar/stellar-sdk");return n.isValidEd25519PublicKey(y)}catch{return!1}}function lU(y={}){let n,o=y.derivationPath||jG[Hf.Stellar],f=bG(o.slice(0,3));async function T({phrase:Q,path:B}){let{HDKey:D}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),{Keypair:w}=await import("@stellar/stellar-sdk"),N=L(Q),J=D.fromMasterSeed(N).derive(B,!0);return w.fromRawEd25519Seed(Buffer.from(J.privateKey))}async function C(){if(n)return n;let Q=KG(y).with({phrase:hG.string},({phrase:B})=>B).otherwise(()=>{return});if(!Q)throw new Uf("toolbox_stellar_no_signer");return n=await T({path:f,phrase:Q}),n}async function H(){let{Horizon:Q}=await import("@stellar/stellar-sdk"),B=await vG(Hf.Stellar);return new Q.Server(B)}async function U(){try{return(await C()).publicKey()}catch{return""}}async function _(Q){let B=Q||await U();if(!B)throw new Uf("toolbox_stellar_account_not_found");try{return(await(await H()).loadAccount(B)).balances.map((w)=>{if(w.asset_type==="native")return un.from({chain:Hf.Stellar,value:w.balance});let N="asset_code"in w?w.asset_code:"",z="asset_issuer"in w?w.asset_issuer:"";return un.from({asset:`${Hf.Stellar}.${N}-${z}`,asyncTokenLookup:!1,value:w.balance})})}catch{return[un.from({chain:Hf.Stellar,value:0})]}}async function A({recipient:Q,assetValue:B,memo:D,sender:L}){if(D){if(new TextEncoder().encode(D).length>28)throw new Uf("helpers_invalid_memo_type")}if(!await cG(Q))throw new Uf("core_transaction_invalid_recipient_address");let N=L||await U();if(!N)throw new Uf("toolbox_stellar_no_signer");let{Asset:z,Memo:J,Networks:Y,Operation:R,TransactionBuilder:l}=await import("@stellar/stellar-sdk"),q=await H(),O=await q.fetchBaseFee(),k=await q.loadAccount(N),S=new l(k,{fee:String(O),networkPassphrase:Y.PUBLIC});if(B.isGasAsset)try{await q.loadAccount(Q),S.addOperation(R.payment({amount:B.getValue("string"),asset:z.native(),destination:Q}))}catch{S.addOperation(R.createAccount({destination:Q,startingBalance:B.getValue("string")}))}else S.addOperation(R.payment({amount:B.getValue("string"),asset:new z(B.symbol,B.address),destination:Q}));if(D)S.addMemo(J.text(D));return S.setTimeout(30).build()}async function Z(Q){let{TransactionBuilder:B,Networks:D}=await import("@stellar/stellar-sdk"),L=await C(),w=B.fromXDR(Q.toXDR(),D.PUBLIC);return w.sign(L),w}async function M(Q){try{let B=await H(),{hash:D}=await B.submitTransaction(Q);return D}catch(B){throw new Uf("toolbox_stellar_broadcast_error",B)}}async function W({recipient:Q,assetValue:B,memo:D}){let L=await C(),w=L.publicKey(),N=await A({assetValue:B,memo:D,recipient:Q,sender:w});N.sign(L);try{return(await(await H()).submitTransaction(N)).hash}catch(z){if(z instanceof Uf)throw z;throw new Uf("toolbox_stellar_transaction_failed",z)}}async function G(Q){let B=await Z(Q);return M(B)}async function X(){let{baseDecimal:Q}=uG(Hf.Stellar);try{let L=(await(await H()).feeStats()).fee_charged.p50;return un.from({chain:Hf.Stellar,fromBaseDecimal:Q,value:L})}catch{return un.from({chain:Hf.Stellar,fromBaseDecimal:Q,value:"100"})}}return{broadcastTransaction:M,createTransaction:A,estimateTransactionFee:X,getAddress:U,getBalance:_,signAndBroadcastTransaction:G,signTransaction:Z,transfer:W,validateAddress:q0}}var mG;var SU=I(()=>{mG=/^G[A-Z2-7]{55}$/});var G0={};yy(G0,{validateStellarAddress:()=>q0,getStellarToolbox:()=>lU});var X0=I(()=>{SU()});import{AssetValue as gG,Chain as E,CosmosChains as lC,EVMChains as SC,FeeOption as iG,SwapKitError as dG,UTXOChains as FU}from"@swapkit/helpers";async function QQ(){let{match:y}=await import("ts-pattern"),{validateAptosAddress:n}=await Promise.resolve().then(() => (jn(),vn)),{validateEVMAddress:o}=await Promise.resolve().then(() => (b0(),X1)),{validateCardanoAddress:f}=await Promise.resolve().then(() => (m0(),h0)),{getCosmosAddressValidator:T}=await Promise.resolve().then(() => (zT(),BT)),{validateHyperCoreAddress:C}=await Promise.resolve().then(() => (zo(),Bo)),{validateSolanaAddress:H}=await Promise.resolve().then(() => (Ro(),Do)),{validateStarknetAddress:U}=await Promise.resolve().then(() => (xT(),ST)),{validateSuiAddress:_}=await Promise.resolve().then(() => (IT(),$T)),{validateTonAddress:A}=await Promise.resolve().then(() => (pT(),tT)),{getUTXOAddressValidator:Z}=await Promise.resolve().then(() => (ao(),ro)),{validateNearAddress:M}=await Promise.resolve().then(() => (WC(),XC)),{validateRadixAddress:W}=await Promise.resolve().then(() => (JC(),ZC)),{validateRippleAddress:G}=await Promise.resolve().then(() => (LC(),MC)),{validateTronAddress:X}=await Promise.resolve().then(() => (kC(),RC)),{validateStellarAddress:Q}=await Promise.resolve().then(() => (X0(),G0));return function({address:D,chain:L}){return y(L).with(...SC,()=>o(D)).with(...FU,(N)=>{return Z(N)(D)}).with(...lC,(N)=>{return T(N)(D)}).with(E.Aptos,()=>n(D)).with(E.Radix,()=>W(D)).with(E.HyperCore,()=>C(D)).with(E.Near,()=>M(D)).with(E.Ripple,()=>G(D)).with(E.Solana,()=>H(D)).with(E.Stellar,()=>Q(D)).with(E.Starknet,()=>U(D)).with(E.Sui,()=>_(D)).with(E.Ton,()=>A(D)).with(E.Tron,()=>X(D)).with(E.Cardano,()=>f(D)).otherwise(()=>!1)}}function ZQ(y){return async function(o){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...SC,async(T)=>{let C=await xU(T),H=await C.createTransaction(o),U="feeOptionKey"in o?o.feeOptionKey:iG.Fast;return C.estimateTransactionFee({...H,feeOption:U})}).with(E.Bitcoin,E.BitcoinCash,E.Dogecoin,E.Dash,E.Litecoin,E.Solana,E.Ripple,E.Tron,E.Near,E.Cardano,E.HyperCore,async(T)=>{return(await xU(T)).estimateTransactionFee(o)}).with(E.Aptos,async()=>{let{getAptosToolbox:T}=await Promise.resolve().then(() => (jn(),vn));return T().estimateTransactionFee(o)}).with(E.Starknet,async()=>{let{getStarknetToolbox:T}=await Promise.resolve().then(() => (xT(),ST));return(await T()).estimateTransactionFee(o)}).with(E.Stellar,async()=>{let{getStellarToolbox:T}=await Promise.resolve().then(() => (X0(),G0));return T().estimateTransactionFee()}).with(E.Sui,async()=>{let{getSuiToolbox:T}=await Promise.resolve().then(() => (IT(),$T));return T().estimateTransactionFee(o)}).with(E.Ton,async()=>{let{getTONToolbox:T}=await Promise.resolve().then(() => (pT(),tT));return T().estimateTransactionFee(o)}).with(...lC,async()=>{let{estimateTransactionFee:T}=await Promise.resolve().then(() => (zT(),BT));return T(o)}).otherwise(async()=>gG.from({chain:y}))}}async function xU(y,n){let{match:o}=await import("ts-pattern");return o(y).returnType().with(...SC,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (V0(),A1));return await f(y,n)}).with(...FU,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (ao(),ro));return f(y,n)}).with(...lC,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (zT(),BT));return f(y,n)}).with(E.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (jn(),vn));return f(n)}).with(E.HyperCore,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (zo(),Bo));return f(n)}).with(E.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (JC(),ZC));return f(n)}).with(E.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (LC(),MC));return f(n)}).with(E.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => (Ro(),Do));return f(n)}).with(E.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (X0(),G0));return f(n)}).with(E.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (xT(),ST));return f(n)}).with(E.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (IT(),$T));return f(n)}).with(E.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (kC(),RC));return f(n)}).with(E.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (WC(),XC));return f(n)}).with(E.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (m0(),h0));return f(n)}).with(E.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (pT(),tT));return f(n)}).otherwise(()=>{throw new dG("toolbox_not_supported",{chain:y})})}export{xU as getToolbox,ZQ as getFeeEstimator,QQ as getAddressValidator};
|