@swapkit/toolboxes 4.14.1 → 4.14.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/evm/index.cjs +1 -1
- package/dist/src/evm/index.js +1 -1
- package/dist/src/hypercore/index.cjs +1 -1
- package/dist/src/hypercore/index.js +1 -1
- package/dist/src/index.cjs +1 -1
- package/dist/src/index.js +1 -1
- package/dist/types/evm/toolbox/baseEVMToolbox.d.ts.map +1 -1
- package/dist/types/evm/toolbox/evm.d.ts.map +1 -1
- package/dist/types/evm/toolbox/op.d.ts.map +1 -1
- package/dist/types/hypercore/toolbox.d.ts.map +1 -1
- package/dist/types/hypercore/types.d.ts +2 -4
- package/dist/types/hypercore/types.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/src/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var B_=Object.defineProperty;var X_=(n)=>n;function L_(n,y){this[n]=X_.bind(null,y)}var nn=(n,y)=>{for(var t in y)B_(n,t,{get:y[t],enumerable:!0,configurable:!0,set:L_.bind(y,t)})};var F=(n,y)=>()=>(n&&(y=n(n=0)),y);var R=((n)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(y,t)=>(typeof require<"u"?require:y)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});import{AssetValue as ho,Chain as un,derivationPathToString as Q_,getChainConfig as ef,getRPCUrlSync as X0,NetworkDerivationPath as M_,SwapKitError as yn}from"@swapkit/helpers";import{match as L0,P as nt}from"ts-pattern";function Lo(n){if(!n||typeof n!=="string"||!n.startsWith("0x"))return!1;let y=n.slice(2);if(y.length===0||y.length>64)return!1;return Z_.test(y)}function Q0({derivationPath:n,provider:y,...t}={}){let o,f=Q_(n||M_[un.Aptos],{allHardened:!0});async function T(){if(o)return o;return o=await L0(t).with({phrase:nt.string},async({phrase:l})=>{let{Ed25519Account:M}=await import("@aptos-labs/ts-sdk");return M.fromDerivationPath({mnemonic:l,path:f})}).with({signer:nt.any},({signer:l})=>l).otherwise(()=>{return}),o}async function C(){let{Aptos:l,AptosConfig:M}=await import("@aptos-labs/ts-sdk"),N=new M({fullnode:y||X0(un.Aptos)});return new l(N)}async function H(){return(await T())?.accountAddress.toString()||""}async function _(l){let M=l||await H();if(!M)throw new yn("toolbox_aptos_address_required");let{baseDecimal:N,chain:Z}=ef(un.Aptos);try{let z=await C(),X=await z.getAccountAPTAmount({accountAddress:M}),U=[ho.from({chain:Z,fromBaseDecimal:N,value:X.toString()})],q=await z.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:M}}}});for(let L of q){if(L.asset_type===to.COIN_TYPE||Number(L.amount)<=0)continue;let Y=L.asset_type;if(Y){let J=("metadata"in L&&typeof L.metadata==="object"&&L.metadata!==null?L.metadata:void 0)?.decimals??N;U.push(ho.from({asset:`${un.Aptos}.APT-${Y}`,fromBaseDecimal:J,value:String(L.amount)}))}}return U}catch{return[ho.from({chain:Z})]}}async function A(l){if(!l){let{baseDecimal:q}=ef(un.Aptos),L=y||X0(un.Aptos),Y=await fetch(`${L}/estimate_gas_price`),{gas_estimate:D}=await Y.json();return ho.from({chain:un.Aptos,fromBaseDecimal:q,value:String(D)})}let M=await T();if(!M)throw new yn("toolbox_aptos_no_signer");let N=await G(l),Z=await C(),[z]=await Z.transaction.simulate.simple({signerPublicKey:M.publicKey,transaction:N});if(!z)throw new yn("toolbox_aptos_transaction_creation_error");let X=BigInt(z.gas_used)*BigInt(z.gas_unit_price),{baseDecimal:U}=ef(un.Aptos);return ho.from({chain:un.Aptos,fromBaseDecimal:U,value:X.toString()})}async function G({recipient:l,assetValue:M,maxGasAmount:N,sender:Z}){if(!Lo(l))throw new yn("core_transaction_invalid_recipient_address");let z=Z||await H();if(!z)throw new yn("toolbox_aptos_no_sender");let{AccountAddress:X}=await import("@aptos-labs/ts-sdk"),U=await C(),q=X.from(z);try{let L=M.isGasAsset?to.TRANSFER:to.FUNGIBLE_STORE_TRANSFER,Y=L0({address:M?.address,isGasAsset:M.isGasAsset}).with({isGasAsset:!0},()=>[X.from(l),M.getBaseValue("bigint")]).with({address:nt.string},({address:D})=>[X.from(D),X.from(l),M.getBaseValue("bigint")]).otherwise(()=>null);if(!Y)throw new yn("toolbox_aptos_missing_asset_type");return U.transaction.build.simple({data:{function:L,functionArguments:Y,typeArguments:M.isGasAsset?[]:[to.FUNGIBLE_ASSET_METADATA]},options:N?{maxGasAmount:N}:void 0,sender:q})}catch(L){if(L instanceof yn)throw L;throw new yn("toolbox_aptos_transaction_creation_error",L)}}async function Q(l){let M=await T();if(!M)throw new yn("toolbox_aptos_no_signer");return(await C()).transaction.sign({signer:M,transaction:l})}async function w({assetValue:l,maxGasAmount:M,recipient:N}){let Z=await T();if(!Z)throw new yn("toolbox_aptos_no_signer");if(!Lo(N))throw new yn("core_transaction_invalid_recipient_address");try{let z=Z.accountAddress.toString(),X=await G({assetValue:l,maxGasAmount:M,recipient:N,sender:z});return(await(await C()).signAndSubmitTransaction({signer:Z,transaction:X})).hash}catch(z){if(z instanceof yn)throw z;throw new yn("toolbox_aptos_transaction_creation_error",z)}}async function B({senderAuthenticator:l,transaction:M}){try{return(await(await C()).transaction.submit.simple({senderAuthenticator:l,transaction:M})).hash}catch(N){throw new yn("toolbox_aptos_broadcast_error",N)}}async function W(l){let M=await Q(l);return B({senderAuthenticator:M,transaction:l})}return{broadcastTransaction:B,createTransaction:G,estimateTransactionFee:A,getAddress:H,getBalance:_,signAndBroadcastTransaction:W,signTransaction:Q,transfer:w,validateAddress:Lo}}function M0({provider:n}){return async function({assetValue:t,recipient:o}){if(!Lo(o))throw new yn("core_transaction_invalid_recipient_address");let{AccountAddress:f}=await import("@aptos-labs/ts-sdk");if(t.isGasAsset)return(await n.signAndSubmitTransaction({arguments:[f.from(o).toString(),t.getBaseValue("string")],function:to.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let T=t.address;if(!T)throw new yn("toolbox_aptos_missing_asset_type");return(await n.signAndSubmitTransaction({arguments:[T,f.from(o).toString(),t.getBaseValue("string")],function:to.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[to.FUNGIBLE_ASSET_METADATA]})).hash}}var to,Z_;var Z0=F(()=>{to={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},Z_=/^[0-9a-fA-F]+$/});var xy={};nn(xy,{validateAptosAddress:()=>Lo,getAptosToolbox:()=>Q0,createAptosExtensionTransfer:()=>M0});var Ry=F(()=>{Z0()});import{AssetValue as J0,getChainConfig as J_}from"@swapkit/helpers";import{SwapKitApi as Y_}from"@swapkit/helpers/api";function Y0(){function n(){let y=Date.now(),t=ot||y;return ot=t,y>ot?y:t+1}return N_+n().toString(36)}function wn(n){return async function(t,o=!0){let f=await Y_.getChainBalance({address:t,chain:n,scamFilter:o}),{baseDecimal:T}=J_(n),C=f.map(({identifier:_,value:A,decimal:G})=>{return new J0({decimal:G||T,identifier:_,value:A})});if(!C.some((_)=>_.isGasAsset))return[J0.from({chain:n}),...C];return C}}var N_,ot=0;var kn=F(()=>{N_=typeof process<"u"&&process.pid?process.pid.toString(36):""});function mo(n){return{getBalance:wn(n)}}function z_(n){return n}var Sy=F(()=>{kn()});import{Chain as h,getChainConfig as Tt,getRPCUrl as D_,SwapKitError as Fy}from"@swapkit/helpers";import{getAddress as z0,Interface as O_,JsonRpcProvider as x_}from"ethers";import{match as D0}from"ts-pattern";function O0(n){return new x_(n)}async function Ct(n,y){return O0(y||await D_(n))}function ro(n){return n>0n?`0x${n.toString(16)}`:"0x0"}function Ht(n){let{explorerUrl:y,chainIdHex:t,rpcUrls:o}=Tt(n);return function(){return n!==h.Ethereum?{...R_({chain:n}),blockExplorerUrls:[y],chainId:t,rpcUrls:o}:void 0}}function _t(n){return![h.Adi,h.Arbitrum,h.BinanceSmartChain].includes(n)}function R_({chain:n}){let{name:y,nativeCurrency:t,baseDecimal:o}=Tt(n);return D0(n).with(h.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:o,name:"Avalanche",symbol:n}})).with(h.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:o,name:"Berachain",symbol:"BERA"}})).with(h.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:o,name:"OKB",symbol:"OKB"}})).with(h.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:o,name:"Binance Coin",symbol:"BNB"}})).with(h.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:o,name:"xDAI",symbol:"XDAI"}})).with(h.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:o,name:"Polygon",symbol:h.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:o,name:t,symbol:t}}))}async function At(n,y){if(!("authorize"in n))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let t={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await n.authorize(t)}function x0(n,y){let t=y!==void 0?`index ${y}: `:"",o=(f,T)=>{throw new Fy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:f,message:`${t}${T}`}})};D0(n).when(({chainId:f})=>typeof f!=="bigint",()=>o("chainId","chainId must be a bigint")).when(({address:f})=>!S_(f),()=>o("address","address must be a valid checksummed address")).when(({nonce:f})=>typeof f!=="bigint"||f<0n,()=>o("nonce","nonce must be a non-negative bigint")).when(({signature:f})=>!f,()=>o("signature","signature is required")).when(({signature:f})=>typeof f?.yParity!=="number"||![0,1].includes(f.yParity),()=>o("signature.yParity","yParity must be 0 or 1")).when(({signature:f})=>!N0(f?.r),()=>o("signature.r","r must be a 32-byte hex string")).when(({signature:f})=>!N0(f?.s),()=>o("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function R0(n){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>n[y]!=null).map(({key:y,type:t})=>({name:y,type:t}))}function yt(n){return n.charAt(0).toUpperCase()+n.slice(1)}function ft(n,y){if(n.isTuple()&&n.components){let t=yt(n.name);return y[t]=n.components.map((o)=>({name:o.name,type:ft(o,y)})),t}if(n.isArray()){let t=n.arrayChildren;if(t?.isTuple()&&t.components){let o=yt(n.name.replace(/s$/,""));return y[o]=t.components.map((f)=>({name:f.name,type:ft(f,y)})),`${o}[]`}return`${t?.type??"bytes"}[]`}return n.type}function tt(n,y){if(typeof n==="bigint")return n;if(y?.isTuple()&&typeof n?.toObject==="function"){let t=n.toObject(),o={};for(let[f,T]of(y.components??[]).entries())o[T.name]=tt(t[T.name]??n[f],T);return o}if(Array.isArray(n)){let t=y?.arrayChildren;return n.map((o)=>tt(o,t??void 0))}return n}function F_({chain:n,abi:y,data:t,to:o}){let T=new O_(y).parseTransaction({data:t});if(!T)throw new Fy({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let C={},H=yt(T.name);C[H]=T.fragment.inputs.map((w)=>({name:w.name,type:ft(w,C)}));let _={};for(let[w,B]of T.fragment.inputs.entries())_[B.name]=tt(T.args[w],B);let{chainId:A}=Tt(n),G={chainId:Number(A),verifyingContract:z0(o)},Q=R0(G);return{domain:G,message:_,primaryType:H,types:{EIP712Domain:Q,...C}}}function Ut(n,y){if(!Array.isArray(n)||n.length===0)throw new Fy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[t,o]of n.entries())if(x0(o,t),y!==void 0&&o.chainId!==y)throw new Fy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${t}: authorization chainId (${o.chainId}) does not match transaction chainId (${y})`}})}var N0=(n)=>typeof n==="string"&&/^0x[a-fA-F0-9]{64}$/.test(n),S_=(n)=>{try{return typeof n==="string"&&!!z0(n)}catch{return!1}};var go=()=>{};var S0;var F0=F(()=>{S0=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as u_,applyFeeMultiplierToBigInt as Xn,Chain as Zn,EVMChains as k_,FeeOption as b,isGasAsset as p_,SwapKitError as c,SwapKitNumber as uy}from"@swapkit/helpers";import{erc20ABI as ao}from"@swapkit/helpers/contracts";import{BrowserProvider as I_,Contract as u0,getAddress as ky,Interface as k0}from"ethers";import{match as p0}from"ts-pattern";function Qo({chain:n=Zn.Ethereum,provider:y,signer:t,isEIP1559Compatible:o=!0}){return{approve:b_({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),approvedAmount:$0({chain:n,provider:y}),broadcastTransaction:y.broadcastTransaction,call:Wt({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),createApprovalTx:c_({chain:n,provider:y,signer:t}),createContract:qt({chain:n,provider:y}),createContractTxObject:To({chain:n,provider:y}),createTransaction:wt({chain:n,provider:y,signer:t}),createTransferTx:wt({chain:n,provider:y,signer:t}),EIP1193SendTransaction:Zo(y),estimateCall:E0({provider:y,signer:t}),estimateGasLimit:K_({chain:n,provider:y,signer:t}),estimateGasPrices:Co({chain:n,isEIP1559Compatible:o,provider:y}),estimateTransactionFee:i_({chain:n,isEIP1559Compatible:o,provider:y}),getAddress:()=>{return t?t.getAddress():void 0},getBalance:mo(n).getBalance,getNetworkParams:Ht(n),isApproved:v_({chain:n,provider:y}),sendTransaction:v0({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),signAuthorization:j_({signer:t}),signMessage:t?(f)=>t.signMessage(f):void 0,signTypedData:t?({domain:f,types:T,value:C})=>t.signTypedData(f,T,C):void 0,transfer:V_({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),validateAddress:eo}}function eo(n){try{return ky(n),!0}catch{return!1}}function Mo(n){return n instanceof I_}function ny(n,y,t){return new u0(n,k0.from(y),t)}function qt({provider:n}){return function(t,o){return new u0(t,k0.from(o),n)}}function Gt({abi:n,funcName:y}){let t=n.find((o)=>o.name===y);if(!t)throw new c("toolbox_evm_no_abi_fragment",{funcName:y});return t.stateMutability&&P_.includes(t.stateMutability)}function I0(n){return ky(n)}function Zo(n){return function({value:t,...o}){if(!Mo(n))throw new c("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:f,gasPrice:T,maxFeePerGas:C,maxPriorityFeePerGas:H,..._}=o;return n.send("eth_sendTransaction",[{..._,value:ro(BigInt(t||0))}])}}function P0(n,y){let t=Jo(n,y);if(t)return ky(t.toLowerCase());throw new c("toolbox_evm_invalid_gas_asset_address")}function Jo({chain:n,symbol:y,ticker:t},o){try{let f=n===Zn.BinanceSmartChain&&y==="BNB"&&t==="BNB",T=n===Zn.Hyperevm&&y==="HYPE"&&t==="HYPE",C=n===o&&y===o&&t===o,H=E_.includes(n)&&y==="ETH"&&t==="ETH";if(C||f||T||H)return lt[o];return ky(y.slice(t.length+1).replace(/^0X/,""))}catch{return null}}function To({provider:n}){return async({contractAddress:y,abi:t,funcName:o,funcParams:f=[],txOverrides:T})=>ny(y,t,n).getFunction(o).populateTransaction(...f.concat(T).filter((C)=>typeof C<"u"))}function Co({chain:n,provider:y,isEIP1559Compatible:t=!0}){return p0(n).with(Zn.Gnosis,()=>{return async function(){try{let{gasPrice:f,maxPriorityFeePerGas:T}=await y.getFeeData();if(!f||T===null)throw new c("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:Xn(f,b.Average),maxPriorityFeePerGas:Xn(T,b.Average)},[b.Fast]:{maxFeePerGas:Xn(f,b.Fast),maxPriorityFeePerGas:Xn(T,b.Fast)},[b.Fastest]:{maxFeePerGas:Xn(f,b.Fastest),maxPriorityFeePerGas:Xn(T,b.Fastest)}}}catch(f){throw new c("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).with(Zn.Arbitrum,()=>{return async function(){try{let{gasPrice:f}=await y.getFeeData();if(!f)throw new c("toolbox_evm_no_fee_data");return{[b.Average]:{gasPrice:f},[b.Fast]:{gasPrice:f},[b.Fastest]:{gasPrice:f}}}catch(f){throw new c("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:f,maxPriorityFeePerGas:T,gasPrice:C}=await y.getFeeData();if(t){if(f===null||T===null)throw new c("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:f,maxPriorityFeePerGas:T},[b.Fast]:{maxFeePerGas:Xn(f,b.Fast),maxPriorityFeePerGas:Xn(T,b.Fast)},[b.Fastest]:{maxFeePerGas:Xn(f,b.Fastest),maxPriorityFeePerGas:Xn(T,b.Fastest)}}}if(!C)throw new c("toolbox_evm_no_gas_price");return{[b.Average]:{gasPrice:C},[b.Fast]:{gasPrice:Xn(C,b.Fast)},[b.Fastest]:{gasPrice:Xn(C,b.Fastest)}}}catch(f){throw new c("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}})}function Wt({provider:n,isEIP1559Compatible:y,signer:t,chain:o}){return async function({callProvider:T,contractAddress:C,abi:H,funcName:_,funcParams:A=[],txOverrides:G={},feeOption:Q=b.Fast}){let w=T||n;if(!C)throw new c("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let B=Gt({abi:H,funcName:_});if(B&&Mo(w)&&t){let M=To({chain:o,provider:w}),N=G?.from||await t?.getAddress(),Z=await M({abi:H,contractAddress:C,funcName:_,funcParams:A,txOverrides:{...G,from:N}});return Zo(w)(Z)}let W=ny(C,H,w);if(B){if(!t)throw new c("toolbox_evm_no_signer");let M=G?.from||await t.getAddress();if(!M)throw new c("toolbox_evm_no_signer_address");let N=W.connect(t),Z=Co({chain:o,isEIP1559Compatible:y,provider:n}),{maxFeePerGas:z,maxPriorityFeePerGas:X,gasPrice:U}=(await Z())[Q],q=await W.getFunction(_).estimateGas(...A,G),L=await N[_](...A,{...G,gasLimit:q,gasPrice:U,maxFeePerGas:z,maxPriorityFeePerGas:X,nonce:G?.nonce||await w.getTransactionCount(M)});return typeof L?.hash==="string"?L?.hash:L}let l=await W[_]?.(...A);return typeof l?.hash==="string"?l?.hash:l}}function $0({provider:n,chain:y}){return function({assetAddress:o,spenderAddress:f,from:T}){return Wt({chain:y,isEIP1559Compatible:!0,provider:n})({abi:ao,contractAddress:o,funcName:"allowance",funcParams:[T,f]})}}function v_({provider:n,chain:y}){return async function({assetAddress:o,spenderAddress:f,from:T,amount:C=so}){let H=await $0({chain:y,provider:n})({assetAddress:o,from:T,spenderAddress:f});return uy.fromBigInt(H).gte(uy.fromBigInt(BigInt(C)))}}function b_({signer:n,isEIP1559Compatible:y=!0,provider:t,chain:o}){return async function({assetAddress:T,spenderAddress:C,feeOptionKey:H=b.Fast,amount:_,gasLimitFallback:A,from:G,nonce:Q}){let w=[C,BigInt(_||so)],B=await n?.getAddress()||G,W={abi:ao,contractAddress:T,funcName:"approve",funcParams:w,signer:n,txOverrides:{from:B}};if(Mo(t)){let M=To({chain:o,provider:t}),N=Zo(t),Z=await M(W);return N(Z)}return Wt({chain:o,isEIP1559Compatible:y,provider:t,signer:n})({...W,feeOption:H,funcParams:w,txOverrides:{from:B,gasLimit:A?BigInt(A.toString()):void 0,nonce:Q}})}}function V_({signer:n,isEIP1559Compatible:y=!0,provider:t}){return async function({assetValue:f,memo:T,recipient:C,feeOptionKey:H=b.Fast,sender:_,...A}){let{hexlify:G,toUtf8Bytes:Q}=await import("ethers"),w=f.getBaseValue("bigint"),B=f.chain,W=_||await n?.getAddress(),l=v0({chain:B,isEIP1559Compatible:y,provider:t,signer:n});if(!W)throw new c("toolbox_evm_no_from_address");if(f.isGasAsset){let U={...A,data:G(Q(T||"")),feeOptionKey:H,from:W,to:C,value:w};return l(U)}if(!Jo(f,B))throw new c("toolbox_evm_no_contract_address");let{maxFeePerGas:N,maxPriorityFeePerGas:Z,gasPrice:z}=(await Co({chain:B,isEIP1559Compatible:y,provider:t})())[H],X=await wt({chain:B,provider:t,signer:n})({assetValue:f,data:G(Q(T||"")),gasPrice:z,maxFeePerGas:N,maxPriorityFeePerGas:Z,memo:T,recipient:C,sender:W});return l(X)}}function E0({provider:n,signer:y}){return function({contractAddress:o,abi:f,funcName:T,funcParams:C=[],txOverrides:H}){if(!o)throw new c("toolbox_evm_no_contract_address");let _=ny(o,f,n);return y?_.connect(y).getFunction(T).estimateGas(...C,H):_.getFunction(T).estimateGas(...C,H)}}function K_({provider:n,signer:y}){return async function({assetValue:o,recipient:f,memo:T,data:C,sender:H,funcName:_,funcParams:A,txOverrides:G}){let Q=o.bigIntValue,w=o.isGasAsset?null:Jo(o,o.chain);if(w&&_)return E0({provider:n,signer:y})({abi:ao,contractAddress:w,funcName:_,funcParams:A,txOverrides:G});let{hexlify:B,toUtf8Bytes:W}=await import("ethers");return n.estimateGas({data:C?C:T?B(W(T)):void 0,from:H,to:f,value:Q})}}function j_({signer:n}){if(!n)return;return(y)=>At(n,y)}function v0({provider:n,signer:y,isEIP1559Compatible:t=!0,chain:o}){return async function({feeOptionKey:T=b.Fast,...C}){let{from:H,to:_,data:A,value:G,...Q}=C;if(!y)throw new c("toolbox_evm_no_signer");if(!_)throw new c("toolbox_evm_no_to_address");let w={...Q,data:A||"0x",from:H,to:_,value:BigInt(G||0)};if(Mo(n))return Zo(n)(w);let B=H||await y.getAddress(),W=C.nonce||await n.getTransactionCount(B),l=(await n.getNetwork()).chainId,M=Xt(w,t);if(M==="eip7702")Ut(w.authorizations||[],l);let N=p0(M).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),Z={...w,chainId:l,nonce:W,type:N,...M==="eip7702"&&{authorizationList:w.authorizations}},z=Co({chain:o,isEIP1559Compatible:t,provider:n}),U=M!=="legacy"&&!(w.maxFeePerGas&&w.maxPriorityFeePerGas)||!w.gasPrice?Object.entries((await z())[T]).reduce((L,[Y,D])=>({...L,[Y]:ro(BigInt(D))}),{}):{},q;try{q=ro(w.gasLimit||await n.estimateGas(Z)*11n/10n)}catch(L){throw new c("toolbox_evm_error_estimating_gas_limit",{error:L})}try{let L={...Z,gasLimit:q,...U};try{return(await y.sendTransaction(L)).hash}catch{let Y=await y.signTransaction({...L,from:B});return(await n.broadcastTransaction(Y)).hash}}catch(L){throw new c("toolbox_evm_error_sending_transaction",{error:L})}}}function wt({provider:n,signer:y}){return async function({assetValue:o,memo:f,recipient:T,data:C,sender:H,maxFeePerGas:_,maxPriorityFeePerGas:A,gasPrice:G,...Q}){let w=o.getBaseValue("bigint"),B=o.chain,W=H||await y?.getAddress();if(!W)throw new c("toolbox_evm_no_from_address");if(p_(o)){let{hexlify:N,toUtf8Bytes:Z}=await import("ethers");return{...Q,data:C||N(Z(f||"")),from:W,to:T,value:w}}let l=Jo(o,B);if(!l)throw new c("toolbox_evm_no_contract_address");return To({chain:o.chain,provider:n})({abi:ao,contractAddress:l,funcName:"transfer",funcParams:[T,w],txOverrides:{from:W,gasPrice:G,maxFeePerGas:_,maxPriorityFeePerGas:A}})}}function c_({provider:n,signer:y,chain:t}){return async function({assetAddress:f,spenderAddress:T,amount:C,from:H}){let _=await y?.getAddress()||H,A=To({chain:t,provider:n}),G=["bigint","number"].includes(typeof C)?C:C||so;return await A({abi:ao,contractAddress:f,funcName:"approve",funcParams:[T,BigInt(G)],txOverrides:{from:_}})}}function i_({provider:n,isEIP1559Compatible:y=!0,chain:t}){return async function({feeOption:f=b.Fast,...T}){let H=await Co({chain:t,isEIP1559Compatible:y,provider:n})(),_=await n.estimateGas(T),A=u_.from({chain:t}),{gasPrice:G,maxFeePerGas:Q,maxPriorityFeePerGas:w}=H[f];if(!y&&G)return A.set(uy.fromBigInt(G*_,A.decimal));if(Q&&w){let B=(Q+w)*_;return A.set(uy.fromBigInt(B,A.decimal))}throw new c("toolbox_evm_no_gas_price")}}var so,P_,$_,lt,E_,py=(n)=>n.type===4||(n.authorizations?.length??0)>0,Bt=(n)=>!py(n)&&(n.type===2||!!n.maxFeePerGas||!!n.maxPriorityFeePerGas),Xt=(n,y=!0)=>{if(py(n))return"eip7702";if(Bt(n)||y)return"eip1559";return"legacy"};var Iy=F(()=>{Sy();go();so=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");P_=["payable","nonpayable"];$_=k_.reduce((n,y)=>{return n[y]="0x0000000000000000000000000000000000000000",n},{}),lt={...$_,[Zn.Optimism]:"0x4200000000000000000000000000000000000042",[Zn.Polygon]:"0x0000000000000000000000000000000000001010"},E_=[Zn.Arbitrum,Zn.Aurora,Zn.Base,Zn.Optimism]});import{Chain as g,FeeOption as h_}from"@swapkit/helpers";import{HDNodeWallet as m_}from"ethers";import{match as r_,P as b0}from"ts-pattern";function Py(n){let y=d(g.Ethereum)(n);async function t(o,f="0x5ba1e12693dc8f9c48aad8770482f4739beed696",T="aggregate",C=h_.Fast){let H=await y.createContractTxObject({abi:S0,contractAddress:f,funcName:T,funcParams:[o]});return y.sendTransaction({...H,feeOptionKey:C})}return{...y,multicall:t}}function d(n){return function({provider:t,...o}){let f=_t(n),T=r_(o).with({phrase:b0.string},({phrase:H})=>m_.fromPhrase(H).connect(t)).with({signer:b0.any},({signer:H})=>H).otherwise(()=>{return});return Qo({chain:n,isEIP1559Compatible:f,provider:t,signer:T})}}var $y,Ey,vy,by,Vy,Ky,jy,V0,cy,iy,hy,my,ry,gy,oy,dy,ay,sy,ey;var Lt=F(()=>{F0();go();Iy();$y=d(g.Adi),Ey=d(g.Arbitrum),vy=d(g.Aurora),by=d(g.Avalanche),Vy=d(g.Base),Ky=d(g.Berachain),jy=d(g.BinanceSmartChain),V0=d(g.Botanix),cy=d(g.Core),iy=d(g.Corn),hy=d(g.Cronos),my=d(g.Gnosis),ry=d(g.Hyperevm),gy=d(g.Polygon),oy=d(g.Sonic),dy=d(g.Unichain),ay=d(g.XLayer),sy=d(g.Monad),ey=d(g.MegaETH)});var K0;var j0=F(()=>{K0=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as Yo,Chain as d_,FeeOption as pn,SwapKitError as Qt}from"@swapkit/helpers";import{Contract as a_,HDNodeWallet as s_}from"ethers";import{match as e_,P as c0}from"ts-pattern";function Mt(n){return new a_(nA,K0,n)}function i0(n){return async function(){let t=Mt(n);if(t&&"l1BaseFee"in t)return await t?.l1BaseFee();return}}function h0(n){return async function({from:t,to:o,nonce:f,...T}){let{Transaction:C}=await import("ethers");if(!o)throw new Qt("toolbox_evm_invalid_transaction",{error:"Missing to address"});return C.from({...T,authorizationList:T.authorizationList,nonce:f?f:t?await n.getTransactionCount(t):0,to:o}).serialized}}function m0(n){return async function(t){let o=Mt(n),f=await h0(n)(t);if(o&&"getL1Fee"in o)return o.getL1Fee(f)}}function r0(n){return async function(t){let f=(await n.getFeeData()).gasPrice??0n,T=await n.estimateGas(t);return f*T}}function oA(n){return async function(t){let o=await m0(n)(t)??0n,f=await r0(n)(t);return o+f}}function yA(n){return async function(t){let o=Mt(n),f=await h0(n)(t);if(o&&"getL1GasUsed"in o)return o.getL1GasUsed(f)}}function fA(n){return async function(){try{let{maxFeePerGas:t,maxPriorityFeePerGas:o,gasPrice:f}=await n.getFeeData(),T=await i0(n)(),C=f;if(!(t&&o))throw new Qt("toolbox_evm_no_fee_data");return{[pn.Average]:{gasPrice:C,l1GasPrice:T,maxFeePerGas:t,maxPriorityFeePerGas:o},[pn.Fast]:{gasPrice:Yo(C,pn.Fast),l1GasPrice:Yo(T||0n,pn.Fast),maxFeePerGas:t,maxPriorityFeePerGas:Yo(o,pn.Fast)},[pn.Fastest]:{gasPrice:Yo(C,pn.Fastest),l1GasPrice:Yo(T||0n,pn.Fastest),maxFeePerGas:t,maxPriorityFeePerGas:Yo(o,pn.Fastest)}}}catch(t){throw new Qt("toolbox_evm_gas_estimation_error",{error:t.msg??t.toString()})}}}function nf({provider:n,...y}){let t=e_(y).with({phrase:c0.string},({phrase:T})=>s_.fromPhrase(T).connect(n)).with({signer:c0.any},({signer:T})=>T).otherwise(()=>{return}),o=Qo({provider:n,signer:t}),f=i0(n);return{...o,estimateGasPrices:fA(n),estimateL1Gas:yA(n),estimateL1GasCost:m0(n),estimateL2GasCost:r0(n),estimateTotalGasCost:oA(n),getBalance:mo(d_.Optimism).getBalance,getL1GasPrice:f}}var nA="0x420000000000000000000000000000000000000f";var Zt=F(()=>{Sy();j0();Iy()});var d0={};nn(d0,{validateEVMAddress:()=>eo,toChecksumAddress:()=>I0,isStateChangingCall:()=>Gt,isEIP7702Transaction:()=>py,isEIP1559Transaction:()=>Bt,isBrowserProvider:()=>Mo,getTokenAddress:()=>Jo,getEvmToolboxAsync:()=>g0,getEvmToolbox:()=>Jt,getEstimateGasPrices:()=>Co,getEVMTxType:()=>Xt,getEIP1193SendTransaction:()=>Zo,getCreateContractTxObject:()=>To,getCreateContract:()=>qt,getChecksumAddressFromAsset:()=>P0,createContract:()=>ny,XLayerToolbox:()=>ay,UNIToolbox:()=>dy,SONICToolbox:()=>oy,OPToolbox:()=>nf,MONADToolbox:()=>sy,MEGAETHToolbox:()=>ey,MAX_APPROVAL:()=>so,MATICToolbox:()=>gy,HYPEREVMToolbox:()=>ry,GNOToolbox:()=>my,ETHToolbox:()=>Py,ContractAddress:()=>lt,CROToolbox:()=>hy,CORNToolbox:()=>iy,COREToolbox:()=>cy,BotanixToolbox:()=>V0,BaseEVMToolbox:()=>Qo,BSCToolbox:()=>jy,BERAToolbox:()=>Ky,BASEToolbox:()=>Vy,AVAXToolbox:()=>by,AURORAToolbox:()=>vy,ARBToolbox:()=>Ey,ADIToolbox:()=>$y});import{Chain as r}from"@swapkit/helpers";import{match as tA}from"ts-pattern";function Jt(n,y){return tA(n).with(r.Adi,()=>$y(y)).with(r.Arbitrum,()=>Ey(y)).with(r.Aurora,()=>vy(y)).with(r.Avalanche,()=>by(y)).with(r.Base,()=>Vy(y)).with(r.Berachain,()=>Ky(y)).with(r.BinanceSmartChain,()=>jy(y)).with(r.Botanix,()=>oy(y)).with(r.Core,()=>cy(y)).with(r.Corn,()=>iy(y)).with(r.Cronos,()=>hy(y)).with(r.Ethereum,()=>Py(y)).with(r.Gnosis,()=>my(y)).with(r.Hyperevm,()=>ry(y)).with(r.Optimism,()=>nf(y)).with(r.Polygon,()=>gy(y)).with(r.Sonic,()=>oy(y)).with(r.Unichain,()=>dy(y)).with(r.XLayer,()=>ay(y)).with(r.Monad,()=>sy(y)).with(r.MegaETH,()=>ey(y)).exhaustive()}async function g0(n,y){let t={...y,provider:y?.provider||await Ct(n)};return Jt(n,t)}var Yt=F(()=>{go();Lt();Zt();Iy();Lt();Zt()});var a0;var s0=F(()=>{((t)=>{t.Test="goerli";t.Main="homestead"})(a0||={})});var e0={};nn(e0,{validateEVMAddress:()=>eo,validateAuthorizations:()=>Ut,validateAuthorization:()=>x0,toHexString:()=>ro,toChecksumAddress:()=>I0,signAuthorization:()=>At,parseEIP712FromEVMTx:()=>F_,isStateChangingCall:()=>Gt,isEIP7702Transaction:()=>py,isEIP1559Transaction:()=>Bt,isBrowserProvider:()=>Mo,getTokenAddress:()=>Jo,getProviderSync:()=>O0,getProvider:()=>Ct,getNetworkParams:()=>Ht,getIsEIP1559Compatible:()=>_t,getEvmToolboxAsync:()=>g0,getEvmToolbox:()=>Jt,getEvmApi:()=>mo,getEstimateGasPrices:()=>Co,getEVMTxType:()=>Xt,getEIP1193SendTransaction:()=>Zo,getCreateContractTxObject:()=>To,getCreateContract:()=>qt,getChecksumAddressFromAsset:()=>P0,createCustomEvmApi:()=>z_,createContract:()=>ny,buildEIP712DomainType:()=>R0,XLayerToolbox:()=>ay,UNIToolbox:()=>dy,SONICToolbox:()=>oy,OPToolbox:()=>nf,MONADToolbox:()=>sy,MEGAETHToolbox:()=>ey,MAX_APPROVAL:()=>so,MATICToolbox:()=>gy,HYPEREVMToolbox:()=>ry,GNOToolbox:()=>my,EthNetwork:()=>a0,ETHToolbox:()=>Py,ContractAddress:()=>lt,CROToolbox:()=>hy,CORNToolbox:()=>iy,COREToolbox:()=>cy,BotanixToolbox:()=>V0,BaseEVMToolbox:()=>Qo,BSCToolbox:()=>jy,BERAToolbox:()=>Ky,BASEToolbox:()=>Vy,AVAXToolbox:()=>by,AURORAToolbox:()=>vy,ARBToolbox:()=>Ey,ADIToolbox:()=>$y});var Nt=F(()=>{Sy();go();Yt();s0()});import{bech32 as TA}from"@scure/base";import{mnemonicToSeed as CA}from"@scure/bip39";import{Bip32PrivateKey as HA}from"@stricahq/bip32ed25519";import{Transaction as _A,types as Ot,address as AA,crypto as zt,utils as nC}from"@stricahq/typhonjs";import{AssetValue as No,Chain as Ho,getChainConfig as UA,SwapKitError as yy}from"@swapkit/helpers";import ln from"bignumber.js";async function xt(n,y){let t=await fetch(`${tC}${n}`,{...y,headers:{project_id:fC,...y?.headers}});if(!t.ok)throw Error(`Blockfrost API error: ${t.status} ${t.statusText}`);return t.json()}async function TC(n){try{return await xt(`/addresses/${n}/utxos`)}catch{return[]}}async function qA(){return(await xt("/blocks/latest")).slot}async function GA(){let n=await xt("/epochs/latest/parameters"),y={PlutusScriptV1:n.cost_models.PlutusV1?Object.values(n.cost_models.PlutusV1):[],PlutusScriptV2:n.cost_models.PlutusV2?Object.values(n.cost_models.PlutusV2):[],PlutusScriptV3:n.cost_models.PlutusV3?Object.values(n.cost_models.PlutusV3):[]};return{collateralPercent:new ln(n.collateral_percent),languageView:y,lovelacePerUtxoWord:new ln(0),maxValueSize:Number.parseInt(n.max_val_size,10),minFeeA:new ln(n.min_fee_a),minFeeB:new ln(n.min_fee_b),minFeeRefScriptCostPerByte:new ln(15),priceMem:new ln(n.price_mem),priceSteps:new ln(n.price_step),stakeKeyDeposit:new ln(2000000),utxoCostPerByte:new ln(n.coins_per_utxo_size)}}async function yC(n){let y=await fetch(`${tC}/tx/submit`,{body:Buffer.from(n,"hex"),headers:{"Content-Type":"application/cbor",project_id:fC},method:"POST"});if(!y.ok){let t=await y.text();throw Error(`Transaction submission failed: ${t}`)}return y.json()}function lA(n,y){return n.map((t)=>{let o=t.amount.find((C)=>C.unit==="lovelace"),f=o?new ln(o.quantity):new ln(0),T=t.amount.filter((C)=>C.unit!=="lovelace").map((C)=>({amount:new ln(C.quantity),assetName:C.unit.slice(56),policyId:C.unit.slice(0,56)}));return{address:y,amount:f,index:t.output_index,tokens:T,txId:t.tx_hash}})}async function WA(n){try{let y=await TC(n),t=0n,o=new Map;for(let C of y){if(!C.amount||!Array.isArray(C.amount))continue;for(let H of C.amount){let{unit:_,quantity:A}=H;if(_==="lovelace")t+=BigInt(A);else{let G=o.get(_)||0n;o.set(_,G+BigInt(A))}}}let f=[],{baseDecimal:T}=UA(Ho.Cardano);if(t>0n)f.push(No.from({chain:Ho.Cardano,fromBaseDecimal:T,value:t.toString()}));for(let[C,H]of o)f.push(No.from({asset:`${Ho.Cardano}.${C}`,value:H.toString()}));if(f.length===0)return[No.from({chain:Ho.Cardano})];return f}catch(y){let t=y instanceof Error?y.message:String(y);return console.error(`Cardano balance fetch error: ${t}`),[No.from({chain:Ho.Cardano})]}}function CC(n){if(!n||typeof n!=="string")return!1;try{let y=TA.decode(n,120);return y.prefix==="addr"||y.prefix==="addr_test"}catch{return!1}}async function BA(n,y=0,t=0){let o=await CA(n,""),T=(await HA.fromEntropy(Buffer.from(o.slice(0,64)))).derive(Dt+1852).derive(Dt+1815).derive(Dt+y),C=T.derive(0).derive(t),H=C.toBip32PublicKey().toPublicKey().toBytes(),_=zt.hash28(H),G=T.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),Q=zt.hash28(G),w={hash:_,type:Ot.HashType.ADDRESS},B={hash:Q,type:Ot.HashType.ADDRESS},l=new AA.BaseAddress(wA,w,B).getBech32(),M=C.toPrivateKey();return{getAddress:()=>l,publicKey:H,publicKeyHash:_,signTransaction:async(N)=>{try{let Z=await import("@stricahq/cbors"),z=Buffer.from(N,"hex"),X=Z.Decoder.decode(z),[U,q,L,Y]=X.value,D=Z.Encoder.encode(U),J=zt.hash32(D),O=M.sign(J),x=q instanceof Map?q:new Map,u=x.get(oC)||[];u.push([H,O]),x.set(oC,u);let p=[U,x,L,Y];return Z.Encoder.encode(p).toString("hex")}catch(Z){throw new yy("toolbox_cardano_sign_transaction_failed",{message:String(Z)})}}}}function XA(n){let y,t,o;async function f(){if(!o)o=await GA();return o}async function T(){if(y!==void 0)return y;if(n&&"phrase"in n&&n.phrase){let B=n.index??0;return y=await BA(n.phrase,0,B),y}if(n&&"signer"in n&&n.signer)return y=n.signer,y;return}async function C(){if(t)return t;let B=await T();if(!B)return"";if("getAddress"in B)return t=await B.getAddress(),t;return""}async function H(B){let W=B||await C();if(!W)throw new yy("core_wallet_connection_not_found");return WA(W)}async function _(B){if(B)try{let{tx:N}=await A(B),Z=N.getFee();return No.from({chain:Ho.Cardano,fromBaseDecimal:6,value:Z.toString()})}catch{}let W=await f(),l=400,M=W.minFeeB.plus(W.minFeeA.times(l));return No.from({chain:Ho.Cardano,fromBaseDecimal:6,value:M.toString()})}async function A({sender:B="",recipient:W,assetValue:l,memo:M,pureLovelaceOnly:N=!1}){let Z=B||await C();if(!Z)throw new yy("core_wallet_connection_not_found");let[z,X,U]=await Promise.all([TC(Z),qA(),f()]),q=z.filter((V)=>N?V.amount.every((m)=>m.unit==="lovelace"):V.amount.some((m)=>m.unit==="lovelace")).sort((V,m)=>{let Hn=V.amount.some((a)=>a.unit!=="lovelace"),An=m.amount.some((a)=>a.unit!=="lovelace");if(Hn===An)return 0;return Hn?1:-1}),L=nC.getAddressFromString(Z),Y=nC.getAddressFromString(W),D=lA(q,L),J=new ln(l.getBaseValue("string")),O=[{address:Y,amount:J,tokens:[]}],x;if(M){let V=new Map;V.set("msg",[M]),x={metadata:[{data:V,label:674}]}}let u={...U,minFeeB:U.minFeeB.plus(U.minFeeA.times(4))},P=new _A({protocolParams:u}).paymentTransaction({auxiliaryData:x,changeAddress:L,inputs:D,outputs:O,ttl:X+3600}),{payload:v}=P.buildTransaction();return{tx:P,unsignedTx:v}}async function G(B){let W=await T();if(!W||!("signTransaction"in W))throw new yy("core_wallet_connection_not_found");return W.signTransaction(B)}async function Q({recipient:B,assetValue:W,memo:l}){let M=await T();if(!M||!("signTransaction"in M))throw new yy("core_wallet_connection_not_found");let{unsignedTx:N}=await A({assetValue:W,memo:l,recipient:B,sender:await C()}),Z=await G(N);return await yC(Z)}async function w(B){let W=await G(B);return await yC(W)}return{createTransaction:A,estimateTransactionFee:_,getAddress:C,getBalance:H,signAndBroadcastTransaction:w,signTransaction:G,transfer:Q,validateAddress:CC}}var fC="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",tC="https://cardano-mainnet.blockfrost.io/api/v0",wA,Dt=2147483648,oC=0;var HC=F(()=>{wA=Ot.NetworkId.MAINNET});var Rt={};nn(Rt,{validateCardanoAddress:()=>CC,getCardanoToolbox:()=>XA});var St=F(()=>{HC()});import{base64 as yf,bech32 as of}from"@scure/base";import{SwapKitError as LA}from"@swapkit/helpers";function fy(n){return yf.encode(Uint8Array.from(of.fromWords(of.decode(n).words)))}function ty(n,y="thor"){return of.encode(y,of.toWords(yf.decode(n)))}function QA(n){return yf.encode(n)}function MA(n){if(!n.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new LA("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return yf.decode(n)}var Ft=()=>{};import{AssetValue as ut,Chain as E,getChainConfig as xn,getRPCUrl as ZA,SwapKitError as _C}from"@swapkit/helpers";function In(n){switch(n){case E.Maya:return{amount:[],gas:"10000000000"};case E.THORChain:return{amount:[],gas:"500000000"};case E.Kujira:return wC;case E.Noble:return qC;default:return UC}}async function Pn(n){let y=await import("@cosmjs/stargate"),t=y.StargateClient??y.default?.StargateClient,o=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return t.connect({headers:o,url:n})}async function _o(n,y,t={}){let o=await import("@cosmjs/stargate"),f=o.SigningStargateClient??o.default?.SigningStargateClient,T=o.GasPrice??o.default?.GasPrice,C=typeof t==="string"?t:"0.0003uatom",H=typeof t==="string"?{}:t;return f.connectWithSigner(n,y,{gasPrice:T.fromString(C),...H})}async function pt(n,y){let t=await import("@cosmjs/stargate");return(t.SigningStargateClient??t.default?.SigningStargateClient).offline(n,y)}async function It({sender:n,recipient:y,assetValue:t,memo:o="",feeRate:f,sequence:T,accountNumber:C}){let{chain:H,chainId:_}=t,A=await ZA(H),Q=await(await Pn(A)).getAccount(n);if(!Q)throw new _C("toolbox_cosmos_account_not_found",{sender:n});let w=ut.from({chain:H}),B=jn(w.symbol),W=In(H),l=B&&f?{amount:[{amount:f.toString(),denom:B}],gas:W.gas}:W,M={amount:[{amount:t.getBaseValue("string"),denom:jn(t.symbol)}],fromAddress:n,toAddress:y};return{accountNumber:C??Q.accountNumber,chainId:_,fee:l,memo:o,msgs:[{typeUrl:JA(H),value:M}],sequence:T??Q.sequence}}var kt="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",AC="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",UC,wC,qC,jn=(n,y=!1)=>{if(y)return n.toLowerCase();switch(n){case"uUSK":case"USK":return kt;case"uYUM":case"YUM":return AC;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return n}},Ty=({symbol:n,chain:y})=>{if(y===E.Maya)return(n.toUpperCase()!=="CACAO"?n:`${E.Maya}.${n}`).toUpperCase();if(y===E.THORChain)return(["RUNE","TCY","RUJI"].includes(n.toUpperCase())?`${E.THORChain}.${n}`:n).toUpperCase();return jn(n,!1)},JA=(n)=>{switch(n){case E.Maya:case E.THORChain:return"/types.MsgSend";case E.Cosmos:case E.Kujira:case E.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new _C("toolbox_cosmos_not_supported",{chain:n})}},YA,Pt=(n,y)=>{let t=YA[n.toLowerCase()];if(!t)return ut.from({asset:n,fromBaseDecimal:8,value:y});let{chain:o,asset:f,decimals:T}=t,C=o?{chain:o}:{asset:f};return ut.from({...C,fromBaseDecimal:T,value:y})};var Cy=F(()=>{UC={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},wC={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},qC={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};YA={atom:{chain:E.Cosmos,decimals:xn(E.Cosmos).baseDecimal},cacao:{chain:E.Maya,decimals:10},kuji:{chain:E.Kujira,decimals:xn(E.Kujira).baseDecimal},maya:{asset:`${E.Maya}.${E.Maya}`,decimals:4},rune:{chain:E.THORChain,decimals:xn(E.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:xn(E.THORChain).baseDecimal},uatom:{chain:E.Cosmos,decimals:xn(E.Cosmos).baseDecimal},ukuji:{chain:E.Kujira,decimals:xn(E.Kujira).baseDecimal},usdc:{chain:E.Noble,decimals:xn(E.Noble).baseDecimal},uusdc:{chain:E.Noble,decimals:xn(E.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:xn(E.THORChain).baseDecimal},[kt.toLowerCase()]:{asset:`${E.Kujira}.USK`,decimals:xn(E.Kujira).baseDecimal}}});var GC={};nn(GC,{$root:()=>S});import on from"protobufjs/minimal.js";var I,Ln,k,S;var lC=F(()=>{I=on.Reader,Ln=on.Writer,k=on.util,S=on.roots.default||(on.roots.default={});S.common=(()=>{let n={};return n.Asset=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.chain="",y.prototype.symbol="",y.prototype.ticker="",y.prototype.synth=!1,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.chain!=null&&Object.hasOwnProperty.call(o,"chain"))f.uint32(10).string(o.chain);if(o.symbol!=null&&Object.hasOwnProperty.call(o,"symbol"))f.uint32(18).string(o.symbol);if(o.ticker!=null&&Object.hasOwnProperty.call(o,"ticker"))f.uint32(26).string(o.ticker);if(o.synth!=null&&Object.hasOwnProperty.call(o,"synth"))f.uint32(32).bool(o.synth);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.Asset;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.chain=o.string();break;case 2:C.symbol=o.string();break;case 3:C.ticker=o.string();break;case 4:C.synth=o.bool();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.chain!=null&&o.hasOwnProperty("chain")){if(!k.isString(o.chain))return"chain: string expected"}if(o.symbol!=null&&o.hasOwnProperty("symbol")){if(!k.isString(o.symbol))return"symbol: string expected"}if(o.ticker!=null&&o.hasOwnProperty("ticker")){if(!k.isString(o.ticker))return"ticker: string expected"}if(o.synth!=null&&o.hasOwnProperty("synth")){if(typeof o.synth!=="boolean")return"synth: boolean expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Asset)return o;let f=new S.common.Asset;if(o.chain!=null)f.chain=String(o.chain);if(o.symbol!=null)f.symbol=String(o.symbol);if(o.ticker!=null)f.ticker=String(o.ticker);if(o.synth!=null)f.synth=Boolean(o.synth);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)T.chain="",T.symbol="",T.ticker="",T.synth=!1;if(o.chain!=null&&o.hasOwnProperty("chain"))T.chain=o.chain;if(o.symbol!=null&&o.hasOwnProperty("symbol"))T.symbol=o.symbol;if(o.ticker!=null&&o.hasOwnProperty("ticker"))T.ticker=o.ticker;if(o.synth!=null&&o.hasOwnProperty("synth"))T.synth=o.synth;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Coin=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.asset=null,y.prototype.amount="",y.prototype.decimals=k.Long?k.Long.fromBits(0,0,!1):0,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.asset!=null&&Object.hasOwnProperty.call(o,"asset"))S.common.Asset.encode(o.asset,f.uint32(10).fork()).ldelim();if(o.amount!=null&&Object.hasOwnProperty.call(o,"amount"))f.uint32(18).string(o.amount);if(o.decimals!=null&&Object.hasOwnProperty.call(o,"decimals"))f.uint32(24).int64(o.decimals);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.Coin;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.asset=S.common.Asset.decode(o,o.uint32());break;case 2:C.amount=o.string();break;case 3:C.decimals=o.int64();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.asset!=null&&o.hasOwnProperty("asset")){let f=S.common.Asset.verify(o.asset);if(f)return"asset."+f}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!k.isString(o.amount))return"amount: string expected"}if(o.decimals!=null&&o.hasOwnProperty("decimals")){if(!k.isInteger(o.decimals)&&!(o.decimals&&k.isInteger(o.decimals.low)&&k.isInteger(o.decimals.high)))return"decimals: integer|Long expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Coin)return o;let f=new S.common.Coin;if(o.asset!=null){if(typeof o.asset!=="object")throw TypeError(".common.Coin.asset: object expected");f.asset=S.common.Asset.fromObject(o.asset)}if(o.amount!=null)f.amount=String(o.amount);if(o.decimals!=null){if(k.Long)(f.decimals=k.Long.fromValue(o.decimals)).unsigned=!1;else if(typeof o.decimals==="string")f.decimals=Number.parseInt(o.decimals,10);else if(typeof o.decimals==="number")f.decimals=o.decimals;else if(typeof o.decimals==="object")f.decimals=new k.LongBits(o.decimals.low>>>0,o.decimals.high>>>0).toNumber()}return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)if(T.asset=null,T.amount="",k.Long){let C=new k.Long(0,0,!1);T.decimals=f.longs===String?C.toString():f.longs===Number?C.toNumber():C}else T.decimals=f.longs===String?"0":0;if(o.asset!=null&&o.hasOwnProperty("asset"))T.asset=S.common.Asset.toObject(o.asset,f);if(o.amount!=null&&o.hasOwnProperty("amount"))T.amount=o.amount;if(o.decimals!=null&&o.hasOwnProperty("decimals"))if(typeof o.decimals==="number")T.decimals=f.longs===String?String(o.decimals):o.decimals;else T.decimals=f.longs===String?k.Long.prototype.toString.call(o.decimals):f.longs===Number?new k.LongBits(o.decimals.low>>>0,o.decimals.high>>>0).toNumber():o.decimals;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.PubKeySet=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.secp256k1="",y.prototype.ed25519="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.secp256k1!=null&&Object.hasOwnProperty.call(o,"secp256k1"))f.uint32(10).string(o.secp256k1);if(o.ed25519!=null&&Object.hasOwnProperty.call(o,"ed25519"))f.uint32(18).string(o.ed25519);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.PubKeySet;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.secp256k1=o.string();break;case 2:C.ed25519=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.secp256k1!=null&&o.hasOwnProperty("secp256k1")){if(!k.isString(o.secp256k1))return"secp256k1: string expected"}if(o.ed25519!=null&&o.hasOwnProperty("ed25519")){if(!k.isString(o.ed25519))return"ed25519: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.PubKeySet)return o;let f=new S.common.PubKeySet;if(o.secp256k1!=null)f.secp256k1=String(o.secp256k1);if(o.ed25519!=null)f.ed25519=String(o.ed25519);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)T.secp256k1="",T.ed25519="";if(o.secp256k1!=null&&o.hasOwnProperty("secp256k1"))T.secp256k1=o.secp256k1;if(o.ed25519!=null&&o.hasOwnProperty("ed25519"))T.ed25519=o.ed25519;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Tx=(()=>{function y(t){if(this.coins=[],this.gas=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.id="",y.prototype.chain="",y.prototype.fromAddress="",y.prototype.toAddress="",y.prototype.coins=k.emptyArray,y.prototype.gas=k.emptyArray,y.prototype.memo="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.id!=null&&Object.hasOwnProperty.call(o,"id"))f.uint32(10).string(o.id);if(o.chain!=null&&Object.hasOwnProperty.call(o,"chain"))f.uint32(18).string(o.chain);if(o.fromAddress!=null&&Object.hasOwnProperty.call(o,"fromAddress"))f.uint32(26).string(o.fromAddress);if(o.toAddress!=null&&Object.hasOwnProperty.call(o,"toAddress"))f.uint32(34).string(o.toAddress);if(o.coins?.length)for(let T=0;T<o.coins.length;++T)S.common.Coin.encode(o.coins[T],f.uint32(42).fork()).ldelim();if(o.gas?.length)for(let T=0;T<o.gas.length;++T)S.common.Coin.encode(o.gas[T],f.uint32(50).fork()).ldelim();if(o.memo!=null&&Object.hasOwnProperty.call(o,"memo"))f.uint32(58).string(o.memo);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.Tx;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.id=o.string();break;case 2:C.chain=o.string();break;case 3:C.fromAddress=o.string();break;case 4:C.toAddress=o.string();break;case 5:if(!C.coins?.length)C.coins=[];C.coins.push(S.common.Coin.decode(o,o.uint32()));break;case 6:if(!C.gas?.length)C.gas=[];C.gas.push(S.common.Coin.decode(o,o.uint32()));break;case 7:C.memo=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.id!=null&&o.hasOwnProperty("id")){if(!k.isString(o.id))return"id: string expected"}if(o.chain!=null&&o.hasOwnProperty("chain")){if(!k.isString(o.chain))return"chain: string expected"}if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress")){if(!k.isString(o.fromAddress))return"fromAddress: string expected"}if(o.toAddress!=null&&o.hasOwnProperty("toAddress")){if(!k.isString(o.toAddress))return"toAddress: string expected"}if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let T=S.common.Coin.verify(o.coins[f]);if(T)return"coins."+T}}if(o.gas!=null&&o.hasOwnProperty("gas")){if(!Array.isArray(o.gas))return"gas: array expected";for(let f=0;f<o.gas.length;++f){let T=S.common.Coin.verify(o.gas[f]);if(T)return"gas."+T}}if(o.memo!=null&&o.hasOwnProperty("memo")){if(!k.isString(o.memo))return"memo: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Tx)return o;let f=new S.common.Tx;if(o.id!=null)f.id=String(o.id);if(o.chain!=null)f.chain=String(o.chain);if(o.fromAddress!=null)f.fromAddress=String(o.fromAddress);if(o.toAddress!=null)f.toAddress=String(o.toAddress);if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".common.Tx.coins: array expected");f.coins=[];for(let T=0;T<o.coins.length;++T){if(typeof o.coins[T]!=="object")throw TypeError(".common.Tx.coins: object expected");f.coins[T]=S.common.Coin.fromObject(o.coins[T])}}if(o.gas){if(!Array.isArray(o.gas))throw TypeError(".common.Tx.gas: array expected");f.gas=[];for(let T=0;T<o.gas.length;++T){if(typeof o.gas[T]!=="object")throw TypeError(".common.Tx.gas: object expected");f.gas[T]=S.common.Coin.fromObject(o.gas[T])}}if(o.memo!=null)f.memo=String(o.memo);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.coins=[],T.gas=[];if(f.defaults)T.id="",T.chain="",T.fromAddress="",T.toAddress="",T.memo="";if(o.id!=null&&o.hasOwnProperty("id"))T.id=o.id;if(o.chain!=null&&o.hasOwnProperty("chain"))T.chain=o.chain;if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress"))T.fromAddress=o.fromAddress;if(o.toAddress!=null&&o.hasOwnProperty("toAddress"))T.toAddress=o.toAddress;if(o.coins?.length){T.coins=[];for(let C=0;C<o.coins.length;++C)T.coins[C]=S.common.Coin.toObject(o.coins[C],f)}if(o.gas?.length){T.gas=[];for(let C=0;C<o.gas.length;++C)T.gas[C]=S.common.Coin.toObject(o.gas[C],f)}if(o.memo!=null&&o.hasOwnProperty("memo"))T.memo=o.memo;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Fee=(()=>{function y(t){if(this.coins=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.coins=k.emptyArray,y.prototype.poolDeduct="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.coins?.length)for(let T=0;T<o.coins.length;++T)S.common.Coin.encode(o.coins[T],f.uint32(10).fork()).ldelim();if(o.poolDeduct!=null&&Object.hasOwnProperty.call(o,"poolDeduct"))f.uint32(18).string(o.poolDeduct);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.Fee;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:if(!C.coins?.length)C.coins=[];C.coins.push(S.common.Coin.decode(o,o.uint32()));break;case 2:C.poolDeduct=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let T=S.common.Coin.verify(o.coins[f]);if(T)return"coins."+T}}if(o.poolDeduct!=null&&o.hasOwnProperty("poolDeduct")){if(!k.isString(o.poolDeduct))return"poolDeduct: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Fee)return o;let f=new S.common.Fee;if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".common.Fee.coins: array expected");f.coins=[];for(let T=0;T<o.coins.length;++T){if(typeof o.coins[T]!=="object")throw TypeError(".common.Fee.coins: object expected");f.coins[T]=S.common.Coin.fromObject(o.coins[T])}}if(o.poolDeduct!=null)f.poolDeduct=String(o.poolDeduct);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.coins=[];if(f.defaults)T.poolDeduct="";if(o.coins?.length){T.coins=[];for(let C=0;C<o.coins.length;++C)T.coins[C]=S.common.Coin.toObject(o.coins[C],f)}if(o.poolDeduct!=null&&o.hasOwnProperty("poolDeduct"))T.poolDeduct=o.poolDeduct;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.ProtoUint=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.value="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.value!=null&&Object.hasOwnProperty.call(o,"value"))f.uint32(10).string(o.value);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.ProtoUint;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.value=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.value!=null&&o.hasOwnProperty("value")){if(!k.isString(o.value))return"value: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.ProtoUint)return o;let f=new S.common.ProtoUint;if(o.value!=null)f.value=String(o.value);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)T.value="";if(o.value!=null&&o.hasOwnProperty("value"))T.value=o.value;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n})();S.types=(()=>{let n={};return n.MsgDeposit=(()=>{function y(t){if(this.coins=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.coins=k.emptyArray,y.prototype.memo="",y.prototype.signer=k.newBuffer([]),y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.coins?.length)for(let T=0;T<o.coins.length;++T)S.common.Coin.encode(o.coins[T],f.uint32(10).fork()).ldelim();if(o.memo!=null&&Object.hasOwnProperty.call(o,"memo"))f.uint32(18).string(o.memo);if(o.signer!=null&&Object.hasOwnProperty.call(o,"signer"))f.uint32(26).bytes(o.signer);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.types.MsgDeposit;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:if(!C.coins?.length)C.coins=[];C.coins.push(S.common.Coin.decode(o,o.uint32()));break;case 2:C.memo=o.string();break;case 3:C.signer=o.bytes();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let T=S.common.Coin.verify(o.coins[f]);if(T)return"coins."+T}}if(o.memo!=null&&o.hasOwnProperty("memo")){if(!k.isString(o.memo))return"memo: string expected"}if(o.signer!=null&&o.hasOwnProperty("signer")){if(!(o.signer&&typeof o.signer.length==="number"||k.isString(o.signer)))return"signer: buffer expected"}return null},y.fromObject=function(o){if(o instanceof S.types.MsgDeposit)return o;let f=new S.types.MsgDeposit;if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".types.MsgDeposit.coins: array expected");f.coins=[];for(let T=0;T<o.coins.length;++T){if(typeof o.coins[T]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");f.coins[T]=S.common.Coin.fromObject(o.coins[T])}}if(o.memo!=null)f.memo=String(o.memo);if(o.signer!=null){if(typeof o.signer==="string")k.base64.decode(o.signer,f.signer=k.newBuffer(k.base64.length(o.signer)),0);else if(o.signer.length)f.signer=o.signer}return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.coins=[];if(f.defaults){if(T.memo="",f.bytes===String)T.signer="";else if(T.signer=[],f.bytes!==Array)T.signer=k.newBuffer(T.signer)}if(o.coins?.length){T.coins=[];for(let C=0;C<o.coins.length;++C)T.coins[C]=S.common.Coin.toObject(o.coins[C],f)}if(o.memo!=null&&o.hasOwnProperty("memo"))T.memo=o.memo;if(o.signer!=null&&o.hasOwnProperty("signer"))T.signer=f.bytes===String?k.base64.encode(o.signer,0,o.signer.length):f.bytes===Array?Array.prototype.slice.call(o.signer):o.signer;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.MsgSend=(()=>{function y(t){if(this.amount=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.fromAddress=k.newBuffer([]),y.prototype.toAddress=k.newBuffer([]),y.prototype.amount=k.emptyArray,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.fromAddress!=null&&Object.hasOwnProperty.call(o,"fromAddress"))f.uint32(10).bytes(o.fromAddress);if(o.toAddress!=null&&Object.hasOwnProperty.call(o,"toAddress"))f.uint32(18).bytes(o.toAddress);if(o.amount?.length)for(let T=0;T<o.amount.length;++T)S.cosmos.base.v1beta1.Coin.encode(o.amount[T],f.uint32(26).fork()).ldelim();return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.types.MsgSend;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.fromAddress=o.bytes();break;case 2:C.toAddress=o.bytes();break;case 3:if(!C.amount?.length)C.amount=[];C.amount.push(S.cosmos.base.v1beta1.Coin.decode(o,o.uint32()));break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress")){if(!(o.fromAddress&&typeof o.fromAddress.length==="number"||k.isString(o.fromAddress)))return"fromAddress: buffer expected"}if(o.toAddress!=null&&o.hasOwnProperty("toAddress")){if(!(o.toAddress&&typeof o.toAddress.length==="number"||k.isString(o.toAddress)))return"toAddress: buffer expected"}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!Array.isArray(o.amount))return"amount: array expected";for(let f=0;f<o.amount.length;++f){let T=S.cosmos.base.v1beta1.Coin.verify(o.amount[f]);if(T)return"amount."+T}}return null},y.fromObject=function(o){if(o instanceof S.types.MsgSend)return o;let f=new S.types.MsgSend;if(o.fromAddress!=null){if(typeof o.fromAddress==="string")k.base64.decode(o.fromAddress,f.fromAddress=k.newBuffer(k.base64.length(o.fromAddress)),0);else if(o.fromAddress.length)f.fromAddress=o.fromAddress}if(o.toAddress!=null){if(typeof o.toAddress==="string")k.base64.decode(o.toAddress,f.toAddress=k.newBuffer(k.base64.length(o.toAddress)),0);else if(o.toAddress.length)f.toAddress=o.toAddress}if(o.amount){if(!Array.isArray(o.amount))throw TypeError(".types.MsgSend.amount: array expected");f.amount=[];for(let T=0;T<o.amount.length;++T){if(typeof o.amount[T]!=="object")throw TypeError(".types.MsgSend.amount: object expected");f.amount[T]=S.cosmos.base.v1beta1.Coin.fromObject(o.amount[T])}}return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.amount=[];if(f.defaults){if(f.bytes===String)T.fromAddress="";else if(T.fromAddress=[],f.bytes!==Array)T.fromAddress=k.newBuffer(T.fromAddress);if(f.bytes===String)T.toAddress="";else if(T.toAddress=[],f.bytes!==Array)T.toAddress=k.newBuffer(T.toAddress)}if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress"))T.fromAddress=f.bytes===String?k.base64.encode(o.fromAddress,0,o.fromAddress.length):f.bytes===Array?Array.prototype.slice.call(o.fromAddress):o.fromAddress;if(o.toAddress!=null&&o.hasOwnProperty("toAddress"))T.toAddress=f.bytes===String?k.base64.encode(o.toAddress,0,o.toAddress.length):f.bytes===Array?Array.prototype.slice.call(o.toAddress):o.toAddress;if(o.amount?.length){T.amount=[];for(let C=0;C<o.amount.length;++C)T.amount[C]=S.cosmos.base.v1beta1.Coin.toObject(o.amount[C],f)}return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n})();S.cosmos=(()=>{let n={};return n.base=(()=>{let y={};return y.v1beta1=(()=>{let t={};return t.Coin=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.denom="",o.prototype.amount="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=Ln.create();if(T.denom!=null&&Object.hasOwnProperty.call(T,"denom"))C.uint32(10).string(T.denom);if(T.amount!=null&&Object.hasOwnProperty.call(T,"amount"))C.uint32(18).string(T.amount);return C},o.encodeDelimited=function(T,C){return this.encode(T,C).ldelim()},o.decode=function(T,C){if(!(T instanceof I))T=I.create(T);let H=C===void 0?T.len:T.pos+C,_=new S.cosmos.base.v1beta1.Coin;while(T.pos<H){let A=T.uint32();switch(A>>>3){case 1:_.denom=T.string();break;case 2:_.amount=T.string();break;default:T.skipType(A&7);break}}return _},o.decodeDelimited=function(T){if(!(T instanceof I))T=new I(T);return this.decode(T,T.uint32())},o.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.denom!=null&&T.hasOwnProperty("denom")){if(!k.isString(T.denom))return"denom: string expected"}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!k.isString(T.amount))return"amount: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.Coin)return T;let C=new S.cosmos.base.v1beta1.Coin;if(T.denom!=null)C.denom=String(T.denom);if(T.amount!=null)C.amount=String(T.amount);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.denom="",H.amount="";if(T.denom!=null&&T.hasOwnProperty("denom"))H.denom=T.denom;if(T.amount!=null&&T.hasOwnProperty("amount"))H.amount=T.amount;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t.DecCoin=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.denom="",o.prototype.amount="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=Ln.create();if(T.denom!=null&&Object.hasOwnProperty.call(T,"denom"))C.uint32(10).string(T.denom);if(T.amount!=null&&Object.hasOwnProperty.call(T,"amount"))C.uint32(18).string(T.amount);return C},o.encodeDelimited=function(T,C){return this.encode(T,C).ldelim()},o.decode=function(T,C){if(!(T instanceof I))T=I.create(T);let H=C===void 0?T.len:T.pos+C,_=new S.cosmos.base.v1beta1.DecCoin;while(T.pos<H){let A=T.uint32();switch(A>>>3){case 1:_.denom=T.string();break;case 2:_.amount=T.string();break;default:T.skipType(A&7);break}}return _},o.decodeDelimited=function(T){if(!(T instanceof I))T=new I(T);return this.decode(T,T.uint32())},o.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.denom!=null&&T.hasOwnProperty("denom")){if(!k.isString(T.denom))return"denom: string expected"}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!k.isString(T.amount))return"amount: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.DecCoin)return T;let C=new S.cosmos.base.v1beta1.DecCoin;if(T.denom!=null)C.denom=String(T.denom);if(T.amount!=null)C.amount=String(T.amount);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.denom="",H.amount="";if(T.denom!=null&&T.hasOwnProperty("denom"))H.denom=T.denom;if(T.amount!=null&&T.hasOwnProperty("amount"))H.amount=T.amount;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t.IntProto=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.int="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=Ln.create();if(T.int!=null&&Object.hasOwnProperty.call(T,"int"))C.uint32(10).string(T.int);return C},o.encodeDelimited=function(T,C){return this.encode(T,C).ldelim()},o.decode=function(T,C){if(!(T instanceof I))T=I.create(T);let H=C===void 0?T.len:T.pos+C,_=new S.cosmos.base.v1beta1.IntProto;while(T.pos<H){let A=T.uint32();switch(A>>>3){case 1:_.int=T.string();break;default:T.skipType(A&7);break}}return _},o.decodeDelimited=function(T){if(!(T instanceof I))T=new I(T);return this.decode(T,T.uint32())},o.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.int!=null&&T.hasOwnProperty("int")){if(!k.isString(T.int))return"int: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.IntProto)return T;let C=new S.cosmos.base.v1beta1.IntProto;if(T.int!=null)C.int=String(T.int);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.int="";if(T.int!=null&&T.hasOwnProperty("int"))H.int=T.int;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t.DecProto=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.dec="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=Ln.create();if(T.dec!=null&&Object.hasOwnProperty.call(T,"dec"))C.uint32(10).string(T.dec);return C},o.encodeDelimited=function(T,C){return this.encode(T,C).ldelim()},o.decode=function(T,C){if(!(T instanceof I))T=I.create(T);let H=C===void 0?T.len:T.pos+C,_=new S.cosmos.base.v1beta1.DecProto;while(T.pos<H){let A=T.uint32();switch(A>>>3){case 1:_.dec=T.string();break;default:T.skipType(A&7);break}}return _},o.decodeDelimited=function(T){if(!(T instanceof I))T=new I(T);return this.decode(T,T.uint32())},o.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.dec!=null&&T.hasOwnProperty("dec")){if(!k.isString(T.dec))return"dec: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.DecProto)return T;let C=new S.cosmos.base.v1beta1.DecProto;if(T.dec!=null)C.dec=String(T.dec);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.dec="";if(T.dec!=null&&T.hasOwnProperty("dec"))H.dec=T.dec;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t})(),y})(),n})()});import{Chain as NA}from"@swapkit/helpers";async function Ao(){let{$root:n}=await Promise.resolve().then(() => (lC(),GC)),y=await import("@cosmjs/proto-signing"),t=y.Registry??y.default?.Registry,o=await import("@cosmjs/stargate"),f=o.defaultRegistryTypes??o.default?.defaultRegistryTypes;return new t([...f,["/types.MsgSend",n.types.MsgSend],["/types.MsgDeposit",n.types.MsgDeposit]])}async function cn(n){let y=await import("@cosmjs/stargate"),t=y.AminoTypes??y.default?.AminoTypes,o=n===NA.THORChain?"thorchain":"mayachain";return new t({"/types.MsgDeposit":{aminoType:`${o}/MsgDeposit`,fromAmino:({signer:f,...T})=>({...T,signer:fy(f)}),toAmino:({signer:f,...T})=>({...T,signer:ty(f)})},"/types.MsgSend":{aminoType:`${o}/MsgSend`,fromAmino:({from_address:f,to_address:T,...C})=>({...C,fromAddress:fy(f),toAddress:fy(T)}),toAmino:({fromAddress:f,toAddress:T,...C})=>({...C,from_address:ty(f),to_address:ty(T)})}})}var $t=F(()=>{Ft()});import{AssetValue as zA,Chain as ff,getChainConfig as WC,getRPCUrl as BC,SwapKitError as DA}from"@swapkit/helpers";function bt(n){let{assetValue:y,recipient:t,memo:o,sender:f,asSignable:T,asAminoMessage:C}=n;if(t)return LC({asAminoMessage:C,asSignable:T,assetValue:y,memo:o,recipient:t,sender:f});return QC({asAminoMessage:C,asSignable:T,assetValue:y,memo:o,sender:f})}async function LC({sender:n,recipient:y,assetValue:t,memo:o="",asSignable:f=!0,asAminoMessage:T=!1,sequence:C,accountNumber:H}){let _=t.chain,A=await BC(_),G=await XC({rpcUrl:A,sender:n}),{chainId:Q}=WC(_),w=Et({assetValue:t,recipient:y,sender:n}),B=f?await hn(T?w:mn(w),_):w;return{accountNumber:H||G.accountNumber,chainId:Q,fee:In(_),memo:o,msgs:[B],sequence:C||G.sequence}}async function QC({sender:n,assetValue:y,memo:t="",asSignable:o=!0,asAminoMessage:f=!1,sequence:T,accountNumber:C}){let H=y.chain,_=await BC(H),A=await XC({rpcUrl:_,sender:n}),{chainId:G}=WC(H),Q=vt({assetValue:y,memo:t,sender:n}),w=o?await hn(f?Q:mn(Q),H):Q;return{accountNumber:C||A.accountNumber,chainId:G,fee:In(H),memo:t,msgs:[w],sequence:T||A.sequence}}function mn(n){if(n.type==="thorchain/MsgSend"||n.type==="mayachain/MsgSend")return n;return{...n,value:{...n.value,coins:n.value.coins.map((y)=>{let t=zA.from({asset:y.asset}),o=(t.isSynthetic?t.symbol.split("/")?.[1]:t.symbol)?.toUpperCase(),f=(t.isSynthetic?t.symbol.split("/")?.[0]:t.chain)?.toUpperCase();return{...y,asset:{chain:f,symbol:o,synth:t.isSynthetic,ticker:t.ticker}}})}}}async function Hy({chain:n,memo:y,msgs:t}){let o=await Ao(),f=await cn(n),T={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:y,messages:t.map((C)=>f.fromAmino(C))}};return o.encode(T)}var OA,xA,Et=({sender:n,recipient:y,assetValue:t})=>{return{type:`${t.chain===ff.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:t.getBaseValue("string"),denom:jn(t.symbol,!0)}],from_address:n,to_address:y}}},vt=({sender:n,assetValue:y,memo:t=""})=>{return{type:`${y.chain===ff.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:y.getBaseValue("string"),asset:Ty(y)}],memo:t,signer:n}}},tf=({sender:n,recipient:y,assetValue:t,memo:o})=>{return!y?vt({assetValue:t,memo:o,sender:n}):Et({assetValue:t,recipient:y,sender:n})},hn=async(n,y)=>{return(await cn(y)).fromAmino(n)},XC=async({rpcUrl:n,sender:y})=>{let o=await(await Pn(n)).getAccount(y);if(!o)throw new DA("toolbox_cosmos_account_not_found",{sender:y});return o};var MC=F(()=>{Cy();$t();OA=In(ff.THORChain).gas,xA=In(ff.Maya).gas});var ZC=()=>{};var JC=F(()=>{ZC()});var Vt=F(()=>{Ft();MC();$t();JC()});import{stringToPath as RA}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as SA}from"@cosmjs/proto-signing";import{base64 as ct,bech32 as Kt}from"@scure/base";import{AssetValue as it,applyFeeMultiplier as YC,Chain as fn,CosmosChainPrefixes as RC,DerivationPath as FA,derivationPathToString as NC,FeeOption as ht,getChainConfig as uA,getRPCUrl as _y,NetworkDerivationPath as kA,SwapKitError as zo,SwapKitNumber as jt,updateDerivationPath as pA}from"@swapkit/helpers";import{SwapKitApi as SC}from"@swapkit/helpers/api";import{match as IA,P as zC}from"ts-pattern";async function rt(n,y){try{let o=(await SC.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}async function mt({phrase:n,prefix:y,...t}){let o="derivationPath"in t?t.derivationPath:`${FA[t.chain]}/${t.index}`;return await SA.fromMnemonic(n,{hdPaths:[RA(o)],prefix:y})}async function PA({privateKey:n,prefix:y}){let t=await import("@cosmjs/proto-signing");return(t.DirectSecp256k1Wallet??t.default?.DirectSecp256k1Wallet).fromKey(n,y)}function FC(n){return async function({signature:t,message:o,address:f}){let T=await n(f);if(!T?.pubkey)throw new zo("toolbox_cosmos_verify_signature_no_pubkey");let C=await import("@cosmjs/crypto"),H=C.Secp256k1Signature??C.default?.Secp256k1Signature,_=C.Secp256k1??C.default?.Secp256k1,A=H.fromFixedLength(ct.decode(t));return _.verifySignature(A,ct.decode(o),T.pubkey.value)}}function Ay({chain:n,...y}){let t=RC[n],o="index"in y?y.index||0:0,f=NC("derivationPath"in y&&y.derivationPath?y.derivationPath:pA(kA[n],{index:o})),T;async function C(){if(T)return T;return T=await IA(y).with({phrase:zC.string},({phrase:B})=>mt({derivationPath:f,phrase:B,prefix:t})).with({signer:zC.any},({signer:B})=>B).otherwise(()=>{return}),T}async function H(B){let W=await _y(n);return(await Pn(W)).getAccount(B)}async function _(){let B=await C(),[W]=await B?.getAccounts()||[];return W?.address}async function A(){let B=await C(),[W]=await B?.getAccounts()||[];if(!W?.pubkey)throw new zo("toolbox_cosmos_signer_not_defined");return ct.encode(W?.pubkey)}async function G(B){let W=await C(),l=await _(),M=await _y(n);if(!(W&&l))throw new zo("toolbox_cosmos_signer_not_defined");return await(await _o(M,W)).sign(l,B.msgs,B.fee,B.memo,{accountNumber:B.accountNumber,chainId:B.chainId,sequence:B.sequence})}async function Q(B){let W=await C(),l=await _(),M=await _y(n);if(!(W&&l))throw new zo("toolbox_cosmos_signer_not_defined");let Z=await(await _o(M,W)).signAndBroadcast(l,B.msgs,B.fee,B.memo);if(Z.code!==0)throw new zo("core_swap_transaction_error",{code:Z.code,message:Z.rawLog});return Z.transactionHash}async function w({recipient:B,assetValue:W,memo:l="",feeRate:M,feeOptionKey:N=ht.Fast}){let Z=await C(),z=await _();if(!(Z&&z))throw new zo("toolbox_cosmos_signer_not_defined");let X=await _y(n),U=it.from({chain:n}),q=Ty(U),L=M||vA((await OC(n,DC[n]))[N],q),Y=await _o(X,Z),D=jn(W.symbol),J=[{amount:W.getBaseValue("string"),denom:D}],{transactionHash:O}=await Y.sendTokens(z,B,J,L,l);return O}return{createPrivateKeyFromPhrase:VA(f),createTransaction:It,fetchFeeRateFromSwapKit:rt,getAccount:H,getAddress:_,getBalance:async(B,W)=>{let l=await xC(n)(B),M=await Promise.all(l.filter(({denom:N})=>N&&!N.includes("IBC/")&&!([fn.THORChain,fn.Maya].includes(n)&&N.split("-").length>2)).map(({denom:N,amount:Z})=>{let z=[fn.THORChain,fn.Maya].includes(n)&&(N.includes("/")||N.includes("˜"))?`${n}.${N}`:N;return Pt(z,Z)}));if(M.length===0)return[it.from({chain:n})];return M},getBalanceAsDenoms:xC(n),getFees:()=>OC(n,DC[n]),getPubKey:A,getSignerFromPhrase:({phrase:B,derivationPath:W})=>mt({derivationPath:NC(W),index:o,phrase:B,prefix:t}),getSignerFromPrivateKey:async(B)=>{let W=await import("@cosmjs/proto-signing");return(W.DirectSecp256k1Wallet??W.default?.DirectSecp256k1Wallet).fromKey(B,t)},signAndBroadcastTransaction:Q,signTransaction:G,transfer:w,validateAddress:uC(n),verifySignature:FC(H)}}async function $A(n,y){try{let o=(await SC.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}function EA({assetValue:{chain:n}}){return it.from({chain:n,value:bA(n)})}async function OC(n,y){let{chainId:t,baseDecimal:o}=uA(n),f=await rt(t,y);return{average:jt.fromBigInt(BigInt(f),o),fast:jt.fromBigInt(BigInt(YC(f,ht.Fast,!0)),o),fastest:jt.fromBigInt(BigInt(YC(f,ht.Fastest,!0)),o)}}function vA(n,y){return{amount:[{amount:n.getBaseValue("string"),denom:y}],gas:"200000"}}function bA(n){return{[fn.Cosmos]:0.007,[fn.Kujira]:0.02,[fn.Noble]:0.01,[fn.THORChain]:0.02,[fn.Maya]:0.02,[fn.Harbor]:0.02}[n]||0}function uC(n){let y=RC[n];return function(o){if(!o.startsWith(y))return!1;try{let{prefix:f,words:T}=Kt.decode(o);return Kt.encode(f,T)===o.toLocaleLowerCase()}catch{return!1}}}function xC(n){return async function(t){let o=await _y(n);return(await(await Pn(o)).getAllBalances(t)).map((H)=>({...H,denom:H.denom.includes("/")?H.denom.toUpperCase():H.denom}))}}function VA(n){return async function(t){let o=await import("@cosmjs/crypto"),f=o.stringToPath??o.default?.stringToPath,T=o.Slip10Curve??o.default?.Slip10Curve,C=o.Slip10??o.default?.Slip10,H=o.EnglishMnemonic??o.default?.EnglishMnemonic,_=o.Bip39??o.default?.Bip39,A=new H(t),G=await _.mnemonicToSeed(A),{privkey:Q}=C.derivePath(T.Secp256k1,G,f(n));return Q}}var DC;var Tf=F(()=>{Cy();DC={[fn.Cosmos]:1000,[fn.Kujira]:1000,[fn.Noble]:1000,[fn.THORChain]:5000000,[fn.Maya]:5000000,[fn.Harbor]:5000000}});import{base64 as Uo}from"@scure/base";import{Chain as KA,CosmosChainPrefixes as jA,derivationPathToString as cA,FeeOption as gt,getChainConfig as kC,getRPCUrl as $C,NetworkDerivationPath as iA,RequestClient as hA,SKConfig as mA,SwapKitError as pC,SwapKitNumber as IC,updateDerivationPath as rA}from"@swapkit/helpers";import{match as gA,P as PC}from"ts-pattern";function dA({prefix:n,derivationPath:y}){return async function(o,f=0){let T=await import("@cosmjs/amino"),C=T.Secp256k1HdWallet??T.default?.Secp256k1HdWallet,H=await import("@cosmjs/crypto"),_=H.stringToPath??H.default?.stringToPath;return C.fromMnemonic(o,{hdPaths:[_(`${y}/${f}`)],prefix:n})}}function aA(n){return Uo.encode(n)}function sA(n){return async function({wallet:t,tx:o}){let{msgs:f,accountNumber:T,sequence:C,chainId:H,fee:_,memo:A}=typeof o==="string"?JSON.parse(o):o,G=(await t.getAccounts())?.[0]?.address||"",Q=await cn(n),w=await Ao(),B=await pt(t,{aminoTypes:Q,registry:w}),W=[];for(let N of f){let Z=await hn(N,n);W.push(Z)}let{signatures:[l]}=await B.sign(G,W,_,A,{accountNumber:T,chainId:H,sequence:C});return{bodyBytes:await Hy({chain:n,memo:A,msgs:f.map(mn)}),signature:aA(l)}}}function eA({prefix:n,chain:y}){return async function(o,f,T,C,H){let _=await $C(y),{encodeSecp256k1Pubkey:A,pubkeyToAddress:G}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:Q}=(await import("@cosmjs/stargate")).default,{sequence:w,fee:B}=JSON.parse(o),W=await EC(T,C),l=f.map((Z)=>[G(A(Uo.decode(Z.pubKey)),n),Uo.decode(Z.signature)]),M=await Pn(_),{transactionHash:N}=await M.broadcastTx(Q(W,w,B,H,new Map(l)));return N}}async function EC(n,y,t=!0){let{createMultisigThresholdPubkey:o,encodeSecp256k1Pubkey:f}=(await import("@cosmjs/amino")).default;return o(n.map((T)=>f(Uo.decode(T))),y,t)}function n5(n){return Uo.decode(n)}async function o5({privateKey:n,message:y}){let{Secp256k1:t}=(await import("@cosmjs/crypto")).default,o=await t.createSignature(Uo.decode(y),n);return Uo.encode(Buffer.concat([o.r(32),o.s(32)]))}function dt({chain:n,...y}){let{nodeUrl:t}=kC(n),{isStagenet:o}=mA.get("envs"),f=n===KA.THORChain,T=`${o?"s":""}${jA[n]}`,C="index"in y?y.index||0:0,H="derivationPath"in y&&y.derivationPath?y.derivationPath:rA(iA[n],{index:C}),_=Ay({chain:n,...y}),A=In(n);async function G(){let w,B=`${t}/${f?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:W}}=await hA.get(B);if(!W||Number.isNaN(W)||W<0)throw new pC("toolbox_cosmos_invalid_fee",{nativeFee:W.toString()});w=new IC(W)}catch{w=new IC({decimal:kC(n).baseDecimal,value:f?0.02:1})}return{[gt.Average]:w,[gt.Fast]:w,[gt.Fastest]:w}}async function Q({assetValue:w,memo:B="",recipient:W}){let l=await $C(n),M=await gA(y).with({phrase:PC.string},({phrase:O})=>_.getSignerFromPhrase({derivationPath:H,phrase:O})).with({signer:PC.any},({signer:O})=>O).otherwise(()=>{return}),{TxRaw:N}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),Z=(await M?.getAccounts())?.[0]?.address;if(!(Z&&M))throw new pC("toolbox_cosmos_no_signer");let z="signAmino"in M,X=await Ao(),U=await cn(n),q=await _o(l,M,{aminoTypes:U,registry:X}),L=tf({assetValue:w,memo:B,recipient:W,sender:Z});if(z){let O=await hn(L,n),{signatures:x,authInfoBytes:u}=await q.sign(Z,[O],A,B),p=N.encode({authInfoBytes:u,bodyBytes:await Hy({chain:n,memo:B,msgs:[L].map(mn)}),signatures:x}).finish();return(await q.broadcastTx(p)).transactionHash}let Y=mn(L),D=await hn(Y,n);return(await q.signAndBroadcast(Z,[D],A,B)).transactionHash}return{..._,broadcastMultisigTx:eA({chain:n,prefix:T}),buildAminoMsg:tf,buildEncodedTxBody:Hy,convertToSignable:hn,createDefaultAminoTypes:()=>cn(n),createDefaultRegistry:Ao,createMultisig:EC,createTransaction:bt,deposit:Q,getFees:G,importSignature:n5,parseAminoMessageForDirectSigning:mn,pubkeyToAddress:async(w)=>{let{pubkeyToAddress:B}=(await import("@cosmjs/amino")).default;return B(w,T)},secp256k1HdWalletFromMnemonic:dA({derivationPath:cA(H),prefix:T}),signMultisigTx:sA(n),signWithPrivateKey:o5,transfer:Q}}var at=F(()=>{Vt();Cy();Tf()});import{Chain as Uy,SwapKitError as y5}from"@swapkit/helpers";var f5=(n,y)=>{switch(n){case Uy.Cosmos:case Uy.Kujira:case Uy.Noble:return Ay({chain:n,...y});case Uy.Maya:case Uy.THORChain:return dt({chain:n,...y});default:throw new y5("toolbox_cosmos_not_supported",{chain:n})}};var vC=F(()=>{Tf();at();Tf();at()});var Cf={};nn(Cf,{verifySignature:()=>FC,transferMsgAmino:()=>Et,toBase64:()=>QA,parseAminoMessageForDirectSigning:()=>mn,getSignerFromPrivateKey:()=>PA,getSignerFromPhrase:()=>mt,getMsgSendDenom:()=>jn,getFeeRateFromSwapKit:()=>$A,getDenomWithChain:()=>Ty,getDefaultChainFee:()=>In,getCosmosToolbox:()=>f5,getCosmosAddressValidator:()=>uC,getAssetFromDenom:()=>Pt,fromBase64:()=>MA,fetchFeeRateFromSwapKit:()=>rt,estimateTransactionFee:()=>EA,depositMsgAmino:()=>vt,createTransaction:()=>bt,createThorchainToolbox:()=>dt,createStargateClient:()=>Pn,createSigningStargateClient:()=>_o,createOfflineStargateClient:()=>pt,createDefaultRegistry:()=>Ao,createDefaultAminoTypes:()=>cn,createCosmosToolbox:()=>Ay,cosmosCreateTransaction:()=>It,convertToSignable:()=>hn,buildTransferTx:()=>LC,buildEncodedTxBody:()=>Hy,buildDepositTx:()=>QC,buildAminoMsg:()=>tf,bech32ToBase64:()=>fy,base64ToBech32:()=>ty,YUM_KUJIRA_FACTORY_DENOM:()=>AC,USK_KUJIRA_FACTORY_DENOM:()=>kt,THORCHAIN_GAS_VALUE:()=>OA,MAYA_GAS_VALUE:()=>xA,DEFAULT_NOBLE_FEE_MAINNET:()=>qC,DEFAULT_KUJI_FEE_MAINNET:()=>wC,DEFAULT_COSMOS_FEE_MAINNET:()=>UC});var Hf=F(()=>{Vt();vC();Cy()});function t5({builder:n,grouping:y="na",orders:t}){return{builder:n,grouping:y,orders:t,type:"order"}}function T5({cancels:n}){return{cancels:n,type:"cancel"}}function C5({cancels:n}){return{cancels:n,type:"cancelByCloid"}}function H5({oid:n,order:y}){return{oid:n,order:y,type:"modify"}}function _5({modifies:n}){return{modifies:n,type:"batchModify"}}function A5({asset:n,isCross:y,leverage:t}){return{asset:n,isCross:y,leverage:t,type:"updateLeverage"}}function U5({asset:n,isBuy:y,ntli:t}){return{asset:n,isBuy:y,ntli:t,type:"updateIsolatedMargin"}}function w5({asset:n,leverage:y}){return{asset:n,leverage:y,type:"topUpIsolatedOnlyMargin"}}function q5({time:n}){return{time:n,type:"scheduleCancel"}}function G5({amount:n,hyperliquidChain:y,nonce:t,signatureChainId:o,toPerp:f}){return{amount:n,hyperliquidChain:y,nonce:t,signatureChainId:o,toPerp:f,type:"usdClassTransfer"}}function l5({amount:n,destination:y,destinationDex:t,fromSubAccount:o,hyperliquidChain:f,nonce:T,signatureChainId:C,sourceDex:H,token:_}){return{amount:n,destination:y,destinationDex:t,fromSubAccount:o,hyperliquidChain:f,nonce:T,signatureChainId:C,sourceDex:H,token:_,type:"sendAsset"}}function W5({agentAddress:n,agentName:y,hyperliquidChain:t,nonce:o,signatureChainId:f}){return{agentAddress:n,agentName:y,hyperliquidChain:t,nonce:o,signatureChainId:f,type:"approveAgent"}}function B5({builder:n,hyperliquidChain:y,maxFeeRate:t,nonce:o,signatureChainId:f}){return{builder:n,hyperliquidChain:y,maxFeeRate:t,nonce:o,signatureChainId:f,type:"approveBuilderFee"}}function X5({hyperliquidChain:n,isUndelegate:y,nonce:t,signatureChainId:o,validator:f,wei:T}){return{hyperliquidChain:n,isUndelegate:y,nonce:t,signatureChainId:o,type:"tokenDelegate",validator:f,wei:T}}import{SwapKitError as st}from"@swapkit/helpers";import{keccak256 as L5,Signature as Q5}from"ethers";function qn(...n){let y=n.reduce((f,T)=>f+T.length,0),t=new Uint8Array(y),o=0;for(let f of n)t.set(f,o),o+=f.length;return t}function z5(n,y,t){if(t<y)return new Uint8Array([n+t]);if(t<=255)return new Uint8Array([n+y,t]);if(t<=65535)return new Uint8Array([n+y+1,t>>8,t&255]);return new Uint8Array([n+y+2,t>>>24&255,t>>>16&255,t>>>8&255,t&255])}function rn(n,y){let t=new Uint8Array(y),o=n;for(let f=y-1;f>=0;f-=1)t[f]=Number(o&0xffn),o>>=8n;return t}function bC(n){if(n>=0n){if(n<=0x7fn)return new Uint8Array([Number(n)]);if(n<=0xffn)return new Uint8Array([204,Number(n)]);if(n<=0xffffn)return qn(new Uint8Array([205]),rn(n,2));if(n<=0xffffffffn)return qn(new Uint8Array([206]),rn(n,4));return qn(new Uint8Array([207]),rn(n,8))}if(n>=-32n)return new Uint8Array([256+Number(n)]);if(n>=-128n)return new Uint8Array([208,256+Number(n)]);if(n>=-32768n)return qn(new Uint8Array([209]),rn(BigInt.asUintN(16,n),2));if(n>=-2147483648n)return qn(new Uint8Array([210]),rn(BigInt.asUintN(32,n),4));return qn(new Uint8Array([211]),rn(BigInt.asUintN(64,n),8))}function jC(n){let y=N5.encode(n);if(y.length<32)return qn(new Uint8Array([160+y.length]),y);return qn(z5(217,0,y.length),y)}function D5(n){let y=n.map((o)=>et(o)),t=n.length<16?new Uint8Array([144+n.length]):n.length<=65535?new Uint8Array([220,n.length>>8,n.length&255]):new Uint8Array([221,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return qn(t,...y)}function O5(n){let y=Object.entries(n).filter(([,o])=>typeof o<"u"),t=y.length<16?new Uint8Array([128+y.length]):y.length<=65535?new Uint8Array([222,y.length>>8,y.length&255]):new Uint8Array([223,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return qn(t,...y.flatMap(([o,f])=>[jC(o),et(f)]))}function et(n){if(n===null)return new Uint8Array([192]);if(typeof n==="boolean")return new Uint8Array([n?195:194]);if(typeof n==="string")return jC(n);if(typeof n==="number"){if(!Number.isFinite(n)||!Number.isInteger(n))throw new st("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return bC(BigInt(n))}if(typeof n==="bigint")return bC(n);if(n instanceof Uint8Array){let y=n.length<=255?new Uint8Array([196,n.length]):n.length<=65535?new Uint8Array([197,n.length>>8,n.length&255]):new Uint8Array([198,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return qn(y,n)}if(Array.isArray(n))return D5(n);if(typeof n==="object")return O5(n);throw new st("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(n)}`})}function x5(n){let y=n.startsWith("0x")?n.slice(2):n;if(y.length%2!==0||/[^a-fA-F0-9]/u.test(y))throw new st("helpers_invalid_params",{hexValue:n});let t=new Uint8Array(y.length/2);for(let o=0;o<y.length;o+=2)t[o/2]=Number.parseInt(y.slice(o,o+2),16);return t}function cC(n){return{domain:M5,message:{connectionId:n,source:"a"},primaryType:"Agent",types:{Agent:[...Z5.Agent]}}}function iC(n){let y=Y5[n.type],t=J5[n.type],{type:o,...f}=n;return{domain:{chainId:Number.parseInt(f.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:VC,version:"1"},message:{...f,hyperliquidChain:f.hyperliquidChain||KC},primaryType:y,types:{[y]:t}}}function hC(n){let y=Q5.from(n);return{r:y.r,s:y.s,v:y.v}}function mC(n,y,{expiresAfter:t,vaultAddress:o}={}){let f=et(n),T=rn(BigInt(y),8),C=o?qn(new Uint8Array([1]),x5(o.toLowerCase())):new Uint8Array([0]),H=typeof t==="number"?qn(new Uint8Array([0]),rn(BigInt(t),8)):new Uint8Array;return L5(qn(f,T,C,H))}function rC(n){let y=n.hyperliquidChain||KC;switch(n.type){case"approveAgent":return{...n,agentAddress:n.agentAddress.toLowerCase(),hyperliquidChain:y};case"approveBuilderFee":return{...n,builder:n.builder.toLowerCase(),hyperliquidChain:y};case"sendAsset":return{...n,destination:n.destination.toLowerCase(),fromSubAccount:n.fromSubAccount.toLowerCase(),hyperliquidChain:y};case"tokenDelegate":return{...n,hyperliquidChain:y,validator:n.validator.toLowerCase()};case"usdClassTransfer":return{...n,hyperliquidChain:y};default:return n}}var VC="0x0000000000000000000000000000000000000000",M5,Z5,KC="Mainnet",J5,Y5,N5;var gC=F(()=>{M5={chainId:1337,name:"Exchange",verifyingContract:VC,version:"1"},Z5={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},J5={approveAgent:[{name:"hyperliquidChain",type:"string"},{name:"agentAddress",type:"address"},{name:"agentName",type:"string"},{name:"nonce",type:"uint64"}],approveBuilderFee:[{name:"hyperliquidChain",type:"string"},{name:"maxFeeRate",type:"string"},{name:"builder",type:"address"},{name:"nonce",type:"uint64"}],sendAsset:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"sourceDex",type:"string"},{name:"destinationDex",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"fromSubAccount",type:"string"},{name:"nonce",type:"uint64"}],tokenDelegate:[{name:"hyperliquidChain",type:"string"},{name:"validator",type:"address"},{name:"wei",type:"uint64"},{name:"isUndelegate",type:"bool"},{name:"nonce",type:"uint64"}],usdClassTransfer:[{name:"hyperliquidChain",type:"string"},{name:"amount",type:"string"},{name:"toPerp",type:"bool"},{name:"nonce",type:"uint64"}]},Y5={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},N5=new TextEncoder});import{AssetValue as yT,Chain as R5,derivationPathToString as S5,getChainConfig as n1,getRPCUrl as F5,NetworkDerivationPath as u5,RequestClient as wy,SwapKitError as Do,updateDerivationPath as k5}from"@swapkit/helpers";import{HDNodeWallet as p5}from"ethers";import{match as I5,P as nT}from"ts-pattern";function Jn(n,y){if(!tT(n))throw new Do(y,{address:n});return n.toLowerCase()}async function wo(n){let y=await _f();return wy.post(`${y}/info`,{json:n})}function b5({dex:n,user:y}){return wo({...n?{dex:n}:{},type:"clearinghouseState",user:Jn(y,"helpers_invalid_params")})}function V5({user:n}){return wo({type:"spotClearinghouseState",user:Jn(n,"helpers_invalid_params")})}function K5({dex:n,user:y}){return wo({...n?{dex:n}:{},type:"openOrders",user:Jn(y,"helpers_invalid_params")})}function j5({dex:n,user:y}){return wo({...n?{dex:n}:{},type:"frontendOpenOrders",user:Jn(y,"helpers_invalid_params")})}function c5({oidOrCloid:n,user:y}){return wo({oid:n,type:"orderStatus",user:Jn(y,"helpers_invalid_params")})}function i5({aggregateByTime:n,user:y}){return wo({...typeof n==="boolean"?{aggregateByTime:n}:{},type:"userFills",user:Jn(y,"helpers_invalid_params")})}function h5({aggregateByTime:n,endTime:y,startTime:t,user:o}){return wo({...typeof n==="boolean"?{aggregateByTime:n}:{},...typeof y==="number"?{endTime:y}:{},startTime:t,type:"userFillsByTime",user:Jn(o,"helpers_invalid_params")})}function sC({coin:n,token:y,value:t}){if(!t||Number(t)<=0)return null;let o=n?.toUpperCase()||`TOKEN-${y||"UNKNOWN"}`,f=P5[o]||o1;return new yT({decimal:f,identifier:`${$n}.${o}`,value:t})}function m5(n){let y=new Map;for(let t of n){let o=t.toString({includeSynthProtocol:!0}),f=y.get(o);y.set(o,f?f.add(t):t)}if(![...y.values()].some((t)=>t.isGasAsset)){let t=yT.from({chain:$n,value:0});y.set(t.toString({includeSynthProtocol:!0}),t)}return[...y.values()]}async function _f(){try{return await F5($n)}catch{let[n]=n1($n).rpcUrls;if(!n)throw new Do("helpers_chain_no_public_or_set_rpc_url",{chain:$n});return n}}async function fT(){return`${await _f()}/exchange`}function r5(n){let y=v5[n.type],{type:t,...o}=n,f=E5[t];return{domain:{chainId:Number.parseInt(n.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:$5,version:"1"},message:o,primaryType:y,types:{[y]:f}}}async function y1({action:n,expiresAfter:y,nonce:t,vaultAddress:o}){let f=t||Date.now(),T=o?Jn(o,"helpers_invalid_params"):void 0,C=await fT(),H=mC(n,f,{expiresAfter:y,vaultAddress:T});return{action:n,endpoint:C,expiresAfter:y,nonce:f,typedData:cC(H),vaultAddress:T}}async function f1({action:n,nonce:y,signatureChainId:t}){let o=y||n.nonce||Date.now(),f=t||n.signatureChainId||"0xa4b1",T=rC({...n,nonce:o,signatureChainId:f});return{action:T,endpoint:await fT(),nonce:o,typedData:iC(T)}}async function oT({assetValue:n,recipient:y,sender:t,signatureChainId:o,time:f}){let T=Jn(y,"core_transaction_invalid_recipient_address"),C=Jn(t,"core_transaction_invalid_sender_address"),H=await fT(),_=n.getValue("string"),A=f||Date.now(),G=n.ticker==="USDC"?{amount:_,destination:T,hyperliquidChain:dC,signatureChainId:o||aC,time:A,type:"usdSend"}:{amount:_,destination:T,hyperliquidChain:dC,signatureChainId:o||aC,time:A,token:n.address?n.address:(()=>{throw new Do("helpers_invalid_params",{asset:n.toString(),from:C})})(),type:"spotSend"};return{action:G,endpoint:H,nonce:A,typedData:r5(G)}}async function eC(n){let y=await wy.post(n.endpoint,{json:{action:n.action,...typeof n.expiresAfter==="number"?{expiresAfter:n.expiresAfter}:{},nonce:n.nonce,signature:n.signature,...n.vaultAddress?{vaultAddress:n.vaultAddress}:{}}});if(y.status!=="ok")throw new Do("core_transaction_failed",{response:y});return y}async function g5(n,y){let t=await _f(),o=y-5000;for(let f=0;f<5;f++){if(f>0)await new Promise((T)=>setTimeout(T,1000));try{let T=await wy.post(`${t}/info`,{json:{startTime:o,type:"userNonFundingLedgerUpdates",user:n}}),C=Array.isArray(T)?T.find((H)=>H.time&&H.time>=y&&(H.delta?.type==="spotTransfer"||H.delta?.type==="internalTransfer")):void 0;if(C?.hash)return C.hash}catch{}}return""}function tT(n){return n.startsWith("0x")&&eo(n)}function d5(n){let y=wn($n),t=n&&"index"in n?n.index||0:0,o=S5(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:k5(u5[$n],{index:t})),f,T=!1;function C(){if(T)return f;return f=I5(n).with({phrase:nT.string},({phrase:w})=>{return p5.fromPhrase(w,void 0,o)}).with({signer:nT.not(nT.nullish)},({signer:w})=>w).otherwise(()=>{return}),T=!0,f}async function H(){let w=C();return w?await w.getAddress():""}async function _(w){let B=C();if(!B)throw new Do("toolbox_hypercore_no_signer");let W=await B.signTypedData(w.typedData.domain,w.typedData.types,w.typedData.message);return{action:w.action,endpoint:w.endpoint,nonce:w.nonce,signature:hC(W),..."expiresAfter"in w?{expiresAfter:w.expiresAfter}:{},..."vaultAddress"in w?{vaultAddress:w.vaultAddress}:{}}}async function A(w){let B=Jn(w,"helpers_invalid_params");try{let W=await _f(),[l,M]=await Promise.all([wy.post(`${W}/info`,{json:{type:"spotClearinghouseState",user:B}}),wy.post(`${W}/info`,{json:{type:"clearinghouseState",user:B}})]),N=(l.spotState?.balances||l.balances||[]).map(({coin:z,token:X,total:U})=>sC({coin:z,token:X,value:U})).filter((z)=>!!z),Z=sC({coin:"USDC",value:M.withdrawable||M.marginSummary?.accountValue||M.marginSummary?.totalRawUsd});return m5(Z?[...N,Z]:N)}catch{return y(B)}}async function G(w){let B=C();if(!B)throw new Do("toolbox_hypercore_no_signer");let W=w.sender||await B.getAddress(),l=await oT({...w,feeRate:0,sender:W}),M=await _(l);return await eC(M),g5(W,l.nonce)}function Q(){return yT.from({chain:$n,value:0})}return{broadcastTransaction:eC,createL1ActionRequest:y1,createTransaction:oT,createUserSignedActionRequest:f1,estimateTransactionFee:Q,getAddress:H,getBalance:A,getState:{clearinghouse:b5,frontendOpenOrders:j5,openOrders:K5,orderStatus:c5,spotClearinghouse:V5,userFills:i5,userFillsByTime:h5},signTransaction:_,transfer:G,validateAddress:tT}}var $n,o1,P5,dC="Mainnet",aC="0xa4b1",$5="0x0000000000000000000000000000000000000000",E5,v5;var t1=F(()=>{Nt();kn();gC();$n=R5.HyperCore,{baseDecimal:o1}=n1($n),P5={HYPE:o1,USDC:6,USDT:6},E5={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}],usdSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},v5={spotSend:"HyperliquidTransaction:SpotSend",usdSend:"HyperliquidTransaction:UsdSend"}});var TT={};nn(TT,{validateHyperCoreAddress:()=>tT,getHyperCoreToolbox:()=>d5,createUserSignedActionRequest:()=>f1,createTransaction:()=>oT,createL1ActionRequest:()=>y1,buildUsdClassTransferAction:()=>G5,buildUpdateLeverageAction:()=>A5,buildUpdateIsolatedMarginAction:()=>U5,buildTopUpIsolatedOnlyMarginAction:()=>w5,buildTokenDelegateAction:()=>X5,buildSendAssetAction:()=>l5,buildScheduleCancelAction:()=>q5,buildOrderAction:()=>t5,buildModifyAction:()=>H5,buildCancelByCloidAction:()=>C5,buildCancelAction:()=>T5,buildBatchModifyAction:()=>_5,buildApproveBuilderFeeAction:()=>B5,buildApproveAgentAction:()=>W5});var CT=F(()=>{t1()});import{PublicKey as gn}from"@solana/web3.js";import{AssetValue as Af,Chain as vn,DerivationPath as a5,derivationPathToString as s5,getChainConfig as _1,getRPCUrl as e5,NetworkDerivationPath as nU,SwapKitError as Oo,updateDerivationPath as oU}from"@swapkit/helpers";import{match as yU,P as T1}from"ts-pattern";async function A1(n){let y=Af.from({address:n,chain:vn.Solana});if(y.symbol!=="UNKNOWN")return{decimals:y.decimal||0,id:n,logoURI:y.getIconUrl(),name:y.symbol,symbol:y.ticker};let t=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(n)}`;try{let o=await fetch(t);if(!o.ok)return null;let f=await o.json();if(!Array.isArray(f)||f.length===0)return null;return f.find((C)=>C.id===n)||null}catch{return null}}async function fU(n){let y=await En(),{PublicKey:t}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:o}=await import("@solana/spl-token"),f=new t(n),{baseDecimal:T}=_1(vn.Solana),C=await y.getBalance(f),H=[Af.from({chain:vn.Solana,fromBaseDecimal:T,value:C||0})],_=await y.getParsedTokenAccountsByOwner(f,{programId:o});for(let{account:A}of _.value){let G=A.data.parsed.info,Q=G.mint,w=G.tokenAmount.amount;if(Number(w)===0)continue;let B=await A1(Q),W=B?.symbol||"UNKNOWN",l=B?.decimals||G.tokenAmount.decimals;H.push(Af.from({asset:`${vn.Solana}.${W}-${Q}`,fromBaseDecimal:l,value:w}))}return H}function _T(n){try{let y=new gn(n);return gn.isOnCurve(y.toBytes())}catch{return!1}}function tU(n){let y=n&&"index"in n?n.index||0:0,t=s5(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:oU(nU[vn.Solana],{index:y})),o;async function f(){if(o)return o;return o=await yU(n).with({phrase:T1.string},({phrase:C})=>HT({derivationPath:t,phrase:C})).with({signer:T1.any},({signer:C})=>C).otherwise(()=>{return}),o}async function T(){let C=await f();return C?.publicKey?H1(C.publicKey):""}return{broadcastTransaction:Uf(En),createKeysForPath:HT,createTransaction:AT(En),createTransactionFromInstructions:_U,estimateTransactionFee:TU(En),getAddress:T,getAddressFromPubKey:H1,getBalance:wn(vn.Solana),getBalanceFromRPC:fU,getConnection:En,getPubkeyFromAddress:(C)=>new gn(C),signAndBroadcastTransaction:async(C)=>{let H=await C1(En,f)(C);return Uf(En)(H)},signTransaction:C1(En,f),transfer:AU(En,f),validateAddress:_T}}function TU(n){return async({recipient:y,assetValue:t,memo:o,isProgramDerivedAddress:f,sender:T})=>{let C=await n(),_=(await AT(n)({assetValue:t,isProgramDerivedAddress:f,memo:o,recipient:y,sender:T})).compileMessage(),A=await C.getFeeForMessage(_);if(A.value===null)throw new Oo("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:G}=_1(vn.Solana);return Af.from({chain:vn.Solana,fromBaseDecimal:G,value:A.value})}}async function En(){let{Connection:n}=await import("@solana/web3.js"),y=await e5(vn.Solana);return new n(y,{commitment:"confirmed",fetchMiddleware:(t,o,f)=>{let T={};for(let[C,H]of Object.entries(o?.headers??{})){let _=C.toLowerCase();if(_!=="pragma"&&_!=="solana-client")T[C]=H}f(t,{...o,headers:T})}})}function CU(n){return async({assetValue:y,recipient:t,sender:o,isProgramDerivedAddress:f})=>{let T=await n(),C=new gn(o);if(y.isGasAsset){let{Transaction:H,SystemProgram:_}=await import("@solana/web3.js");return new H().add(_.transfer({fromPubkey:C,lamports:y.getBaseValue("number"),toPubkey:new gn(t)}))}if(y.address)return HU({amount:y.getBaseValue("number"),connection:T,decimals:y.decimal,from:C,isProgramDerivedAddress:f,recipient:t,tokenAddress:y.address});return}}async function HU({tokenAddress:n,recipient:y,from:t,connection:o,amount:f,decimals:T,isProgramDerivedAddress:C}){let{getAssociatedTokenAddress:H,getAccount:_,createAssociatedTokenAccountInstruction:A,createTransferCheckedInstruction:G}=await import("@solana/spl-token"),{Transaction:Q}=await import("@solana/web3.js"),w=new Q,B=new gn(n),W=await H(B,t),l=new gn(y),M=await H(B,l,C),N=!1;try{await _(o,M),N=!0}catch{}if(!N)w.add(A(t,M,l,B));return w.add(G(W,B,M,t,f,T)),w}function AT(n){return async({recipient:y,assetValue:t,memo:o,isProgramDerivedAddress:f,sender:T})=>{let{createMemoInstruction:C}=await import("@solana/spl-memo"),H=new gn(T);if(!(f||_T(y)))throw new Oo("core_transaction_invalid_recipient_address");let _=await n(),A=await CU(n)({assetValue:t,isProgramDerivedAddress:f,recipient:y,sender:T});if(!A)throw new Oo("core_transaction_invalid_sender_address");if(o)A.add(C(o));let G=await _.getLatestBlockhash();return A.recentBlockhash=G.blockhash,A.feePayer=H,A}}async function _U({instructions:n}){let{Transaction:y}=await import("@solana/web3.js"),t=new y().add(...n);if(!t)throw new Oo("core_transaction_invalid_sender_address");return t}function AU(n,y){return async({recipient:t,assetValue:o,memo:f,isProgramDerivedAddress:T})=>{let C=await y();if(!C)throw new Oo("core_transaction_invalid_sender_address");let H=C.publicKey?.toString()??(await C.connect()).publicKey.toString(),_=await AT(n)({assetValue:o,isProgramDerivedAddress:T,memo:f,recipient:t,sender:H});if("signTransaction"in C){let A=await C.signTransaction(_);return Uf(n)(A)}return _.sign(C),Uf(n)(_)}}function Uf(n){return async(y)=>{return(await n()).sendRawTransaction(y.serialize())}}function C1(n,y){return async(t)=>{let o=await y();if(!o)throw new Oo("toolbox_solana_no_signer");let{VersionedTransaction:f}=await import("@solana/web3.js");if(!(t instanceof f)){let C=await(await n()).getLatestBlockhash();t.recentBlockhash=C.blockhash,t.feePayer=o.publicKey||void 0}if("connect"in o)return await o.signTransaction(t);return t.sign([o]),t}}async function HT({phrase:n,derivationPath:y=a5.SOL}){let{HDKey:t}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:o}=await import("@scure/bip39"),{Keypair:f}=await import("@solana/web3.js"),T=o(n),C=t.fromMasterSeed(T);return f.fromSeed(C.derive(y,!0).privateKey)}function H1(n){return n.toString()}var U1=F(()=>{kn()});var UT={};nn(UT,{validateSolanaAddress:()=>_T,getSolanaToolbox:()=>tU,fetchTokenMetaData:()=>A1,createKeysForPath:()=>HT});var wT=F(()=>{U1()});import{AssetValue as wf,Chain as qf,DerivationPath as q1,derivationPathToString as UU,getChainConfig as wU,getRPCUrl as lT,NetworkDerivationPath as qU,SwapKitError as Qn,updateDerivationPath as GU}from"@swapkit/helpers";import{match as qT,P as xo}from"ts-pattern";function Gf(n){if(!n)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(n)}async function lf({phrase:n,derivationPath:y=q1.STRK}){let{HDKey:t}=await import("@scure/bip32"),{mnemonicToSeedSync:o}=await import("@scure/bip39"),{ec:f,hash:T,encode:C,CallData:H}=await import("starknet"),_=o(n),G=t.fromMasterSeed(_).derive(y);if(!G.privateKey)throw new Qn("toolbox_starknet_no_signer");let Q=C.addHexPrefix(Buffer.from(G.privateKey).toString("hex")),w=f.starkCurve.grindKey(Q),B=C.addHexPrefix(w),W=f.starkCurve.getStarkKey(B),l=H.compile([W,0]);return{address:T.calculateContractAddressFromHash(W,WT,l,0),privateKey:B,publicKey:W}}async function BT({phrase:n,derivationPath:y=q1.STRK}){let{Account:t,RpcProvider:o}=await import("starknet"),{privateKey:f,address:T}=await lf({derivationPath:y,phrase:n}),C=await lT(qf.Starknet),H=new o({nodeUrl:C});return new t({address:T,provider:H,signer:f})}function G1(n){let y=qf.Starknet,t=n&&"index"in n?n.index||0:0,o=UU(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:GU(qU[y],{index:t})),f,T,C;async function H(){if(T)return T;let{RpcProvider:U}=await import("starknet"),q=await lT(y);return T=new U({nodeUrl:q}),T}async function _(U){let q=await H(),L=U||await w();if(!L)return!1;try{return await q.getClassHashAt(L),!0}catch(Y){if(Y instanceof Error&&Y.message.includes("Contract not found"))return!1;let D=Y;if(D?.code===20||D?.code===19)return!1;throw Y}}async function A(){let{CallData:U,hash:q}=await import("starknet"),L=await H(),Y=await Q();if(!Y)throw new Qn("toolbox_starknet_no_signer");if(!C)throw new Qn({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await _())return Y.address;let J=U.compile([C,0]);if(q.calculateContractAddressFromHash(C,WT,J,0).toLowerCase()!==Y.address.toLowerCase())throw new Qn({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let x={addressSalt:C,classHash:WT,constructorCalldata:J},{transaction_hash:u}=await Y.deployAccount(x);return await L.waitForTransaction(u),u}async function G(){if(!await _()){if(!C)throw new Qn({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await A()}}async function Q(){if(f)return f;return f=await qT(n).with({phrase:xo.string},async({phrase:U})=>{let{Account:q,RpcProvider:L}=await import("starknet"),{privateKey:Y,address:D,publicKey:J}=await lf({derivationPath:o,phrase:U});C=J;let O=await lT(qf.Starknet),x=new L({nodeUrl:O});return new q({address:D,provider:x,signer:Y})}).with({address:xo.string,privateKey:xo.string},async({privateKey:U,address:q})=>{let{Account:L}=await import("starknet"),Y=await H();return new L({address:q,provider:Y,signer:U})}).with({signer:xo.instanceOf(Object)},({signer:U})=>U).otherwise(()=>{return}),f}async function w(){return(await Q())?.address??""}async function B(U){let q=await H(),{uint256:L,CallData:Y}=await import("starknet"),D=[],J=[GT,w1];for(let O of J)try{let[x="0",u="0"]=await q.callContract({calldata:Y.compile({account:U}),contractAddress:O,entrypoint:"balanceOf"}),p=L.uint256ToBN({high:x,low:u});qT(O).with(GT,()=>{D.push(wf.from({chain:y,value:p}))}).with(w1,()=>{if(p>0n)D.push(wf.from({asset:`${y}.ETH-${O}`,value:p}))}).otherwise(()=>{})}catch{}return D}async function W({recipient:U,assetValue:q}){let{CallData:L,uint256:Y}=await import("starknet");if(!Gf(U))throw new Qn("core_transaction_invalid_recipient_address",{address:U});let D=q.isGasAsset?GT:q.address;if(!D)throw new Qn("toolbox_starknet_invalid_address",{address:D,assetValue:q});let J=Y.bnToUint256(q.getBaseValue("bigint"));return[{calldata:L.compile([U,J]),contractAddress:D,entrypoint:"transfer"}]}async function l({recipient:U,assetValue:q,sender:L}){let{baseDecimal:Y}=wU(qf.Starknet),D=await Q(),J=await qT({sender:L,signer:D}).with({sender:xo.string},async({sender:O})=>{let{Account:x}=await import("starknet"),u=await H();return new x({address:O,provider:u,signer:"0x0"})}).with({signer:xo.nonNullable},({signer:O})=>O).otherwise((O)=>{throw new Qn({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:O}})});try{let O=await W({assetValue:q,recipient:U}),x=await J.estimateInvokeFee(O);if(x?.overall_fee)return wf.from({chain:y,fromBaseDecimal:Y,value:x.overall_fee})}catch(O){throw new Qn("toolbox_starknet_fee_estimation_failed",O)}return wf.from({chain:y,value:"0.00001"})}async function M({recipient:U,assetValue:q,memo:L}){let Y=await Q();if(!Y)throw new Qn("toolbox_starknet_no_signer");await G();let D=await W({assetValue:q,memo:L,recipient:U});return(await Y.execute(D)).transaction_hash}async function N(U){let q=await Q();if(!q)throw new Qn("toolbox_starknet_no_signer");let L=await q.signMessage(U);return Array.isArray(L)?L:[L.r.toString(),L.s.toString()]}async function Z(U){let q=await Q();if(!q)throw new Qn("toolbox_starknet_no_signer");return await G(),(await q.execute(U)).transaction_hash}function z(U){return Z(U)}function X(U,q=!0){try{return wn(y)(U,q)}catch{return B(U)}}return{broadcastTransaction:Z,createKeysForPath:BT,createTransaction:W,deployAccount:A,estimateTransactionFee:l,getAddress:w,getBalance:X,getProvider:H,isAccountDeployed:_,signAndBroadcastTransaction:z,signMessage:N,transfer:M,validateAddress:Gf}}var GT="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",w1="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",WT="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var l1=F(()=>{kn()});var Wf={};nn(Wf,{validateStarknetAddress:()=>Gf,starknetCreateKeysForPath:()=>BT,getStarknetToolbox:()=>G1,deriveStarknetKeys:()=>lf});var Bf=F(()=>{l1()});import{isValidSuiAddress as lU}from"@mysten/sui/utils";import{AssetValue as Ro,Chain as Xf,getChainConfig as WU,SwapKitError as Yn}from"@swapkit/helpers";import{match as BU,P as W1}from"ts-pattern";async function X1(n,y,t,o=[],f){let T=await n.getCoins({coinType:t,cursor:f,owner:y}),C=[...o,...T.data];return T.hasNextPage?X1(n,y,t,C,T.nextCursor):C}function XU(n,y,t){let o=y.reduce((_,A)=>_+BigInt(A.balance),0n);if(o<t)throw new Yn("toolbox_sui_insufficient_balance",{available:o.toString(),required:t.toString()});let{ids:f}=y.reduce((_,A)=>{if(_.total>=t)return _;return{ids:[..._.ids,A.coinObjectId],total:_.total+BigInt(A.balance)}},{ids:[],total:0n}),T=f[0],C=f.slice(1);if(C.length>0)n.mergeCoins(T,C);let[H]=n.splitCoins(T,[t]);return H}function L1(n){try{return lU(n)}catch{return!1}}function B1(n){return"signWithIntent"in n}function LU({provider:n,...y}={}){let t;async function o(){if(t)return t;return t=await BU(y).with({phrase:W1.string},async({phrase:W})=>{let{Ed25519Keypair:l}=await import("@mysten/sui/keypairs/ed25519");return l.deriveKeypair(W)}).with({signer:W1.any},({signer:W})=>W).otherwise(()=>{return}),t}async function f(W=n){let{SuiClient:l,getFullnodeUrl:M}=await import("@mysten/sui/client");return new l({url:W||M("mainnet")})}async function T(){return(await o())?.toSuiAddress()||""}function C(W){try{let l=Ro.from({address:W,chain:Xf.Sui});return{asset:l.toString(),decimals:l.decimal}}catch{}return null}async function H(W){let l=W||await T();if(!l)throw new Yn("toolbox_sui_address_required");let{baseDecimal:M,chain:N}=WU(Xf.Sui);try{let Z=await f(),{totalBalance:z}=await Z.getBalance({owner:l}),X=[Ro.from({chain:N,fromBaseDecimal:M,value:z})],U=await Z.getAllBalances({owner:l});for(let{coinType:q,totalBalance:L}of U){if(q==="0x2::sui::SUI"||Number(L)<=0)continue;let Y=C(q);if(Y)X.push(Ro.from({asset:Y.asset,fromBaseDecimal:Y.decimals,value:L}))}return X}catch{return[Ro.from({chain:N})]}}async function _(W){let l=Ro.from({chain:Xf.Sui,value:"0.01"});if(!W)return l;try{let M=await f(),{txBytes:N}=await A(W),{effects:{status:Z,gasUsed:z}}=await M.dryRunTransactionBlock({transactionBlock:N});if(Z.status!=="success")return l;let X=Number(z.computationCost)+Number(z.storageCost)-Number(z.storageRebate);return Ro.from({chain:Xf.Sui,value:X.toString()})}catch{return l}}async function A({recipient:W,assetValue:l,gasBudget:M,sender:N}){let{Transaction:Z}=await import("@mysten/sui/transactions"),z=N||await T();if(!z)throw new Yn("toolbox_sui_no_sender");try{let X=new Z;if(X.setSender(z),l.isGasAsset||l.symbol==="SUI"){let[L]=X.splitCoins(X.gas,[l.getBaseValue("string")]);X.transferObjects([L],W)}else{let L=l.address;if(!L)throw new Yn("toolbox_sui_missing_coin_type");let Y=await f(),D=l.getBaseValue("bigint"),J=await X1(Y,z,L);if(!J.length)throw new Yn("toolbox_sui_no_coins_found",{coinType:L});let O=XU(X,J,D);X.transferObjects([O],W)}if(M)X.setGasBudget(M);let U=await f(),q=await X.build({client:U});return{tx:X,txBytes:q}}catch(X){if(X instanceof Yn)throw X;throw new Yn("toolbox_sui_transaction_creation_error",{error:X})}}async function G(W){let l=await o();if(!l)throw new Yn("toolbox_sui_no_signer");if(W instanceof Uint8Array)return l.signTransaction(W);let{txBytes:M}="tx"in W?W:await A(W);return l.signTransaction(M)}async function Q({assetValue:W,gasBudget:l,recipient:M}){let N=await o();if(!N)throw new Yn("toolbox_sui_no_signer");let Z=N.toSuiAddress()||await T();if(!Z)throw new Yn("toolbox_sui_no_sender");let{txBytes:z}=await A({assetValue:W,gasBudget:l,recipient:M,sender:Z}),X=await f();if(!B1(N)){let q=await N.signTransaction(z),{digest:L}=await X.executeTransactionBlock({signature:q.signature,transactionBlock:q.bytes});return L}let{digest:U}=await X.signAndExecuteTransaction({signer:N,transaction:z});return U}async function w(W){let l=await f(),{digest:M}=await l.executeTransactionBlock({signature:W.signature,transactionBlock:W.bytes});return M}async function B(W){let l=await o();if(!l)throw new Yn("toolbox_sui_no_signer");let M=await f(),N;if(typeof W==="string")N=Uint8Array.from(Buffer.from(W,"base64"));else if(W instanceof Uint8Array)N=W;else N=await W.build({client:M});if(!B1(l)){let z=await l.signTransaction(N),{digest:X}=await M.executeTransactionBlock({signature:z.signature,transactionBlock:z.bytes});return X}let{digest:Z}=await M.signAndExecuteTransaction({signer:l,transaction:N});return Z}return{broadcastTransaction:w,createTransaction:A,estimateTransactionFee:_,getAddress:T,getBalance:H,signAndBroadcastTransaction:B,signTransaction:G,transfer:Q,validateAddress:L1}}var Q1=()=>{};var Lf={};nn(Lf,{validateSuiAddress:()=>L1,getSuiToolbox:()=>LU});var Qf=F(()=>{Q1()});import{getHttpEndpoint as QU}from"@orbs-network/ton-access";import{AssetValue as MU,Chain as Gy,getChainConfig as ZU,getRPCUrl as JU,SwapKitError as qy,SwapKitNumber as YU}from"@swapkit/helpers";import{mnemonicToWalletKey as NU}from"@ton/crypto";import{Address as bn,beginCell as XT,Cell as M1,external as zU,internal as DU,JettonMaster as OU,loadStateInit as xU,SendMode as Z1,storeMessage as RU,TonClient as SU,toNano as z1,WalletContractV4 as FU}from"@ton/ton";import{match as J1,P as LT}from"ts-pattern";async function PU(){let n=Date.now();if(Mf&&n-N1<IU)return Mf;try{return Mf=await QU(),N1=n,Mf}catch{return JU(Gy.Ton)}}function $U(n={}){let y,t,o;async function f(){if(!y){let X=n.provider??await PU();y=new SU({endpoint:X})}return y}async function T(){return(await H()).address.toString()}async function C(){if(o)return o;return o=await J1(n).with({phrase:LT.string},async({phrase:X})=>NU(X.split(" "))).with({signer:LT.any},({signer:X})=>X).otherwise(()=>{return}),o}async function H(X){if(!t||X){let U=await C(),q=await f(),L=X||U;if(!L)throw new qy("core_wallet_connection_not_found");let Y=FU.create({publicKey:L.publicKey,workchain:0});t=q.open(Y)}return t}let _=wn(Gy.Ton);async function A({assetValue:X,recipient:U,memo:q,sender:L}){if(X.isGasAsset){let v=q?z(q).toBoc().toString("base64"):void 0;return[{address:U,amount:X.getBaseValue("string"),payload:v}]}let Y=X.address;if(!Y)throw new qy({errorKey:"core_swap_contract_not_found",info:{asset:X.toString()}});let D=L??await T(),J=await N({jettonMasterAddress:Y,ownerAddress:D}),O=bn.parse(U),x=bn.parse(D),u=X.getBaseValue("bigint"),p=q?z(q):void 0,P=Z({destinationAddress:O,forwardPayload:p,jettonAmount:u,responseAddress:x});return[{address:J.toString(),amount:pU.toString(),payload:P.toBoc().toString("base64")}]}function G({sender:X,...U}){return A({...U,sender:X})}function Q(X){return X.map((U)=>{let q=U.payload?M1.fromBase64(U.payload):void 0,L=U.stateInit?xU(M1.fromBase64(U.stateInit).asSlice()):void 0,Y=bn.parse(U.address),D=bn.isFriendly(U.address)?bn.parseFriendly(U.address).isBounceable:!0;return DU({body:q,bounce:D,init:L,to:Y,value:BigInt(U.amount)})})}async function w(X){let U=await C(),q=await H();if(!q||!U)throw new qy("core_wallet_connection_not_found");let L=await f(),{state:Y}=await L.getContractState(q.address),D=Y==="active",J=D?await q.getSeqno():0,O=q.createTransfer({messages:Q(X),secretKey:U.secretKey,sendMode:Y1,seqno:J}),x=zU({body:O,init:D?void 0:q.init,to:q.address});return XT().store(RU(x)).endCell()}async function B(X){return await(await f()).sendFile(X.toBoc()),X.hash().toString("hex")}async function W(X){let U=await w(X);return B(U)}async function l({assetValue:X,recipient:U,memo:q}){let L=await G({assetValue:X,memo:q,recipient:U});return W(L)}async function M({sender:X,...U}){let{baseDecimal:q}=ZU(Gy.Ton),L=await J1(X).with(LT.string,(J)=>{return bn.parseFriendly(J).address}).otherwise(async()=>{return(await H()).address});if(!L)throw new qy("toolbox_fee_estimation_failed",{chain:Gy.Ton});let Y=MU.from({chain:Gy.Ton,value:"0.01"}),D=await f();try{let J=await G({sender:X,...U}),O=await C(),x=await H();if(!x||!O)return Y;let u=await x.getSeqno(),p=x.createTransfer({messages:Q(J),secretKey:O.secretKey,sendMode:Y1,seqno:u}),{source_fees:P}=await D.estimateExternalMessageFee(L,{body:p,ignoreSignature:!0,initCode:null,initData:null}),v=P.in_fwd_fee+P.storage_fee+P.gas_fee+P.fwd_fee;return Y.set(YU.fromBigInt(BigInt(v),q))}catch{return Y}}async function N({jettonMasterAddress:X,ownerAddress:U}){try{let q=await f(),L=bn.parse(X),Y=bn.parse(U);return await q.open(OU.create(L)).getWalletAddress(Y)}catch{throw new qy({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:X,ownerAddress:U}})}}function Z({jettonAmount:X,destinationAddress:U,responseAddress:q,forwardAmount:L=kU,forwardPayload:Y}){let D=XT().storeUint(uU,32).storeUint(0,64).storeCoins(X).storeAddress(U).storeAddress(q).storeBit(0).storeCoins(L);if(Y)D.storeBit(1).storeRef(Y);else D.storeBit(0);return D.endCell()}function z(X){return XT().storeUint(0,32).storeStringTail(X).endCell()}return{broadcastTransaction:B,createTransaction:G,estimateTransactionFee:M,getAddress:T,getBalance:_,getJettonWalletAddress:N,sign:w,signAndBroadcastTransaction:W,transfer:l,validateAddress:D1}}function D1(n){try{return bn.parse(n),!0}catch{return!1}}var uU=260734629,kU,pU,Y1,IU=60000,Mf,N1=0;var O1=F(()=>{kn();kU=z1("0.01"),pU=z1("0.05"),Y1=Z1.PAY_GAS_SEPARATELY+Z1.IGNORE_ERRORS});var Zf={};nn(Zf,{validateTonAddress:()=>D1,getTONToolbox:()=>$U});var Jf=F(()=>{O1()});function x1({deriveAddress:n,getBalance:y,getUtxos:t}){async function o(H){let{count:_,startIndex:A=0,change:G=!1}=H,Q=[];for(let w=0;w<_;w++){let B=await n({change:G,index:A+w});if(B)Q.push(B)}return Q}async function f(H){let{gapLimit:_=20,change:A=!1}=H??{},G=[],Q=0,w=0;while(Q<_){let B=await n({change:A,index:w});if(!B)break;if((await y(B.address)).some((M)=>M.getValue("number")>0))G.push(B),Q=0;else Q++;w++}return G}async function T(H=20){let[_,A]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),G=[..._,...A],Q=await Promise.all(G.map(async(B)=>{let l=(await y(B.address)).reduce((M,N)=>M+N.getValue("number"),0);return{...B,balance:l}})),w=Q.reduce((B,W)=>B+W.balance,0);return{addresses:Q,total:w}}async function C(H=20){let[_,A]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),G=[..._,...A];return(await Promise.all(G.map(async(w)=>{return(await t(w.address)).map((W)=>({...W,address:w.address,derivationIndex:w.index,isChange:w.change}))}))).flat()}return{deriveAddresses:o,getAggregatedBalance:T,getAggregatedUtxos:C,scanForAddresses:f}}import{Chain as tn,getRPCUrl as EU,RequestClient as Yf,SKConfig as vU,SwapKitError as Rn,warnOnce as bU}from"@swapkit/helpers";import{NETWORKS as So}from"@swapkit/utxo-signer";async function VU({chain:n,txHash:y}){let t=`${ly(n)}/push/transaction`,o=JSON.stringify({data:y});try{let f=await Yf.post(t,{body:o,headers:{"Content-Type":"application/json"}});if(f.context.code!==200)throw new Rn("toolbox_utxo_broadcast_failed",{error:f.context.error||"Transaction broadcast failed"});return f.data?.transaction_hash||y}catch(f){let T=await EU(n);if(T){let C=JSON.stringify({id:Y0(),jsonrpc:"2.0",method:"sendrawtransaction",params:[y]}),H=await Yf.post(T,{body:C,headers:{"Content-Type":"application/json"}});if(H.error)throw new Rn("toolbox_utxo_broadcast_failed",{error:H.error?.message});if(H.result.includes('"code":-26'))throw new Rn("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return H.result}throw f}}function ly(n){return`https://api.blockchair.com/${KU(n)}`}function R1(n){switch(n){case tn.Bitcoin:return 5;case tn.Dogecoin:return 1e4;case tn.Litecoin:return 1;case tn.Zcash:return 1;default:return 2}}function KU(n){switch(n){case tn.BitcoinCash:return"bitcoin-cash";case tn.Litecoin:return"litecoin";case tn.Dash:return"dash";case tn.Dogecoin:return"dogecoin";case tn.Zcash:return"zcash";case tn.Polkadot:return"polkadot";default:return"bitcoin"}}async function jU(n){try{let{feePerKb:y}=await Yf.get(`https://app.bitgo.com/api/v2/${n.toLowerCase()}/tx/fee`),t=y/1000;return Math.max(t,R1(n))}catch{return R1(n)}}async function Nf(n,y){let t=await Yf.get(`${n}${y?`${n.includes("?")?"&":"?"}key=${y}`:""}`);if(!t||t.context.code!==200)throw new Rn("toolbox_utxo_api_error",{error:`Failed to query ${n}`});return t.data}async function F1({address:n,chain:y,apiKey:t}){if(!n)throw new Rn("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Nf(`${ly(y)}/dashboards/address/${n}?transaction_details=true`,t))[n]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function cU({address:n,chain:y,apiKey:t}){return(await F1({address:n,apiKey:t,chain:y}))?.address.balance||0}async function u1({chain:n,apiKey:y,txHash:t}){if(!t)throw new Rn("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Nf(`${ly(n)}/raw/transaction/${t}`,y))?.[t]?.raw_transaction||""}catch(o){let f=o instanceof Error?o.message:String(o);return console.error(`Failed to fetch raw transaction: ${f}`),""}}async function hU({chain:n,apiKey:y,txHash:t}){if(!t)throw new Rn("toolbox_utxo_invalid_params",{error:"TxHash is required"});let f=(await Nf(`${ly(n)}/dashboards/transaction/${t}`,y))?.[t];if(!f)throw new Rn("toolbox_utxo_tx_not_found",{txHash:t});let{transaction:T,inputs:C,outputs:H}=f,_=C.map((G)=>G.spending_sequence),A=T.is_rbf===!0||_.some((G)=>G<iU);return{blockId:T.block_id,confirmed:T.block_id!==-1,fee:T.fee,inputs:C,isRBF:A,outputs:H,sequences:_,size:T.size,txid:T.hash,weight:T.weight}}async function mU({chain:n,address:y,apiKey:t,offset:o=0,limit:f=30}){return(await Nf(`${ly(n)}/outputs?q=recipient(${y}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${f}&offset=${o}`,t)).map(({is_spent:_,script_hex:A,block_id:G,transaction_hash:Q,index:w,value:B,spending_signature_hex:W})=>({hash:Q,index:w,is_confirmed:G!==-1,is_spent:_,script_hex:A,txHex:W,value:B}))}function rU(n){return n.reduce((y,t)=>y+t.value,0)}function S1(n,y){let t=[...n].sort((o,f)=>f.value-o.value);if(y){let o=[],f=0;for(let T of t)if(o.push(T),f+=T.value,f>=y)break;return o}return t}async function k1({chain:n,address:y,apiKey:t,targetValue:o,accumulativeValue:f=0,offset:T=0,limit:C=30}){if(!y)throw new Rn("toolbox_utxo_invalid_params",{error:"Address is required"});try{let H=await mU({address:y,apiKey:t,chain:n,limit:C,offset:T,targetValue:o}),A=H.length<C,G=H.filter(({is_spent:M})=>!M),Q=rU(G),w=f+Q,B=o&&w>=o;if(A||B)return S1(G,o);let W=await k1({accumulativeValue:w,address:y,apiKey:t,chain:n,limit:C,offset:T+C,targetValue:o}),l=[...G,...W];return S1(l,o)}catch(H){let _=H instanceof Error?H.message:String(H);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function gU({address:n,chain:y,apiKey:t,fetchTxHex:o=!0,targetValue:f}){let T=await k1({address:n,apiKey:t,chain:y,targetValue:f}),C=[];for(let{hash:H,index:_,script_hex:A,value:G}of T){let Q;if(o)Q=await u1({apiKey:t,chain:y,txHash:H});C.push({address:n,hash:H,index:_,txHex:Q,value:G,witnessUtxo:{script:Buffer.from(A,"hex"),value:G}})}return C}function s(n){let y=vU.get("apiKeys").blockchair||"";return bU({condition:!y,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(t)=>VU({chain:n,txHash:t}),getAddressData:(t)=>F1({address:t,apiKey:y,chain:n}),getBalance:(t)=>cU({address:t,apiKey:y,chain:n}),getRawTx:(t)=>u1({apiKey:y,chain:n,txHash:t}),getSuggestedTxFee:()=>jU(n),getTransactionDetails:(t)=>hU({apiKey:y,chain:n,txHash:t}),getUtxos:(t)=>gU({...t,apiKey:y,chain:n})}}function dU(n){return n}function aU(){return function(y){switch(y){case tn.Bitcoin:return So.bitcoin;case tn.BitcoinCash:return So.bitcoinCash;case tn.Dash:return So.dash;case tn.Litecoin:return So.litecoin;case tn.Dogecoin:return So.dogecoin;case tn.Zcash:return So.zcash;default:throw new Rn("toolbox_utxo_not_supported",{chain:y})}}}var iU=4294967294;var p1=F(()=>{kn()});import{CashAddrType as zf,decodeCashAddr as sU,encodeCashAddr as eU}from"@swapkit/utxo-signer";function y2(n,y,t){return eU({hash:t,prefix:n,type:n2[y]})}function f2(n){let y=sU(n),t=o2[y.type];if(!t)throw Error(`Unknown CashAddr type: ${y.type}`);return{hash:y.hash,prefix:y.prefix,type:t}}var n2,o2,QT;var I1=F(()=>{n2={P2PKH:zf.P2PKH,P2SH:zf.P2SH},o2={[zf.P2PKH]:"P2PKH",[zf.P2SH]:"P2SH"};QT={decode:f2,encode:y2}});import{sha256 as t2}from"@noble/hashes/sha2.js";import{createBase58check as T2}from"@scure/base";import{SwapKitError as $1}from"@swapkit/helpers";function ZT(n){try{return Df(n),!0}catch{return!1}}function JT(n){return Df(n)?.network}function Vn(n){let y=Df(n);if(y?.format==="legacy")return n;return _2(y)}function Wy(n){let y=Df(n);return A2(y)}function Df(n){try{let y=C2(n);if(y)return y}catch{}try{let y=H2(n);if(y)return y}catch{}throw new $1("toolbox_utxo_invalid_address",{address:n})}function C2(n){try{let y=E1.decode(n);if(y.length!==21)throw new $1("toolbox_utxo_invalid_address",{address:n});let t=y[0],o=Array.prototype.slice.call(y,1);switch(t){case qo.legacy.mainnet.p2pkh:return{format:"legacy",hash:o,network:"mainnet",type:"p2pkh"};case qo.legacy.mainnet.p2sh:return{format:"legacy",hash:o,network:"mainnet",type:"p2sh"};case qo.legacy.testnet.p2pkh:return{format:"legacy",hash:o,network:"testnet",type:"p2pkh"};case qo.legacy.testnet.p2sh:return{format:"legacy",hash:o,network:"testnet",type:"p2sh"};case qo.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:o,network:"mainnet",type:"p2pkh"};case qo.bitpay.mainnet.p2sh:return{format:"bitpay",hash:o,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function H2(n){if(n.indexOf(":")!==-1)try{return P1(n)}catch{}else{let y=["bitcoincash","bchtest","bchreg"];for(let t of y)try{return P1(`${t}:${n}`)}catch{}}return}function P1(n){try{let{hash:y,prefix:t,type:o}=QT.decode(n);return{format:"cashaddr",hash:Array.prototype.slice.call(y,0),network:t==="bitcoincash"?"mainnet":"testnet",type:o==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function _2(n){let y=qo.legacy[n.network][n.type],t=Buffer.alloc(1+n.hash.length);return t[0]=y,t.set(n.hash,1),E1.encode(t)}function A2(n){let y=n.network==="mainnet"?"bitcoincash":"bchtest",t=n.type==="p2pkh"?"P2PKH":"P2SH",o=new Uint8Array(n.hash);return QT.encode(y,t,o)}var E1,MT,qo;var v1=F(()=>{I1();E1=T2(t2);((t)=>{t.Mainnet="mainnet";t.Testnet="testnet"})(MT||={});qo={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as U2}from"@swapkit/helpers";import{Script as w2}from"@swapkit/utxo-signer";function Wn(n){let y=new Uint8Array(Buffer.from(n,"utf8"));return w2.encode(["RETURN",y])}var q2=1000,xf=10,Rf=2,b1=10,G2=41,l2=107,Sf,Of,By,Fo=(n)=>{if(n.startsWith("bc1")||n.startsWith("tb1")||n.startsWith("ltc1")||n.startsWith("tltc1"))return"P2WPKH";if(n.startsWith("1")||n.startsWith("m")||n.startsWith("n")||n.startsWith("bitcoincash:q")||n.startsWith("bitcoincash:p")||n.startsWith("q")||n.startsWith("p")||n.startsWith("L")||n.startsWith("M")||n.startsWith("3")||n.startsWith("D")||n.startsWith("A")||n.startsWith("9")||n.startsWith("X")||n.startsWith("7")||n.startsWith("y")||n.startsWith("t1")||n.startsWith("t3")||n.startsWith("tm"))return"P2PKH";throw new U2("toolbox_utxo_invalid_address",{address:n})},Go=({inputs:n,outputs:y,feeRate:t})=>{let o=n[0]&&"address"in n[0]&&n[0].address?Fo(n[0].address):"P2PKH",T=(t?n.filter((A)=>A.value>=Of["type"in A&&A.type?A.type:"P2PKH"]*Math.ceil(t)):n).reduce((A,G)=>A+dn(G),0),C=y?.reduce((A,G)=>A+Xy(G),0)||By[o],H=xf+T+C;return o==="P2WPKH"?Math.ceil(H+Rf/4):H},dn=(n)=>{if("type"in n&&n.type)return Of[n.type];if("address"in n&&n.address)return Of[Fo(n.address)];return G2+l2},Xy=(n,y)=>{if(n?.script)return b1+n.script.length+(n.script.length>=74?2:1);if(y)return By[y];if("address"in n&&n.address)return By[Fo(n.address)];return By.P2PKH};var YT=F(()=>{((t)=>{t.P2PKH="P2PKH";t.P2WPKH="P2WPKH"})(Sf||={});Of={["P2PKH"]:148,["P2WPKH"]:68},By={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as lo,SwapKitError as W2}from"@swapkit/helpers";function Ly(n){switch(n){case lo.Bitcoin:case lo.BitcoinCash:return 550;case lo.Dash:case lo.Litecoin:return 5500;case lo.Dogecoin:return 1e5;case lo.Zcash:return 546;default:throw new W2("toolbox_utxo_not_supported",{chain:n})}}function Nn({inputs:n,outputs:y,feeRate:t=1,chain:o=lo.Bitcoin,changeAddress:f=""}){let T=n[0]&&"address"in n[0]&&n[0].address?Fo(n[0].address):"P2PKH",C=n.filter((W)=>dn(W)*t<=W.value),_=T==="P2WPKH"?Math.ceil(Rf/4):0,A=xf+_+y.reduce((W,l)=>W+Xy(l),0),G=y.reduce((W,l)=>W+l.value,0),Q=A*t,w=0,B=[];for(let W of C){let l=dn(W),M=t*l;Q+=M,w+=W.value,B.push(W);let N=Q+G;if(w<N)continue;let Z=w-N,z=t*Xy({address:f,value:0});if(Z>z){let X=z+Q,U=w-(G+Math.ceil(X));if(U>Math.max(dn({value:0})*t,Ly(o)))return{fee:Math.ceil(X),inputs:B,outputs:y.concat({address:f,value:U})}}return{fee:Math.ceil(Q),inputs:B,outputs:y}}return{fee:Math.ceil(t*Go({inputs:n,outputs:y}))}}var V1=F(()=>{YT()});var uo=F(()=>{p1();v1();V1();YT()});import{Address as B2,ZCASH_NETWORK as X2}from"@swapkit/utxo-signer";function Wo(n){return n.replace(/(bchtest:|bitcoincash:)/,"")}function an(n){let y=Wo(n);return ZT(y)&&JT(y)==="mainnet"}function ko(n){try{if(n.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let t=B2(X2).decode(n);return t.type==="pkh"||t.type==="sh"}catch{return!1}}var Qy=F(()=>{uo()});import{secp256k1 as L2}from"@noble/curves/secp256k1.js";import{hex as Bo}from"@scure/base";import{HDKey as i1}from"@scure/bip32";import{mnemonicToSeedSync as zT}from"@scure/bip39";import{AssetValue as Ff,applyFeeMultiplier as K1,Chain as e,derivationPathToString as h1,FeeOption as Sn,NetworkDerivationPath as m1,SwapKitError as j,SwapKitNumber as Q2,updateDerivationPath as M2,warnOnce as Z2}from"@swapkit/helpers";import{Address as J2,BCHSigHash as DT,CashAddrPrefix as Y2,CashAddrType as N2,encodeCashAddr as z2,NETWORKS as po,p2pkh as j1,p2wpkh as D2,RBF_SEQUENCE as O2,SigHash as r1,Transaction as NT,WIF as g1}from"@swapkit/utxo-signer";import{match as d1}from"ts-pattern";function OT({address:n,chain:y}){return d1(y).with(e.BitcoinCash,()=>an(n)).with(e.Zcash,()=>ko(n)).otherwise(()=>{try{return J2(Bn(y)).decode(n),!0}catch{return!1}})}function Bn(n){return d1(n).with(e.Bitcoin,()=>po.bitcoin).with(e.BitcoinCash,()=>po.bitcoinCash).with(e.Dash,()=>po.dash).with(e.Dogecoin,()=>po.dogecoin).with(e.Litecoin,()=>po.litecoin).with(e.Zcash,()=>po.zcash).exhaustive()}function x2({phrase:n,derivationPath:y,network:t,seed:o}){let f=o??zT(n),C=i1.fromMasterSeed(f,t.bip32).derive(y);if(!C.privateKey)throw new j("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return C.privateKey}function c1(n){return L2.getPublicKey(n,!0)}function xT({publicKey:n,chain:y,network:t}){if(y===e.BitcoinCash){let T=j1(n,t);if(!T.hash)throw new j("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return z2({hash:T.hash,prefix:Y2.MAINNET,type:N2.P2PKH}).replace(/^bitcoincash:/,"")}let f=!My.includes(y)?D2(n,t):j1(n,t);if(!f.address)throw new j("toolbox_utxo_invalid_address",{error:"Could not derive address"});return f.address}function Io({phrase:n,derivationPath:y,chain:t,wif:o,seed:f}){let T=Bn(t);if(o){let A=g1(T).decode(o),G=c1(A);return{privateKey:A,publicKey:G}}if(!n)throw new j("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let C=y||h1(m1[t]),H=x2({derivationPath:C,network:T,phrase:n,seed:f}),_=c1(H);return{privateKey:H,publicKey:_}}function R2(n,y){return g1(Bn(y)).encode(n)}function S2({phrase:n,derivationPath:y,chain:t,seed:o}){let f=y.split("/");if(f.length<4)throw new j("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${f.length}): ${y}`});let T=Bn(t),C=o??zT(n),H=i1.fromMasterSeed(C,T.bip32),_=f.slice(0,4).join("/");return H.derive(_)}function sn({inputs:n,outputs:y,chain:t,tx:o,sender:f,compiledMemo:T,enableRBF:C=!1}){let H=Bn(t),_=!My.includes(t),A=C?O2:void 0,G=new Set;for(let Q of n){let w=`${Q.hash}:${Q.index}`;if(G.has(w))throw new j("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});G.add(w);let B=typeof Q.hash==="string"?Bo.decode(Q.hash):Q.hash;if(_&&Q.witnessUtxo)o.addInput({index:Q.index,sequence:A,txid:B,witnessUtxo:{amount:BigInt(Q.witnessUtxo.value),script:Q.witnessUtxo.script}});else if(Q.txHex)o.addInput({index:Q.index,nonWitnessUtxo:Bo.decode(Q.txHex),sequence:A,txid:B,...t===e.BitcoinCash?{sighashType:DT.ALL}:{}});else throw new j("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let Q of y){let w="address"in Q&&Q.address?Q.address:f;if(t===e.BitcoinCash)w=Vn(w);if(Q.script){if(T)o.addOutput({amount:0n,script:T})}else o.addOutputAddress(w,BigInt(Q.value),H)}return{inputs:n,tx:o}}async function Po(n){let y=await s(n).getSuggestedTxFee();return{[Sn.Average]:y,[Sn.Fast]:K1(y,Sn.Fast),[Sn.Fastest]:K1(y,Sn.Fastest)}}async function a1({assetValue:n,recipient:y,memo:t,sender:o,fetchTxHex:f=!1}){let T=n.chain,C=(await Po(T))[Sn.Fastest],H=f||My.includes(T),_=n.getBaseValue("number"),A=Math.ceil(_+C*5000);return{inputs:await s(T).getUtxos({address:o,fetchTxHex:H,targetValue:A}),outputs:[{address:y,value:_},...t?[{address:"",script:Wn(t),value:0}]:[]]}}async function s1({assetValue:n,recipient:y,memo:t,feeRate:o,sender:f,fetchTxHex:T=!1,enableRBF:C=!1}){let H=n.chain,_=t?Wn(t):null,A=await a1({assetValue:n,fetchTxHex:T,memo:t,recipient:y,sender:f}),{inputs:G,outputs:Q}=Nn({...A,chain:H,feeRate:o});if(!(G&&Q))throw new j("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let w=new NT({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:B,tx:W}=sn({chain:H,compiledMemo:_,enableRBF:C,inputs:G,outputs:Q,sender:f,tx:w});return{inputs:B,tx:W,utxos:A.inputs}}async function e1({assetValue:n,feeOptionKey:y=Sn.Fast,feeRate:t,memo:o,sender:f,recipient:T}){let C=n.chain,H=await a1({assetValue:n,memo:o,recipient:T,sender:f}),_=t?Math.floor(t):(await Po(C))[y];return Nn({...H,chain:C,feeRate:_})}function F2(n){return async function({from:t,memo:o,feeRate:f,feeOptionKey:T=Sn.Fast,recipients:C=1}){let H=await s(n).getAddressData(t),_=f?Math.ceil(f):(await Po(n))[T],A=H?.utxo.map((l)=>({...l,hash:"",type:"P2PKH"})).filter((l)=>l.value>Math.max(Ly(n),dn(l)*_));if(!A?.length)return Ff.from({chain:n});let G=BigInt(A.reduce((l,M)=>l+M.value,0)),Q=Ff.from({chain:n,value:G}),w=typeof C==="number"?Array.from({length:C},()=>({address:t,value:0})):C;if(o)w.push({address:t,script:Wn(o),value:0});let B=Go({inputs:A,outputs:w}),W=Ff.from({chain:n,value:BigInt(B*_)});return Q.sub(W)}}function u2(n){return async function(t){let{fee:o}=await e1(t);return Ff.from({chain:n,value:Q2.fromBigInt(BigInt(o),8).getValue("string")})}}function k2({chain:n,phrase:y,derivationPath:t,seed:o}){let f=Bn(n),{privateKey:T,publicKey:C}=Io({chain:n,derivationPath:t,phrase:y,seed:o}),H=n===e.BitcoinCash?[DT.ALL]:[r1.ALL];return{getAddress:()=>xT({chain:n,network:f,publicKey:C}),privateKey:T,publicKey:C,signTransaction:(_)=>{return _.sign(T,H),_}}}function p2(n,y){return async function({memo:o,recipient:f,feeOptionKey:T,feeRate:C,assetValue:H,enableRBF:_=!1}){let A=y?.getAddress();if(!(y&&A))throw new j("toolbox_utxo_no_signer");if(!f)throw new j("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});Z2({condition:_&&!uf.includes(n),id:`rbf_not_supported_${n}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${n}. Transaction will be created without RBF signaling.`});let G=_&&uf.includes(n),Q=C||(await Po(n))[T||Sn.Fast],{tx:w}=await s1({assetValue:H,enableRBF:G,feeRate:Q,memo:o,recipient:f,sender:A});return y.signTransaction(w),w.finalize(),s(n).broadcastTx(Bo.encode(w.extract()))}}function RT(n){return(y)=>OT({address:y,chain:n})}function ST(n){let y=Bn(n);return function(o){if(!o)throw new j("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return xT({chain:n,network:y,publicKey:o.publicKey})}}function en({chain:n,...y}){let t="phrase"in y?y.phrase:void 0,o="index"in y?y.index||0:0,f=t?zT(t):void 0,T=h1("derivationPath"in y&&y.derivationPath?y.derivationPath:M2(m1[n],{index:o})),C=t?k2({chain:n,derivationPath:T,phrase:t,seed:f}):void 0,H="signer"in y?y.signer:void 0,_=t?Io({chain:n,derivationPath:T,phrase:t,seed:f}):void 0;function A(){if(C)return Promise.resolve(C.getAddress());if(H)return H.getAddress();return Promise.resolve(void 0)}let G=t?S2({chain:n,derivationPath:T,phrase:t,seed:f}):void 0;function Q(){if(!G)return;return G.publicExtendedKey}function w({index:X,change:U=!1}){if(!G)return;if(!Number.isInteger(X)||X<0)throw RangeError(`index must be a non-negative integer, got: ${X}`);let q=Bn(n),L=G.deriveChild(Number(U)).deriveChild(X);if(!L.publicKey)throw new j("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let Y=xT({chain:n,network:q,publicKey:L.publicKey}),D=Bo.encode(L.publicKey);return{address:Y,change:U,index:X,pubkey:D}}async function B(X){if(!uf.includes(n))return{reason:`RBF is not supported on ${n}`,supported:!1};let U=await s(n).getTransactionDetails(X);return{canReplace:U.isRBF&&!U.confirmed,confirmed:U.confirmed,enabled:U.isRBF,fee:U.fee,sequences:U.sequences,supported:!0}}async function W({txid:X,newFeeRate:U,recipient:q,memo:L}){if(!uf.includes(n))throw new j("toolbox_utxo_rbf_not_supported",{chain:n});let Y=await s(n).getTransactionDetails(X);if(!Y.isRBF)throw new j("toolbox_utxo_tx_not_replaceable",{txid:X});if(Y.confirmed)throw new j("toolbox_utxo_tx_already_confirmed",{blockId:Y.blockId,txid:X});let D=Y.inputs.reduce((i,Un)=>i+Un.value,0),O=Y.outputs.find((i)=>i.recipient===q)?.value||0;if(O===0)throw new j("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let x=await Promise.all(Y.inputs.map(async(i)=>{let Un=await s(n).getRawTx(i.transaction_hash);return{hash:i.transaction_hash,index:i.index,txHex:Un,value:i.value,witnessUtxo:void 0}})),u=L?Wn(L):null,p=Go({feeRate:U,inputs:x.map((i)=>({...i,type:"P2WPKH"})),outputs:[{address:q,value:O}]}),P=Math.ceil(p*U);if(P<=Y.fee)throw new j("toolbox_utxo_rbf_fee_too_low",{newFee:P,originalFee:Y.fee});let v=P-Y.fee,V=O-v;if(V<=0)throw new j("toolbox_utxo_rbf_insufficient_change");let m=new NT({allowLegacyWitnessUtxo:!0,version:1}),Hn=[{address:q,value:V},...L?[{address:"",script:Wn(L),value:0}]:[]],An=D-V-P,a=await A();if(An>Ly(n)&&a)Hn.push({address:a,value:An});return sn({chain:n,compiledMemo:u,inputs:x,outputs:Hn,sender:a||q,tx:m}),{feeDelta:v,newFee:P,originalFee:Y.fee,tx:m}}async function l({txid:X,newFeeRate:U,recipient:q,memo:L}){if(!C)throw new j("toolbox_utxo_no_signer");let{tx:Y,originalFee:D,newFee:J}=await W({memo:L,newFeeRate:U,recipient:q,txid:X});C.signTransaction(Y),Y.finalize();let O=await s(n).broadcastTx(Bo.encode(Y.extract()));return{newFee:J,originalFee:D,txid:O}}function M({index:X,change:U=!1}){if(!G)return;return G.deriveChild(Number(U)).deriveChild(X).privateKey||void 0}function N({tx:X,inputDerivations:U}){if(!G)throw new j("toolbox_utxo_no_signer");let q=n===e.BitcoinCash?[DT.ALL]:[r1.ALL];for(let L=0;L<U.length;L++){let Y=U[L];if(!Y)continue;let{derivationIndex:D,isChange:J}=Y,O=M({change:J,index:D});if(!O)throw new j("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${L} at index ${D}`});X.signIdx(O,L,q)}return X}async function Z({utxos:X,recipient:U,assetValue:q,memo:L,feeRate:Y,feeOptionKey:D,changeAddress:J}){if(!G)throw new j("toolbox_utxo_no_signer");let O=Y||(await Po(n))[D||Sn.Fast],x=L?Wn(L):null,u=[{address:U,value:q.getBaseValue("number")}];if(x)u.push({address:"",script:x,value:0});let p=X.map(({hash:a,index:i,value:Un,txHex:fo,witnessUtxo:Xo})=>({hash:a,index:i,txHex:fo,value:Un,witnessUtxo:Xo?{script:Xo.script,value:Xo.value}:void 0})),{inputs:P,outputs:v}=Nn({chain:n,feeRate:O,inputs:p,outputs:u});if(!(P&&v))throw new j("toolbox_utxo_insufficient_balance",{assetValue:q,sender:"multiple addresses"});let V=new NT({allowLegacyWitnessUtxo:!0,version:1}),m=X[0]?.address,Hn=J||await A()||m||U;sn({chain:n,compiledMemo:x,inputs:P,outputs:v,sender:Hn,tx:V});let An=P.map((a)=>{let i=X.find((Un)=>Un.hash===a.hash&&Un.index===a.index);return i?{derivationIndex:i.derivationIndex,isChange:i.isChange}:{derivationIndex:0,isChange:!1}});return N({inputDerivations:An,tx:V}),V.finalize(),s(n).broadcastTx(Bo.encode(V.extract()))}function z({address:X,gapLimit:U=20}){if(!G)return;for(let q=0;q<U;q++){let L=w({change:!1,index:q}),Y=w({change:!0,index:q}),D=L?.address===X?!1:Y?.address===X;if(L?.address===X||Y?.address===X)return{change:D,index:q}}return}return{accumulative:Nn,broadcastTx:(X)=>s(n).broadcastTx(X),bumpFee:l,calculateTxSize:Go,createKeysForPath:(X)=>Io({...X,chain:n}),createReplacementTransaction:W,createTransaction:s1,deriveAddressAtIndex:w,derivePrivateKeyAtIndex:M,estimateMaxSendableAmount:F2(n),estimateTransactionFee:u2(n),getAddress:A,getAddressFromKeys:ST(n),getBalance:wn(n),getExtendedPublicKey:Q,getFeeRates:()=>Po(n),getInputsOutputsFee:e1,getNetworkForChain:()=>Bn(n),getPrivateKeyFromMnemonic:(X)=>R2(Io({...X,chain:n}).privateKey,n),isRBFEnabled:B,keys:_,resolveDerivationIndex:z,signAndBroadcastTransaction:async(X)=>{if(!C)throw new j("toolbox_utxo_no_signer");return C.signTransaction(X),X.finalize(),await s(n).broadcastTx(Bo.encode(X.extract()))},signTransactionWithMultipleKeys:N,transfer:p2(n,C),transferFromMultipleAddresses:Z,validateAddress:RT(n)}}var My,uf;var Zy=F(()=>{kn();uo();Qy();My=[e.Dash,e.Dogecoin,e.Zcash,e.BitcoinCash],uf=[e.Bitcoin]});import{hex as I2}from"@scure/base";import{Chain as P2,derivationPathToString as $2,FeeOption as E2,NetworkDerivationPath as v2,SwapKitError as no,updateDerivationPath as b2}from"@swapkit/helpers";import{BCHSigHash as V2,CashAddrPrefix as nH,CashAddrType as oH,encodeCashAddr as yH,NETWORKS as K2,p2pkh as fH,Transaction as tH}from"@swapkit/utxo-signer";function Jy(n){return Wo(Wy(n))}function j2(n){let y=Bn(Fn);function t(f){return f.sign(n.privateKey,[V2.ALL]),f}function o(){let f=fH(n.publicKey,y);if(!f.hash)throw new no("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let T=yH({hash:f.hash,prefix:nH.MAINNET,type:oH.P2PKH});return Promise.resolve(T.replace(/^bitcoincash:/,""))}return{getAddress:o,signTransaction:t}}function FT(n){let y="phrase"in n?n.phrase:void 0,t="index"in n?n.index||0:0,o=$2("derivationPath"in n&&n.derivationPath?n.derivationPath:b2(v2[Fn],{index:t})),f=y?Io({chain:Fn,derivationPath:o,phrase:y}):void 0,T=f?j2(f):("signer"in n)?n.signer:void 0;function C(){return Promise.resolve(T?.getAddress())}let{getBalance:H,getFeeRates:_,broadcastTx:A,...G}=en({chain:Fn});function Q(w,B=!0){return H(Wo(Wy(w)))}return{...G,broadcastTx:A,buildTx:i2,createTransaction:TH,getAddress:C,getAddressFromKeys:h2,getBalance:Q,getFeeRates:_,stripPrefix:Wo,stripToCashAddress:Jy,transfer:c2({broadcastTx:A,getFeeRates:_,signer:T}),validateAddress:an}}async function TH({assetValue:n,recipient:y,memo:t,feeRate:o,sender:f}){if(!an(y))throw new no("toolbox_utxo_invalid_address",{address:y});let T=Math.ceil(n.getBaseValue("number")+o*7500),C=await s(Fn).getUtxos({address:Jy(f),fetchTxHex:!0,targetValue:T}),H=t?Wn(t):null,_=[],A=Vn(y);if(_.push({address:A,value:n.getBaseValue("number")}),H)_.push({script:H,value:0});let{inputs:G,outputs:Q}=Nn({chain:Fn,feeRate:o,inputs:C,outputs:_});if(!(G&&Q))throw new no("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let w=new tH({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!H,version:1}),B=Vn(f),{inputs:W,tx:l}=sn({chain:Fn,compiledMemo:H,inputs:G,outputs:Q.map((M)=>("address"in M)&&M.address?{...M,address:Vn(M.address)}:M),sender:B,tx:w});return{inputs:W,tx:l,utxos:G}}function c2({broadcastTx:n,getFeeRates:y,signer:t}){return async function({recipient:f,assetValue:T,feeOptionKey:C=E2.Fast,...H}){let _=await t?.getAddress();if(!(t&&_))throw new no("toolbox_utxo_no_signer");if(!f)throw new no("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let A=H.feeRate||(await y())[C],{tx:G}=await TH({...H,assetValue:T,feeRate:A,recipient:f,sender:_}),Q=await t.signTransaction(G);return Q.finalize(),n(I2.encode(Q.extract()))}}async function i2({assetValue:n,recipient:y,memo:t,feeRate:o,sender:f}){let T=Wy(y);if(!an(T))throw new no("toolbox_utxo_invalid_address",{address:T});let C=Math.ceil(n.getBaseValue("number")+o*7500),H=await s(Fn).getUtxos({address:Jy(f),fetchTxHex:!0,targetValue:C}),_=Number(o.toFixed(0)),A=t?Wn(t):null,G=[];if(G.push({address:Vn(y),value:n.getBaseValue("number")}),A)G.push({script:A,value:0});let{inputs:Q,outputs:w}=Nn({chain:Fn,feeRate:_,inputs:H,outputs:G});if(!(Q&&w))throw new no("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let B=new tH({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:W,tx:l}=sn({chain:Fn,compiledMemo:A,inputs:Q,outputs:w,sender:Vn(f),tx:B});return{inputs:W,tx:l,utxos:H}}function h2(n){let y=K2.bitcoinCash,t=fH(n.publicKey,y);if(!t.hash)throw new no("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return yH({hash:t.hash,prefix:nH.MAINNET,type:oH.P2PKH}).replace(/^bitcoincash:/,"")}var Fn;var kf=F(()=>{uo();Zy();Qy();Fn=P2.BitcoinCash});import{createBase58check as m2,hex as r2}from"@scure/base";import{HDKey as _H}from"@scure/bip32";import{mnemonicToSeedSync as AH}from"@scure/bip39";import{Chain as pf,derivationPathToString as g2,FeeOption as d2,NetworkDerivationPath as a2,SKConfig as UH,SwapKitError as $o,updateDerivationPath as s2}from"@swapkit/helpers";import{Address as e2,createZcashTransaction as n8,OutScript as o8,PCZT as y8,utils as wH,WIF as f8,ZCASH_NETWORK as t8,ZCASH_TEST_NETWORK as T8,ZcashConsensusBranchId as C8,ZcashSigHash as CH,ZcashVersionGroupId as H8}from"@swapkit/utxo-signer";import{match as _8,P as uT}from"ts-pattern";function qH(){let{isStagenet:n}=UH.get("envs");return n?T8:t8}function U8(n){return A8.encode(n)}function w8({phrase:n,derivationPath:y}){let t=AH(n),f=_H.fromMasterSeed(t).derive(y);if(!f.privateKey||!f.publicKey)throw new $o("toolbox_utxo_invalid_params");let{privateKey:T,publicKey:C}=f,H=wH.hash160(C),{isStagenet:_}=UH.get("envs"),A=_?new Uint8Array([29,37]):new Uint8Array([28,184]),G=new Uint8Array(A.length+H.length);G.set(A,0),G.set(H,A.length);let Q=U8(G);return{getAddress:()=>Promise.resolve(Q),signTransaction:(w)=>{if(w instanceof y8)return w.signAllInputs(T,C,CH.ALL),w.finalizeAllInputs(),Promise.resolve(w.extract());return w.signAllInputs(T,C,CH.ALL),Promise.resolve(w)}}}function q8({inputs:n,outputs:y,tx:t,sender:o,compiledMemo:f}){let T=qH();for(let C of n){let H=e2(T).decode(o),_=o8.encode(H);t.addInput({index:C.index,script:_,sequence:4294967295,txid:r2.decode(C.hash),value:BigInt(C.value)})}for(let C of y){let H="address"in C&&C.address?C.address:o,_=C.script;if(_&&!f)continue;if(_&&f)t.addOutput({amount:0n,script:f});else t.addOutputAddress(H,BigInt(C.value),T)}return{inputs:n,tx:t}}async function HH(n){let{assetValue:y,recipient:t,memo:o,feeRate:f,sender:T,fetchTxHex:C}=n,H=o?Wn(o):null,_=await s(pf.Zcash).getUtxos({address:T,fetchTxHex:C!==!1}),A=[{address:t,value:Number(y.getBaseValue("string"))},...H?[{script:H,value:0}]:[]],{inputs:G,outputs:Q}=Nn({chain:pf.Zcash,changeAddress:T,feeRate:f,inputs:_,outputs:A});if(!(G&&Q))throw new $o("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let w=n8({consensusBranchId:C8.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:H8.SAPLING}),{tx:B,inputs:W}=q8({compiledMemo:H,inputs:G,outputs:Q,sender:T,tx:w});return{inputs:W,outputs:Q,tx:B}}function kT(n){let y=_8(n).with({signer:uT.not(uT.nullish)},({signer:_})=>_).with({phrase:uT.string},({phrase:_,derivationPath:A,index:G=0})=>{let Q=A||a2[pf.Zcash]||[44,133,0,0,0],w=s2(Q,{index:G}),B=g2(w);return w8({derivationPath:B,phrase:_})}).otherwise(()=>{return}),t=en({chain:pf.Zcash,signer:y});async function o({recipient:_,assetValue:A,feeOptionKey:G=d2.Fast,...Q}){let w=await y?.getAddress();if(!(y&&w))throw new $o("toolbox_utxo_no_signer");let B=Q.feeRate||(await t.getFeeRates())[G],{tx:W}=await HH({...Q,assetValue:A,feeRate:B,recipient:_,sender:w}),M=(await y.signTransaction(W)).toHex();return t.broadcastTx(M)}function f({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let G=AH(_),w=_H.fromMasterSeed(G).derive(A);if(!w.privateKey||!w.publicKey)throw new $o("toolbox_utxo_invalid_params");return{privateKey:w.privateKey,publicKey:w.publicKey}}function T({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let G=f({derivationPath:A,phrase:_}),Q=qH();return f8(Q).encode(G.privateKey)}function C(_){return async function(G){if(!_)throw new $o("toolbox_utxo_no_signer");return await _.signTransaction(G)}}function H(_){return async function(G){if(!_)throw new $o("toolbox_utxo_no_signer");let Q=await _.signTransaction(G);return t.broadcastTx(Q.toHex())}}return{...t,createKeysForPath:f,createTransaction:HH,getPrivateKeyFromMnemonic:T,signAndBroadcastTransaction:H(y),signTransaction:C(y),transfer:o,validateAddress:ko}}var A8;var pT=F(()=>{uo();Zy();Qy();A8=m2(wH.sha256)});import{Chain as Eo,SwapKitError as G8}from"@swapkit/helpers";function l8(n,y){switch(n){case Eo.BitcoinCash:return FT(y||{});case Eo.Zcash:return kT(y);case Eo.Bitcoin:case Eo.Dogecoin:case Eo.Litecoin:case Eo.Dash:return en({chain:n,...y});default:throw new G8("toolbox_utxo_not_supported",{chain:n})}}var GH=F(()=>{kf();Zy();pT();kf();Qy()});var IT={};nn(IT,{validateZcashAddress:()=>ko,validateUtxoAddress:()=>OT,validateBchAddress:()=>an,toLegacyAddress:()=>Vn,toCashAddress:()=>Wy,stripToCashAddress:()=>Jy,stripPrefix:()=>Wo,nonSegwitChains:()=>My,isValidAddress:()=>ZT,getUtxoToolbox:()=>l8,getUtxoNetwork:()=>aU,getUtxoApi:()=>s,getUTXOAddressValidator:()=>RT,getScriptTypeForAddress:()=>Fo,getOutputSize:()=>Xy,getNetworkForChain:()=>Bn,getInputSize:()=>dn,getDustThreshold:()=>Ly,detectAddressNetwork:()=>JT,createZcashToolbox:()=>kT,createUTXOToolbox:()=>en,createHDWalletHelpers:()=>x1,createCustomUtxoApi:()=>dU,createBCHToolbox:()=>FT,compileMemo:()=>Wn,calculateTxSize:()=>Go,addressFromKeysGetter:()=>ST,addInputsAndOutputs:()=>sn,accumulative:()=>Nn,UtxoNetwork:()=>MT,UTXOScriptType:()=>Sf,TX_OVERHEAD:()=>xf,SEGWIT_MARKER_FLAG_WEIGHT:()=>Rf,OutputSizes:()=>By,OP_RETURN_OVERHEAD:()=>b1,MIN_TX_FEE:()=>q2,InputSizes:()=>Of});var PT=F(()=>{Zy();uo();GH();kf();pT()});import{KeyPairSigner as W8}from"@near-js/signers";import{derivationPathToString as B8,SwapKitError as X8}from"@swapkit/helpers";function Yy(n){return n.length>=2&&n.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(n)}async function If(n){let{parseSeedPhrase:y}=await import("near-seed-phrase"),{KeyPair:t}=await import("@near-js/crypto"),o=n.index||0,f=n.derivationPath?B8(n.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:T}=y(n.phrase,f),C=t.fromString(T);return WH(C)}async function $T(n){let{KeyPair:y}=await import("@near-js/crypto"),t=y.fromString(n);return WH(t)}function WH(n){return new lH(n)}async function Pf(n,y){let o=(await n.query({account_id:y,finality:"final",request_type:"view_access_key_list"})).keys.find((H)=>H.access_key.permission==="FullAccess");if(!o)throw new X8("toolbox_near_no_public_key_found");let{PublicKey:f}=await import("@near-js/crypto"),T=f.fromString(o.public_key);return{nonce:o.access_key.nonce||0,publicKey:T}}var lH;var ET=F(()=>{lH=class lH extends W8{#n;constructor(n){super(n);this.#n=n}getAddress(){let n=this.#n.getPublicKey(),y=Buffer.from(n.data).toString("hex");return Promise.resolve(y)}}});function vT(n){return"recipient"in n&&"amount"in n&&!("contractId"in n)}function bT(n){return"contractId"in n&&"methodName"in n}function VT(n){return"actions"in n}function KT(n){return"newAccountId"in n}function jT(n){return"contractCode"in n}function cT(n){return"customEstimator"in n}function iT(n){let y=0;for(let t of n)switch(t.enum){case"transfer":y+=Number(Tn.SIMPLE_TRANSFER);break;case"functionCall":y+=Number(Tn.CONTRACT_CALL);break;case"createAccount":y+=Number(Tn.ACCOUNT_CREATION);break;case"deployContract":y+=Number(Tn.CONTRACT_DEPLOYMENT);break;case"addKey":y+=Number(Tn.ACCESS_KEY_ADDITION);break;case"deleteKey":y+=Number(Tn.ACCESS_KEY_DELETION);break;case"stake":y+=Number(Tn.STAKE);break;default:y+=Number(Tn.CONTRACT_CALL)}return y.toString()}function hT(n){if(n==="ft_transfer"||n==="ft_transfer_call")return Tn.TOKEN_TRANSFER;if(n==="storage_deposit")return Tn.STORAGE_DEPOSIT;return Tn.CONTRACT_CALL}function L8(n){return(BigInt(n)*BigInt(1000000000000)).toString()}function Q8(n){return(BigInt(n)/BigInt(1000000000000)).toString()}var Tn;var mT=F(()=>{Tn={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function rT({account:n,contractId:y,viewMethods:t,changeMethods:o}){let{Contract:f}=await import("@near-js/accounts");return new f(n,y,{changeMethods:o,useLocalViewExecution:!0,viewMethods:t})}import{JsonRpcProvider as M8}from"@near-js/providers";import{AssetValue as gT,Chain as vo,getRPCUrl as BH,SwapKitError as Gn}from"@swapkit/helpers";import{match as XH,P as LH}from"ts-pattern";function Z8(n){let y;async function t(){if(y)return y;return y=await XH(n).with({phrase:LH.string},async(J)=>{return await If(J)}).with({signer:LH.any},({signer:J})=>J).otherwise(()=>{return}),y}async function o(){let J=await BH(vo.Near);return new M8({url:J})}async function f(J){let{Account:O}=await import("@near-js/accounts"),x=await o(),u=await t(),p=J||await T();return new O(p,x,u)}async function T(){let J=await t();if(!J)throw new Gn("toolbox_near_no_signer");return await J.getAddress()}async function C(J){return(await X({changeMethods:[],contractId:J.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:J.accountId})}async function H(J){let x=[await w({args:{account_id:J.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await w({args:{amount:J.assetValue.getBaseValue("string"),memo:J.memo||null,receiver_id:J.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return U({actions:x,receiverId:J.contractId})}async function _(J){if(!await t())throw new Gn("toolbox_near_no_signer");let{assetValue:x,recipient:u,memo:p}=J,P=await T();if(!x.isGasAsset&&x.address){if(!await C({accountId:u,contractId:x.address}))return H({assetValue:x,contractId:x.address,memo:p,recipient:u})}let v=await A({...J,sender:P});return l(v)}async function A({recipient:J,assetValue:O,memo:x,attachedDeposit:u,sender:p,functionCall:P}){let v=await o();if(!Yy(J))throw new Gn("toolbox_near_invalid_address",{recipient:J});if(!Yy(p))throw new Gn("toolbox_near_invalid_address",{sender:p});if(P)return Q({...P,sender:p});if(!O.isGasAsset){let B0=O.address;if(!B0)throw new Gn("toolbox_near_missing_contract_address");return Q({args:{amount:O.getBaseValue("string"),memo:x||null,receiver_id:J},attachedDeposit:u||"1",contractId:B0,gas:"250000000000000",methodName:"ft_transfer",sender:p})}let{publicKey:V,nonce:m}=await Pf(v,p),Hn=O.getBaseValue("bigint"),{actionCreators:An,createTransaction:a}=await import("@near-js/transactions"),{baseDecode:i}=await import("@near-js/utils"),Un=[An.transfer(Hn)];if(x&&u)Un.push(An.functionCall("memo",{memo:x},BigInt("250000000000000"),BigInt(u)));let fo=await v.block({finality:"final"}),Xo=i(fo.header.hash);return a(p,V,J,m+1,Un,Xo)}function G(J){let O=J.encode();return Buffer.from(O).toString("base64")}async function Q({args:J,attachedDeposit:O,contractId:x,gas:u,methodName:p,sender:P}){let v=await o(),{publicKey:V,nonce:m}=await Pf(v,P),{createTransaction:Hn,actionCreators:An}=await import("@near-js/transactions"),{baseDecode:a}=await import("@near-js/utils"),i=await v.block({finality:"final"}),Un=a(i.header.hash),fo=[An.functionCall(p,Buffer.from(JSON.stringify(J)),BigInt(u),BigInt(O))];return Hn(P,V,x,m+1,fo,Un)}async function w(J){let{actionCreators:O}=await import("@near-js/transactions");return O.functionCall(J.methodName,Buffer.from(JSON.stringify(J.args)),BigInt(J.gas),BigInt(J.attachedDeposit))}async function B(J){let O=await t();if(!O)throw new Gn("toolbox_near_no_signer");let[x,u]=await O.signTransaction(J);return u}async function W(J){return(await(await o()).sendTransaction(J)).transaction.hash}async function l(J){let O=await t();if(!O)throw new Gn("toolbox_near_no_signer");try{let x=await B(J);return await W(x)}catch{return O.signAndSendTransactions?.({transactions:[J]})}}async function M(J){let O=await t();if("assetValue"in J){let u=await N();try{let p=await BH(vo.Near),P=await fetch(p,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:v}}=await P.json(),{execution:V,send_sir:m}=v.transaction_costs.action_receipt_creation_config,{execution:Hn,send_sir:An}=v.transaction_costs.action_creation_config.transfer_cost,a=BigInt(An)+BigInt(Hn),i=BigInt(m)+BigInt(V),fo=(a+i)*BigInt(u.toString());return gT.from({chain:vo.Near,value:fo})}catch(p){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",p);let P=BigInt("115123062500"),v=BigInt("108059500000"),m=(P+v)*BigInt(u.toString());return gT.from({chain:vo.Near,value:m})}}let x=O?await f():void 0;return q(J,x)}async function N(){let J=await o();try{return await J.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Z(J,O,x){if(!await t())throw new Gn("toolbox_near_no_signer");let p=await f(),{formatNearAmount:P}=await import("@near-js/utils"),{PublicKey:v}=await import("@near-js/crypto"),V=P(x)||"0";return(await p.createAccount(J,v.fromString(O),BigInt(V))).transaction.hash}async function z(J){let O=await t();try{if(!O)throw new Gn("toolbox_near_no_signer");let{actionCreators:x}=await import("@near-js/transactions"),{contractId:u,methodName:p,args:P,deposit:v}=J,V=await f(),m=await q({args:P||{},contractId:u,methodName:p}),Hn=x.functionCall(p,P||{},m.getBaseValue("bigint"),BigInt(v||"1"));return(await V.signAndSendTransaction({actions:[Hn],receiverId:u})).transaction_outcome.id}catch(x){throw new Gn("toolbox_near_transfer_failed",{error:x})}}async function X(J){let O=await f();return rT({account:O,changeMethods:J.changeMethods,contractId:J.contractId,viewMethods:J.viewMethods})}async function U(J){if(!await t())throw new Gn("toolbox_near_no_signer");if(J.actions.length===0)throw new Gn("toolbox_near_empty_batch");return(await(await f()).signAndSendTransaction({actions:J.actions,receiverId:J.receiverId})).transaction.hash}async function q(J,O){let x=await XH(J).when(vT,()=>Tn.SIMPLE_TRANSFER).when(bT,(p)=>hT(p.methodName)).when(VT,(p)=>iT(p.actions)).when(KT,()=>Tn.ACCOUNT_CREATION).when(jT,()=>Tn.CONTRACT_DEPLOYMENT).when(cT,(p)=>{if(!O)throw new Gn("toolbox_near_no_account");return p.customEstimator(O)}).otherwise(()=>{throw new Gn("toolbox_near_invalid_gas_params")}),u=BigInt(x)*BigInt(1000000000000);return gT.from({chain:vo.Near,value:u})}function L(J,O){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),q(J,O)}async function Y(){let J=await o();try{return(await J.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function D(){let J=await t();return J?(await J.getPublicKey()).toString():""}return{broadcastTransaction:W,callFunction:z,createAction:w,createContract:X,createContractFunctionCall:Q,createSubAccount:Z,createTransaction:A,estimateGas:L,estimateGasLimit:q,estimateTransactionFee:M,executeBatchTransaction:U,getAddress:T,getBalance:wn(vo.Near),getGasPrice:Y,getNearProvider:o,getPublicKey:D,getSignerFromPhrase:If,getSignerFromPrivateKey:$T,serializeTransaction:G,signAndBroadcastTransaction:l,signTransaction:B,transfer:_,validateAddress:Yy}}var dT=F(()=>{kn();ET();mT()});var QH=F(()=>{dT()});var aT={};nn(aT,{validateNearAddress:()=>Yy,tgasToGas:()=>L8,isSimpleTransfer:()=>vT,isCustomEstimator:()=>cT,isContractDeployment:()=>jT,isContractCall:()=>bT,isBatchTransaction:()=>VT,isAccountCreation:()=>KT,getNearToolbox:()=>Z8,getNearSignerFromPrivateKey:()=>$T,getNearSignerFromPhrase:()=>If,getFullAccessPublicKey:()=>Pf,getContractMethodGas:()=>hT,gasToTGas:()=>Q8,estimateBatchGas:()=>iT,createNearContract:()=>rT,GAS_COSTS:()=>Tn});var sT=F(()=>{ET();mT();dT();QH()});var n0={};nn(n0,{validateRadixAddress:()=>ZH,getRadixToolbox:()=>S8});import{GatewayApiClient as J8}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as Y8}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as MH,Chain as eT,SKConfig as N8,SwapKitError as z8}from"@swapkit/helpers";function ZH(n){return n.startsWith("account_rdx1")&&n.length===66}function D8({networkApi:n}){return async function(t){let o=await O8({address:t,networkApi:n}),f=await x8({networkApi:n,resources:o});if(!f.some((C)=>C.isGasAsset))return[MH.from({chain:eT.Radix}),...f];return f}}async function O8({address:n,networkApi:y}){let t=!0,o,f=[],T=await R8(y);while(t){let C={address:n,at_ledger_state:{state_version:T},cursor:o,limit_per_page:100},H=await y.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:C});if(f=f.concat(H.items),H.next_cursor)o=H.next_cursor;else t=!1}return f}async function x8({resources:n,networkApi:y}){let t=[],o=50,f=[];for(let T=0;T<n.length;T+=50)f.push(n.slice(T,T+50));for(let T of f){let C=T.map((A)=>A.resource_address),H=await y.state.getEntityDetailsVaultAggregated(C),_=new Map;for(let A of H)if(A.details!==void 0){let G=A.metadata?.items.find((w)=>w.key==="symbol"),Q=G?.value.typed.type==="String"?G.value.typed.value:"?";if(A.details.type==="FungibleResource")_.set(A.address,{decimals:A.details.divisibility,symbol:Q})}for(let A of T)if(A.aggregation_level==="Global"){let G=_.get(A.resource_address)||{decimals:0,symbol:"?"},Q=MH.from({asset:G.symbol!==eT.Radix?`${eT.Radix}.${G.symbol}-${A.resource_address}`:"XRD.XRD",value:A.amount});t.push(Q)}}return t}async function R8(n){return(await n.status.getCurrent()).ledger_state.state_version}function S8({dappConfig:n}={}){let y=n||N8.get("integrations").radix,t=Y8({...y,networkId:y.network?.networkId||1}),o=J8.initialize(t.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:D8({networkApi:o}),networkApi:o,signAndBroadcast:()=>{throw new z8("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:ZH}}var o0=()=>{};import{SwapKitError as F8}from"@swapkit/helpers";function $f(n){return/^[0-9A-Fa-f]{40}$/.test(n)}function Ny(n){if($f(n))return n.toUpperCase();if(n.length<=3){let t=Buffer.from(n.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${t}${"0".repeat(10)}`.toUpperCase()}let y=Buffer.from(n).toString("hex").toUpperCase();if(y.length>40)throw new F8({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n,reason:"Currency exceeds maximum length (20 bytes)"}});return y.padEnd(40,"0")}function u8(n){if(!$f(n))return n;if(n.toUpperCase().startsWith("00")){let y=n.slice(24,30);try{let t=Buffer.from(y,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(t)&&t.length>0)return t}catch{}return n.toUpperCase()}try{let y=n.replace(/0+$/,""),t=y.length%2===0?y:`${y}0`,o=Buffer.from(t,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(o))return o}catch{}return n.toUpperCase()}function bo(n){if($f(n))return n.toUpperCase();if(n.length<=3)return n;return Ny(n)}var Ef=()=>{};import{RequestClient as k8,warnOnce as p8}from"@swapkit/helpers";async function I8(n,y){let t=bo(n),o=vf.find((f)=>bo(f.currency)===t&&f.issuer===y);if(o)return o;try{let f=await k8.get(`https://api.xrplmeta.org/token/${n}:${y}`);if(f)return{currency:n,decimals:15,description:f.desc,domain:f.domain,icon:f.icon,issuer:y,name:f.name,verified:f.self_assessment?.is_regulated||f.self_assessment?.is_licensed}}catch(f){p8({condition:!0,id:`xrpl_token_lookup_${n}_${y}`,warning:`Failed to fetch XRPL token info for ${n}:${y}: ${f}`})}return{currency:n,decimals:15,issuer:y,verified:!1}}function P8(n){return vf.filter((y)=>y.issuer===n)}function $8(n,y){let t=bo(n);return vf.some((o)=>bo(o.currency)===t&&o.issuer===y)}var vf;var JH=F(()=>{Ef();vf=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var y0={};nn(y0,{validateRippleAddress:()=>Kf,parseXrplTokenIdentifier:()=>RH,normalizeCurrency:()=>bo,isKnownToken:()=>$8,isHexCurrency:()=>$f,hexToCurrency:()=>u8,hashes:()=>c8,getXrplTokenInfo:()=>I8,getRippleToolbox:()=>j8,getKnownTokensByIssuer:()=>P8,formatXrplTokenIdentifier:()=>SH,currencyToHex:()=>Ny,XRPL_TOKEN_ERROR_CODES:()=>Vf,XRPL_KNOWN_TOKENS:()=>vf});import{AssetValue as bf,Chain as zn,getChainConfig as YH,getRPCUrl as E8,SwapKitError as _n}from"@swapkit/helpers";import{match as NH,P as zH}from"ts-pattern";import{Client as v8,isValidAddress as xH,Wallet as b8,xrpToDrops as V8}from"xrpl";import{hashes as c8}from"xrpl";function RH(n){let y=n.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!y?.[1]||!y?.[2])return null;if(!xH(y[2]))return null;return{currency:y[1],issuer:y[2]}}function SH(n,y){return`${zn.Ripple}.${n}-${y}`}function K8(n){if(n.isGasAsset)return V8(n.getValue("string"));let y=RH(n.toString());if(!y)throw new _n({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n.toString()}});return{currency:y.currency,issuer:y.issuer,value:n.getValue("string")}}function OH(n){let y=b8.fromMnemonic(n);return{getAddress:()=>Promise.resolve(y.address),signTransaction:(t)=>Promise.resolve(y.sign(t))}}function Kf(n){return xH(n)}function j8(n={}){let y=NH(n).with({phrase:zH.string},({phrase:Z})=>OH(Z)).with({signer:zH.any},({signer:Z})=>Z).otherwise(()=>{return}),t;async function o(){let Z=await E8(zn.Ripple);if(!Z)throw new _n({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:zn.Ripple}});let z=new v8(Z);return await z.connect(),z}async function f(){if(t){let Z=await t.catch(()=>null);if(Z?.isConnected())return Z}return t=o(),t}let T=()=>{if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});return y.getAddress()},C=async(Z)=>{let z=Z||await T(),{baseDecimal:X}=YH(zn.Ripple),U=await f();try{let[q,L]=await Promise.all([U.request({account:z,command:"account_info"}),U.request({account:z,command:"account_lines"})]),Y=q.result.account_data.Balance,D=[bf.from({chain:zn.Ripple,fromBaseDecimal:X,value:Y})];for(let J of L.result.lines){let O=SH(J.currency,J.account);if(Number.parseFloat(J.balance)!==0)D.push(bf.from({asset:O,asyncTokenLookup:!1,value:J.balance}))}return D}catch(q){if(q.data?.error_code===DH.ACCOUNT_NOT_FOUND)return[bf.from({chain:zn.Ripple,value:0})];throw new _n({errorKey:"toolbox_ripple_get_balance_error",info:{address:z,error:q}})}},H=async()=>{let{baseDecimal:Z}=YH(zn.Ripple),U=(await(await f()).request({command:"fee"})).result.drops.open_ledger_fee;return bf.from({chain:zn.Ripple,fromBaseDecimal:Z,value:U})};async function _(Z){let z=Z||await T(),X=await f();try{return(await X.request({account:z,command:"account_lines"})).result.lines.map((q)=>({account:q.account,authorized:q.authorized??!1,balance:q.balance,currency:q.currency,freeze:q.freeze??!1,freezePeer:q.freeze_peer??!1,limit:q.limit,limitPeer:q.limit_peer,noRipple:q.no_ripple??!1,noRipplePeer:q.no_ripple_peer??!1,peerAuthorized:q.peer_authorized??!1,qualityIn:q.quality_in??0,qualityOut:q.quality_out??0}))}catch(U){if(U.data?.error_code===DH.ACCOUNT_NOT_FOUND)return[];throw new _n({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:z,error:U}})}}async function A({address:Z,currency:z,issuer:X}){let U=await _(Z),q=Ny(z);return U.some((L)=>{return Ny(L.currency)===q&&L.account===X})}async function G({currency:Z,issuer:z,limit:X,sender:U}){let q=U||await T();if(!Kf(z))throw new _n({errorKey:"core_transaction_invalid_recipient_address",info:{address:z}});let L=Number.parseFloat(X);if(Number.isNaN(L)||L<0)throw new _n({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:X}});let Y=await f(),D={Account:q,LimitAmount:{currency:Z,issuer:z,value:X},TransactionType:"TrustSet"};return Y.autofill(D)}async function Q({assetValue:Z,recipient:z,memo:X,sender:U,destinationTag:q,extendBySeconds:L=150}){if(!Kf(z))throw new _n({errorKey:"core_transaction_invalid_recipient_address"});let Y=U||await T();if(Z.chain!==zn.Ripple)throw new _n({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:Z.toString()}});let D=K8(Z),J={Account:Y,Amount:D,Destination:z,TransactionType:"Payment",...q!==void 0&&{DestinationTag:q}};if(X)J.Memos=[{Memo:{MemoData:Buffer.from(X).toString("hex")}}];let x=await(await f()).autofill(J);if(x.LastLedgerSequence&&L>0)x.LastLedgerSequence+=Math.ceil(L/4);return x}function w(Z){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});return y.signTransaction(Z)}async function B(Z){let X=await(await f()).submitAndWait(Z),{result:U}=X;if(U.validated)return U.hash;let q=U.meta?.TransactionResult,L=NH(q).with(Vf.tecNO_LINE,()=>"No trust line exists for this token").with(Vf.tecPATH_DRY,()=>"Payment path could not deliver funds").with(Vf.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new _n({errorKey:"toolbox_ripple_broadcast_error",info:{chain:zn.Ripple,...L?{reason:L}:{txResult:q}}})}let W=async(Z)=>{try{let z=await w(Z);return B(z.tx_blob)}catch(z){if(z instanceof _n)throw z;throw new _n({errorKey:"toolbox_ripple_broadcast_error",info:{chain:zn.Ripple,error:z}})}};async function l(Z){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});let z=await y.getAddress(),X=await Q({...Z,sender:z}),U=await w(X);return B(U.tx_blob)}async function M(Z){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});let z=await y.getAddress(),X=await G({...Z,sender:z}),U=await w(X);return B(U.tx_blob)}function N(){let Z=t;if(t=null,Z)Z.then((z)=>{if(z?.isConnected())return z.disconnect();return}).catch((z)=>{console.warn("XRPL Cleanup failed silently:",z)})}return{broadcastTransaction:B,createSigner:OH,createTransaction:Q,disconnect:N,estimateTransactionFee:H,getAddress:T,getBalance:C,getTrustLines:_,hasTrustLine:A,setTrustLine:G,setTrustLineAndBroadcast:M,signAndBroadcastTransaction:W,signTransaction:w,transfer:l,validateAddress:Kf}}var DH,Vf;var f0=F(()=>{Ef();Ef();JH();DH={ACCOUNT_NOT_FOUND:19},Vf={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});import{sha256 as i8}from"@noble/hashes/sha2.js";import{bytesToHex as FH,hexToBytes as uH}from"@noble/hashes/utils.js";import{SwapKitError as Vo}from"@swapkit/helpers";function t0(n,y){let t=0n,o=0n,f=y;while(f<n.length&&f-y<10){let T=n[f++];if(T===void 0)break;if(t|=BigInt(T&127)<<o,o+=7n,(T&128)===0)return[t,f]}throw new Vo("toolbox_tron_transaction_creation_failed")}function zy(n){let y=[],t=n<0n?n+2n**64n:n;while(t>=128n)y.push(Number(t&0x7fn)|128),t>>=7n;return y.push(Number(t)),y}function jf(n,y,t){let o=n.get(y);if(o)o.push(t);else n.set(y,[t])}function g8(n){let y=new Map,t=0;while(t<n.length){let[o,f]=t0(n,t);t=f;let T=Number(o>>3n),C=Number(o&7n);if(C===cf){let[H,_]=t0(n,t);t=_,jf(y,T,{data:new Uint8Array(zy(H)),wireType:cf})}else if(C===hf){let[H,_]=t0(n,t);t=_;let A=Number(H);if(A<0||t+A>n.length)throw new Vo("toolbox_tron_transaction_creation_failed");let G=n.slice(t,t+A);t+=A,jf(y,T,{data:G,wireType:hf})}else if(C===kH){if(t+8>n.length)throw new Vo("toolbox_tron_transaction_creation_failed");let H=n.slice(t,t+8);t+=8,jf(y,T,{data:H,wireType:kH})}else if(C===pH){if(t+4>n.length)throw new Vo("toolbox_tron_transaction_creation_failed");let H=n.slice(t,t+4);t+=4,jf(y,T,{data:H,wireType:pH})}else throw new Vo("toolbox_tron_transaction_creation_failed")}return y}function d8(n){let y=[];for(let[T,C]of[...n.entries()].sort(([H],[_])=>H-_))for(let{wireType:H,data:_}of C){let A=BigInt(T<<3|H);if(y.push(new Uint8Array(zy(A))),H===hf)y.push(new Uint8Array(zy(BigInt(_.length))));y.push(_)}let t=y.reduce((T,C)=>T+C.length,0),o=new Uint8Array(t),f=0;for(let T of y)o.set(T,f),f+=T.length;return o}function IH(n,y){if(!n||n.length%2!==0)throw new Vo("toolbox_tron_transaction_creation_failed");let t=uH(n),o=g8(t);if(y.expiration!==void 0)o.set(h8,[{data:new Uint8Array(zy(BigInt(y.expiration))),wireType:cf}]);if(y.data!==void 0)o.set(m8,[{data:uH(y.data),wireType:hf}]);if(y.fee_limit!==void 0)o.set(r8,[{data:new Uint8Array(zy(BigInt(y.fee_limit))),wireType:cf}]);let f=d8(o),T=FH(f),C=FH(i8(f));return{raw_data_hex:T,txID:C}}var cf=0,kH=1,hf=2,pH=5,h8=8,m8=10,r8=18;var PH=()=>{};import{secp256k1 as $H}from"@noble/curves/secp256k1.js";import{sha256 as EH}from"@noble/hashes/sha2.js";import{keccak_256 as a8}from"@noble/hashes/sha3.js";import{bytesToHex as Ko,hexToBytes as mf}from"@noble/hashes/utils.js";import{createBase58check as s8}from"@scure/base";import{SwapKitError as vH}from"@swapkit/helpers";function Dn(n){if(typeof n!=="string")return!1;try{let y=rf.decode(n);return y.length===21&&y[0]===bH}catch{return!1}}function VH(n){return Ko(rf.decode(n))}function nw(n){return rf.decode(n).slice(1)}function KH(n){let y=$H.getPublicKey(mf(n),!1),t=a8(y.slice(1)).slice(-20),o=new Uint8Array(21);return o[0]=bH,o.set(t,1),rf.encode(o)}function jH({txID:n,privateKey:y}){let t=$H.sign(mf(n),mf(y),{format:"recovered",prehash:!1}),o=t[0]??0,f=Ko(t.slice(1,33)),T=Ko(t.slice(33,65)),C=(o+27).toString(16).padStart(2,"0");return f+T+C}function jo({txID:n,raw_data_hex:y}){let t=Ko(EH(mf(y)));if(n!==t)throw new vH("toolbox_tron_invalid_transaction_integrity",{expected:t,txID:n})}function ow(n){return`000000000000000000000000${Ko(nw(n))}`}function yw(n){let y=typeof n==="bigint"?n:BigInt(n);if(y<0n||y>=e8)throw new vH("toolbox_tron_invalid_token_identifier",{identifier:y.toString()});return y.toString(16).padStart(64,"0")}function co(n){return n.map(({type:y,value:t})=>y==="address"?ow(t):yw(BigInt(t))).join("")}function cH(n){return Ko(new TextEncoder().encode(n))}var rf,bH=65,e8;var T0=F(()=>{rf=s8(EH),e8=2n**256n});import{Chain as fw,getRPCUrlSync as tw,SwapKitError as On,warnOnce as C0}from"@swapkit/helpers";function hH(){try{return tw(fw.Tron)}catch{return iH}}function mH(){let n=new AbortController,y=setTimeout(()=>n.abort(),_w);return{cleanup:()=>clearTimeout(y),signal:n.signal}}async function io(n,y){let{signal:t,cleanup:o}=mH();try{let f=await fetch(`${hH()}${n}`,{body:JSON.stringify(y),headers:{"Content-Type":"application/json"},method:"POST",signal:t});if(!f.ok)throw new On("toolbox_tron_trongrid_api_error",{message:`${f.status} ${f.statusText} on ${n}`});return await f.json()}finally{o()}}async function rH(n,y){let{signal:t,cleanup:o}=mH();try{let f=await fetch(`${y??hH()}${n}`,{headers:{"Content-Type":"application/json"},signal:t});if(!f.ok)throw new On("toolbox_tron_trongrid_api_error",{message:`${f.status} ${f.statusText} on ${n}`});return await f.json()}finally{o()}}async function gH(n){if(!Dn(n))throw new On("toolbox_tron_trongrid_api_error",{address:n,message:"Invalid address"});try{let y=await rH(`/v1/accounts/${n}`,iH);if(!(y.success&&y.data)||y.data.length===0)return;let t;try{t=VH(n).toLowerCase()}catch{t=n.toLowerCase()}let o=y.data.find((f)=>f.address.toLowerCase()===t);if(!o)return;return{balance:o.balance,trc20:o.trc20||[]}}catch(y){if(y instanceof On)throw y;throw new On("toolbox_tron_trongrid_api_error",{address:n,message:y instanceof Error?y.message:"Unknown error"})}}async function dH({from:n,to:y,amount:t}){let f=await io("/wallet/createtransaction",{amount:t,owner_address:n,to_address:y,visible:!0});if(!f.txID||!f.raw_data_hex||!f.raw_data)throw new On("toolbox_tron_transaction_creation_failed");let C=f.raw_data?.contract?.[0]?.parameter?.value;if(C?.to_address!==y||C?.owner_address!==n||C?.amount!==t)throw new On("toolbox_tron_transaction_creation_failed");return jo(f),f}async function aH({ownerAddress:n,contractAddress:y,functionSelector:t,parameter:o,feeLimit:f,callValue:T=0}){let C=await io("/wallet/triggersmartcontract",{call_value:T,contract_address:y,fee_limit:f,function_selector:t,owner_address:n,parameter:o,visible:!0});if(!C.result.result||!C.transaction?.txID||!C.transaction?.raw_data_hex)throw new On("toolbox_tron_transaction_creation_failed");let _=C.transaction.raw_data?.contract?.[0]?.parameter?.value;if(_?.contract_address!==y||_?.owner_address!==n)throw new On("toolbox_tron_transaction_creation_failed");return jo(C.transaction),C.transaction}function sH({ownerAddress:n,contractAddress:y,functionSelector:t,parameter:o}){return io("/wallet/triggerconstantcontract",{contract_address:y,function_selector:t,owner_address:n,parameter:o,visible:!0})}async function Dy(n){try{let{result:y,txid:t}=await io("/wallet/broadcasttransaction",{raw_data:n.raw_data,raw_data_hex:n.raw_data_hex,signature:n.signature,txID:n.txID,visible:n.visible});if(!y||!t)throw new On("toolbox_tron_token_transfer_failed");return t}catch(y){throw new On("toolbox_tron_broadcast_failed",{error:y})}}async function gf(){let n={};try{let{chainParameter:y}=await rH("/wallet/getchainparameters");for(let t of y)n[t.key]=t.value}catch(y){C0({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${y instanceof Error?y.message:y}`})}return{bandwidthFee:n.getTransactionFee??Tw,createAccountFee:n.getCreateAccountFee??Cw,energyFee:n.getEnergyFee??Hw}}async function H0(n){try{let y=await io("/wallet/getaccountresource",{address:n,visible:!0});return{bandwidth:{free:(y.freeNetLimit??600)-(y.freeNetUsed??0),total:y.NetLimit??0,used:y.NetUsed??0},energy:{total:y.EnergyLimit??0,used:y.EnergyUsed??0}}}catch(y){return C0({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${y instanceof Error?y.message:y}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function _0(n){try{let y=await io("/wallet/getaccount",{address:n,visible:!0});return y&&Object.keys(y).length>0}catch{return!1}}async function A0(n){try{let{energy_used:y}=await sH({...n,ownerAddress:n.sender});return y}catch(y){return C0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy, using default: ${y instanceof Error?y.message:y}`}),65000}}async function eH({assetAddress:n,owner:y,spender:t}){let o=co([{type:"address",value:y},{type:"address",value:t}]),T=(await sH({contractAddress:n,functionSelector:"allowance(address,address)",ownerAddress:t,parameter:o})).constant_result?.[0];if(!T)return 0n;try{return BigInt(`0x${T}`)}catch{return 0n}}var iH="https://api.trongrid.io",Tw=1000,Cw=1e5,Hw=420,_w=30000;var n_=F(()=>{T0()});import{bytesToHex as Aw}from"@noble/hashes/utils.js";import{HDKey as Uw}from"@scure/bip32";import{mnemonicToSeedSync as ww}from"@scure/bip39";import{AssetValue as Kn,BaseDecimal as o_,Chain as Mn,derivationPathToString as t_,getRPCUrl as qw,NetworkDerivationPath as T_,SwapKitError as Cn,updateDerivationPath as C_,warnOnce as y_}from"@swapkit/helpers";import{match as Gw,P as U0}from"ts-pattern";function __({phrase:n,derivationPath:y}){let t=Uw.fromMasterSeed(ww(n)).derive(y);if(!t.privateKey)throw new Cn("toolbox_tron_no_signer");return Aw(t.privateKey)}function A_({phrase:n,derivationPath:y,index:t}){let o=y||t_(C_(T_[Mn.Tron],{index:t||0}));return __({derivationPath:o,phrase:n})}function Lw({phrase:n,derivationPath:y}){let t=__({derivationPath:y,phrase:n}),o=KH(t);return{getAddress:()=>Promise.resolve(o),signTransaction:(f)=>{jo(f);let T=jH({privateKey:t,txID:f.txID});return Promise.resolve({...f,signature:[T]})}}}function f_({transaction:n,memo:y,expiration:t,feeLimit:o}){let f={},T={};if(o!==void 0&&n.raw_data)f.fee_limit=o,T.fee_limit=o;if(y){let _=cH(y);f.data=_,T.data=_}if(t){let _=n.raw_data.expiration+t*1000;f.expiration=_,T.expiration=_}if(Object.keys(f).length===0)return n;let{raw_data_hex:C,txID:H}=IH(n.raw_data_hex,f);return{...n,raw_data:{...n.raw_data,...T},raw_data_hex:C,txID:H}}function U_(n={}){let y="index"in n?n.index||0:0,t=t_("derivationPath"in n&&n.derivationPath?n.derivationPath:C_(T_[Mn.Tron],{index:y})),o,f=!1;function T(){if(f)return Promise.resolve(o);return o=Gw(n).with({phrase:U0.string},({phrase:U})=>Lw({derivationPath:t,phrase:U})).with({signer:U0.not(U0.nullish)},({signer:U})=>U).otherwise(()=>{return}),f=!0,Promise.resolve(o)}async function C(){let U=await T();if(!U)throw new Cn("toolbox_tron_no_signer");return U.getAddress()}async function H(U){let q=U||Ww,L=await gf(),Y=q*L.energyFee,D=Math.ceil(Y*1.5);return Math.min(Math.max(D,1e7),150000000)}async function _({contractAddress:U,functionSelector:q,parameter:L,sender:Y,memo:D,expiration:J}){let O=await A0({contractAddress:U,functionSelector:q,parameter:L,sender:Y}),x=await H(O),u=await aH({contractAddress:U,feeLimit:x,functionSelector:q,ownerAddress:Y,parameter:L});return f_({expiration:J,feeLimit:x,memo:D,transaction:u})}async function A(U){if(!Dn(U))return[Kn.from({chain:Mn.Tron})];try{let q=await gH(U);if(!q)return[Kn.from({chain:Mn.Tron})];let L=[Kn.from({chain:Mn.Tron,fromBaseDecimal:6,value:String(q.balance)})],Y=q.trc20?.find((D)=>(w0 in D));if(Y){let D=Y[w0];L.push(Kn.from({asset:`TRON.USDT-${w0}`,fromBaseDecimal:6,value:D}))}return L}catch(q){return y_({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${q instanceof Error?q.message:q}`}),[Kn.from({chain:Mn.Tron})]}}async function G({recipient:U,assetValue:q,memo:L,expiration:Y}){if(!Dn(U))throw new Cn("toolbox_tron_token_transfer_failed",{message:"invalid address"});let D=await T();if(!D)throw new Cn("toolbox_tron_no_signer");try{let J=await C(),O=await l({assetValue:q,expiration:Y,memo:L,recipient:U,sender:J}),x=await D.signTransaction(O),u=await Dy(x);if(!u)throw new Cn("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return u}catch(J){throw new Cn("toolbox_tron_token_transfer_failed",{message:J instanceof Error?J.message:String(J)})}}function Q({requiredBandwidth:U,resources:q,feePerUnit:L}){let Y=Math.max(0,q.free+q.total-q.used);return U>Y?(U-Y)*L:0}async function w({recipient:U,senderAddress:q}){let[L,Y,D]=await Promise.all([gf(),_0(U),H0(q)]),J=Y?0:L.createAccountFee,O=Q({feePerUnit:L.bandwidthFee,requiredBandwidth:lw,resources:D.bandwidth});return Kn.from({chain:Mn.Tron,fromBaseDecimal:o_.TRON,value:J+O})}async function B({assetValue:U,recipient:q,senderAddress:L}){let Y=U.address;if(!Y)throw new Cn("toolbox_tron_invalid_token_identifier",{identifier:U.toString()});let[D,J,O,x]=await Promise.all([gf(),_0(q),H0(L),A0({contractAddress:Y,functionSelector:"transfer(address,uint256)",parameter:co([{type:"address",value:q},{type:"uint256",value:U.getBaseValue("string")}]),sender:L})]),u=J?0:D.createAccountFee,p=Q({feePerUnit:D.bandwidthFee,requiredBandwidth:Bw,resources:O.bandwidth}),P=Math.max(0,O.energy.total-O.energy.used),v=x>P?(x-P)*D.energyFee:0;return Kn.from({chain:Mn.Tron,fromBaseDecimal:o_.TRON,value:u+p+v})}async function W({assetValue:U,recipient:q,sender:L}){let Y=await T();try{let D=L?L:Y?await C():void 0;if(!D)return U.isGasAsset?Kn.from({chain:Mn.Tron,value:0.1}):Kn.from({chain:Mn.Tron,value:15});return U.isGasAsset?w({recipient:q,senderAddress:D}):B({assetValue:U,recipient:q,senderAddress:D})}catch(D){throw y_({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${D instanceof Error?D.message:D}`}),new Cn("toolbox_fee_estimation_failed",{chain:Mn.Tron,error:D})}}async function l({recipient:U,assetValue:q,memo:L,sender:Y,expiration:D}){if(!Dn(U)||!Dn(Y))throw new Cn("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(q.isGasAsset){let O=await dH({amount:q.getBaseValue("number"),from:Y,to:U});return f_({expiration:D,memo:L,transaction:O})}let J=q.address;if(!J)throw new Cn("toolbox_tron_invalid_token_identifier",{identifier:q.toString()});return _({contractAddress:J,expiration:D,functionSelector:"transfer(address,uint256)",memo:L,parameter:co([{type:"address",value:U},{type:"uint256",value:q.getBaseValue("string")}]),sender:Y})}async function M(U){jo(U);let q=await T();if(!q)throw new Cn("toolbox_tron_no_signer");return q.signTransaction(U)}async function N(U){let q=await M(U);return Dy(q)}function Z({assetAddress:U,spenderAddress:q,from:L}){return eH({assetAddress:U,owner:L,spender:q})}async function z({assetAddress:U,spenderAddress:q,from:L,amount:Y}){let D=await Z({assetAddress:U,from:L,spenderAddress:q});if(!Y)return D>0n;return D>=BigInt(Y)}async function X({assetAddress:U,spenderAddress:q,amount:L,from:Y}){if(!Dn(U)||!Dn(q))throw new Cn("toolbox_tron_approve_failed");let D=await T();if(!D)throw new Cn("toolbox_tron_no_signer");let J=Y||await C(),O=L!==void 0?BigInt(L).toString():Xw;try{let x=await _({contractAddress:U,functionSelector:"approve(address,uint256)",parameter:co([{type:"address",value:q},{type:"uint256",value:O}]),sender:J}),u=await D.signTransaction(x),p=await Dy(u);if(!p)throw new Cn("toolbox_tron_approve_failed");return p}catch(x){if(x instanceof Cn)throw x;throw new Cn("toolbox_tron_approve_failed",{error:x})}}return{approve:X,broadcastTransaction:Dy,createTransaction:l,estimateTransactionFee:W,getAddress:C,getApprovedAmount:Z,getBalance:A,getRpcUrl:()=>qw(Mn.Tron),isApproved:z,signAndBroadcastTransaction:N,signTransaction:M,transfer:G,validateAddress:Dn}}var H_,lw=268,Ww=65000,Bw=345,w0="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",Xw="115792089237316195423570985008687907853269984665640564039457584007913129639935";var w_=F(()=>{PH();n_();T0();H_=Dn});var q0={};nn(q0,{validateTronAddress:()=>H_,getTronToolbox:()=>U_,getTronPrivateKeyFromMnemonic:()=>A_});var G0=F(()=>{w_()});import{AssetValue as Oy,Chain as oo,derivationPathToString as Qw,getChainConfig as Mw,getRPCUrl as Zw,NetworkDerivationPath as Jw,SwapKitError as yo}from"@swapkit/helpers";import{match as Yw,P as Nw}from"ts-pattern";function df(n){if(!n||typeof n!=="string"||!n.startsWith("G")||n.length!==56)return!1;return zw.test(n)}async function Dw(n){if(!df(n))return!1;try{let{StrKey:y}=await import("@stellar/stellar-sdk");return y.isValidEd25519PublicKey(n)}catch{return!1}}function q_(n={}){let y,t=n.derivationPath||Jw[oo.Stellar],o=Qw(t.slice(0,3));async function f({phrase:l,path:M}){let{HDKey:N}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:Z}=await import("@scure/bip39"),{Keypair:z}=await import("@stellar/stellar-sdk"),X=Z(l),q=N.fromMasterSeed(X).derive(M,!0);return z.fromRawEd25519Seed(Buffer.from(q.privateKey))}async function T(){if(y)return y;let l=Yw(n).with({phrase:Nw.string},({phrase:M})=>M).otherwise(()=>{return});if(!l)throw new yo("toolbox_stellar_no_signer");return y=await f({path:o,phrase:l}),y}async function C(){let{Horizon:l}=await import("@stellar/stellar-sdk"),M=await Zw(oo.Stellar);return new l.Server(M)}async function H(){try{return(await T()).publicKey()}catch{return""}}async function _(l){let M=l||await H();if(!M)throw new yo("toolbox_stellar_account_not_found");try{return(await(await C()).loadAccount(M)).balances.map((z)=>{if(z.asset_type==="native")return Oy.from({chain:oo.Stellar,value:z.balance});let X="asset_code"in z?z.asset_code:"",U="asset_issuer"in z?z.asset_issuer:"";return Oy.from({asset:`${oo.Stellar}.${X}-${U}`,asyncTokenLookup:!1,value:z.balance})})}catch{return[Oy.from({chain:oo.Stellar,value:0})]}}async function A({recipient:l,assetValue:M,memo:N,sender:Z}){if(N){if(new TextEncoder().encode(N).length>28)throw new yo("helpers_invalid_memo_type")}if(!await Dw(l))throw new yo("core_transaction_invalid_recipient_address");let X=Z||await H();if(!X)throw new yo("toolbox_stellar_no_signer");let{Asset:U,Memo:q,Networks:L,Operation:Y,TransactionBuilder:D}=await import("@stellar/stellar-sdk"),J=await C(),O=await J.fetchBaseFee(),x=await J.loadAccount(X),u=new D(x,{fee:String(O),networkPassphrase:L.PUBLIC});if(M.isGasAsset)try{await J.loadAccount(l),u.addOperation(Y.payment({amount:M.getValue("string"),asset:U.native(),destination:l}))}catch{u.addOperation(Y.createAccount({destination:l,startingBalance:M.getValue("string")}))}else u.addOperation(Y.payment({amount:M.getValue("string"),asset:new U(M.symbol,M.address),destination:l}));if(N)u.addMemo(q.text(N));return u.setTimeout(30).build()}async function G(l){let{TransactionBuilder:M,Networks:N}=await import("@stellar/stellar-sdk"),Z=await T(),z=M.fromXDR(l.toXDR(),N.PUBLIC);return z.sign(Z),z}async function Q(l){try{let M=await C(),{hash:N}=await M.submitTransaction(l);return N}catch(M){throw new yo("toolbox_stellar_broadcast_error",M)}}async function w({recipient:l,assetValue:M,memo:N}){let Z=await T(),z=Z.publicKey(),X=await A({assetValue:M,memo:N,recipient:l,sender:z});X.sign(Z);try{return(await(await C()).submitTransaction(X)).hash}catch(U){if(U instanceof yo)throw U;throw new yo("toolbox_stellar_transaction_failed",U)}}async function B(l){let M=await G(l);return Q(M)}async function W(){let{baseDecimal:l}=Mw(oo.Stellar);try{let Z=(await(await C()).feeStats()).fee_charged.p50;return Oy.from({chain:oo.Stellar,fromBaseDecimal:l,value:Z})}catch{return Oy.from({chain:oo.Stellar,fromBaseDecimal:l,value:"100"})}}return{broadcastTransaction:Q,createTransaction:A,estimateTransactionFee:W,getAddress:H,getBalance:_,signAndBroadcastTransaction:B,signTransaction:G,transfer:w,validateAddress:df}}var zw;var G_=F(()=>{zw=/^G[A-Z2-7]{55}$/});var af={};nn(af,{validateStellarAddress:()=>df,getStellarToolbox:()=>q_});var sf=F(()=>{G_()});import{AssetValue as Ow,Chain as $,CosmosChains as l0,EVMChains as W0,FeeOption as xw,SwapKitError as Rw,UTXOChains as W_}from"@swapkit/helpers";async function v4(){let{match:n}=await import("ts-pattern"),{validateAptosAddress:y}=await Promise.resolve().then(() => (Ry(),xy)),{validateEVMAddress:t}=await Promise.resolve().then(() => (Nt(),e0)),{validateCardanoAddress:o}=await Promise.resolve().then(() => (St(),Rt)),{getCosmosAddressValidator:f}=await Promise.resolve().then(() => (Hf(),Cf)),{validateHyperCoreAddress:T}=await Promise.resolve().then(() => (CT(),TT)),{validateSolanaAddress:C}=await Promise.resolve().then(() => (wT(),UT)),{validateStarknetAddress:H}=await Promise.resolve().then(() => (Bf(),Wf)),{validateSuiAddress:_}=await Promise.resolve().then(() => (Qf(),Lf)),{validateTonAddress:A}=await Promise.resolve().then(() => (Jf(),Zf)),{getUTXOAddressValidator:G}=await Promise.resolve().then(() => (PT(),IT)),{validateNearAddress:Q}=await Promise.resolve().then(() => (sT(),aT)),{validateRadixAddress:w}=await Promise.resolve().then(() => (o0(),n0)),{validateRippleAddress:B}=await Promise.resolve().then(() => (f0(),y0)),{validateTronAddress:W}=await Promise.resolve().then(() => (G0(),q0)),{validateStellarAddress:l}=await Promise.resolve().then(() => (sf(),af));return function({address:N,chain:Z}){return n(Z).with(...W0,()=>t(N)).with(...W_,(X)=>{return G(X)(N)}).with(...l0,(X)=>{return f(X)(N)}).with($.Aptos,()=>y(N)).with($.Radix,()=>w(N)).with($.HyperCore,()=>T(N)).with($.Near,()=>Q(N)).with($.Ripple,()=>B(N)).with($.Solana,()=>C(N)).with($.Stellar,()=>l(N)).with($.Starknet,()=>H(N)).with($.Sui,()=>_(N)).with($.Ton,()=>A(N)).with($.Tron,()=>W(N)).with($.Cardano,()=>o(N)).otherwise(()=>!1)}}function b4(n){return async function(t){let{match:o}=await import("ts-pattern");return o(n).returnType().with(...W0,async(f)=>{let T=await l_(f),C=await T.createTransaction(t),H="feeOptionKey"in t?t.feeOptionKey:xw.Fast;return T.estimateTransactionFee({...C,feeOption:H})}).with($.Bitcoin,$.BitcoinCash,$.Dogecoin,$.Dash,$.Litecoin,$.Solana,$.Ripple,$.Tron,$.Near,$.Cardano,$.HyperCore,async(f)=>{return(await l_(f)).estimateTransactionFee(t)}).with($.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (Ry(),xy));return f().estimateTransactionFee(t)}).with($.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (Bf(),Wf));return(await f()).estimateTransactionFee(t)}).with($.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (sf(),af));return f().estimateTransactionFee()}).with($.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (Qf(),Lf));return f().estimateTransactionFee(t)}).with($.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (Jf(),Zf));return f().estimateTransactionFee(t)}).with(...l0,async()=>{let{estimateTransactionFee:f}=await Promise.resolve().then(() => (Hf(),Cf));return f(t)}).otherwise(async()=>Ow.from({chain:n}))}}async function l_(n,y){let{match:t}=await import("ts-pattern");return t(n).returnType().with(...W0,async()=>{let{getEvmToolboxAsync:o}=await Promise.resolve().then(() => (Yt(),d0));return await o(n,y)}).with(...W_,async()=>{let{getUtxoToolbox:o}=await Promise.resolve().then(() => (PT(),IT));return o(n,y)}).with(...l0,async()=>{let{getCosmosToolbox:o}=await Promise.resolve().then(() => (Hf(),Cf));return o(n,y)}).with($.Aptos,async()=>{let{getAptosToolbox:o}=await Promise.resolve().then(() => (Ry(),xy));return o(y)}).with($.HyperCore,async()=>{let{getHyperCoreToolbox:o}=await Promise.resolve().then(() => (CT(),TT));return o(y)}).with($.Radix,async()=>{let{getRadixToolbox:o}=await Promise.resolve().then(() => (o0(),n0));return o(y)}).with($.Ripple,async()=>{let{getRippleToolbox:o}=await Promise.resolve().then(() => (f0(),y0));return o(y)}).with($.Solana,async()=>{let{getSolanaToolbox:o}=await Promise.resolve().then(() => (wT(),UT));return o(y)}).with($.Stellar,async()=>{let{getStellarToolbox:o}=await Promise.resolve().then(() => (sf(),af));return o(y)}).with($.Starknet,async()=>{let{getStarknetToolbox:o}=await Promise.resolve().then(() => (Bf(),Wf));return o(y)}).with($.Sui,async()=>{let{getSuiToolbox:o}=await Promise.resolve().then(() => (Qf(),Lf));return o(y)}).with($.Tron,async()=>{let{getTronToolbox:o}=await Promise.resolve().then(() => (G0(),q0));return o(y)}).with($.Near,async()=>{let{getNearToolbox:o}=await Promise.resolve().then(() => (sT(),aT));return o(y)}).with($.Cardano,async()=>{let{getCardanoToolbox:o}=await Promise.resolve().then(() => (St(),Rt));return o(y)}).with($.Ton,async()=>{let{getTONToolbox:o}=await Promise.resolve().then(() => (Jf(),Zf));return o(y)}).otherwise(()=>{throw new Rw("toolbox_not_supported",{chain:n})})}export{l_ as getToolbox,b4 as getFeeEstimator,v4 as getAddressValidator};
|
|
1
|
+
var l_=Object.defineProperty;var W_=(n)=>n;function B_(n,y){this[n]=W_.bind(null,y)}var nn=(n,y)=>{for(var t in y)l_(n,t,{get:y[t],enumerable:!0,configurable:!0,set:B_.bind(y,t)})};var F=(n,y)=>()=>(n&&(y=n(n=0)),y);var R=((n)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(y,t)=>(typeof require<"u"?require:y)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});import{AssetValue as mo,Chain as kn,derivationPathToString as X_,getChainConfig as ef,getRPCUrlSync as X0,NetworkDerivationPath as M_,SwapKitError as yn}from"@swapkit/helpers";import{match as M0,P as nt}from"ts-pattern";function Mo(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 L_.test(y)}function L0({derivationPath:n,provider:y,...t}={}){let o,f=X_(n||M_[kn.Aptos],{allHardened:!0});async function T(){if(o)return o;return o=await M0(t).with({phrase:nt.string},async({phrase:W})=>{let{Ed25519Account:Q}=await import("@aptos-labs/ts-sdk");return Q.fromDerivationPath({mnemonic:W,path:f})}).with({signer:nt.any},({signer:W})=>W).otherwise(()=>{return}),o}async function C(){let{Aptos:W,AptosConfig:Q}=await import("@aptos-labs/ts-sdk"),N=new Q({fullnode:y||X0(kn.Aptos)});return new W(N)}async function H(){return(await T())?.accountAddress.toString()||""}async function _(W){let Q=W||await H();if(!Q)throw new yn("toolbox_aptos_address_required");let{baseDecimal:N,chain:Z}=ef(kn.Aptos);try{let z=await C(),X=await z.getAccountAPTAmount({accountAddress:Q}),U=[mo.from({chain:Z,fromBaseDecimal:N,value:X.toString()})],q=await z.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:Q}}}});for(let L of q){if(L.asset_type===to.COIN_TYPE||Number(L.amount)<=0)continue;let Y=L.asset_type;if(Y){let J=("metadata"in L&&typeof L.metadata==="object"&&L.metadata!==null?L.metadata:void 0)?.decimals??N;U.push(mo.from({asset:`${kn.Aptos}.APT-${Y}`,fromBaseDecimal:J,value:String(L.amount)}))}}return U}catch{return[mo.from({chain:Z})]}}async function A(W){if(!W){let{baseDecimal:q}=ef(kn.Aptos),L=y||X0(kn.Aptos),Y=await fetch(`${L}/estimate_gas_price`),{gas_estimate:D}=await Y.json();return mo.from({chain:kn.Aptos,fromBaseDecimal:q,value:String(D)})}let Q=await T();if(!Q)throw new yn("toolbox_aptos_no_signer");let N=await G(W),Z=await C(),[z]=await Z.transaction.simulate.simple({signerPublicKey:Q.publicKey,transaction:N});if(!z)throw new yn("toolbox_aptos_transaction_creation_error");let X=BigInt(z.gas_used)*BigInt(z.gas_unit_price),{baseDecimal:U}=ef(kn.Aptos);return mo.from({chain:kn.Aptos,fromBaseDecimal:U,value:X.toString()})}async function G({recipient:W,assetValue:Q,maxGasAmount:N,sender:Z}){if(!Mo(W))throw new yn("core_transaction_invalid_recipient_address");let z=Z||await H();if(!z)throw new yn("toolbox_aptos_no_sender");let{AccountAddress:X}=await import("@aptos-labs/ts-sdk"),U=await C(),q=X.from(z);try{let L=Q.isGasAsset?to.TRANSFER:to.FUNGIBLE_STORE_TRANSFER,Y=M0({address:Q?.address,isGasAsset:Q.isGasAsset}).with({isGasAsset:!0},()=>[X.from(W),Q.getBaseValue("bigint")]).with({address:nt.string},({address:D})=>[X.from(D),X.from(W),Q.getBaseValue("bigint")]).otherwise(()=>null);if(!Y)throw new yn("toolbox_aptos_missing_asset_type");return U.transaction.build.simple({data:{function:L,functionArguments:Y,typeArguments:Q.isGasAsset?[]:[to.FUNGIBLE_ASSET_METADATA]},options:N?{maxGasAmount:N}:void 0,sender:q})}catch(L){if(L instanceof yn)throw L;throw new yn("toolbox_aptos_transaction_creation_error",L)}}async function M(W){let Q=await T();if(!Q)throw new yn("toolbox_aptos_no_signer");return(await C()).transaction.sign({signer:Q,transaction:W})}async function w({assetValue:W,maxGasAmount:Q,recipient:N}){let Z=await T();if(!Z)throw new yn("toolbox_aptos_no_signer");if(!Mo(N))throw new yn("core_transaction_invalid_recipient_address");try{let z=Z.accountAddress.toString(),X=await G({assetValue:W,maxGasAmount:Q,recipient:N,sender:z});return(await(await C()).signAndSubmitTransaction({signer:Z,transaction:X})).hash}catch(z){if(z instanceof yn)throw z;throw new yn("toolbox_aptos_transaction_creation_error",z)}}async function B({senderAuthenticator:W,transaction:Q}){try{return(await(await C()).transaction.submit.simple({senderAuthenticator:W,transaction:Q})).hash}catch(N){throw new yn("toolbox_aptos_broadcast_error",N)}}async function l(W){let Q=await M(W);return B({senderAuthenticator:Q,transaction:W})}return{broadcastTransaction:B,createTransaction:G,estimateTransactionFee:A,getAddress:H,getBalance:_,signAndBroadcastTransaction:l,signTransaction:M,transfer:w,validateAddress:Mo}}function Q0({provider:n}){return async function({assetValue:t,recipient:o}){if(!Mo(o))throw new yn("core_transaction_invalid_recipient_address");let{AccountAddress:f}=await import("@aptos-labs/ts-sdk");if(t.isGasAsset)return(await n.signAndSubmitTransaction({arguments:[f.from(o).toString(),t.getBaseValue("string")],function:to.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let T=t.address;if(!T)throw new yn("toolbox_aptos_missing_asset_type");return(await n.signAndSubmitTransaction({arguments:[T,f.from(o).toString(),t.getBaseValue("string")],function:to.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[to.FUNGIBLE_ASSET_METADATA]})).hash}}var to,L_;var Z0=F(()=>{to={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},L_=/^[0-9a-fA-F]+$/});var xy={};nn(xy,{validateAptosAddress:()=>Mo,getAptosToolbox:()=>L0,createAptosExtensionTransfer:()=>Q0});var Ry=F(()=>{Z0()});import{AssetValue as J0,getChainConfig as Q_}from"@swapkit/helpers";import{SwapKitApi as Z_}from"@swapkit/helpers/api";function Y0(){function n(){let y=Date.now(),t=ot||y;return ot=t,y>ot?y:t+1}return J_+n().toString(36)}function wn(n){return async function(t,o=!0){let f=await Z_.getChainBalance({address:t,chain:n,scamFilter:o}),{baseDecimal:T}=Q_(n),C=f.map(({identifier:_,value:A,decimal:G})=>{return new J0({decimal:G||T,identifier:_,value:A})});if(!C.some((_)=>_.isGasAsset))return[J0.from({chain:n}),...C];return C}}var J_,ot=0;var In=F(()=>{J_=typeof process<"u"&&process.pid?process.pid.toString(36):""});function ro(n){return{getBalance:wn(n)}}function Y_(n){return n}var Sy=F(()=>{In()});import{Chain as h,getChainConfig as Tt,getRPCUrl as N_,SwapKitError as Fy}from"@swapkit/helpers";import{getAddress as z0,Interface as z_,JsonRpcProvider as D_}from"ethers";import{match as D0}from"ts-pattern";function O0(n){return new D_(n)}async function Ct(n,y){return O0(y||await N_(n))}function go(n){return n>0n?`0x${n.toString(16)}`:"0x0"}function Ht(n){let{explorerUrl:y,chainIdHex:t,rpcUrls:o}=Tt(n);return function(){return n!==h.Ethereum?{...O_({chain:n}),blockExplorerUrls:[y],chainId:t,rpcUrls:o}:void 0}}function _t(n){return![h.Adi,h.Arbitrum,h.BinanceSmartChain].includes(n)}function O_({chain:n}){let{name:y,nativeCurrency:t,baseDecimal:o}=Tt(n);return D0(n).with(h.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:o,name:"Avalanche",symbol:n}})).with(h.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:o,name:"Berachain",symbol:"BERA"}})).with(h.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:o,name:"OKB",symbol:"OKB"}})).with(h.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:o,name:"Binance Coin",symbol:"BNB"}})).with(h.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:o,name:"xDAI",symbol:"XDAI"}})).with(h.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:o,name:"Polygon",symbol:h.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:o,name:t,symbol:t}}))}async function At(n,y){if(!("authorize"in n))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let t={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await n.authorize(t)}function x0(n,y){let t=y!==void 0?`index ${y}: `:"",o=(f,T)=>{throw new Fy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:f,message:`${t}${T}`}})};D0(n).when(({chainId:f})=>typeof f!=="bigint",()=>o("chainId","chainId must be a bigint")).when(({address:f})=>!x_(f),()=>o("address","address must be a valid checksummed address")).when(({nonce:f})=>typeof f!=="bigint"||f<0n,()=>o("nonce","nonce must be a non-negative bigint")).when(({signature:f})=>!f,()=>o("signature","signature is required")).when(({signature:f})=>typeof f?.yParity!=="number"||![0,1].includes(f.yParity),()=>o("signature.yParity","yParity must be 0 or 1")).when(({signature:f})=>!N0(f?.r),()=>o("signature.r","r must be a 32-byte hex string")).when(({signature:f})=>!N0(f?.s),()=>o("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function R0(n){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>n[y]!=null).map(({key:y,type:t})=>({name:y,type:t}))}function yt(n){return n.charAt(0).toUpperCase()+n.slice(1)}function ft(n,y){if(n.isTuple()&&n.components){let t=yt(n.name);return y[t]=n.components.map((o)=>({name:o.name,type:ft(o,y)})),t}if(n.isArray()){let t=n.arrayChildren;if(t?.isTuple()&&t.components){let o=yt(n.name.replace(/s$/,""));return y[o]=t.components.map((f)=>({name:f.name,type:ft(f,y)})),`${o}[]`}return`${t?.type??"bytes"}[]`}return n.type}function tt(n,y){if(typeof n==="bigint")return n;if(y?.isTuple()&&typeof n?.toObject==="function"){let t=n.toObject(),o={};for(let[f,T]of(y.components??[]).entries())o[T.name]=tt(t[T.name]??n[f],T);return o}if(Array.isArray(n)){let t=y?.arrayChildren;return n.map((o)=>tt(o,t??void 0))}return n}function R_({chain:n,abi:y,data:t,to:o}){let T=new z_(y).parseTransaction({data:t});if(!T)throw new Fy({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let C={},H=yt(T.name);C[H]=T.fragment.inputs.map((w)=>({name:w.name,type:ft(w,C)}));let _={};for(let[w,B]of T.fragment.inputs.entries())_[B.name]=tt(T.args[w],B);let{chainId:A}=Tt(n),G={chainId:Number(A),verifyingContract:z0(o)},M=R0(G);return{domain:G,message:_,primaryType:H,types:{EIP712Domain:M,...C}}}function Ut(n,y){if(!Array.isArray(n)||n.length===0)throw new Fy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[t,o]of n.entries())if(x0(o,t),y!==void 0&&o.chainId!==y)throw new Fy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${t}: authorization chainId (${o.chainId}) does not match transaction chainId (${y})`}})}var N0=(n)=>typeof n==="string"&&/^0x[a-fA-F0-9]{64}$/.test(n),x_=(n)=>{try{return typeof n==="string"&&!!z0(n)}catch{return!1}};var ao=()=>{};var S0;var F0=F(()=>{S0=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as S_,applyFeeMultiplierToBigInt as qn,Chain as Zn,EVMChains as F_,FeeOption as v,isGasAsset as u_,SwapKitError as c,SwapKitNumber as uy}from"@swapkit/helpers";import{erc20ABI as so}from"@swapkit/helpers/contracts";import{BrowserProvider as k_,Contract as u0,getAddress as ky,Interface as k0}from"ethers";import{match as I0}from"ts-pattern";function Lo({chain:n=Zn.Ethereum,provider:y,signer:t,isEIP1559Compatible:o=!0}){return{approve:E_({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),approvedAmount:$0({chain:n,provider:y}),broadcastTransaction:y.broadcastTransaction,call:Wt({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),createApprovalTx:K_({chain:n,provider:y,signer:t}),createContract:qt({chain:n,provider:y}),createContractTxObject:To({chain:n,provider:y}),createTransaction:wt({chain:n,provider:y,signer:t}),createTransferTx:wt({chain:n,provider:y,signer:t}),EIP1193SendTransaction:Zo(y),estimateCall:E0({provider:y,signer:t}),estimateGasLimit:b_({chain:n,provider:y,signer:t}),estimateGasPrices:Co({chain:n,isEIP1559Compatible:o,provider:y}),estimateTransactionFee:j_({chain:n,isEIP1559Compatible:o,provider:y}),getAddress:()=>{return t?t.getAddress():void 0},getBalance:ro(n).getBalance,getNetworkParams:Ht(n),isApproved:$_({chain:n,provider:y}),sendTransaction:v0({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),signAuthorization:V_({signer:t}),signMessage:t?(f)=>t.signMessage(f):void 0,signTypedData:t?({domain:f,types:T,value:C})=>t.signTypedData(f,T,C):void 0,transfer:v_({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),validateAddress:ny}}function ny(n){try{return ky(n),!0}catch{return!1}}function Qo(n){return n instanceof k_}function oy(n,y,t){return new u0(n,k0.from(y),t)}function qt({provider:n}){return function(t,o){return new u0(t,k0.from(o),n)}}function Gt({abi:n,funcName:y}){let t=n.find((o)=>o.name===y);if(!t)throw new c("toolbox_evm_no_abi_fragment",{funcName:y});return t.stateMutability&&I_.includes(t.stateMutability)}function p0(n){return ky(n)}function Zo(n){return function({value:t,...o}){if(!Qo(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:go(BigInt(t||0))}])}}function P0(n,y){let t=Jo(n,y);if(t)return ky(t.toLowerCase());throw new c("toolbox_evm_invalid_gas_asset_address")}function Jo({chain:n,symbol:y,ticker:t},o){try{let f=n===Zn.BinanceSmartChain&&y==="BNB"&&t==="BNB",T=n===Zn.Hyperevm&&y==="HYPE"&&t==="HYPE",C=n===o&&y===o&&t===o,H=P_.includes(n)&&y==="ETH"&&t==="ETH";if(C||f||T||H)return lt[o];return ky(y.slice(t.length+1).replace(/^0X/,""))}catch{return null}}function To({provider:n}){return async({contractAddress:y,abi:t,funcName:o,funcParams:f=[],txOverrides:T})=>oy(y,t,n).getFunction(o).populateTransaction(...f.concat(T).filter((C)=>typeof C<"u"))}function Co({chain:n,provider:y,isEIP1559Compatible:t=!0}){return I0(n).with(Zn.Gnosis,()=>{return async function(){try{let{gasPrice:f,maxPriorityFeePerGas:T}=await y.getFeeData();if(!f||T===null)throw new c("toolbox_evm_no_fee_data");return{[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(Zn.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 Wt({provider:n,isEIP1559Compatible:y,signer:t,chain:o}){return async function({callProvider:T,contractAddress:C,abi:H,funcName:_,funcParams:A=[],txOverrides:G={},feeOption:M=v.Fast}){let w=T||n;if(!C)throw new c("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let B=Gt({abi:H,funcName:_});if(B&&Qo(w)&&t){let Q=To({chain:o,provider:w}),N=G?.from||await t?.getAddress(),Z=await Q({abi:H,contractAddress:C,funcName:_,funcParams:A,txOverrides:{...G,from:N}});return Zo(w)(Z)}let l=oy(C,H,w);if(B){if(!t)throw new c("toolbox_evm_no_signer");let Q=G?.from||await t.getAddress();if(!Q)throw new c("toolbox_evm_no_signer_address");let N=l.connect(t),Z=Co({chain:o,isEIP1559Compatible:y,provider:n}),{maxFeePerGas:z,maxPriorityFeePerGas:X,gasPrice:U}=(await Z())[M],q=await l.getFunction(_).estimateGas(...A,G),L=await N[_](...A,{...G,gasLimit:q,gasPrice:U,maxFeePerGas:z,maxPriorityFeePerGas:X,nonce:G?.nonce||await w.getTransactionCount(Q)});return typeof L?.hash==="string"?L?.hash:L}let W=await l[_]?.(...A);return typeof W?.hash==="string"?W?.hash:W}}function $0({provider:n,chain:y}){return function({assetAddress:o,spenderAddress:f,from:T}){return Wt({chain:y,isEIP1559Compatible:!0,provider:n})({abi:so,contractAddress:o,funcName:"allowance",funcParams:[T,f]})}}function $_({provider:n,chain:y}){return async function({assetAddress:o,spenderAddress:f,from:T,amount:C=eo}){let H=await $0({chain:y,provider:n})({assetAddress:o,from:T,spenderAddress:f});return uy.fromBigInt(H).gte(uy.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:G,nonce:M}){let w=[C,BigInt(_||eo)],B=await n?.getAddress()||G,l={abi:so,contractAddress:T,funcName:"approve",funcParams:w,signer:n,txOverrides:{from:B}};if(Qo(t)){let Q=To({chain:o,provider:t}),N=Zo(t),Z=await Q(l);return N(Z)}return Wt({chain:o,isEIP1559Compatible:y,provider:t,signer:n})({...l,feeOption:H,funcParams:w,txOverrides:{from:B,gasLimit:A?BigInt(A.toString()):void 0,nonce:M}})}}function v_({signer:n,isEIP1559Compatible:y=!0,provider:t}){return async function({assetValue:f,memo:T,recipient:C,feeOptionKey:H=v.Fast,sender:_,...A}){let{hexlify:G,toUtf8Bytes:M}=await import("ethers"),w=f.getBaseValue("bigint"),B=f.chain,l=_||await n?.getAddress(),W=v0({chain:B,isEIP1559Compatible:y,provider:t,signer:n});if(!l)throw new c("toolbox_evm_no_from_address");if(f.isGasAsset){let U={...A,data:G(M(T||"")),feeOptionKey:H,from:l,to:C,value:w};return W(U)}if(!Jo(f,B))throw new c("toolbox_evm_no_contract_address");let{maxFeePerGas:N,maxPriorityFeePerGas:Z,gasPrice:z}=(await Co({chain:B,isEIP1559Compatible:y,provider:t})())[H],X=await wt({chain:B,provider:t,signer:n})({assetValue:f,data:G(M(T||"")),gasPrice:z,maxFeePerGas:N,maxPriorityFeePerGas:Z,memo:T,recipient:C,sender:l});return W(X)}}function E0({provider:n,signer:y}){return function({contractAddress:o,abi:f,funcName:T,funcParams:C=[],txOverrides:H}){if(!o)throw new c("toolbox_evm_no_contract_address");let _=oy(o,f,n);return y?_.connect(y).getFunction(T).estimateGas(...C,H):_.getFunction(T).estimateGas(...C,H)}}function b_({provider:n,signer:y}){return async function({assetValue:o,recipient:f,memo:T,data:C,sender:H,funcName:_,funcParams:A,txOverrides:G}){let M=o.bigIntValue,w=o.isGasAsset?null:Jo(o,o.chain);if(w&&_)return E0({provider:n,signer:y})({abi:so,contractAddress:w,funcName:_,funcParams:A,txOverrides:G});let{hexlify:B,toUtf8Bytes:l}=await import("ethers");return n.estimateGas({data:C?C:T?B(l(T)):void 0,from:H,to:f,value:M})}}function V_({signer:n}){if(!n)return;return(y)=>At(n,y)}function v0({provider:n,signer:y,isEIP1559Compatible:t=!0,chain:o}){return async function({feeOptionKey:T=v.Fast,...C}){let{from:H,to:_,data:A,value:G,...M}=C;if(!y)throw new c("toolbox_evm_no_signer");if(!_)throw new c("toolbox_evm_no_to_address");let w={...M,data:A||"0x",from:H,to:_,value:BigInt(G||0)};if(Qo(n))return Zo(n)(w);let B=H||await y.getAddress(),l=C.nonce||await n.getTransactionCount(B),W=(await n.getNetwork()).chainId,Q=Xt(w,t);if(Q==="eip7702")Ut(w.authorizations||[],W);let N=I0(Q).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),Z={...w,chainId:W,nonce:l,type:N,...Q==="eip7702"&&{authorizationList:w.authorizations}},z=Co({chain:o,isEIP1559Compatible:t,provider:n}),U=Q!=="legacy"&&!(w.maxFeePerGas&&w.maxPriorityFeePerGas)||!w.gasPrice?Object.entries((await z())[T]).reduce((L,[Y,D])=>({...L,[Y]:go(BigInt(D))}),{}):{},q;try{q=go(w.gasLimit||await n.estimateGas(Z)*11n/10n)}catch(L){throw new c("toolbox_evm_error_estimating_gas_limit",{error:L})}try{let L={...Z,gasLimit:q,...U};try{return(await y.sendTransaction(L)).hash}catch{let Y=await y.signTransaction({...L,from:B});return(await n.broadcastTransaction(Y)).hash}}catch(L){throw new c("toolbox_evm_error_sending_transaction",{error:L})}}}function wt({provider:n,signer:y}){return async function({assetValue:o,memo:f,recipient:T,data:C,sender:H,maxFeePerGas:_,maxPriorityFeePerGas:A,gasPrice:G,...M}){let w=o.getBaseValue("bigint"),B=o.chain,l=H||await y?.getAddress();if(!l)throw new c("toolbox_evm_no_from_address");if(u_(o)){let{hexlify:N,toUtf8Bytes:Z}=await import("ethers");return{...M,data:C||N(Z(f||"")),from:l,to:T,value:w}}let W=Jo(o,B);if(!W)throw new c("toolbox_evm_no_contract_address");return To({chain:o.chain,provider:n})({abi:so,contractAddress:W,funcName:"transfer",funcParams:[T,w],txOverrides:{from:l,gasPrice:G,maxFeePerGas:_,maxPriorityFeePerGas:A}})}}function K_({provider:n,signer:y,chain:t}){return async function({assetAddress:f,spenderAddress:T,amount:C,from:H}){let _=await y?.getAddress()||H,A=To({chain:t,provider:n}),G=["bigint","number"].includes(typeof C)?C:C||eo;return await A({abi:so,contractAddress:f,funcName:"approve",funcParams:[T,BigInt(G)],txOverrides:{from:_}})}}function j_({provider:n,isEIP1559Compatible:y=!0,chain:t}){return async function({feeOption:f=v.Fast,...T}){let H=await Co({chain:t,isEIP1559Compatible:y,provider:n})(),_=await n.estimateGas(T),A=S_.from({chain:t}),{gasPrice:G,maxFeePerGas:M,maxPriorityFeePerGas:w}=H[f];if(!y&&G)return A.set(uy.fromBigInt(G*_,A.decimal));if(M&&w){let B=(M+w)*_;return A.set(uy.fromBigInt(B,A.decimal))}throw new c("toolbox_evm_no_gas_price")}}var eo,I_,p_,lt,P_,Iy=(n)=>n.type===4||(n.authorizations?.length??0)>0,Bt=(n)=>!Iy(n)&&(n.type===2||!!n.maxFeePerGas||!!n.maxPriorityFeePerGas),Xt=(n,y=!0)=>{if(Iy(n))return"eip7702";if(Bt(n)||y)return"eip1559";return"legacy"};var py=F(()=>{Sy();ao();eo=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");I_=["payable","nonpayable"];p_=F_.reduce((n,y)=>{return n[y]="0x0000000000000000000000000000000000000000",n},{}),lt={...p_,[Zn.Optimism]:"0x4200000000000000000000000000000000000042",[Zn.Polygon]:"0x0000000000000000000000000000000000001010"},P_=[Zn.Arbitrum,Zn.Aurora,Zn.Base,Zn.Optimism]});import{Chain as g,FeeOption as c_}from"@swapkit/helpers";import{HDNodeWallet as i_}from"ethers";import{match as h_,P as b0}from"ts-pattern";function Py(n){let y=d(g.Ethereum)(n);async function t(o,f="0x5ba1e12693dc8f9c48aad8770482f4739beed696",T="aggregate",C=c_.Fast){let H=await y.createContractTxObject({abi:S0,contractAddress:f,funcName:T,funcParams:[o]});return y.sendTransaction({...H,feeOptionKey:C})}return{...y,multicall:t}}function d(n){return function({provider:t,...o}){let f=_t(n),T=h_(o).with({phrase:b0.string},({phrase:H})=>i_.fromPhrase(H).connect(t)).with({signer:b0.any},({signer:H})=>H).otherwise(()=>{return});return Lo({chain:n,isEIP1559Compatible:f,provider:t,signer:T})}}var $y,Ey,vy,by,Vy,Ky,jy,V0,cy,iy,hy,my,ry,gy,yy,dy,ay,sy,ey;var Mt=F(()=>{F0();ao();py();$y=d(g.Adi),Ey=d(g.Arbitrum),vy=d(g.Aurora),by=d(g.Avalanche),Vy=d(g.Base),Ky=d(g.Berachain),jy=d(g.BinanceSmartChain),V0=d(g.Botanix),cy=d(g.Core),iy=d(g.Corn),hy=d(g.Cronos),my=d(g.Gnosis),ry=d(g.Hyperevm),gy=d(g.Polygon),yy=d(g.Sonic),dy=d(g.Unichain),ay=d(g.XLayer),sy=d(g.Monad),ey=d(g.MegaETH)});var K0;var j0=F(()=>{K0=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as Yo,Chain as r_,FeeOption as pn,SwapKitError as Lt}from"@swapkit/helpers";import{Contract as g_,HDNodeWallet as d_}from"ethers";import{match as a_,P as c0}from"ts-pattern";function Qt(n){return new g_(s_,K0,n)}function i0(n){return async function(){let t=Qt(n);if(t&&"l1BaseFee"in t)return await t?.l1BaseFee();return}}function h0(n){return async function({from:t,to:o,nonce:f,...T}){let{Transaction:C}=await import("ethers");if(!o)throw new Lt("toolbox_evm_invalid_transaction",{error:"Missing to address"});return C.from({...T,authorizationList:T.authorizationList,nonce:f?f:t?await n.getTransactionCount(t):0,to:o}).serialized}}function m0(n){return async function(t){let o=Qt(n),f=await h0(n)(t);if(o&&"getL1Fee"in o)return o.getL1Fee(f)}}function r0(n){return async function(t){let f=(await n.getFeeData()).gasPrice??0n,T=await n.estimateGas(t);return f*T}}function e_(n){return async function(t){let o=await m0(n)(t)??0n,f=await r0(n)(t);return o+f}}function nA(n){return async function(t){let o=Qt(n),f=await h0(n)(t);if(o&&"getL1GasUsed"in o)return o.getL1GasUsed(f)}}function oA(n){return async function(){try{let{maxFeePerGas:t,maxPriorityFeePerGas:o,gasPrice:f}=await n.getFeeData(),T=await i0(n)(),C=f;if(!(t&&o))throw new Lt("toolbox_evm_no_fee_data");return{[pn.Average]:{gasPrice:C,l1GasPrice:T,maxFeePerGas:t,maxPriorityFeePerGas:o},[pn.Fast]:{gasPrice:Yo(C,pn.Fast),l1GasPrice:Yo(T||0n,pn.Fast),maxFeePerGas:t,maxPriorityFeePerGas:Yo(o,pn.Fast)},[pn.Fastest]:{gasPrice:Yo(C,pn.Fastest),l1GasPrice:Yo(T||0n,pn.Fastest),maxFeePerGas:t,maxPriorityFeePerGas:Yo(o,pn.Fastest)}}}catch(t){throw new Lt("toolbox_evm_gas_estimation_error",{error:t.msg??t.toString()})}}}function nf({provider:n,...y}){let t=a_(y).with({phrase:c0.string},({phrase:T})=>d_.fromPhrase(T).connect(n)).with({signer:c0.any},({signer:T})=>T).otherwise(()=>{return}),o=Lo({provider:n,signer:t}),f=i0(n);return{...o,estimateGasPrices:oA(n),estimateL1Gas:nA(n),estimateL1GasCost:m0(n),estimateL2GasCost:r0(n),estimateTotalGasCost:e_(n),getBalance:ro(r_.Optimism).getBalance,getL1GasPrice:f}}var s_="0x420000000000000000000000000000000000000f";var Zt=F(()=>{Sy();j0();py()});var d0={};nn(d0,{validateEVMAddress:()=>ny,toChecksumAddress:()=>p0,isStateChangingCall:()=>Gt,isEIP7702Transaction:()=>Iy,isEIP1559Transaction:()=>Bt,isBrowserProvider:()=>Qo,getTokenAddress:()=>Jo,getEvmToolboxAsync:()=>g0,getEvmToolbox:()=>Jt,getEstimateGasPrices:()=>Co,getEVMTxType:()=>Xt,getEIP1193SendTransaction:()=>Zo,getCreateContractTxObject:()=>To,getCreateContract:()=>qt,getChecksumAddressFromAsset:()=>P0,createContract:()=>oy,XLayerToolbox:()=>ay,UNIToolbox:()=>dy,SONICToolbox:()=>yy,OPToolbox:()=>nf,MONADToolbox:()=>sy,MEGAETHToolbox:()=>ey,MAX_APPROVAL:()=>eo,MATICToolbox:()=>gy,HYPEREVMToolbox:()=>ry,GNOToolbox:()=>my,ETHToolbox:()=>Py,ContractAddress:()=>lt,CROToolbox:()=>hy,CORNToolbox:()=>iy,COREToolbox:()=>cy,BotanixToolbox:()=>V0,BaseEVMToolbox:()=>Lo,BSCToolbox:()=>jy,BERAToolbox:()=>Ky,BASEToolbox:()=>Vy,AVAXToolbox:()=>by,AURORAToolbox:()=>vy,ARBToolbox:()=>Ey,ADIToolbox:()=>$y});import{Chain as r}from"@swapkit/helpers";import{match as yA}from"ts-pattern";function Jt(n,y){return yA(n).with(r.Adi,()=>$y(y)).with(r.Arbitrum,()=>Ey(y)).with(r.Aurora,()=>vy(y)).with(r.Avalanche,()=>by(y)).with(r.Base,()=>Vy(y)).with(r.Berachain,()=>Ky(y)).with(r.BinanceSmartChain,()=>jy(y)).with(r.Botanix,()=>yy(y)).with(r.Core,()=>cy(y)).with(r.Corn,()=>iy(y)).with(r.Cronos,()=>hy(y)).with(r.Ethereum,()=>Py(y)).with(r.Gnosis,()=>my(y)).with(r.Hyperevm,()=>ry(y)).with(r.Optimism,()=>nf(y)).with(r.Polygon,()=>gy(y)).with(r.Sonic,()=>yy(y)).with(r.Unichain,()=>dy(y)).with(r.XLayer,()=>ay(y)).with(r.Monad,()=>sy(y)).with(r.MegaETH,()=>ey(y)).exhaustive()}async function g0(n,y){let t={...y,provider:y?.provider||await Ct(n)};return Jt(n,t)}var Yt=F(()=>{ao();Mt();Zt();py();Mt();Zt()});var a0;var s0=F(()=>{((t)=>{t.Test="goerli";t.Main="homestead"})(a0||={})});var e0={};nn(e0,{validateEVMAddress:()=>ny,validateAuthorizations:()=>Ut,validateAuthorization:()=>x0,toHexString:()=>go,toChecksumAddress:()=>p0,signAuthorization:()=>At,parseEIP712FromEVMTx:()=>R_,isStateChangingCall:()=>Gt,isEIP7702Transaction:()=>Iy,isEIP1559Transaction:()=>Bt,isBrowserProvider:()=>Qo,getTokenAddress:()=>Jo,getProviderSync:()=>O0,getProvider:()=>Ct,getNetworkParams:()=>Ht,getIsEIP1559Compatible:()=>_t,getEvmToolboxAsync:()=>g0,getEvmToolbox:()=>Jt,getEvmApi:()=>ro,getEstimateGasPrices:()=>Co,getEVMTxType:()=>Xt,getEIP1193SendTransaction:()=>Zo,getCreateContractTxObject:()=>To,getCreateContract:()=>qt,getChecksumAddressFromAsset:()=>P0,createCustomEvmApi:()=>Y_,createContract:()=>oy,buildEIP712DomainType:()=>R0,XLayerToolbox:()=>ay,UNIToolbox:()=>dy,SONICToolbox:()=>yy,OPToolbox:()=>nf,MONADToolbox:()=>sy,MEGAETHToolbox:()=>ey,MAX_APPROVAL:()=>eo,MATICToolbox:()=>gy,HYPEREVMToolbox:()=>ry,GNOToolbox:()=>my,EthNetwork:()=>a0,ETHToolbox:()=>Py,ContractAddress:()=>lt,CROToolbox:()=>hy,CORNToolbox:()=>iy,COREToolbox:()=>cy,BotanixToolbox:()=>V0,BaseEVMToolbox:()=>Lo,BSCToolbox:()=>jy,BERAToolbox:()=>Ky,BASEToolbox:()=>Vy,AVAXToolbox:()=>by,AURORAToolbox:()=>vy,ARBToolbox:()=>Ey,ADIToolbox:()=>$y});var Nt=F(()=>{Sy();ao();Yt();s0()});import{bech32 as fA}from"@scure/base";import{mnemonicToSeed as tA}from"@scure/bip39";import{Bip32PrivateKey as TA}from"@stricahq/bip32ed25519";import{Transaction as CA,types as Ot,address as HA,crypto as zt,utils as nC}from"@stricahq/typhonjs";import{AssetValue as No,Chain as Ho,getChainConfig as _A,SwapKitError as fy}from"@swapkit/helpers";import Wn from"bignumber.js";async function xt(n,y){let t=await fetch(`${tC}${n}`,{...y,headers:{project_id:fC,...y?.headers}});if(!t.ok)throw Error(`Blockfrost API error: ${t.status} ${t.statusText}`);return t.json()}async function TC(n){try{return await xt(`/addresses/${n}/utxos`)}catch{return[]}}async function UA(){return(await xt("/blocks/latest")).slot}async function wA(){let n=await xt("/epochs/latest/parameters"),y={PlutusScriptV1:n.cost_models.PlutusV1?Object.values(n.cost_models.PlutusV1):[],PlutusScriptV2:n.cost_models.PlutusV2?Object.values(n.cost_models.PlutusV2):[],PlutusScriptV3:n.cost_models.PlutusV3?Object.values(n.cost_models.PlutusV3):[]};return{collateralPercent:new 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 yC(n){let y=await fetch(`${tC}/tx/submit`,{body:Buffer.from(n,"hex"),headers:{"Content-Type":"application/cbor",project_id:fC},method:"POST"});if(!y.ok){let t=await y.text();throw Error(`Transaction submission failed: ${t}`)}return y.json()}function qA(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 GA(n){try{let y=await TC(n),t=0n,o=new Map;for(let C of y){if(!C.amount||!Array.isArray(C.amount))continue;for(let H of C.amount){let{unit:_,quantity:A}=H;if(_==="lovelace")t+=BigInt(A);else{let G=o.get(_)||0n;o.set(_,G+BigInt(A))}}}let f=[],{baseDecimal:T}=_A(Ho.Cardano);if(t>0n)f.push(No.from({chain:Ho.Cardano,fromBaseDecimal:T,value:t.toString()}));for(let[C,H]of o)f.push(No.from({asset:`${Ho.Cardano}.${C}`,value:H.toString()}));if(f.length===0)return[No.from({chain:Ho.Cardano})];return f}catch(y){let t=y instanceof Error?y.message:String(y);return console.error(`Cardano balance fetch error: ${t}`),[No.from({chain:Ho.Cardano})]}}function CC(n){if(!n||typeof n!=="string")return!1;try{let y=fA.decode(n,120);return y.prefix==="addr"||y.prefix==="addr_test"}catch{return!1}}async function lA(n,y=0,t=0){let o=await tA(n,""),T=(await TA.fromEntropy(Buffer.from(o.slice(0,64)))).derive(Dt+1852).derive(Dt+1815).derive(Dt+y),C=T.derive(0).derive(t),H=C.toBip32PublicKey().toPublicKey().toBytes(),_=zt.hash28(H),G=T.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),M=zt.hash28(G),w={hash:_,type:Ot.HashType.ADDRESS},B={hash:M,type:Ot.HashType.ADDRESS},W=new HA.BaseAddress(AA,w,B).getBech32(),Q=C.toPrivateKey();return{getAddress:()=>W,publicKey:H,publicKeyHash:_,signTransaction:async(N)=>{try{let Z=await import("@stricahq/cbors"),z=Buffer.from(N,"hex"),X=Z.Decoder.decode(z),[U,q,L,Y]=X.value,D=Z.Encoder.encode(U),J=zt.hash32(D),O=Q.sign(J),x=q instanceof Map?q:new Map,u=x.get(oC)||[];u.push([H,O]),x.set(oC,u);let I=[U,x,L,Y];return Z.Encoder.encode(I).toString("hex")}catch(Z){throw new fy("toolbox_cardano_sign_transaction_failed",{message:String(Z)})}}}}function WA(n){let y,t,o;async function f(){if(!o)o=await wA();return o}async function T(){if(y!==void 0)return y;if(n&&"phrase"in n&&n.phrase){let B=n.index??0;return y=await lA(n.phrase,0,B),y}if(n&&"signer"in n&&n.signer)return y=n.signer,y;return}async function C(){if(t)return t;let B=await T();if(!B)return"";if("getAddress"in B)return t=await B.getAddress(),t;return""}async function H(B){let l=B||await C();if(!l)throw new fy("core_wallet_connection_not_found");return GA(l)}async function _(B){if(B)try{let{tx:N}=await A(B),Z=N.getFee();return No.from({chain:Ho.Cardano,fromBaseDecimal:6,value:Z.toString()})}catch{}let l=await f(),W=400,Q=l.minFeeB.plus(l.minFeeA.times(W));return No.from({chain:Ho.Cardano,fromBaseDecimal:6,value:Q.toString()})}async function A({sender:B="",recipient:l,assetValue:W,memo:Q,pureLovelaceOnly:N=!1}){let Z=B||await C();if(!Z)throw new fy("core_wallet_connection_not_found");let[z,X,U]=await Promise.all([TC(Z),UA(),f()]),q=z.filter((V)=>N?V.amount.every((m)=>m.unit==="lovelace"):V.amount.some((m)=>m.unit==="lovelace")).sort((V,m)=>{let Hn=V.amount.some((a)=>a.unit!=="lovelace"),An=m.amount.some((a)=>a.unit!=="lovelace");if(Hn===An)return 0;return Hn?1:-1}),L=nC.getAddressFromString(Z),Y=nC.getAddressFromString(l),D=qA(q,L),J=new Wn(W.getBaseValue("string")),O=[{address:Y,amount:J,tokens:[]}],x;if(Q){let V=new Map;V.set("msg",[Q]),x={metadata:[{data:V,label:674}]}}let u={...U,minFeeB:U.minFeeB.plus(U.minFeeA.times(4))},P=new CA({protocolParams:u}).paymentTransaction({auxiliaryData:x,changeAddress:L,inputs:D,outputs:O,ttl:X+3600}),{payload:b}=P.buildTransaction();return{tx:P,unsignedTx:b}}async function G(B){let l=await T();if(!l||!("signTransaction"in l))throw new fy("core_wallet_connection_not_found");return l.signTransaction(B)}async function M({recipient:B,assetValue:l,memo:W}){let Q=await T();if(!Q||!("signTransaction"in Q))throw new fy("core_wallet_connection_not_found");let{unsignedTx:N}=await A({assetValue:l,memo:W,recipient:B,sender:await C()}),Z=await G(N);return await yC(Z)}async function w(B){let l=await G(B);return await yC(l)}return{createTransaction:A,estimateTransactionFee:_,getAddress:C,getBalance:H,signAndBroadcastTransaction:w,signTransaction:G,transfer:M,validateAddress:CC}}var fC="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",tC="https://cardano-mainnet.blockfrost.io/api/v0",AA,Dt=2147483648,oC=0;var HC=F(()=>{AA=Ot.NetworkId.MAINNET});var Rt={};nn(Rt,{validateCardanoAddress:()=>CC,getCardanoToolbox:()=>WA});var St=F(()=>{HC()});import{base64 as yf,bech32 as of}from"@scure/base";import{SwapKitError as BA}from"@swapkit/helpers";function ty(n){return yf.encode(Uint8Array.from(of.fromWords(of.decode(n).words)))}function Ty(n,y="thor"){return of.encode(y,of.toWords(yf.decode(n)))}function XA(n){return yf.encode(n)}function MA(n){if(!n.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new BA("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return yf.decode(n)}var Ft=()=>{};import{AssetValue as ut,Chain as E,getChainConfig as xn,getRPCUrl as LA,SwapKitError as _C}from"@swapkit/helpers";function Pn(n){switch(n){case E.Maya:return{amount:[],gas:"10000000000"};case E.THORChain:return{amount:[],gas:"500000000"};case E.Kujira:return wC;case E.Noble:return qC;default:return UC}}async function $n(n){let y=await import("@cosmjs/stargate"),t=y.StargateClient??y.default?.StargateClient,o=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return t.connect({headers:o,url:n})}async function _o(n,y,t={}){let o=await import("@cosmjs/stargate"),f=o.SigningStargateClient??o.default?.SigningStargateClient,T=o.GasPrice??o.default?.GasPrice,C=typeof t==="string"?t:"0.0003uatom",H=typeof t==="string"?{}:t;return f.connectWithSigner(n,y,{gasPrice:T.fromString(C),...H})}async function It(n,y){let t=await import("@cosmjs/stargate");return(t.SigningStargateClient??t.default?.SigningStargateClient).offline(n,y)}async function pt({sender:n,recipient:y,assetValue:t,memo:o="",feeRate:f,sequence:T,accountNumber:C}){let{chain:H,chainId:_}=t,A=await LA(H),M=await(await $n(A)).getAccount(n);if(!M)throw new _C("toolbox_cosmos_account_not_found",{sender:n});let w=ut.from({chain:H}),B=jn(w.symbol),l=Pn(H),W=B&&f?{amount:[{amount:f.toString(),denom:B}],gas:l.gas}:l,Q={amount:[{amount:t.getBaseValue("string"),denom:jn(t.symbol)}],fromAddress:n,toAddress:y};return{accountNumber:C??M.accountNumber,chainId:_,fee:W,memo:o,msgs:[{typeUrl:QA(H),value:Q}],sequence:T??M.sequence}}var kt="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",AC="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",UC,wC,qC,jn=(n,y=!1)=>{if(y)return n.toLowerCase();switch(n){case"uUSK":case"USK":return kt;case"uYUM":case"YUM":return AC;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return n}},Cy=({symbol:n,chain:y})=>{if(y===E.Maya)return(n.toUpperCase()!=="CACAO"?n:`${E.Maya}.${n}`).toUpperCase();if(y===E.THORChain)return(["RUNE","TCY","RUJI"].includes(n.toUpperCase())?`${E.THORChain}.${n}`:n).toUpperCase();return jn(n,!1)},QA=(n)=>{switch(n){case E.Maya:case E.THORChain:return"/types.MsgSend";case E.Cosmos:case E.Kujira:case E.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new _C("toolbox_cosmos_not_supported",{chain:n})}},ZA,Pt=(n,y)=>{let t=ZA[n.toLowerCase()];if(!t)return ut.from({asset:n,fromBaseDecimal:8,value:y});let{chain:o,asset:f,decimals:T}=t,C=o?{chain:o}:{asset:f};return ut.from({...C,fromBaseDecimal:T,value:y})};var Hy=F(()=>{UC={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},wC={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},qC={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};ZA={atom:{chain:E.Cosmos,decimals:xn(E.Cosmos).baseDecimal},cacao:{chain:E.Maya,decimals:10},kuji:{chain:E.Kujira,decimals:xn(E.Kujira).baseDecimal},maya:{asset:`${E.Maya}.${E.Maya}`,decimals:4},rune:{chain:E.THORChain,decimals:xn(E.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:xn(E.THORChain).baseDecimal},uatom:{chain:E.Cosmos,decimals:xn(E.Cosmos).baseDecimal},ukuji:{chain:E.Kujira,decimals:xn(E.Kujira).baseDecimal},usdc:{chain:E.Noble,decimals:xn(E.Noble).baseDecimal},uusdc:{chain:E.Noble,decimals:xn(E.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:xn(E.THORChain).baseDecimal},[kt.toLowerCase()]:{asset:`${E.Kujira}.USK`,decimals:xn(E.Kujira).baseDecimal}}});var GC={};nn(GC,{$root:()=>S});import on from"protobufjs/minimal.js";var p,Mn,k,S;var lC=F(()=>{p=on.Reader,Mn=on.Writer,k=on.util,S=on.roots.default||(on.roots.default={});S.common=(()=>{let n={};return n.Asset=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.chain="",y.prototype.symbol="",y.prototype.ticker="",y.prototype.synth=!1,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=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 S.common.Asset;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.chain=o.string();break;case 2:C.symbol=o.string();break;case 3:C.ticker=o.string();break;case 4:C.synth=o.bool();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof 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(!k.isString(o.chain))return"chain: string expected"}if(o.symbol!=null&&o.hasOwnProperty("symbol")){if(!k.isString(o.symbol))return"symbol: string expected"}if(o.ticker!=null&&o.hasOwnProperty("ticker")){if(!k.isString(o.ticker))return"ticker: string expected"}if(o.synth!=null&&o.hasOwnProperty("synth")){if(typeof o.synth!=="boolean")return"synth: boolean expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Asset)return o;let f=new S.common.Asset;if(o.chain!=null)f.chain=String(o.chain);if(o.symbol!=null)f.symbol=String(o.symbol);if(o.ticker!=null)f.ticker=String(o.ticker);if(o.synth!=null)f.synth=Boolean(o.synth);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)T.chain="",T.symbol="",T.ticker="",T.synth=!1;if(o.chain!=null&&o.hasOwnProperty("chain"))T.chain=o.chain;if(o.symbol!=null&&o.hasOwnProperty("symbol"))T.symbol=o.symbol;if(o.ticker!=null&&o.hasOwnProperty("ticker"))T.ticker=o.ticker;if(o.synth!=null&&o.hasOwnProperty("synth"))T.synth=o.synth;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Coin=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.asset=null,y.prototype.amount="",y.prototype.decimals=k.Long?k.Long.fromBits(0,0,!1):0,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.asset!=null&&Object.hasOwnProperty.call(o,"asset"))S.common.Asset.encode(o.asset,f.uint32(10).fork()).ldelim();if(o.amount!=null&&Object.hasOwnProperty.call(o,"amount"))f.uint32(18).string(o.amount);if(o.decimals!=null&&Object.hasOwnProperty.call(o,"decimals"))f.uint32(24).int64(o.decimals);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof p))o=p.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.Coin;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.asset=S.common.Asset.decode(o,o.uint32());break;case 2:C.amount=o.string();break;case 3:C.decimals=o.int64();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof 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=S.common.Asset.verify(o.asset);if(f)return"asset."+f}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!k.isString(o.amount))return"amount: string expected"}if(o.decimals!=null&&o.hasOwnProperty("decimals")){if(!k.isInteger(o.decimals)&&!(o.decimals&&k.isInteger(o.decimals.low)&&k.isInteger(o.decimals.high)))return"decimals: integer|Long expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Coin)return o;let f=new S.common.Coin;if(o.asset!=null){if(typeof o.asset!=="object")throw TypeError(".common.Coin.asset: object expected");f.asset=S.common.Asset.fromObject(o.asset)}if(o.amount!=null)f.amount=String(o.amount);if(o.decimals!=null){if(k.Long)(f.decimals=k.Long.fromValue(o.decimals)).unsigned=!1;else if(typeof o.decimals==="string")f.decimals=Number.parseInt(o.decimals,10);else if(typeof o.decimals==="number")f.decimals=o.decimals;else if(typeof o.decimals==="object")f.decimals=new k.LongBits(o.decimals.low>>>0,o.decimals.high>>>0).toNumber()}return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)if(T.asset=null,T.amount="",k.Long){let C=new k.Long(0,0,!1);T.decimals=f.longs===String?C.toString():f.longs===Number?C.toNumber():C}else T.decimals=f.longs===String?"0":0;if(o.asset!=null&&o.hasOwnProperty("asset"))T.asset=S.common.Asset.toObject(o.asset,f);if(o.amount!=null&&o.hasOwnProperty("amount"))T.amount=o.amount;if(o.decimals!=null&&o.hasOwnProperty("decimals"))if(typeof o.decimals==="number")T.decimals=f.longs===String?String(o.decimals):o.decimals;else T.decimals=f.longs===String?k.Long.prototype.toString.call(o.decimals):f.longs===Number?new k.LongBits(o.decimals.low>>>0,o.decimals.high>>>0).toNumber():o.decimals;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.PubKeySet=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.secp256k1="",y.prototype.ed25519="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=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 S.common.PubKeySet;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.secp256k1=o.string();break;case 2:C.ed25519=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof 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(!k.isString(o.secp256k1))return"secp256k1: string expected"}if(o.ed25519!=null&&o.hasOwnProperty("ed25519")){if(!k.isString(o.ed25519))return"ed25519: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.PubKeySet)return o;let f=new S.common.PubKeySet;if(o.secp256k1!=null)f.secp256k1=String(o.secp256k1);if(o.ed25519!=null)f.ed25519=String(o.ed25519);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)T.secp256k1="",T.ed25519="";if(o.secp256k1!=null&&o.hasOwnProperty("secp256k1"))T.secp256k1=o.secp256k1;if(o.ed25519!=null&&o.hasOwnProperty("ed25519"))T.ed25519=o.ed25519;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Tx=(()=>{function y(t){if(this.coins=[],this.gas=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.id="",y.prototype.chain="",y.prototype.fromAddress="",y.prototype.toAddress="",y.prototype.coins=k.emptyArray,y.prototype.gas=k.emptyArray,y.prototype.memo="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=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)S.common.Coin.encode(o.coins[T],f.uint32(42).fork()).ldelim();if(o.gas?.length)for(let T=0;T<o.gas.length;++T)S.common.Coin.encode(o.gas[T],f.uint32(50).fork()).ldelim();if(o.memo!=null&&Object.hasOwnProperty.call(o,"memo"))f.uint32(58).string(o.memo);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof p))o=p.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.Tx;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.id=o.string();break;case 2:C.chain=o.string();break;case 3:C.fromAddress=o.string();break;case 4:C.toAddress=o.string();break;case 5:if(!C.coins?.length)C.coins=[];C.coins.push(S.common.Coin.decode(o,o.uint32()));break;case 6:if(!C.gas?.length)C.gas=[];C.gas.push(S.common.Coin.decode(o,o.uint32()));break;case 7:C.memo=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof 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(!k.isString(o.id))return"id: string expected"}if(o.chain!=null&&o.hasOwnProperty("chain")){if(!k.isString(o.chain))return"chain: string expected"}if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress")){if(!k.isString(o.fromAddress))return"fromAddress: string expected"}if(o.toAddress!=null&&o.hasOwnProperty("toAddress")){if(!k.isString(o.toAddress))return"toAddress: string expected"}if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let T=S.common.Coin.verify(o.coins[f]);if(T)return"coins."+T}}if(o.gas!=null&&o.hasOwnProperty("gas")){if(!Array.isArray(o.gas))return"gas: array expected";for(let f=0;f<o.gas.length;++f){let T=S.common.Coin.verify(o.gas[f]);if(T)return"gas."+T}}if(o.memo!=null&&o.hasOwnProperty("memo")){if(!k.isString(o.memo))return"memo: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Tx)return o;let f=new S.common.Tx;if(o.id!=null)f.id=String(o.id);if(o.chain!=null)f.chain=String(o.chain);if(o.fromAddress!=null)f.fromAddress=String(o.fromAddress);if(o.toAddress!=null)f.toAddress=String(o.toAddress);if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".common.Tx.coins: array expected");f.coins=[];for(let T=0;T<o.coins.length;++T){if(typeof o.coins[T]!=="object")throw TypeError(".common.Tx.coins: object expected");f.coins[T]=S.common.Coin.fromObject(o.coins[T])}}if(o.gas){if(!Array.isArray(o.gas))throw TypeError(".common.Tx.gas: array expected");f.gas=[];for(let T=0;T<o.gas.length;++T){if(typeof o.gas[T]!=="object")throw TypeError(".common.Tx.gas: object expected");f.gas[T]=S.common.Coin.fromObject(o.gas[T])}}if(o.memo!=null)f.memo=String(o.memo);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.coins=[],T.gas=[];if(f.defaults)T.id="",T.chain="",T.fromAddress="",T.toAddress="",T.memo="";if(o.id!=null&&o.hasOwnProperty("id"))T.id=o.id;if(o.chain!=null&&o.hasOwnProperty("chain"))T.chain=o.chain;if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress"))T.fromAddress=o.fromAddress;if(o.toAddress!=null&&o.hasOwnProperty("toAddress"))T.toAddress=o.toAddress;if(o.coins?.length){T.coins=[];for(let C=0;C<o.coins.length;++C)T.coins[C]=S.common.Coin.toObject(o.coins[C],f)}if(o.gas?.length){T.gas=[];for(let C=0;C<o.gas.length;++C)T.gas[C]=S.common.Coin.toObject(o.gas[C],f)}if(o.memo!=null&&o.hasOwnProperty("memo"))T.memo=o.memo;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Fee=(()=>{function y(t){if(this.coins=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.coins=k.emptyArray,y.prototype.poolDeduct="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.coins?.length)for(let T=0;T<o.coins.length;++T)S.common.Coin.encode(o.coins[T],f.uint32(10).fork()).ldelim();if(o.poolDeduct!=null&&Object.hasOwnProperty.call(o,"poolDeduct"))f.uint32(18).string(o.poolDeduct);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof p))o=p.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.Fee;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:if(!C.coins?.length)C.coins=[];C.coins.push(S.common.Coin.decode(o,o.uint32()));break;case 2:C.poolDeduct=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof 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=S.common.Coin.verify(o.coins[f]);if(T)return"coins."+T}}if(o.poolDeduct!=null&&o.hasOwnProperty("poolDeduct")){if(!k.isString(o.poolDeduct))return"poolDeduct: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Fee)return o;let f=new S.common.Fee;if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".common.Fee.coins: array expected");f.coins=[];for(let T=0;T<o.coins.length;++T){if(typeof o.coins[T]!=="object")throw TypeError(".common.Fee.coins: object expected");f.coins[T]=S.common.Coin.fromObject(o.coins[T])}}if(o.poolDeduct!=null)f.poolDeduct=String(o.poolDeduct);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.coins=[];if(f.defaults)T.poolDeduct="";if(o.coins?.length){T.coins=[];for(let C=0;C<o.coins.length;++C)T.coins[C]=S.common.Coin.toObject(o.coins[C],f)}if(o.poolDeduct!=null&&o.hasOwnProperty("poolDeduct"))T.poolDeduct=o.poolDeduct;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.ProtoUint=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.value="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=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 S.common.ProtoUint;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.value=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof 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(!k.isString(o.value))return"value: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.ProtoUint)return o;let f=new S.common.ProtoUint;if(o.value!=null)f.value=String(o.value);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)T.value="";if(o.value!=null&&o.hasOwnProperty("value"))T.value=o.value;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n})();S.types=(()=>{let n={};return n.MsgDeposit=(()=>{function y(t){if(this.coins=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.coins=k.emptyArray,y.prototype.memo="",y.prototype.signer=k.newBuffer([]),y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.coins?.length)for(let T=0;T<o.coins.length;++T)S.common.Coin.encode(o.coins[T],f.uint32(10).fork()).ldelim();if(o.memo!=null&&Object.hasOwnProperty.call(o,"memo"))f.uint32(18).string(o.memo);if(o.signer!=null&&Object.hasOwnProperty.call(o,"signer"))f.uint32(26).bytes(o.signer);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof p))o=p.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.types.MsgDeposit;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:if(!C.coins?.length)C.coins=[];C.coins.push(S.common.Coin.decode(o,o.uint32()));break;case 2:C.memo=o.string();break;case 3:C.signer=o.bytes();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof 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=S.common.Coin.verify(o.coins[f]);if(T)return"coins."+T}}if(o.memo!=null&&o.hasOwnProperty("memo")){if(!k.isString(o.memo))return"memo: string expected"}if(o.signer!=null&&o.hasOwnProperty("signer")){if(!(o.signer&&typeof o.signer.length==="number"||k.isString(o.signer)))return"signer: buffer expected"}return null},y.fromObject=function(o){if(o instanceof S.types.MsgDeposit)return o;let f=new S.types.MsgDeposit;if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".types.MsgDeposit.coins: array expected");f.coins=[];for(let T=0;T<o.coins.length;++T){if(typeof o.coins[T]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");f.coins[T]=S.common.Coin.fromObject(o.coins[T])}}if(o.memo!=null)f.memo=String(o.memo);if(o.signer!=null){if(typeof o.signer==="string")k.base64.decode(o.signer,f.signer=k.newBuffer(k.base64.length(o.signer)),0);else if(o.signer.length)f.signer=o.signer}return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.coins=[];if(f.defaults){if(T.memo="",f.bytes===String)T.signer="";else if(T.signer=[],f.bytes!==Array)T.signer=k.newBuffer(T.signer)}if(o.coins?.length){T.coins=[];for(let C=0;C<o.coins.length;++C)T.coins[C]=S.common.Coin.toObject(o.coins[C],f)}if(o.memo!=null&&o.hasOwnProperty("memo"))T.memo=o.memo;if(o.signer!=null&&o.hasOwnProperty("signer"))T.signer=f.bytes===String?k.base64.encode(o.signer,0,o.signer.length):f.bytes===Array?Array.prototype.slice.call(o.signer):o.signer;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.MsgSend=(()=>{function y(t){if(this.amount=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.fromAddress=k.newBuffer([]),y.prototype.toAddress=k.newBuffer([]),y.prototype.amount=k.emptyArray,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=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)S.cosmos.base.v1beta1.Coin.encode(o.amount[T],f.uint32(26).fork()).ldelim();return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof p))o=p.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.types.MsgSend;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.fromAddress=o.bytes();break;case 2:C.toAddress=o.bytes();break;case 3:if(!C.amount?.length)C.amount=[];C.amount.push(S.cosmos.base.v1beta1.Coin.decode(o,o.uint32()));break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof 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"||k.isString(o.fromAddress)))return"fromAddress: buffer expected"}if(o.toAddress!=null&&o.hasOwnProperty("toAddress")){if(!(o.toAddress&&typeof o.toAddress.length==="number"||k.isString(o.toAddress)))return"toAddress: buffer expected"}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!Array.isArray(o.amount))return"amount: array expected";for(let f=0;f<o.amount.length;++f){let T=S.cosmos.base.v1beta1.Coin.verify(o.amount[f]);if(T)return"amount."+T}}return null},y.fromObject=function(o){if(o instanceof S.types.MsgSend)return o;let f=new S.types.MsgSend;if(o.fromAddress!=null){if(typeof o.fromAddress==="string")k.base64.decode(o.fromAddress,f.fromAddress=k.newBuffer(k.base64.length(o.fromAddress)),0);else if(o.fromAddress.length)f.fromAddress=o.fromAddress}if(o.toAddress!=null){if(typeof o.toAddress==="string")k.base64.decode(o.toAddress,f.toAddress=k.newBuffer(k.base64.length(o.toAddress)),0);else if(o.toAddress.length)f.toAddress=o.toAddress}if(o.amount){if(!Array.isArray(o.amount))throw TypeError(".types.MsgSend.amount: array expected");f.amount=[];for(let T=0;T<o.amount.length;++T){if(typeof o.amount[T]!=="object")throw TypeError(".types.MsgSend.amount: object expected");f.amount[T]=S.cosmos.base.v1beta1.Coin.fromObject(o.amount[T])}}return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.amount=[];if(f.defaults){if(f.bytes===String)T.fromAddress="";else if(T.fromAddress=[],f.bytes!==Array)T.fromAddress=k.newBuffer(T.fromAddress);if(f.bytes===String)T.toAddress="";else if(T.toAddress=[],f.bytes!==Array)T.toAddress=k.newBuffer(T.toAddress)}if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress"))T.fromAddress=f.bytes===String?k.base64.encode(o.fromAddress,0,o.fromAddress.length):f.bytes===Array?Array.prototype.slice.call(o.fromAddress):o.fromAddress;if(o.toAddress!=null&&o.hasOwnProperty("toAddress"))T.toAddress=f.bytes===String?k.base64.encode(o.toAddress,0,o.toAddress.length):f.bytes===Array?Array.prototype.slice.call(o.toAddress):o.toAddress;if(o.amount?.length){T.amount=[];for(let C=0;C<o.amount.length;++C)T.amount[C]=S.cosmos.base.v1beta1.Coin.toObject(o.amount[C],f)}return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n})();S.cosmos=(()=>{let n={};return n.base=(()=>{let y={};return y.v1beta1=(()=>{let t={};return t.Coin=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.denom="",o.prototype.amount="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=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 S.cosmos.base.v1beta1.Coin;while(T.pos<H){let A=T.uint32();switch(A>>>3){case 1:_.denom=T.string();break;case 2:_.amount=T.string();break;default:T.skipType(A&7);break}}return _},o.decodeDelimited=function(T){if(!(T instanceof 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(!k.isString(T.denom))return"denom: string expected"}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!k.isString(T.amount))return"amount: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.Coin)return T;let C=new S.cosmos.base.v1beta1.Coin;if(T.denom!=null)C.denom=String(T.denom);if(T.amount!=null)C.amount=String(T.amount);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.denom="",H.amount="";if(T.denom!=null&&T.hasOwnProperty("denom"))H.denom=T.denom;if(T.amount!=null&&T.hasOwnProperty("amount"))H.amount=T.amount;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t.DecCoin=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.denom="",o.prototype.amount="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=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 S.cosmos.base.v1beta1.DecCoin;while(T.pos<H){let A=T.uint32();switch(A>>>3){case 1:_.denom=T.string();break;case 2:_.amount=T.string();break;default:T.skipType(A&7);break}}return _},o.decodeDelimited=function(T){if(!(T instanceof 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(!k.isString(T.denom))return"denom: string expected"}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!k.isString(T.amount))return"amount: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.DecCoin)return T;let C=new S.cosmos.base.v1beta1.DecCoin;if(T.denom!=null)C.denom=String(T.denom);if(T.amount!=null)C.amount=String(T.amount);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.denom="",H.amount="";if(T.denom!=null&&T.hasOwnProperty("denom"))H.denom=T.denom;if(T.amount!=null&&T.hasOwnProperty("amount"))H.amount=T.amount;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t.IntProto=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.int="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=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 S.cosmos.base.v1beta1.IntProto;while(T.pos<H){let A=T.uint32();switch(A>>>3){case 1:_.int=T.string();break;default:T.skipType(A&7);break}}return _},o.decodeDelimited=function(T){if(!(T instanceof 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(!k.isString(T.int))return"int: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.IntProto)return T;let C=new S.cosmos.base.v1beta1.IntProto;if(T.int!=null)C.int=String(T.int);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.int="";if(T.int!=null&&T.hasOwnProperty("int"))H.int=T.int;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t.DecProto=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.dec="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=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 S.cosmos.base.v1beta1.DecProto;while(T.pos<H){let A=T.uint32();switch(A>>>3){case 1:_.dec=T.string();break;default:T.skipType(A&7);break}}return _},o.decodeDelimited=function(T){if(!(T instanceof 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(!k.isString(T.dec))return"dec: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.DecProto)return T;let C=new S.cosmos.base.v1beta1.DecProto;if(T.dec!=null)C.dec=String(T.dec);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.dec="";if(T.dec!=null&&T.hasOwnProperty("dec"))H.dec=T.dec;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t})(),y})(),n})()});import{Chain as JA}from"@swapkit/helpers";async function Ao(){let{$root:n}=await Promise.resolve().then(() => (lC(),GC)),y=await import("@cosmjs/proto-signing"),t=y.Registry??y.default?.Registry,o=await import("@cosmjs/stargate"),f=o.defaultRegistryTypes??o.default?.defaultRegistryTypes;return new t([...f,["/types.MsgSend",n.types.MsgSend],["/types.MsgDeposit",n.types.MsgDeposit]])}async function cn(n){let y=await import("@cosmjs/stargate"),t=y.AminoTypes??y.default?.AminoTypes,o=n===JA.THORChain?"thorchain":"mayachain";return new t({"/types.MsgDeposit":{aminoType:`${o}/MsgDeposit`,fromAmino:({signer:f,...T})=>({...T,signer:ty(f)}),toAmino:({signer:f,...T})=>({...T,signer:Ty(f)})},"/types.MsgSend":{aminoType:`${o}/MsgSend`,fromAmino:({from_address:f,to_address:T,...C})=>({...C,fromAddress:ty(f),toAddress:ty(T)}),toAmino:({fromAddress:f,toAddress:T,...C})=>({...C,from_address:Ty(f),to_address:Ty(T)})}})}var $t=F(()=>{Ft()});import{AssetValue as YA,Chain as ff,getChainConfig as WC,getRPCUrl as BC,SwapKitError as NA}from"@swapkit/helpers";function bt(n){let{assetValue:y,recipient:t,memo:o,sender:f,asSignable:T,asAminoMessage:C}=n;if(t)return MC({asAminoMessage:C,asSignable:T,assetValue:y,memo:o,recipient:t,sender:f});return LC({asAminoMessage:C,asSignable:T,assetValue:y,memo:o,sender:f})}async function MC({sender:n,recipient:y,assetValue:t,memo:o="",asSignable:f=!0,asAminoMessage:T=!1,sequence:C,accountNumber:H}){let _=t.chain,A=await BC(_),G=await XC({rpcUrl:A,sender:n}),{chainId:M}=WC(_),w=Et({assetValue:t,recipient:y,sender:n}),B=f?await hn(T?w:mn(w),_):w;return{accountNumber:H||G.accountNumber,chainId:M,fee:Pn(_),memo:o,msgs:[B],sequence:C||G.sequence}}async function LC({sender:n,assetValue:y,memo:t="",asSignable:o=!0,asAminoMessage:f=!1,sequence:T,accountNumber:C}){let H=y.chain,_=await BC(H),A=await XC({rpcUrl:_,sender:n}),{chainId:G}=WC(H),M=vt({assetValue:y,memo:t,sender:n}),w=o?await hn(f?M:mn(M),H):M;return{accountNumber:C||A.accountNumber,chainId:G,fee:Pn(H),memo:t,msgs:[w],sequence:T||A.sequence}}function mn(n){if(n.type==="thorchain/MsgSend"||n.type==="mayachain/MsgSend")return n;return{...n,value:{...n.value,coins:n.value.coins.map((y)=>{let t=YA.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 _y({chain:n,memo:y,msgs:t}){let o=await Ao(),f=await cn(n),T={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:y,messages:t.map((C)=>f.fromAmino(C))}};return o.encode(T)}var zA,DA,Et=({sender:n,recipient:y,assetValue:t})=>{return{type:`${t.chain===ff.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:t.getBaseValue("string"),denom:jn(t.symbol,!0)}],from_address:n,to_address:y}}},vt=({sender:n,assetValue:y,memo:t=""})=>{return{type:`${y.chain===ff.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:y.getBaseValue("string"),asset:Cy(y)}],memo:t,signer:n}}},tf=({sender:n,recipient:y,assetValue:t,memo:o})=>{return!y?vt({assetValue:t,memo:o,sender:n}):Et({assetValue:t,recipient:y,sender:n})},hn=async(n,y)=>{return(await cn(y)).fromAmino(n)},XC=async({rpcUrl:n,sender:y})=>{let o=await(await $n(n)).getAccount(y);if(!o)throw new NA("toolbox_cosmos_account_not_found",{sender:y});return o};var QC=F(()=>{Hy();$t();zA=Pn(ff.THORChain).gas,DA=Pn(ff.Maya).gas});var ZC=()=>{};var JC=F(()=>{ZC()});var Vt=F(()=>{Ft();QC();$t();JC()});import{stringToPath as OA}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as xA}from"@cosmjs/proto-signing";import{base64 as ct,bech32 as Kt}from"@scure/base";import{AssetValue as it,applyFeeMultiplier as YC,Chain as fn,CosmosChainPrefixes as RC,DerivationPath as RA,derivationPathToString as NC,FeeOption as ht,getChainConfig as SA,getRPCUrl as Ay,NetworkDerivationPath as FA,SwapKitError as zo,SwapKitNumber as jt,updateDerivationPath as uA}from"@swapkit/helpers";import{SwapKitApi as SC}from"@swapkit/helpers/api";import{match as kA,P as zC}from"ts-pattern";async function rt(n,y){try{let o=(await SC.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}async function mt({phrase:n,prefix:y,...t}){let o="derivationPath"in t?t.derivationPath:`${RA[t.chain]}/${t.index}`;return await xA.fromMnemonic(n,{hdPaths:[OA(o)],prefix:y})}async function IA({privateKey:n,prefix:y}){let t=await import("@cosmjs/proto-signing");return(t.DirectSecp256k1Wallet??t.default?.DirectSecp256k1Wallet).fromKey(n,y)}function FC(n){return async function({signature:t,message:o,address:f}){let T=await n(f);if(!T?.pubkey)throw new zo("toolbox_cosmos_verify_signature_no_pubkey");let C=await import("@cosmjs/crypto"),H=C.Secp256k1Signature??C.default?.Secp256k1Signature,_=C.Secp256k1??C.default?.Secp256k1,A=H.fromFixedLength(ct.decode(t));return _.verifySignature(A,ct.decode(o),T.pubkey.value)}}function Uy({chain:n,...y}){let t=RC[n],o="index"in y?y.index||0:0,f=NC("derivationPath"in y&&y.derivationPath?y.derivationPath:uA(FA[n],{index:o})),T;async function C(){if(T)return T;return T=await kA(y).with({phrase:zC.string},({phrase:B})=>mt({derivationPath:f,phrase:B,prefix:t})).with({signer:zC.any},({signer:B})=>B).otherwise(()=>{return}),T}async function H(B){let l=await Ay(n);return(await $n(l)).getAccount(B)}async function _(){let B=await C(),[l]=await B?.getAccounts()||[];return l?.address}async function A(){let B=await C(),[l]=await B?.getAccounts()||[];if(!l?.pubkey)throw new zo("toolbox_cosmos_signer_not_defined");return ct.encode(l?.pubkey)}async function G(B){let l=await C(),W=await _(),Q=await Ay(n);if(!(l&&W))throw new zo("toolbox_cosmos_signer_not_defined");return await(await _o(Q,l)).sign(W,B.msgs,B.fee,B.memo,{accountNumber:B.accountNumber,chainId:B.chainId,sequence:B.sequence})}async function M(B){let l=await C(),W=await _(),Q=await Ay(n);if(!(l&&W))throw new zo("toolbox_cosmos_signer_not_defined");let Z=await(await _o(Q,l)).signAndBroadcast(W,B.msgs,B.fee,B.memo);if(Z.code!==0)throw new zo("core_swap_transaction_error",{code:Z.code,message:Z.rawLog});return Z.transactionHash}async function w({recipient:B,assetValue:l,memo:W="",feeRate:Q,feeOptionKey:N=ht.Fast}){let Z=await C(),z=await _();if(!(Z&&z))throw new zo("toolbox_cosmos_signer_not_defined");let X=await Ay(n),U=it.from({chain:n}),q=Cy(U),L=Q||$A((await OC(n,DC[n]))[N],q),Y=await _o(X,Z),D=jn(l.symbol),J=[{amount:l.getBaseValue("string"),denom:D}],{transactionHash:O}=await Y.sendTokens(z,B,J,L,W);return O}return{createPrivateKeyFromPhrase:vA(f),createTransaction:pt,fetchFeeRateFromSwapKit:rt,getAccount:H,getAddress:_,getBalance:async(B,l)=>{let W=await xC(n)(B),Q=await Promise.all(W.filter(({denom:N})=>N&&!N.includes("IBC/")&&!([fn.THORChain,fn.Maya].includes(n)&&N.split("-").length>2)).map(({denom:N,amount:Z})=>{let z=[fn.THORChain,fn.Maya].includes(n)&&(N.includes("/")||N.includes("˜"))?`${n}.${N}`:N;return Pt(z,Z)}));if(Q.length===0)return[it.from({chain:n})];return Q},getBalanceAsDenoms:xC(n),getFees:()=>OC(n,DC[n]),getPubKey:A,getSignerFromPhrase:({phrase:B,derivationPath:l})=>mt({derivationPath:NC(l),index:o,phrase:B,prefix:t}),getSignerFromPrivateKey:async(B)=>{let l=await import("@cosmjs/proto-signing");return(l.DirectSecp256k1Wallet??l.default?.DirectSecp256k1Wallet).fromKey(B,t)},signAndBroadcastTransaction:M,signTransaction:G,transfer:w,validateAddress:uC(n),verifySignature:FC(H)}}async function pA(n,y){try{let o=(await SC.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}function PA({assetValue:{chain:n}}){return it.from({chain:n,value:EA(n)})}async function OC(n,y){let{chainId:t,baseDecimal:o}=SA(n),f=await rt(t,y);return{average:jt.fromBigInt(BigInt(f),o),fast:jt.fromBigInt(BigInt(YC(f,ht.Fast,!0)),o),fastest:jt.fromBigInt(BigInt(YC(f,ht.Fastest,!0)),o)}}function $A(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 uC(n){let y=RC[n];return function(o){if(!o.startsWith(y))return!1;try{let{prefix:f,words:T}=Kt.decode(o);return Kt.encode(f,T)===o.toLocaleLowerCase()}catch{return!1}}}function xC(n){return async function(t){let o=await Ay(n);return(await(await $n(o)).getAllBalances(t)).map((H)=>({...H,denom:H.denom.includes("/")?H.denom.toUpperCase():H.denom}))}}function vA(n){return async function(t){let o=await import("@cosmjs/crypto"),f=o.stringToPath??o.default?.stringToPath,T=o.Slip10Curve??o.default?.Slip10Curve,C=o.Slip10??o.default?.Slip10,H=o.EnglishMnemonic??o.default?.EnglishMnemonic,_=o.Bip39??o.default?.Bip39,A=new H(t),G=await _.mnemonicToSeed(A),{privkey:M}=C.derivePath(T.Secp256k1,G,f(n));return M}}var DC;var Tf=F(()=>{Hy();DC={[fn.Cosmos]:1000,[fn.Kujira]:1000,[fn.Noble]:1000,[fn.THORChain]:5000000,[fn.Maya]:5000000,[fn.Harbor]:5000000}});import{base64 as Uo}from"@scure/base";import{Chain as bA,CosmosChainPrefixes as VA,derivationPathToString as KA,FeeOption as gt,getChainConfig as kC,getRPCUrl as $C,NetworkDerivationPath as jA,RequestClient as cA,SKConfig as iA,SwapKitError as IC,SwapKitNumber as pC,updateDerivationPath as hA}from"@swapkit/helpers";import{match as mA,P as PC}from"ts-pattern";function rA({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 gA(n){return Uo.encode(n)}function dA(n){return async function({wallet:t,tx:o}){let{msgs:f,accountNumber:T,sequence:C,chainId:H,fee:_,memo:A}=typeof o==="string"?JSON.parse(o):o,G=(await t.getAccounts())?.[0]?.address||"",M=await cn(n),w=await Ao(),B=await It(t,{aminoTypes:M,registry:w}),l=[];for(let N of f){let Z=await hn(N,n);l.push(Z)}let{signatures:[W]}=await B.sign(G,l,_,A,{accountNumber:T,chainId:H,sequence:C});return{bodyBytes:await _y({chain:n,memo:A,msgs:f.map(mn)}),signature:gA(W)}}}function aA({prefix:n,chain:y}){return async function(o,f,T,C,H){let _=await $C(y),{encodeSecp256k1Pubkey:A,pubkeyToAddress:G}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:M}=(await import("@cosmjs/stargate")).default,{sequence:w,fee:B}=JSON.parse(o),l=await EC(T,C),W=f.map((Z)=>[G(A(Uo.decode(Z.pubKey)),n),Uo.decode(Z.signature)]),Q=await $n(_),{transactionHash:N}=await Q.broadcastTx(M(l,w,B,H,new Map(W)));return N}}async function EC(n,y,t=!0){let{createMultisigThresholdPubkey:o,encodeSecp256k1Pubkey:f}=(await import("@cosmjs/amino")).default;return o(n.map((T)=>f(Uo.decode(T))),y,t)}function sA(n){return Uo.decode(n)}async function eA({privateKey:n,message:y}){let{Secp256k1:t}=(await import("@cosmjs/crypto")).default,o=await t.createSignature(Uo.decode(y),n);return Uo.encode(Buffer.concat([o.r(32),o.s(32)]))}function dt({chain:n,...y}){let{nodeUrl:t}=kC(n),{isStagenet:o}=iA.get("envs"),f=n===bA.THORChain,T=`${o?"s":""}${VA[n]}`,C="index"in y?y.index||0:0,H="derivationPath"in y&&y.derivationPath?y.derivationPath:hA(jA[n],{index:C}),_=Uy({chain:n,...y}),A=Pn(n);async function G(){let w,B=`${t}/${f?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:l}}=await cA.get(B);if(!l||Number.isNaN(l)||l<0)throw new IC("toolbox_cosmos_invalid_fee",{nativeFee:l.toString()});w=new pC(l)}catch{w=new pC({decimal:kC(n).baseDecimal,value:f?0.02:1})}return{[gt.Average]:w,[gt.Fast]:w,[gt.Fastest]:w}}async function M({assetValue:w,memo:B="",recipient:l}){let W=await $C(n),Q=await mA(y).with({phrase:PC.string},({phrase:O})=>_.getSignerFromPhrase({derivationPath:H,phrase:O})).with({signer:PC.any},({signer:O})=>O).otherwise(()=>{return}),{TxRaw:N}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),Z=(await Q?.getAccounts())?.[0]?.address;if(!(Z&&Q))throw new IC("toolbox_cosmos_no_signer");let z="signAmino"in Q,X=await Ao(),U=await cn(n),q=await _o(W,Q,{aminoTypes:U,registry:X}),L=tf({assetValue:w,memo:B,recipient:l,sender:Z});if(z){let O=await hn(L,n),{signatures:x,authInfoBytes:u}=await q.sign(Z,[O],A,B),I=N.encode({authInfoBytes:u,bodyBytes:await _y({chain:n,memo:B,msgs:[L].map(mn)}),signatures:x}).finish();return(await q.broadcastTx(I)).transactionHash}let Y=mn(L),D=await hn(Y,n);return(await q.signAndBroadcast(Z,[D],A,B)).transactionHash}return{..._,broadcastMultisigTx:aA({chain:n,prefix:T}),buildAminoMsg:tf,buildEncodedTxBody:_y,convertToSignable:hn,createDefaultAminoTypes:()=>cn(n),createDefaultRegistry:Ao,createMultisig:EC,createTransaction:bt,deposit:M,getFees:G,importSignature:sA,parseAminoMessageForDirectSigning:mn,pubkeyToAddress:async(w)=>{let{pubkeyToAddress:B}=(await import("@cosmjs/amino")).default;return B(w,T)},secp256k1HdWalletFromMnemonic:rA({derivationPath:KA(H),prefix:T}),signMultisigTx:dA(n),signWithPrivateKey:eA,transfer:M}}var at=F(()=>{Vt();Hy();Tf()});import{Chain as wy,SwapKitError as n5}from"@swapkit/helpers";var o5=(n,y)=>{switch(n){case wy.Cosmos:case wy.Kujira:case wy.Noble:return Uy({chain:n,...y});case wy.Maya:case wy.THORChain:return dt({chain:n,...y});default:throw new n5("toolbox_cosmos_not_supported",{chain:n})}};var vC=F(()=>{Tf();at();Tf();at()});var Cf={};nn(Cf,{verifySignature:()=>FC,transferMsgAmino:()=>Et,toBase64:()=>XA,parseAminoMessageForDirectSigning:()=>mn,getSignerFromPrivateKey:()=>IA,getSignerFromPhrase:()=>mt,getMsgSendDenom:()=>jn,getFeeRateFromSwapKit:()=>pA,getDenomWithChain:()=>Cy,getDefaultChainFee:()=>Pn,getCosmosToolbox:()=>o5,getCosmosAddressValidator:()=>uC,getAssetFromDenom:()=>Pt,fromBase64:()=>MA,fetchFeeRateFromSwapKit:()=>rt,estimateTransactionFee:()=>PA,depositMsgAmino:()=>vt,createTransaction:()=>bt,createThorchainToolbox:()=>dt,createStargateClient:()=>$n,createSigningStargateClient:()=>_o,createOfflineStargateClient:()=>It,createDefaultRegistry:()=>Ao,createDefaultAminoTypes:()=>cn,createCosmosToolbox:()=>Uy,cosmosCreateTransaction:()=>pt,convertToSignable:()=>hn,buildTransferTx:()=>MC,buildEncodedTxBody:()=>_y,buildDepositTx:()=>LC,buildAminoMsg:()=>tf,bech32ToBase64:()=>ty,base64ToBech32:()=>Ty,YUM_KUJIRA_FACTORY_DENOM:()=>AC,USK_KUJIRA_FACTORY_DENOM:()=>kt,THORCHAIN_GAS_VALUE:()=>zA,MAYA_GAS_VALUE:()=>DA,DEFAULT_NOBLE_FEE_MAINNET:()=>qC,DEFAULT_KUJI_FEE_MAINNET:()=>wC,DEFAULT_COSMOS_FEE_MAINNET:()=>UC});var Hf=F(()=>{Vt();vC();Hy()});function y5({builder:n,grouping:y="na",orders:t}){return{builder:n,grouping:y,orders:t,type:"order"}}function f5({cancels:n}){return{cancels:n,type:"cancel"}}function t5({cancels:n}){return{cancels:n,type:"cancelByCloid"}}function T5({oid:n,order:y}){return{oid:n,order:y,type:"modify"}}function C5({modifies:n}){return{modifies:n,type:"batchModify"}}function H5({asset:n,isCross:y,leverage:t}){return{asset:n,isCross:y,leverage:t,type:"updateLeverage"}}function _5({asset:n,isBuy:y,ntli:t}){return{asset:n,isBuy:y,ntli:t,type:"updateIsolatedMargin"}}function A5({asset:n,leverage:y}){return{asset:n,leverage:y,type:"topUpIsolatedOnlyMargin"}}function U5({time:n}){return{time:n,type:"scheduleCancel"}}function w5({amount:n,hyperliquidChain:y,nonce:t,signatureChainId:o,toPerp:f}){return{amount:n,hyperliquidChain:y,nonce:t,signatureChainId:o,toPerp:f,type:"usdClassTransfer"}}function q5({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 G5({agentAddress:n,agentName:y,hyperliquidChain:t,nonce:o,signatureChainId:f}){return{agentAddress:n,agentName:y,hyperliquidChain:t,nonce:o,signatureChainId:f,type:"approveAgent"}}function l5({builder:n,hyperliquidChain:y,maxFeeRate:t,nonce:o,signatureChainId:f}){return{builder:n,hyperliquidChain:y,maxFeeRate:t,nonce:o,signatureChainId:f,type:"approveBuilderFee"}}function W5({hyperliquidChain:n,isUndelegate:y,nonce:t,signatureChainId:o,validator:f,wei:T}){return{hyperliquidChain:n,isUndelegate:y,nonce:t,signatureChainId:o,type:"tokenDelegate",validator:f,wei:T}}import{SwapKitError as st}from"@swapkit/helpers";import{keccak256 as B5,Signature as X5}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 Y5(n,y,t){if(t<y)return new Uint8Array([n+t]);if(t<=255)return new Uint8Array([n+y,t]);if(t<=65535)return new Uint8Array([n+y+1,t>>8,t&255]);return new Uint8Array([n+y+2,t>>>24&255,t>>>16&255,t>>>8&255,t&255])}function rn(n,y){let t=new Uint8Array(y),o=n;for(let f=y-1;f>=0;f-=1)t[f]=Number(o&0xffn),o>>=8n;return t}function bC(n){if(n>=0n){if(n<=0x7fn)return new Uint8Array([Number(n)]);if(n<=0xffn)return new Uint8Array([204,Number(n)]);if(n<=0xffffn)return Gn(new Uint8Array([205]),rn(n,2));if(n<=0xffffffffn)return Gn(new Uint8Array([206]),rn(n,4));return Gn(new Uint8Array([207]),rn(n,8))}if(n>=-32n)return new Uint8Array([256+Number(n)]);if(n>=-128n)return new Uint8Array([208,256+Number(n)]);if(n>=-32768n)return Gn(new Uint8Array([209]),rn(BigInt.asUintN(16,n),2));if(n>=-2147483648n)return Gn(new Uint8Array([210]),rn(BigInt.asUintN(32,n),4));return Gn(new Uint8Array([211]),rn(BigInt.asUintN(64,n),8))}function jC(n){let y=J5.encode(n);if(y.length<32)return Gn(new Uint8Array([160+y.length]),y);return Gn(Y5(217,0,y.length),y)}function N5(n){let y=n.map((o)=>et(o)),t=n.length<16?new Uint8Array([144+n.length]):n.length<=65535?new Uint8Array([220,n.length>>8,n.length&255]):new Uint8Array([221,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return Gn(t,...y)}function z5(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])=>[jC(o),et(f)]))}function et(n){if(n===null)return new Uint8Array([192]);if(typeof n==="boolean")return new Uint8Array([n?195:194]);if(typeof n==="string")return jC(n);if(typeof n==="number"){if(!Number.isFinite(n)||!Number.isInteger(n))throw new st("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return bC(BigInt(n))}if(typeof n==="bigint")return bC(n);if(n instanceof Uint8Array){let y=n.length<=255?new Uint8Array([196,n.length]):n.length<=65535?new Uint8Array([197,n.length>>8,n.length&255]):new Uint8Array([198,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return Gn(y,n)}if(Array.isArray(n))return N5(n);if(typeof n==="object")return z5(n);throw new st("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(n)}`})}function D5(n){let y=n.startsWith("0x")?n.slice(2):n;if(y.length%2!==0||/[^a-fA-F0-9]/u.test(y))throw new st("helpers_invalid_params",{hexValue:n});let t=new Uint8Array(y.length/2);for(let o=0;o<y.length;o+=2)t[o/2]=Number.parseInt(y.slice(o,o+2),16);return t}function cC(n){return{domain:M5,message:{connectionId:n,source:"a"},primaryType:"Agent",types:{Agent:[...L5.Agent]}}}function iC(n){let y=Z5[n.type],t=Q5[n.type],{type:o,...f}=n;return{domain:{chainId:Number.parseInt(f.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:VC,version:"1"},message:{...f,hyperliquidChain:f.hyperliquidChain||KC},primaryType:y,types:{[y]:t}}}function hC(n){let y=X5.from(n);return{r:y.r,s:y.s,v:y.v}}function mC(n,y,{expiresAfter:t,vaultAddress:o}={}){let f=et(n),T=rn(BigInt(y),8),C=o?Gn(new Uint8Array([1]),D5(o.toLowerCase())):new Uint8Array([0]),H=typeof t==="number"?Gn(new Uint8Array([0]),rn(BigInt(t),8)):new Uint8Array;return B5(Gn(f,T,C,H))}function rC(n){let y=n.hyperliquidChain||KC;switch(n.type){case"approveAgent":return{...n,agentAddress:n.agentAddress.toLowerCase(),hyperliquidChain:y};case"approveBuilderFee":return{...n,builder:n.builder.toLowerCase(),hyperliquidChain:y};case"sendAsset":return{...n,destination:n.destination.toLowerCase(),fromSubAccount:n.fromSubAccount.toLowerCase(),hyperliquidChain:y};case"tokenDelegate":return{...n,hyperliquidChain:y,validator:n.validator.toLowerCase()};case"usdClassTransfer":return{...n,hyperliquidChain:y};default:return n}}var VC="0x0000000000000000000000000000000000000000",M5,L5,KC="Mainnet",Q5,Z5,J5;var gC=F(()=>{M5={chainId:1337,name:"Exchange",verifyingContract:VC,version:"1"},L5={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},Q5={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"}]},Z5={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},J5=new TextEncoder});import{AssetValue as yT,Chain as O5,derivationPathToString as x5,getChainConfig as sC,getRPCUrl as R5,NetworkDerivationPath as S5,RequestClient as Do,SwapKitError as Oo,updateDerivationPath as F5}from"@swapkit/helpers";import{HDNodeWallet as u5}from"ethers";import{match as k5,P as nT}from"ts-pattern";function Jn(n,y){if(!tT(n))throw new Oo(y,{address:n});return n.toLowerCase()}async function wo(n){let y=await _f();return Do.post(`${y}/info`,{json:n})}function b5({dex:n,user:y}){return wo({...n?{dex:n}:{},type:"clearinghouseState",user:Jn(y,"helpers_invalid_params")})}function V5({user:n}){return wo({type:"spotClearinghouseState",user:Jn(n,"helpers_invalid_params")})}function K5({dex:n,user:y}){return wo({...n?{dex:n}:{},type:"openOrders",user:Jn(y,"helpers_invalid_params")})}function j5({dex:n,user:y}){return wo({...n?{dex:n}:{},type:"frontendOpenOrders",user:Jn(y,"helpers_invalid_params")})}function c5({oidOrCloid:n,user:y}){return wo({oid:n,type:"orderStatus",user:Jn(y,"helpers_invalid_params")})}function i5({aggregateByTime:n,user:y}){return wo({...typeof n==="boolean"?{aggregateByTime:n}:{},type:"userFills",user:Jn(y,"helpers_invalid_params")})}function h5({aggregateByTime:n,endTime:y,startTime:t,user:o}){return wo({...typeof n==="boolean"?{aggregateByTime:n}:{},...typeof y==="number"?{endTime:y}:{},startTime:t,type:"userFillsByTime",user:Jn(o,"helpers_invalid_params")})}function dC({coin:n,token:y,value:t,spotMeta:o}){if(!t||Number(t)<=0)return null;let f=n?.toUpperCase()||`TOKEN-${y||"UNKNOWN"}`,T=I5[f]||eC,C=o?.tokens?.find((_)=>_.name===n||y!==void 0&&_.index===Number(y)),H=C?`${Rn}.${f}-${C.name}:${C.tokenId}`:`${Rn}.${f}`;return new yT({decimal:T,identifier:H,value:t})}function m5(n){let y=new Map;for(let t of n){let o=t.toString({includeSynthProtocol:!0}),f=y.get(o);y.set(o,f?f.add(t):t)}if(![...y.values()].some((t)=>t.isGasAsset||t.ticker==="HYPE")){let t=yT.from({chain:Rn,value:0});y.set(t.toString({includeSynthProtocol:!0}),t)}return[...y.values()]}async function _f(){try{return await R5(Rn)}catch{let[n]=sC(Rn).rpcUrls;if(!n)throw new Oo("helpers_chain_no_public_or_set_rpc_url",{chain:Rn});return n}}async function fT(){return`${await _f()}/exchange`}function r5(n){let y=v5[n.type],{type:t,...o}=n,f=E5[t];return{domain:{chainId:Number.parseInt(n.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:$5,version:"1"},message:o,primaryType:y,types:{[y]:f}}}async function n1({action:n,expiresAfter:y,nonce:t,vaultAddress:o}){let f=t||Date.now(),T=o?Jn(o,"helpers_invalid_params"):void 0,C=await fT(),H=mC(n,f,{expiresAfter:y,vaultAddress:T});return{action:n,endpoint:C,expiresAfter:y,nonce:f,typedData:cC(H),vaultAddress:T}}async function o1({action:n,nonce:y,signatureChainId:t}){let o=y||n.nonce||Date.now(),f=t||n.signatureChainId||"0xa4b1",T=rC({...n,nonce:o,signatureChainId:f});return{action:T,endpoint:await fT(),nonce:o,typedData:iC(T)}}async function oT({assetValue:n,recipient:y,sender:t,signatureChainId:o,time:f}){let T=Jn(y,"core_transaction_invalid_recipient_address"),C=Jn(t,"core_transaction_invalid_sender_address"),H=await fT(),_=n.getValue("string"),A=f||Date.now(),G=n.address;if(!G)throw new Oo("helpers_invalid_params",{asset:n.toString(),from:C});let M={amount:_,destination:T,hyperliquidChain:p5,signatureChainId:o||P5,time:A,token:G,type:"spotSend"};return{action:M,endpoint:H,nonce:A,typedData:r5(M)}}async function aC(n){let y=await Do.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 Oo("core_transaction_failed",{response:y});return y}async function g5(n,y){let t=await _f(),o=y-5000;for(let f=0;f<5;f++){if(f>0)await new Promise((T)=>setTimeout(T,1000));try{let T=await Do.post(`${t}/info`,{json:{startTime:o,type:"userNonFundingLedgerUpdates",user:n}}),C=Array.isArray(T)?T.find((H)=>H.time&&H.time>=y&&(H.delta?.type==="spotTransfer"||H.delta?.type==="internalTransfer")):void 0;if(C?.hash)return C.hash}catch{}}return""}function tT(n){return n.startsWith("0x")&&ny(n)}function d5(n){let y=wn(Rn),t=n&&"index"in n?n.index||0:0,o=x5(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:F5(S5[Rn],{index:t})),f,T=!1;function C(){if(T)return f;return f=k5(n).with({phrase:nT.string},({phrase:w})=>{return u5.fromPhrase(w,void 0,o)}).with({signer:nT.not(nT.nullish)},({signer:w})=>w).otherwise(()=>{return}),T=!0,f}async function H(){let w=C();return w?await w.getAddress():""}async function _(w){let B=C();if(!B)throw new Oo("toolbox_hypercore_no_signer");let l=await B.signTypedData(w.typedData.domain,w.typedData.types,w.typedData.message);return{action:w.action,endpoint:w.endpoint,nonce:w.nonce,signature:hC(l),..."expiresAfter"in w?{expiresAfter:w.expiresAfter}:{},..."vaultAddress"in w?{vaultAddress:w.vaultAddress}:{}}}async function A(w){let B=Jn(w,"helpers_invalid_params");try{let l=await _f(),[W,Q,N]=await Promise.all([Do.post(`${l}/info`,{json:{type:"spotClearinghouseState",user:B}}),Do.post(`${l}/info`,{json:{type:"clearinghouseState",user:B}}),Do.post(`${l}/info`,{json:{type:"spotMeta"}})]),Z=(W.spotState?.balances||W.balances||[]).map(({coin:X,token:U,total:q})=>dC({coin:X,spotMeta:N,token:U,value:q})).filter((X)=>!!X),z=dC({coin:"USDC",spotMeta:N,value:Q.withdrawable||Q.marginSummary?.accountValue||Q.marginSummary?.totalRawUsd});return m5(z?[...Z,z]:Z)}catch{return y(B)}}async function G(w){let B=C();if(!B)throw new Oo("toolbox_hypercore_no_signer");let l=w.sender||await B.getAddress(),W=await oT({...w,feeRate:0,sender:l}),Q=await _(W);return await aC(Q),g5(l,W.nonce)}function M(){return yT.from({chain:Rn,value:0})}return{broadcastTransaction:aC,createL1ActionRequest:n1,createTransaction:oT,createUserSignedActionRequest:o1,estimateTransactionFee:M,getAddress:H,getBalance:A,getState:{clearinghouse:b5,frontendOpenOrders:j5,openOrders:K5,orderStatus:c5,spotClearinghouse:V5,userFills:i5,userFillsByTime:h5},signTransaction:_,transfer:G,validateAddress:tT}}var Rn,eC,I5,p5="Mainnet",P5="0xa4b1",$5="0x0000000000000000000000000000000000000000",E5,v5;var y1=F(()=>{Nt();In();gC();Rn=O5.HyperCore,{baseDecimal:eC}=sC(Rn),I5={HYPE:eC,USDC:6,USDT:6},E5={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},v5={spotSend:"HyperliquidTransaction:SpotSend"}});var TT={};nn(TT,{validateHyperCoreAddress:()=>tT,getHyperCoreToolbox:()=>d5,createUserSignedActionRequest:()=>o1,createTransaction:()=>oT,createL1ActionRequest:()=>n1,buildUsdClassTransferAction:()=>w5,buildUpdateLeverageAction:()=>H5,buildUpdateIsolatedMarginAction:()=>_5,buildTopUpIsolatedOnlyMarginAction:()=>A5,buildTokenDelegateAction:()=>W5,buildSendAssetAction:()=>q5,buildScheduleCancelAction:()=>U5,buildOrderAction:()=>y5,buildModifyAction:()=>T5,buildCancelByCloidAction:()=>t5,buildCancelAction:()=>f5,buildBatchModifyAction:()=>C5,buildApproveBuilderFeeAction:()=>l5,buildApproveAgentAction:()=>G5});var CT=F(()=>{y1()});import{PublicKey as gn}from"@solana/web3.js";import{AssetValue as Af,Chain as vn,DerivationPath as a5,derivationPathToString as s5,getChainConfig as C1,getRPCUrl as e5,NetworkDerivationPath as nU,SwapKitError as xo,updateDerivationPath as oU}from"@swapkit/helpers";import{match as yU,P as f1}from"ts-pattern";async function H1(n){let y=Af.from({address:n,chain:vn.Solana});if(y.symbol!=="UNKNOWN")return{decimals:y.decimal||0,id:n,logoURI:y.getIconUrl(),name:y.symbol,symbol:y.ticker};let t=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(n)}`;try{let o=await fetch(t);if(!o.ok)return null;let f=await o.json();if(!Array.isArray(f)||f.length===0)return null;return f.find((C)=>C.id===n)||null}catch{return null}}async function fU(n){let y=await En(),{PublicKey:t}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:o}=await import("@solana/spl-token"),f=new t(n),{baseDecimal:T}=C1(vn.Solana),C=await y.getBalance(f),H=[Af.from({chain:vn.Solana,fromBaseDecimal:T,value:C||0})],_=await y.getParsedTokenAccountsByOwner(f,{programId:o});for(let{account:A}of _.value){let G=A.data.parsed.info,M=G.mint,w=G.tokenAmount.amount;if(Number(w)===0)continue;let B=await H1(M),l=B?.symbol||"UNKNOWN",W=B?.decimals||G.tokenAmount.decimals;H.push(Af.from({asset:`${vn.Solana}.${l}-${M}`,fromBaseDecimal:W,value:w}))}return H}function _T(n){try{let y=new gn(n);return gn.isOnCurve(y.toBytes())}catch{return!1}}function tU(n){let y=n&&"index"in n?n.index||0:0,t=s5(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:oU(nU[vn.Solana],{index:y})),o;async function f(){if(o)return o;return o=await yU(n).with({phrase:f1.string},({phrase:C})=>HT({derivationPath:t,phrase:C})).with({signer:f1.any},({signer:C})=>C).otherwise(()=>{return}),o}async function T(){let C=await f();return C?.publicKey?T1(C.publicKey):""}return{broadcastTransaction:Uf(En),createKeysForPath:HT,createTransaction:AT(En),createTransactionFromInstructions:_U,estimateTransactionFee:TU(En),getAddress:T,getAddressFromPubKey:T1,getBalance:wn(vn.Solana),getBalanceFromRPC:fU,getConnection:En,getPubkeyFromAddress:(C)=>new gn(C),signAndBroadcastTransaction:async(C)=>{let H=await t1(En,f)(C);return Uf(En)(H)},signTransaction:t1(En,f),transfer:AU(En,f),validateAddress:_T}}function TU(n){return async({recipient:y,assetValue:t,memo:o,isProgramDerivedAddress:f,sender:T})=>{let C=await n(),_=(await AT(n)({assetValue:t,isProgramDerivedAddress:f,memo:o,recipient:y,sender:T})).compileMessage(),A=await C.getFeeForMessage(_);if(A.value===null)throw new xo("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:G}=C1(vn.Solana);return Af.from({chain:vn.Solana,fromBaseDecimal:G,value:A.value})}}async function En(){let{Connection:n}=await import("@solana/web3.js"),y=await e5(vn.Solana);return new n(y,{commitment:"confirmed",fetchMiddleware:(t,o,f)=>{let T={};for(let[C,H]of Object.entries(o?.headers??{})){let _=C.toLowerCase();if(_!=="pragma"&&_!=="solana-client")T[C]=H}f(t,{...o,headers:T})}})}function CU(n){return async({assetValue:y,recipient:t,sender:o,isProgramDerivedAddress:f})=>{let T=await n(),C=new gn(o);if(y.isGasAsset){let{Transaction:H,SystemProgram:_}=await import("@solana/web3.js");return new H().add(_.transfer({fromPubkey:C,lamports:y.getBaseValue("number"),toPubkey:new gn(t)}))}if(y.address)return HU({amount:y.getBaseValue("number"),connection:T,decimals:y.decimal,from:C,isProgramDerivedAddress:f,recipient:t,tokenAddress:y.address});return}}async function HU({tokenAddress:n,recipient:y,from:t,connection:o,amount:f,decimals:T,isProgramDerivedAddress:C}){let{getAssociatedTokenAddress:H,getAccount:_,createAssociatedTokenAccountInstruction:A,createTransferCheckedInstruction:G}=await import("@solana/spl-token"),{Transaction:M}=await import("@solana/web3.js"),w=new M,B=new gn(n),l=await H(B,t),W=new gn(y),Q=await H(B,W,C),N=!1;try{await _(o,Q),N=!0}catch{}if(!N)w.add(A(t,Q,W,B));return w.add(G(l,B,Q,t,f,T)),w}function AT(n){return async({recipient:y,assetValue:t,memo:o,isProgramDerivedAddress:f,sender:T})=>{let{createMemoInstruction:C}=await import("@solana/spl-memo"),H=new gn(T);if(!(f||_T(y)))throw new xo("core_transaction_invalid_recipient_address");let _=await n(),A=await CU(n)({assetValue:t,isProgramDerivedAddress:f,recipient:y,sender:T});if(!A)throw new xo("core_transaction_invalid_sender_address");if(o)A.add(C(o));let G=await _.getLatestBlockhash();return A.recentBlockhash=G.blockhash,A.feePayer=H,A}}async function _U({instructions:n}){let{Transaction:y}=await import("@solana/web3.js"),t=new y().add(...n);if(!t)throw new xo("core_transaction_invalid_sender_address");return t}function AU(n,y){return async({recipient:t,assetValue:o,memo:f,isProgramDerivedAddress:T})=>{let C=await y();if(!C)throw new xo("core_transaction_invalid_sender_address");let H=C.publicKey?.toString()??(await C.connect()).publicKey.toString(),_=await AT(n)({assetValue:o,isProgramDerivedAddress:T,memo:f,recipient:t,sender:H});if("signTransaction"in C){let A=await C.signTransaction(_);return Uf(n)(A)}return _.sign(C),Uf(n)(_)}}function Uf(n){return async(y)=>{return(await n()).sendRawTransaction(y.serialize())}}function t1(n,y){return async(t)=>{let o=await y();if(!o)throw new xo("toolbox_solana_no_signer");let{VersionedTransaction:f}=await import("@solana/web3.js");if(!(t instanceof f)){let C=await(await n()).getLatestBlockhash();t.recentBlockhash=C.blockhash,t.feePayer=o.publicKey||void 0}if("connect"in o)return await o.signTransaction(t);return t.sign([o]),t}}async function HT({phrase:n,derivationPath:y=a5.SOL}){let{HDKey:t}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:o}=await import("@scure/bip39"),{Keypair:f}=await import("@solana/web3.js"),T=o(n),C=t.fromMasterSeed(T);return f.fromSeed(C.derive(y,!0).privateKey)}function T1(n){return n.toString()}var _1=F(()=>{In()});var UT={};nn(UT,{validateSolanaAddress:()=>_T,getSolanaToolbox:()=>tU,fetchTokenMetaData:()=>H1,createKeysForPath:()=>HT});var wT=F(()=>{_1()});import{AssetValue as wf,Chain as qf,DerivationPath as U1,derivationPathToString as UU,getChainConfig as wU,getRPCUrl as lT,NetworkDerivationPath as qU,SwapKitError as Ln,updateDerivationPath as GU}from"@swapkit/helpers";import{match as qT,P as Ro}from"ts-pattern";function Gf(n){if(!n)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(n)}async function lf({phrase:n,derivationPath:y=U1.STRK}){let{HDKey:t}=await import("@scure/bip32"),{mnemonicToSeedSync:o}=await import("@scure/bip39"),{ec:f,hash:T,encode:C,CallData:H}=await import("starknet"),_=o(n),G=t.fromMasterSeed(_).derive(y);if(!G.privateKey)throw new Ln("toolbox_starknet_no_signer");let M=C.addHexPrefix(Buffer.from(G.privateKey).toString("hex")),w=f.starkCurve.grindKey(M),B=C.addHexPrefix(w),l=f.starkCurve.getStarkKey(B),W=H.compile([l,0]);return{address:T.calculateContractAddressFromHash(l,WT,W,0),privateKey:B,publicKey:l}}async function BT({phrase:n,derivationPath:y=U1.STRK}){let{Account:t,RpcProvider:o}=await import("starknet"),{privateKey:f,address:T}=await lf({derivationPath:y,phrase:n}),C=await lT(qf.Starknet),H=new o({nodeUrl:C});return new t({address:T,provider:H,signer:f})}function w1(n){let y=qf.Starknet,t=n&&"index"in n?n.index||0:0,o=UU(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:GU(qU[y],{index:t})),f,T,C;async function H(){if(T)return T;let{RpcProvider:U}=await import("starknet"),q=await lT(y);return T=new U({nodeUrl:q}),T}async function _(U){let q=await H(),L=U||await w();if(!L)return!1;try{return await q.getClassHashAt(L),!0}catch(Y){if(Y instanceof Error&&Y.message.includes("Contract not found"))return!1;let D=Y;if(D?.code===20||D?.code===19)return!1;throw Y}}async function A(){let{CallData:U,hash:q}=await import("starknet"),L=await H(),Y=await M();if(!Y)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 Y.address;let J=U.compile([C,0]);if(q.calculateContractAddressFromHash(C,WT,J,0).toLowerCase()!==Y.address.toLowerCase())throw new Ln({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let x={addressSalt:C,classHash:WT,constructorCalldata:J},{transaction_hash:u}=await Y.deployAccount(x);return await L.waitForTransaction(u),u}async function G(){if(!await _()){if(!C)throw new 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 qT(n).with({phrase:Ro.string},async({phrase:U})=>{let{Account:q,RpcProvider:L}=await import("starknet"),{privateKey:Y,address:D,publicKey:J}=await lf({derivationPath:o,phrase:U});C=J;let O=await lT(qf.Starknet),x=new L({nodeUrl:O});return new q({address:D,provider:x,signer:Y})}).with({address:Ro.string,privateKey:Ro.string},async({privateKey:U,address:q})=>{let{Account:L}=await import("starknet"),Y=await H();return new L({address:q,provider:Y,signer:U})}).with({signer:Ro.instanceOf(Object)},({signer:U})=>U).otherwise(()=>{return}),f}async function w(){return(await M())?.address??""}async function B(U){let q=await H(),{uint256:L,CallData:Y}=await import("starknet"),D=[],J=[GT,A1];for(let O of J)try{let[x="0",u="0"]=await q.callContract({calldata:Y.compile({account:U}),contractAddress:O,entrypoint:"balanceOf"}),I=L.uint256ToBN({high:x,low:u});qT(O).with(GT,()=>{D.push(wf.from({chain:y,value:I}))}).with(A1,()=>{if(I>0n)D.push(wf.from({asset:`${y}.ETH-${O}`,value:I}))}).otherwise(()=>{})}catch{}return D}async function l({recipient:U,assetValue:q}){let{CallData:L,uint256:Y}=await import("starknet");if(!Gf(U))throw new Ln("core_transaction_invalid_recipient_address",{address:U});let D=q.isGasAsset?GT:q.address;if(!D)throw new Ln("toolbox_starknet_invalid_address",{address:D,assetValue:q});let J=Y.bnToUint256(q.getBaseValue("bigint"));return[{calldata:L.compile([U,J]),contractAddress:D,entrypoint:"transfer"}]}async function W({recipient:U,assetValue:q,sender:L}){let{baseDecimal:Y}=wU(qf.Starknet),D=await M(),J=await qT({sender:L,signer:D}).with({sender:Ro.string},async({sender:O})=>{let{Account:x}=await import("starknet"),u=await H();return new x({address:O,provider:u,signer:"0x0"})}).with({signer:Ro.nonNullable},({signer:O})=>O).otherwise((O)=>{throw new Ln({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:O}})});try{let O=await l({assetValue:q,recipient:U}),x=await J.estimateInvokeFee(O);if(x?.overall_fee)return wf.from({chain:y,fromBaseDecimal:Y,value:x.overall_fee})}catch(O){throw new Ln("toolbox_starknet_fee_estimation_failed",O)}return wf.from({chain:y,value:"0.00001"})}async function Q({recipient:U,assetValue:q,memo:L}){let Y=await M();if(!Y)throw new Ln("toolbox_starknet_no_signer");await G();let D=await l({assetValue:q,memo:L,recipient:U});return(await Y.execute(D)).transaction_hash}async function N(U){let q=await M();if(!q)throw new Ln("toolbox_starknet_no_signer");let L=await q.signMessage(U);return Array.isArray(L)?L:[L.r.toString(),L.s.toString()]}async function Z(U){let q=await M();if(!q)throw new Ln("toolbox_starknet_no_signer");return await G(),(await q.execute(U)).transaction_hash}function z(U){return Z(U)}function X(U,q=!0){try{return wn(y)(U,q)}catch{return B(U)}}return{broadcastTransaction:Z,createKeysForPath:BT,createTransaction:l,deployAccount:A,estimateTransactionFee:W,getAddress:w,getBalance:X,getProvider:H,isAccountDeployed:_,signAndBroadcastTransaction:z,signMessage:N,transfer:Q,validateAddress:Gf}}var GT="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",A1="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",WT="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var q1=F(()=>{In()});var Wf={};nn(Wf,{validateStarknetAddress:()=>Gf,starknetCreateKeysForPath:()=>BT,getStarknetToolbox:()=>w1,deriveStarknetKeys:()=>lf});var Bf=F(()=>{q1()});import{isValidSuiAddress as lU}from"@mysten/sui/utils";import{AssetValue as So,Chain as Xf,getChainConfig as WU,SwapKitError as Yn}from"@swapkit/helpers";import{match as BU,P as G1}from"ts-pattern";async function W1(n,y,t,o=[],f){let T=await n.getCoins({coinType:t,cursor:f,owner:y}),C=[...o,...T.data];return T.hasNextPage?W1(n,y,t,C,T.nextCursor):C}function XU(n,y,t){let o=y.reduce((_,A)=>_+BigInt(A.balance),0n);if(o<t)throw new Yn("toolbox_sui_insufficient_balance",{available:o.toString(),required:t.toString()});let{ids:f}=y.reduce((_,A)=>{if(_.total>=t)return _;return{ids:[..._.ids,A.coinObjectId],total:_.total+BigInt(A.balance)}},{ids:[],total:0n}),T=f[0],C=f.slice(1);if(C.length>0)n.mergeCoins(T,C);let[H]=n.splitCoins(T,[t]);return H}function B1(n){try{return lU(n)}catch{return!1}}function l1(n){return"signWithIntent"in n}function MU({provider:n,...y}={}){let t;async function o(){if(t)return t;return t=await BU(y).with({phrase:G1.string},async({phrase:l})=>{let{Ed25519Keypair:W}=await import("@mysten/sui/keypairs/ed25519");return W.deriveKeypair(l)}).with({signer:G1.any},({signer:l})=>l).otherwise(()=>{return}),t}async function f(l=n){let{SuiClient:W,getFullnodeUrl:Q}=await import("@mysten/sui/client");return new W({url:l||Q("mainnet")})}async function T(){return(await o())?.toSuiAddress()||""}function C(l){try{let W=So.from({address:l,chain:Xf.Sui});return{asset:W.toString(),decimals:W.decimal}}catch{}return null}async function H(l){let W=l||await T();if(!W)throw new Yn("toolbox_sui_address_required");let{baseDecimal:Q,chain:N}=WU(Xf.Sui);try{let Z=await f(),{totalBalance:z}=await Z.getBalance({owner:W}),X=[So.from({chain:N,fromBaseDecimal:Q,value:z})],U=await Z.getAllBalances({owner:W});for(let{coinType:q,totalBalance:L}of U){if(q==="0x2::sui::SUI"||Number(L)<=0)continue;let Y=C(q);if(Y)X.push(So.from({asset:Y.asset,fromBaseDecimal:Y.decimals,value:L}))}return X}catch{return[So.from({chain:N})]}}async function _(l){let W=So.from({chain:Xf.Sui,value:"0.01"});if(!l)return W;try{let Q=await f(),{txBytes:N}=await A(l),{effects:{status:Z,gasUsed:z}}=await Q.dryRunTransactionBlock({transactionBlock:N});if(Z.status!=="success")return W;let X=Number(z.computationCost)+Number(z.storageCost)-Number(z.storageRebate);return So.from({chain:Xf.Sui,value:X.toString()})}catch{return W}}async function A({recipient:l,assetValue:W,gasBudget:Q,sender:N}){let{Transaction:Z}=await import("@mysten/sui/transactions"),z=N||await T();if(!z)throw new Yn("toolbox_sui_no_sender");try{let X=new Z;if(X.setSender(z),W.isGasAsset||W.symbol==="SUI"){let[L]=X.splitCoins(X.gas,[W.getBaseValue("string")]);X.transferObjects([L],l)}else{let L=W.address;if(!L)throw new Yn("toolbox_sui_missing_coin_type");let Y=await f(),D=W.getBaseValue("bigint"),J=await W1(Y,z,L);if(!J.length)throw new Yn("toolbox_sui_no_coins_found",{coinType:L});let O=XU(X,J,D);X.transferObjects([O],l)}if(Q)X.setGasBudget(Q);let U=await f(),q=await X.build({client:U});return{tx:X,txBytes:q}}catch(X){if(X instanceof Yn)throw X;throw new Yn("toolbox_sui_transaction_creation_error",{error:X})}}async function G(l){let W=await o();if(!W)throw new Yn("toolbox_sui_no_signer");if(l instanceof Uint8Array)return W.signTransaction(l);let{txBytes:Q}="tx"in l?l:await A(l);return W.signTransaction(Q)}async function M({assetValue:l,gasBudget:W,recipient:Q}){let N=await o();if(!N)throw new Yn("toolbox_sui_no_signer");let Z=N.toSuiAddress()||await T();if(!Z)throw new Yn("toolbox_sui_no_sender");let{txBytes:z}=await A({assetValue:l,gasBudget:W,recipient:Q,sender:Z}),X=await f();if(!l1(N)){let q=await N.signTransaction(z),{digest:L}=await X.executeTransactionBlock({signature:q.signature,transactionBlock:q.bytes});return L}let{digest:U}=await X.signAndExecuteTransaction({signer:N,transaction:z});return U}async function w(l){let W=await f(),{digest:Q}=await W.executeTransactionBlock({signature:l.signature,transactionBlock:l.bytes});return Q}async function B(l){let W=await o();if(!W)throw new Yn("toolbox_sui_no_signer");let Q=await f(),N;if(typeof l==="string")N=Uint8Array.from(Buffer.from(l,"base64"));else if(l instanceof Uint8Array)N=l;else N=await l.build({client:Q});if(!l1(W)){let z=await W.signTransaction(N),{digest:X}=await Q.executeTransactionBlock({signature:z.signature,transactionBlock:z.bytes});return X}let{digest:Z}=await Q.signAndExecuteTransaction({signer:W,transaction:N});return Z}return{broadcastTransaction:w,createTransaction:A,estimateTransactionFee:_,getAddress:T,getBalance:H,signAndBroadcastTransaction:B,signTransaction:G,transfer:M,validateAddress:B1}}var X1=()=>{};var Mf={};nn(Mf,{validateSuiAddress:()=>B1,getSuiToolbox:()=>MU});var Lf=F(()=>{X1()});import{getHttpEndpoint as LU}from"@orbs-network/ton-access";import{AssetValue as QU,Chain as Gy,getChainConfig as ZU,getRPCUrl as JU,SwapKitError as qy,SwapKitNumber as YU}from"@swapkit/helpers";import{mnemonicToWalletKey as NU}from"@ton/crypto";import{Address as bn,beginCell as XT,Cell as M1,external as zU,internal as DU,JettonMaster as OU,loadStateInit as xU,SendMode as L1,storeMessage as RU,TonClient as SU,toNano as Y1,WalletContractV4 as FU}from"@ton/ton";import{match as Q1,P as MT}from"ts-pattern";async function PU(){let n=Date.now();if(Qf&&n-J1<pU)return Qf;try{return Qf=await LU(),J1=n,Qf}catch{return JU(Gy.Ton)}}function $U(n={}){let y,t,o;async function f(){if(!y){let X=n.provider??await PU();y=new SU({endpoint:X})}return y}async function T(){return(await H()).address.toString()}async function C(){if(o)return o;return o=await Q1(n).with({phrase:MT.string},async({phrase:X})=>NU(X.split(" "))).with({signer:MT.any},({signer:X})=>X).otherwise(()=>{return}),o}async function H(X){if(!t||X){let U=await C(),q=await f(),L=X||U;if(!L)throw new qy("core_wallet_connection_not_found");let Y=FU.create({publicKey:L.publicKey,workchain:0});t=q.open(Y)}return t}let _=wn(Gy.Ton);async function A({assetValue:X,recipient:U,memo:q,sender:L}){if(X.isGasAsset){let b=q?z(q).toBoc().toString("base64"):void 0;return[{address:U,amount:X.getBaseValue("string"),payload:b}]}let Y=X.address;if(!Y)throw new qy({errorKey:"core_swap_contract_not_found",info:{asset:X.toString()}});let D=L??await T(),J=await N({jettonMasterAddress:Y,ownerAddress:D}),O=bn.parse(U),x=bn.parse(D),u=X.getBaseValue("bigint"),I=q?z(q):void 0,P=Z({destinationAddress:O,forwardPayload:I,jettonAmount:u,responseAddress:x});return[{address:J.toString(),amount:IU.toString(),payload:P.toBoc().toString("base64")}]}function G({sender:X,...U}){return A({...U,sender:X})}function M(X){return X.map((U)=>{let q=U.payload?M1.fromBase64(U.payload):void 0,L=U.stateInit?xU(M1.fromBase64(U.stateInit).asSlice()):void 0,Y=bn.parse(U.address),D=bn.isFriendly(U.address)?bn.parseFriendly(U.address).isBounceable:!0;return DU({body:q,bounce:D,init:L,to:Y,value:BigInt(U.amount)})})}async function w(X){let U=await C(),q=await H();if(!q||!U)throw new qy("core_wallet_connection_not_found");let L=await f(),{state:Y}=await L.getContractState(q.address),D=Y==="active",J=D?await q.getSeqno():0,O=q.createTransfer({messages:M(X),secretKey:U.secretKey,sendMode:Z1,seqno:J}),x=zU({body:O,init:D?void 0:q.init,to:q.address});return XT().store(RU(x)).endCell()}async function B(X){return await(await f()).sendFile(X.toBoc()),X.hash().toString("hex")}async function l(X){let U=await w(X);return B(U)}async function W({assetValue:X,recipient:U,memo:q}){let L=await G({assetValue:X,memo:q,recipient:U});return l(L)}async function Q({sender:X,...U}){let{baseDecimal:q}=ZU(Gy.Ton),L=await Q1(X).with(MT.string,(J)=>{return bn.parseFriendly(J).address}).otherwise(async()=>{return(await H()).address});if(!L)throw new qy("toolbox_fee_estimation_failed",{chain:Gy.Ton});let Y=QU.from({chain:Gy.Ton,value:"0.01"}),D=await f();try{let J=await G({sender:X,...U}),O=await C(),x=await H();if(!x||!O)return Y;let u=await x.getSeqno(),I=x.createTransfer({messages:M(J),secretKey:O.secretKey,sendMode:Z1,seqno:u}),{source_fees:P}=await D.estimateExternalMessageFee(L,{body:I,ignoreSignature:!0,initCode:null,initData:null}),b=P.in_fwd_fee+P.storage_fee+P.gas_fee+P.fwd_fee;return Y.set(YU.fromBigInt(BigInt(b),q))}catch{return Y}}async function N({jettonMasterAddress:X,ownerAddress:U}){try{let q=await f(),L=bn.parse(X),Y=bn.parse(U);return await q.open(OU.create(L)).getWalletAddress(Y)}catch{throw new qy({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:X,ownerAddress:U}})}}function Z({jettonAmount:X,destinationAddress:U,responseAddress:q,forwardAmount:L=kU,forwardPayload:Y}){let D=XT().storeUint(uU,32).storeUint(0,64).storeCoins(X).storeAddress(U).storeAddress(q).storeBit(0).storeCoins(L);if(Y)D.storeBit(1).storeRef(Y);else D.storeBit(0);return D.endCell()}function z(X){return XT().storeUint(0,32).storeStringTail(X).endCell()}return{broadcastTransaction:B,createTransaction:G,estimateTransactionFee:Q,getAddress:T,getBalance:_,getJettonWalletAddress:N,sign:w,signAndBroadcastTransaction:l,transfer:W,validateAddress:N1}}function N1(n){try{return bn.parse(n),!0}catch{return!1}}var uU=260734629,kU,IU,Z1,pU=60000,Qf,J1=0;var z1=F(()=>{In();kU=Y1("0.01"),IU=Y1("0.05"),Z1=L1.PAY_GAS_SEPARATELY+L1.IGNORE_ERRORS});var Zf={};nn(Zf,{validateTonAddress:()=>N1,getTONToolbox:()=>$U});var Jf=F(()=>{z1()});function D1({deriveAddress:n,getBalance:y,getUtxos:t}){async function o(H){let{count:_,startIndex:A=0,change:G=!1}=H,M=[];for(let w=0;w<_;w++){let B=await n({change:G,index:A+w});if(B)M.push(B)}return M}async function f(H){let{gapLimit:_=20,change:A=!1}=H??{},G=[],M=0,w=0;while(M<_){let B=await n({change:A,index:w});if(!B)break;if((await y(B.address)).some((Q)=>Q.getValue("number")>0))G.push(B),M=0;else M++;w++}return G}async function T(H=20){let[_,A]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),G=[..._,...A],M=await Promise.all(G.map(async(B)=>{let W=(await y(B.address)).reduce((Q,N)=>Q+N.getValue("number"),0);return{...B,balance:W}})),w=M.reduce((B,l)=>B+l.balance,0);return{addresses:M,total:w}}async function C(H=20){let[_,A]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),G=[..._,...A];return(await Promise.all(G.map(async(w)=>{return(await t(w.address)).map((l)=>({...l,address:w.address,derivationIndex:w.index,isChange:w.change}))}))).flat()}return{deriveAddresses:o,getAggregatedBalance:T,getAggregatedUtxos:C,scanForAddresses:f}}import{Chain as tn,getRPCUrl as EU,RequestClient as Yf,SKConfig as vU,SwapKitError as Sn,warnOnce as bU}from"@swapkit/helpers";import{NETWORKS as Fo}from"@swapkit/utxo-signer";async function VU({chain:n,txHash:y}){let t=`${ly(n)}/push/transaction`,o=JSON.stringify({data:y});try{let f=await Yf.post(t,{body:o,headers:{"Content-Type":"application/json"}});if(f.context.code!==200)throw new Sn("toolbox_utxo_broadcast_failed",{error:f.context.error||"Transaction broadcast failed"});return f.data?.transaction_hash||y}catch(f){let T=await EU(n);if(T){let C=JSON.stringify({id:Y0(),jsonrpc:"2.0",method:"sendrawtransaction",params:[y]}),H=await Yf.post(T,{body:C,headers:{"Content-Type":"application/json"}});if(H.error)throw new Sn("toolbox_utxo_broadcast_failed",{error:H.error?.message});if(H.result.includes('"code":-26'))throw new Sn("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return H.result}throw f}}function ly(n){return`https://api.blockchair.com/${KU(n)}`}function O1(n){switch(n){case tn.Bitcoin:return 5;case tn.Dogecoin:return 1e4;case tn.Litecoin:return 1;case tn.Zcash:return 1;default:return 2}}function KU(n){switch(n){case tn.BitcoinCash:return"bitcoin-cash";case tn.Litecoin:return"litecoin";case tn.Dash:return"dash";case tn.Dogecoin:return"dogecoin";case tn.Zcash:return"zcash";case tn.Polkadot:return"polkadot";default:return"bitcoin"}}async function jU(n){try{let{feePerKb:y}=await Yf.get(`https://app.bitgo.com/api/v2/${n.toLowerCase()}/tx/fee`),t=y/1000;return Math.max(t,O1(n))}catch{return O1(n)}}async function Nf(n,y){let t=await Yf.get(`${n}${y?`${n.includes("?")?"&":"?"}key=${y}`:""}`);if(!t||t.context.code!==200)throw new Sn("toolbox_utxo_api_error",{error:`Failed to query ${n}`});return t.data}async function R1({address:n,chain:y,apiKey:t}){if(!n)throw new Sn("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Nf(`${ly(y)}/dashboards/address/${n}?transaction_details=true`,t))[n]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function cU({address:n,chain:y,apiKey:t}){return(await R1({address:n,apiKey:t,chain:y}))?.address.balance||0}async function S1({chain:n,apiKey:y,txHash:t}){if(!t)throw new Sn("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Nf(`${ly(n)}/raw/transaction/${t}`,y))?.[t]?.raw_transaction||""}catch(o){let f=o instanceof Error?o.message:String(o);return console.error(`Failed to fetch raw transaction: ${f}`),""}}async function hU({chain:n,apiKey:y,txHash:t}){if(!t)throw new Sn("toolbox_utxo_invalid_params",{error:"TxHash is required"});let f=(await Nf(`${ly(n)}/dashboards/transaction/${t}`,y))?.[t];if(!f)throw new Sn("toolbox_utxo_tx_not_found",{txHash:t});let{transaction:T,inputs:C,outputs:H}=f,_=C.map((G)=>G.spending_sequence),A=T.is_rbf===!0||_.some((G)=>G<iU);return{blockId:T.block_id,confirmed:T.block_id!==-1,fee:T.fee,inputs:C,isRBF:A,outputs:H,sequences:_,size:T.size,txid:T.hash,weight:T.weight}}async function mU({chain:n,address:y,apiKey:t,offset:o=0,limit:f=30}){return(await Nf(`${ly(n)}/outputs?q=recipient(${y}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${f}&offset=${o}`,t)).map(({is_spent:_,script_hex:A,block_id:G,transaction_hash:M,index:w,value:B,spending_signature_hex:l})=>({hash:M,index:w,is_confirmed:G!==-1,is_spent:_,script_hex:A,txHex:l,value:B}))}function rU(n){return n.reduce((y,t)=>y+t.value,0)}function x1(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 F1({chain:n,address:y,apiKey:t,targetValue:o,accumulativeValue:f=0,offset:T=0,limit:C=30}){if(!y)throw new Sn("toolbox_utxo_invalid_params",{error:"Address is required"});try{let H=await mU({address:y,apiKey:t,chain:n,limit:C,offset:T,targetValue:o}),A=H.length<C,G=H.filter(({is_spent:Q})=>!Q),M=rU(G),w=f+M,B=o&&w>=o;if(A||B)return x1(G,o);let l=await F1({accumulativeValue:w,address:y,apiKey:t,chain:n,limit:C,offset:T+C,targetValue:o}),W=[...G,...l];return x1(W,o)}catch(H){let _=H instanceof Error?H.message:String(H);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function gU({address:n,chain:y,apiKey:t,fetchTxHex:o=!0,targetValue:f}){let T=await F1({address:n,apiKey:t,chain:y,targetValue:f}),C=[];for(let{hash:H,index:_,script_hex:A,value:G}of T){let M;if(o)M=await S1({apiKey:t,chain:y,txHash:H});C.push({address:n,hash:H,index:_,txHex:M,value:G,witnessUtxo:{script:Buffer.from(A,"hex"),value:G}})}return C}function s(n){let y=vU.get("apiKeys").blockchair||"";return bU({condition:!y,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(t)=>VU({chain:n,txHash:t}),getAddressData:(t)=>R1({address:t,apiKey:y,chain:n}),getBalance:(t)=>cU({address:t,apiKey:y,chain:n}),getRawTx:(t)=>S1({apiKey:y,chain:n,txHash:t}),getSuggestedTxFee:()=>jU(n),getTransactionDetails:(t)=>hU({apiKey:y,chain:n,txHash:t}),getUtxos:(t)=>gU({...t,apiKey:y,chain:n})}}function dU(n){return n}function aU(){return function(y){switch(y){case tn.Bitcoin:return Fo.bitcoin;case tn.BitcoinCash:return Fo.bitcoinCash;case tn.Dash:return Fo.dash;case tn.Litecoin:return Fo.litecoin;case tn.Dogecoin:return Fo.dogecoin;case tn.Zcash:return Fo.zcash;default:throw new Sn("toolbox_utxo_not_supported",{chain:y})}}}var iU=4294967294;var u1=F(()=>{In()});import{CashAddrType as zf,decodeCashAddr as sU,encodeCashAddr as eU}from"@swapkit/utxo-signer";function y2(n,y,t){return eU({hash:t,prefix:n,type:n2[y]})}function f2(n){let y=sU(n),t=o2[y.type];if(!t)throw Error(`Unknown CashAddr type: ${y.type}`);return{hash:y.hash,prefix:y.prefix,type:t}}var n2,o2,LT;var k1=F(()=>{n2={P2PKH:zf.P2PKH,P2SH:zf.P2SH},o2={[zf.P2PKH]:"P2PKH",[zf.P2SH]:"P2SH"};LT={decode:f2,encode:y2}});import{sha256 as t2}from"@noble/hashes/sha2.js";import{createBase58check as T2}from"@scure/base";import{SwapKitError as p1}from"@swapkit/helpers";function ZT(n){try{return Df(n),!0}catch{return!1}}function JT(n){return Df(n)?.network}function Vn(n){let y=Df(n);if(y?.format==="legacy")return n;return _2(y)}function Wy(n){let y=Df(n);return A2(y)}function Df(n){try{let y=C2(n);if(y)return y}catch{}try{let y=H2(n);if(y)return y}catch{}throw new p1("toolbox_utxo_invalid_address",{address:n})}function C2(n){try{let y=P1.decode(n);if(y.length!==21)throw new p1("toolbox_utxo_invalid_address",{address:n});let t=y[0],o=Array.prototype.slice.call(y,1);switch(t){case qo.legacy.mainnet.p2pkh:return{format:"legacy",hash:o,network:"mainnet",type:"p2pkh"};case qo.legacy.mainnet.p2sh:return{format:"legacy",hash:o,network:"mainnet",type:"p2sh"};case qo.legacy.testnet.p2pkh:return{format:"legacy",hash:o,network:"testnet",type:"p2pkh"};case qo.legacy.testnet.p2sh:return{format:"legacy",hash:o,network:"testnet",type:"p2sh"};case qo.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:o,network:"mainnet",type:"p2pkh"};case qo.bitpay.mainnet.p2sh:return{format:"bitpay",hash:o,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function H2(n){if(n.indexOf(":")!==-1)try{return 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}=LT.decode(n);return{format:"cashaddr",hash:Array.prototype.slice.call(y,0),network:t==="bitcoincash"?"mainnet":"testnet",type:o==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function _2(n){let y=qo.legacy[n.network][n.type],t=Buffer.alloc(1+n.hash.length);return t[0]=y,t.set(n.hash,1),P1.encode(t)}function A2(n){let y=n.network==="mainnet"?"bitcoincash":"bchtest",t=n.type==="p2pkh"?"P2PKH":"P2SH",o=new Uint8Array(n.hash);return LT.encode(y,t,o)}var P1,QT,qo;var $1=F(()=>{k1();P1=T2(t2);((t)=>{t.Mainnet="mainnet";t.Testnet="testnet"})(QT||={});qo={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as U2}from"@swapkit/helpers";import{Script as w2}from"@swapkit/utxo-signer";function Bn(n){let y=new Uint8Array(Buffer.from(n,"utf8"));return w2.encode(["RETURN",y])}var q2=1000,xf=10,Rf=2,E1=10,G2=41,l2=107,Sf,Of,By,uo=(n)=>{if(n.startsWith("bc1")||n.startsWith("tb1")||n.startsWith("ltc1")||n.startsWith("tltc1"))return"P2WPKH";if(n.startsWith("1")||n.startsWith("m")||n.startsWith("n")||n.startsWith("bitcoincash:q")||n.startsWith("bitcoincash:p")||n.startsWith("q")||n.startsWith("p")||n.startsWith("L")||n.startsWith("M")||n.startsWith("3")||n.startsWith("D")||n.startsWith("A")||n.startsWith("9")||n.startsWith("X")||n.startsWith("7")||n.startsWith("y")||n.startsWith("t1")||n.startsWith("t3")||n.startsWith("tm"))return"P2PKH";throw new U2("toolbox_utxo_invalid_address",{address:n})},Go=({inputs:n,outputs:y,feeRate:t})=>{let o=n[0]&&"address"in n[0]&&n[0].address?uo(n[0].address):"P2PKH",T=(t?n.filter((A)=>A.value>=Of["type"in A&&A.type?A.type:"P2PKH"]*Math.ceil(t)):n).reduce((A,G)=>A+dn(G),0),C=y?.reduce((A,G)=>A+Xy(G),0)||By[o],H=xf+T+C;return o==="P2WPKH"?Math.ceil(H+Rf/4):H},dn=(n)=>{if("type"in n&&n.type)return Of[n.type];if("address"in n&&n.address)return Of[uo(n.address)];return G2+l2},Xy=(n,y)=>{if(n?.script)return E1+n.script.length+(n.script.length>=74?2:1);if(y)return By[y];if("address"in n&&n.address)return By[uo(n.address)];return By.P2PKH};var YT=F(()=>{((t)=>{t.P2PKH="P2PKH";t.P2WPKH="P2WPKH"})(Sf||={});Of={["P2PKH"]:148,["P2WPKH"]:68},By={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as lo,SwapKitError as W2}from"@swapkit/helpers";function My(n){switch(n){case lo.Bitcoin:case lo.BitcoinCash:return 550;case lo.Dash:case lo.Litecoin:return 5500;case lo.Dogecoin:return 1e5;case lo.Zcash:return 546;default:throw new W2("toolbox_utxo_not_supported",{chain:n})}}function Nn({inputs:n,outputs:y,feeRate:t=1,chain:o=lo.Bitcoin,changeAddress:f=""}){let T=n[0]&&"address"in n[0]&&n[0].address?uo(n[0].address):"P2PKH",C=n.filter((l)=>dn(l)*t<=l.value),_=T==="P2WPKH"?Math.ceil(Rf/4):0,A=xf+_+y.reduce((l,W)=>l+Xy(W),0),G=y.reduce((l,W)=>l+W.value,0),M=A*t,w=0,B=[];for(let l of C){let W=dn(l),Q=t*W;M+=Q,w+=l.value,B.push(l);let N=M+G;if(w<N)continue;let Z=w-N,z=t*Xy({address:f,value:0});if(Z>z){let X=z+M,U=w-(G+Math.ceil(X));if(U>Math.max(dn({value:0})*t,My(o)))return{fee:Math.ceil(X),inputs:B,outputs:y.concat({address:f,value:U})}}return{fee:Math.ceil(M),inputs:B,outputs:y}}return{fee:Math.ceil(t*Go({inputs:n,outputs:y}))}}var v1=F(()=>{YT()});var ko=F(()=>{u1();$1();v1();YT()});import{Address as B2,ZCASH_NETWORK as X2}from"@swapkit/utxo-signer";function Wo(n){return n.replace(/(bchtest:|bitcoincash:)/,"")}function an(n){let y=Wo(n);return ZT(y)&&JT(y)==="mainnet"}function Io(n){try{if(n.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let t=B2(X2).decode(n);return t.type==="pkh"||t.type==="sh"}catch{return!1}}var Ly=F(()=>{ko()});import{secp256k1 as M2}from"@noble/curves/secp256k1.js";import{hex as Bo}from"@scure/base";import{HDKey as j1}from"@scure/bip32";import{mnemonicToSeedSync as zT}from"@scure/bip39";import{AssetValue as Ff,applyFeeMultiplier as b1,Chain as e,derivationPathToString as c1,FeeOption as Fn,NetworkDerivationPath as i1,SwapKitError as j,SwapKitNumber as L2,updateDerivationPath as Q2,warnOnce as Z2}from"@swapkit/helpers";import{Address as J2,BCHSigHash as DT,CashAddrPrefix as Y2,CashAddrType as N2,encodeCashAddr as z2,NETWORKS as po,p2pkh as V1,p2wpkh as D2,RBF_SEQUENCE as O2,SigHash as h1,Transaction as NT,WIF as m1}from"@swapkit/utxo-signer";import{match as r1}from"ts-pattern";function OT({address:n,chain:y}){return r1(y).with(e.BitcoinCash,()=>an(n)).with(e.Zcash,()=>Io(n)).otherwise(()=>{try{return J2(Xn(y)).decode(n),!0}catch{return!1}})}function Xn(n){return r1(n).with(e.Bitcoin,()=>po.bitcoin).with(e.BitcoinCash,()=>po.bitcoinCash).with(e.Dash,()=>po.dash).with(e.Dogecoin,()=>po.dogecoin).with(e.Litecoin,()=>po.litecoin).with(e.Zcash,()=>po.zcash).exhaustive()}function x2({phrase:n,derivationPath:y,network:t,seed:o}){let f=o??zT(n),C=j1.fromMasterSeed(f,t.bip32).derive(y);if(!C.privateKey)throw new j("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return C.privateKey}function K1(n){return M2.getPublicKey(n,!0)}function xT({publicKey:n,chain:y,network:t}){if(y===e.BitcoinCash){let T=V1(n,t);if(!T.hash)throw new j("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return z2({hash:T.hash,prefix:Y2.MAINNET,type:N2.P2PKH}).replace(/^bitcoincash:/,"")}let f=!Qy.includes(y)?D2(n,t):V1(n,t);if(!f.address)throw new j("toolbox_utxo_invalid_address",{error:"Could not derive address"});return f.address}function Po({phrase:n,derivationPath:y,chain:t,wif:o,seed:f}){let T=Xn(t);if(o){let A=m1(T).decode(o),G=K1(A);return{privateKey:A,publicKey:G}}if(!n)throw new j("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let C=y||c1(i1[t]),H=x2({derivationPath:C,network:T,phrase:n,seed:f}),_=K1(H);return{privateKey:H,publicKey:_}}function R2(n,y){return m1(Xn(y)).encode(n)}function S2({phrase:n,derivationPath:y,chain:t,seed:o}){let f=y.split("/");if(f.length<4)throw new j("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${f.length}): ${y}`});let T=Xn(t),C=o??zT(n),H=j1.fromMasterSeed(C,T.bip32),_=f.slice(0,4).join("/");return H.derive(_)}function sn({inputs:n,outputs:y,chain:t,tx:o,sender:f,compiledMemo:T,enableRBF:C=!1}){let H=Xn(t),_=!Qy.includes(t),A=C?O2:void 0,G=new Set;for(let M of n){let w=`${M.hash}:${M.index}`;if(G.has(w))throw new j("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});G.add(w);let B=typeof M.hash==="string"?Bo.decode(M.hash):M.hash;if(_&&M.witnessUtxo)o.addInput({index:M.index,sequence:A,txid:B,witnessUtxo:{amount:BigInt(M.witnessUtxo.value),script:M.witnessUtxo.script}});else if(M.txHex)o.addInput({index:M.index,nonWitnessUtxo:Bo.decode(M.txHex),sequence:A,txid:B,...t===e.BitcoinCash?{sighashType:DT.ALL}:{}});else throw new j("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let M of y){let w="address"in M&&M.address?M.address:f;if(t===e.BitcoinCash)w=Vn(w);if(M.script){if(T)o.addOutput({amount:0n,script:T})}else o.addOutputAddress(w,BigInt(M.value),H)}return{inputs:n,tx:o}}async function $o(n){let y=await s(n).getSuggestedTxFee();return{[Fn.Average]:y,[Fn.Fast]:b1(y,Fn.Fast),[Fn.Fastest]:b1(y,Fn.Fastest)}}async function g1({assetValue:n,recipient:y,memo:t,sender:o,fetchTxHex:f=!1}){let T=n.chain,C=(await $o(T))[Fn.Fastest],H=f||Qy.includes(T),_=n.getBaseValue("number"),A=Math.ceil(_+C*5000);return{inputs:await s(T).getUtxos({address:o,fetchTxHex:H,targetValue:A}),outputs:[{address:y,value:_},...t?[{address:"",script:Bn(t),value:0}]:[]]}}async function d1({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 g1({assetValue:n,fetchTxHex:T,memo:t,recipient:y,sender:f}),{inputs:G,outputs:M}=Nn({...A,chain:H,feeRate:o});if(!(G&&M))throw new j("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let w=new NT({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:B,tx:l}=sn({chain:H,compiledMemo:_,enableRBF:C,inputs:G,outputs:M,sender:f,tx:w});return{inputs:B,tx:l,utxos:A.inputs}}async function a1({assetValue:n,feeOptionKey:y=Fn.Fast,feeRate:t,memo:o,sender:f,recipient:T}){let C=n.chain,H=await g1({assetValue:n,memo:o,recipient:T,sender:f}),_=t?Math.floor(t):(await $o(C))[y];return Nn({...H,chain:C,feeRate:_})}function F2(n){return async function({from:t,memo:o,feeRate:f,feeOptionKey:T=Fn.Fast,recipients:C=1}){let H=await s(n).getAddressData(t),_=f?Math.ceil(f):(await $o(n))[T],A=H?.utxo.map((W)=>({...W,hash:"",type:"P2PKH"})).filter((W)=>W.value>Math.max(My(n),dn(W)*_));if(!A?.length)return Ff.from({chain:n});let G=BigInt(A.reduce((W,Q)=>W+Q.value,0)),M=Ff.from({chain:n,value:G}),w=typeof C==="number"?Array.from({length:C},()=>({address:t,value:0})):C;if(o)w.push({address:t,script:Bn(o),value:0});let B=Go({inputs:A,outputs:w}),l=Ff.from({chain:n,value:BigInt(B*_)});return M.sub(l)}}function u2(n){return async function(t){let{fee:o}=await a1(t);return Ff.from({chain:n,value:L2.fromBigInt(BigInt(o),8).getValue("string")})}}function k2({chain:n,phrase:y,derivationPath:t,seed:o}){let f=Xn(n),{privateKey:T,publicKey:C}=Po({chain:n,derivationPath:t,phrase:y,seed:o}),H=n===e.BitcoinCash?[DT.ALL]:[h1.ALL];return{getAddress:()=>xT({chain:n,network:f,publicKey:C}),privateKey:T,publicKey:C,signTransaction:(_)=>{return _.sign(T,H),_}}}function I2(n,y){return async function({memo:o,recipient:f,feeOptionKey:T,feeRate:C,assetValue:H,enableRBF:_=!1}){let A=y?.getAddress();if(!(y&&A))throw new j("toolbox_utxo_no_signer");if(!f)throw new j("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});Z2({condition:_&&!uf.includes(n),id:`rbf_not_supported_${n}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${n}. Transaction will be created without RBF signaling.`});let G=_&&uf.includes(n),M=C||(await $o(n))[T||Fn.Fast],{tx:w}=await d1({assetValue:H,enableRBF:G,feeRate:M,memo:o,recipient:f,sender:A});return y.signTransaction(w),w.finalize(),s(n).broadcastTx(Bo.encode(w.extract()))}}function RT(n){return(y)=>OT({address:y,chain:n})}function ST(n){let y=Xn(n);return function(o){if(!o)throw new j("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return xT({chain:n,network:y,publicKey:o.publicKey})}}function en({chain:n,...y}){let t="phrase"in y?y.phrase:void 0,o="index"in y?y.index||0:0,f=t?zT(t):void 0,T=c1("derivationPath"in y&&y.derivationPath?y.derivationPath:Q2(i1[n],{index:o})),C=t?k2({chain:n,derivationPath:T,phrase:t,seed:f}):void 0,H="signer"in y?y.signer:void 0,_=t?Po({chain:n,derivationPath:T,phrase:t,seed:f}):void 0;function A(){if(C)return Promise.resolve(C.getAddress());if(H)return H.getAddress();return Promise.resolve(void 0)}let G=t?S2({chain:n,derivationPath:T,phrase:t,seed:f}):void 0;function M(){if(!G)return;return G.publicExtendedKey}function w({index:X,change:U=!1}){if(!G)return;if(!Number.isInteger(X)||X<0)throw RangeError(`index must be a non-negative integer, got: ${X}`);let q=Xn(n),L=G.deriveChild(Number(U)).deriveChild(X);if(!L.publicKey)throw new j("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let Y=xT({chain:n,network:q,publicKey:L.publicKey}),D=Bo.encode(L.publicKey);return{address:Y,change:U,index:X,pubkey:D}}async function B(X){if(!uf.includes(n))return{reason:`RBF is not supported on ${n}`,supported:!1};let U=await s(n).getTransactionDetails(X);return{canReplace:U.isRBF&&!U.confirmed,confirmed:U.confirmed,enabled:U.isRBF,fee:U.fee,sequences:U.sequences,supported:!0}}async function l({txid:X,newFeeRate:U,recipient:q,memo:L}){if(!uf.includes(n))throw new j("toolbox_utxo_rbf_not_supported",{chain:n});let Y=await s(n).getTransactionDetails(X);if(!Y.isRBF)throw new j("toolbox_utxo_tx_not_replaceable",{txid:X});if(Y.confirmed)throw new j("toolbox_utxo_tx_already_confirmed",{blockId:Y.blockId,txid:X});let D=Y.inputs.reduce((i,Un)=>i+Un.value,0),O=Y.outputs.find((i)=>i.recipient===q)?.value||0;if(O===0)throw new j("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let x=await Promise.all(Y.inputs.map(async(i)=>{let Un=await s(n).getRawTx(i.transaction_hash);return{hash:i.transaction_hash,index:i.index,txHex:Un,value:i.value,witnessUtxo:void 0}})),u=L?Bn(L):null,I=Go({feeRate:U,inputs:x.map((i)=>({...i,type:"P2WPKH"})),outputs:[{address:q,value:O}]}),P=Math.ceil(I*U);if(P<=Y.fee)throw new j("toolbox_utxo_rbf_fee_too_low",{newFee:P,originalFee:Y.fee});let b=P-Y.fee,V=O-b;if(V<=0)throw new j("toolbox_utxo_rbf_insufficient_change");let m=new NT({allowLegacyWitnessUtxo:!0,version:1}),Hn=[{address:q,value:V},...L?[{address:"",script:Bn(L),value:0}]:[]],An=D-V-P,a=await A();if(An>My(n)&&a)Hn.push({address:a,value:An});return sn({chain:n,compiledMemo:u,inputs:x,outputs:Hn,sender:a||q,tx:m}),{feeDelta:b,newFee:P,originalFee:Y.fee,tx:m}}async function W({txid:X,newFeeRate:U,recipient:q,memo:L}){if(!C)throw new j("toolbox_utxo_no_signer");let{tx:Y,originalFee:D,newFee:J}=await l({memo:L,newFeeRate:U,recipient:q,txid:X});C.signTransaction(Y),Y.finalize();let O=await s(n).broadcastTx(Bo.encode(Y.extract()));return{newFee:J,originalFee:D,txid:O}}function Q({index:X,change:U=!1}){if(!G)return;return G.deriveChild(Number(U)).deriveChild(X).privateKey||void 0}function N({tx:X,inputDerivations:U}){if(!G)throw new j("toolbox_utxo_no_signer");let q=n===e.BitcoinCash?[DT.ALL]:[h1.ALL];for(let L=0;L<U.length;L++){let Y=U[L];if(!Y)continue;let{derivationIndex:D,isChange:J}=Y,O=Q({change:J,index:D});if(!O)throw new j("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${L} at index ${D}`});X.signIdx(O,L,q)}return X}async function Z({utxos:X,recipient:U,assetValue:q,memo:L,feeRate:Y,feeOptionKey:D,changeAddress:J}){if(!G)throw new j("toolbox_utxo_no_signer");let O=Y||(await $o(n))[D||Fn.Fast],x=L?Bn(L):null,u=[{address:U,value:q.getBaseValue("number")}];if(x)u.push({address:"",script:x,value:0});let I=X.map(({hash:a,index:i,value:Un,txHex:fo,witnessUtxo:Xo})=>({hash:a,index:i,txHex:fo,value:Un,witnessUtxo:Xo?{script:Xo.script,value:Xo.value}:void 0})),{inputs:P,outputs:b}=Nn({chain:n,feeRate:O,inputs:I,outputs:u});if(!(P&&b))throw new j("toolbox_utxo_insufficient_balance",{assetValue:q,sender:"multiple addresses"});let V=new NT({allowLegacyWitnessUtxo:!0,version:1}),m=X[0]?.address,Hn=J||await A()||m||U;sn({chain:n,compiledMemo:x,inputs:P,outputs:b,sender:Hn,tx:V});let An=P.map((a)=>{let i=X.find((Un)=>Un.hash===a.hash&&Un.index===a.index);return i?{derivationIndex:i.derivationIndex,isChange:i.isChange}:{derivationIndex:0,isChange:!1}});return N({inputDerivations:An,tx:V}),V.finalize(),s(n).broadcastTx(Bo.encode(V.extract()))}function z({address:X,gapLimit:U=20}){if(!G)return;for(let q=0;q<U;q++){let L=w({change:!1,index:q}),Y=w({change:!0,index:q}),D=L?.address===X?!1:Y?.address===X;if(L?.address===X||Y?.address===X)return{change:D,index:q}}return}return{accumulative:Nn,broadcastTx:(X)=>s(n).broadcastTx(X),bumpFee:W,calculateTxSize:Go,createKeysForPath:(X)=>Po({...X,chain:n}),createReplacementTransaction:l,createTransaction:d1,deriveAddressAtIndex:w,derivePrivateKeyAtIndex:Q,estimateMaxSendableAmount:F2(n),estimateTransactionFee:u2(n),getAddress:A,getAddressFromKeys:ST(n),getBalance:wn(n),getExtendedPublicKey:M,getFeeRates:()=>$o(n),getInputsOutputsFee:a1,getNetworkForChain:()=>Xn(n),getPrivateKeyFromMnemonic:(X)=>R2(Po({...X,chain:n}).privateKey,n),isRBFEnabled:B,keys:_,resolveDerivationIndex:z,signAndBroadcastTransaction:async(X)=>{if(!C)throw new j("toolbox_utxo_no_signer");return C.signTransaction(X),X.finalize(),await s(n).broadcastTx(Bo.encode(X.extract()))},signTransactionWithMultipleKeys:N,transfer:I2(n,C),transferFromMultipleAddresses:Z,validateAddress:RT(n)}}var Qy,uf;var Zy=F(()=>{In();ko();Ly();Qy=[e.Dash,e.Dogecoin,e.Zcash,e.BitcoinCash],uf=[e.Bitcoin]});import{hex as p2}from"@scure/base";import{Chain as P2,derivationPathToString as $2,FeeOption as E2,NetworkDerivationPath as v2,SwapKitError as no,updateDerivationPath as b2}from"@swapkit/helpers";import{BCHSigHash as V2,CashAddrPrefix as s1,CashAddrType as e1,encodeCashAddr as nH,NETWORKS as K2,p2pkh as oH,Transaction as yH}from"@swapkit/utxo-signer";function Jy(n){return Wo(Wy(n))}function j2(n){let y=Xn(un);function t(f){return f.sign(n.privateKey,[V2.ALL]),f}function o(){let f=oH(n.publicKey,y);if(!f.hash)throw new no("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let T=nH({hash:f.hash,prefix:s1.MAINNET,type:e1.P2PKH});return Promise.resolve(T.replace(/^bitcoincash:/,""))}return{getAddress:o,signTransaction:t}}function FT(n){let y="phrase"in n?n.phrase:void 0,t="index"in n?n.index||0:0,o=$2("derivationPath"in n&&n.derivationPath?n.derivationPath:b2(v2[un],{index:t})),f=y?Po({chain:un,derivationPath:o,phrase:y}):void 0,T=f?j2(f):("signer"in n)?n.signer:void 0;function C(){return Promise.resolve(T?.getAddress())}let{getBalance:H,getFeeRates:_,broadcastTx:A,...G}=en({chain:un});function M(w,B=!0){return H(Wo(Wy(w)))}return{...G,broadcastTx:A,buildTx:i2,createTransaction:fH,getAddress:C,getAddressFromKeys:h2,getBalance:M,getFeeRates:_,stripPrefix:Wo,stripToCashAddress:Jy,transfer:c2({broadcastTx:A,getFeeRates:_,signer:T}),validateAddress:an}}async function fH({assetValue:n,recipient:y,memo:t,feeRate:o,sender:f}){if(!an(y))throw new no("toolbox_utxo_invalid_address",{address:y});let T=Math.ceil(n.getBaseValue("number")+o*7500),C=await s(un).getUtxos({address:Jy(f),fetchTxHex:!0,targetValue:T}),H=t?Bn(t):null,_=[],A=Vn(y);if(_.push({address:A,value:n.getBaseValue("number")}),H)_.push({script:H,value:0});let{inputs:G,outputs:M}=Nn({chain:un,feeRate:o,inputs:C,outputs:_});if(!(G&&M))throw new no("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let w=new yH({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!H,version:1}),B=Vn(f),{inputs:l,tx:W}=sn({chain:un,compiledMemo:H,inputs:G,outputs:M.map((Q)=>("address"in Q)&&Q.address?{...Q,address:Vn(Q.address)}:Q),sender:B,tx:w});return{inputs:l,tx:W,utxos:G}}function c2({broadcastTx:n,getFeeRates:y,signer:t}){return async function({recipient:f,assetValue:T,feeOptionKey:C=E2.Fast,...H}){let _=await t?.getAddress();if(!(t&&_))throw new no("toolbox_utxo_no_signer");if(!f)throw new no("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let A=H.feeRate||(await y())[C],{tx:G}=await fH({...H,assetValue:T,feeRate:A,recipient:f,sender:_}),M=await t.signTransaction(G);return M.finalize(),n(p2.encode(M.extract()))}}async function i2({assetValue:n,recipient:y,memo:t,feeRate:o,sender:f}){let T=Wy(y);if(!an(T))throw new no("toolbox_utxo_invalid_address",{address:T});let C=Math.ceil(n.getBaseValue("number")+o*7500),H=await s(un).getUtxos({address:Jy(f),fetchTxHex:!0,targetValue:C}),_=Number(o.toFixed(0)),A=t?Bn(t):null,G=[];if(G.push({address:Vn(y),value:n.getBaseValue("number")}),A)G.push({script:A,value:0});let{inputs:M,outputs:w}=Nn({chain:un,feeRate:_,inputs:H,outputs:G});if(!(M&&w))throw new no("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let B=new yH({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:l,tx:W}=sn({chain:un,compiledMemo:A,inputs:M,outputs:w,sender:Vn(f),tx:B});return{inputs:l,tx:W,utxos:H}}function h2(n){let y=K2.bitcoinCash,t=oH(n.publicKey,y);if(!t.hash)throw new no("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return nH({hash:t.hash,prefix:s1.MAINNET,type:e1.P2PKH}).replace(/^bitcoincash:/,"")}var un;var kf=F(()=>{ko();Zy();Ly();un=P2.BitcoinCash});import{createBase58check as m2,hex as r2}from"@scure/base";import{HDKey as CH}from"@scure/bip32";import{mnemonicToSeedSync as HH}from"@scure/bip39";import{Chain as If,derivationPathToString as g2,FeeOption as d2,NetworkDerivationPath as a2,SKConfig as _H,SwapKitError as Eo,updateDerivationPath as s2}from"@swapkit/helpers";import{Address as e2,createZcashTransaction as n8,OutScript as o8,PCZT as y8,utils as AH,WIF as f8,ZCASH_NETWORK as t8,ZCASH_TEST_NETWORK as T8,ZcashConsensusBranchId as C8,ZcashSigHash as tH,ZcashVersionGroupId as H8}from"@swapkit/utxo-signer";import{match as _8,P as uT}from"ts-pattern";function UH(){let{isStagenet:n}=_H.get("envs");return n?T8:t8}function U8(n){return A8.encode(n)}function w8({phrase:n,derivationPath:y}){let t=HH(n),f=CH.fromMasterSeed(t).derive(y);if(!f.privateKey||!f.publicKey)throw new Eo("toolbox_utxo_invalid_params");let{privateKey:T,publicKey:C}=f,H=AH.hash160(C),{isStagenet:_}=_H.get("envs"),A=_?new Uint8Array([29,37]):new Uint8Array([28,184]),G=new Uint8Array(A.length+H.length);G.set(A,0),G.set(H,A.length);let M=U8(G);return{getAddress:()=>Promise.resolve(M),signTransaction:(w)=>{if(w instanceof y8)return w.signAllInputs(T,C,tH.ALL),w.finalizeAllInputs(),Promise.resolve(w.extract());return w.signAllInputs(T,C,tH.ALL),Promise.resolve(w)}}}function q8({inputs:n,outputs:y,tx:t,sender:o,compiledMemo:f}){let T=UH();for(let C of n){let H=e2(T).decode(o),_=o8.encode(H);t.addInput({index:C.index,script:_,sequence:4294967295,txid:r2.decode(C.hash),value:BigInt(C.value)})}for(let C of y){let H="address"in C&&C.address?C.address:o,_=C.script;if(_&&!f)continue;if(_&&f)t.addOutput({amount:0n,script:f});else t.addOutputAddress(H,BigInt(C.value),T)}return{inputs:n,tx:t}}async function TH(n){let{assetValue:y,recipient:t,memo:o,feeRate:f,sender:T,fetchTxHex:C}=n,H=o?Bn(o):null,_=await s(If.Zcash).getUtxos({address:T,fetchTxHex:C!==!1}),A=[{address:t,value:Number(y.getBaseValue("string"))},...H?[{script:H,value:0}]:[]],{inputs:G,outputs:M}=Nn({chain:If.Zcash,changeAddress:T,feeRate:f,inputs:_,outputs:A});if(!(G&&M))throw new Eo("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let w=n8({consensusBranchId:C8.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:H8.SAPLING}),{tx:B,inputs:l}=q8({compiledMemo:H,inputs:G,outputs:M,sender:T,tx:w});return{inputs:l,outputs:M,tx:B}}function kT(n){let y=_8(n).with({signer:uT.not(uT.nullish)},({signer:_})=>_).with({phrase:uT.string},({phrase:_,derivationPath:A,index:G=0})=>{let M=A||a2[If.Zcash]||[44,133,0,0,0],w=s2(M,{index:G}),B=g2(w);return w8({derivationPath:B,phrase:_})}).otherwise(()=>{return}),t=en({chain:If.Zcash,signer:y});async function o({recipient:_,assetValue:A,feeOptionKey:G=d2.Fast,...M}){let w=await y?.getAddress();if(!(y&&w))throw new Eo("toolbox_utxo_no_signer");let B=M.feeRate||(await t.getFeeRates())[G],{tx:l}=await TH({...M,assetValue:A,feeRate:B,recipient:_,sender:w}),Q=(await y.signTransaction(l)).toHex();return t.broadcastTx(Q)}function f({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let G=HH(_),w=CH.fromMasterSeed(G).derive(A);if(!w.privateKey||!w.publicKey)throw new Eo("toolbox_utxo_invalid_params");return{privateKey:w.privateKey,publicKey:w.publicKey}}function T({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let G=f({derivationPath:A,phrase:_}),M=UH();return f8(M).encode(G.privateKey)}function C(_){return async function(G){if(!_)throw new Eo("toolbox_utxo_no_signer");return await _.signTransaction(G)}}function H(_){return async function(G){if(!_)throw new Eo("toolbox_utxo_no_signer");let M=await _.signTransaction(G);return t.broadcastTx(M.toHex())}}return{...t,createKeysForPath:f,createTransaction:TH,getPrivateKeyFromMnemonic:T,signAndBroadcastTransaction:H(y),signTransaction:C(y),transfer:o,validateAddress:Io}}var A8;var IT=F(()=>{ko();Zy();Ly();A8=m2(AH.sha256)});import{Chain as vo,SwapKitError as G8}from"@swapkit/helpers";function l8(n,y){switch(n){case vo.BitcoinCash:return FT(y||{});case vo.Zcash:return kT(y);case vo.Bitcoin:case vo.Dogecoin:case vo.Litecoin:case vo.Dash:return en({chain:n,...y});default:throw new G8("toolbox_utxo_not_supported",{chain:n})}}var wH=F(()=>{kf();Zy();IT();kf();Ly()});var pT={};nn(pT,{validateZcashAddress:()=>Io,validateUtxoAddress:()=>OT,validateBchAddress:()=>an,toLegacyAddress:()=>Vn,toCashAddress:()=>Wy,stripToCashAddress:()=>Jy,stripPrefix:()=>Wo,nonSegwitChains:()=>Qy,isValidAddress:()=>ZT,getUtxoToolbox:()=>l8,getUtxoNetwork:()=>aU,getUtxoApi:()=>s,getUTXOAddressValidator:()=>RT,getScriptTypeForAddress:()=>uo,getOutputSize:()=>Xy,getNetworkForChain:()=>Xn,getInputSize:()=>dn,getDustThreshold:()=>My,detectAddressNetwork:()=>JT,createZcashToolbox:()=>kT,createUTXOToolbox:()=>en,createHDWalletHelpers:()=>D1,createCustomUtxoApi:()=>dU,createBCHToolbox:()=>FT,compileMemo:()=>Bn,calculateTxSize:()=>Go,addressFromKeysGetter:()=>ST,addInputsAndOutputs:()=>sn,accumulative:()=>Nn,UtxoNetwork:()=>QT,UTXOScriptType:()=>Sf,TX_OVERHEAD:()=>xf,SEGWIT_MARKER_FLAG_WEIGHT:()=>Rf,OutputSizes:()=>By,OP_RETURN_OVERHEAD:()=>E1,MIN_TX_FEE:()=>q2,InputSizes:()=>Of});var PT=F(()=>{Zy();ko();wH();kf();IT()});import{KeyPairSigner as W8}from"@near-js/signers";import{derivationPathToString as B8,SwapKitError as X8}from"@swapkit/helpers";function Yy(n){return n.length>=2&&n.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(n)}async function pf(n){let{parseSeedPhrase:y}=await import("near-seed-phrase"),{KeyPair:t}=await import("@near-js/crypto"),o=n.index||0,f=n.derivationPath?B8(n.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:T}=y(n.phrase,f),C=t.fromString(T);return GH(C)}async function $T(n){let{KeyPair:y}=await import("@near-js/crypto"),t=y.fromString(n);return GH(t)}function GH(n){return new qH(n)}async function Pf(n,y){let o=(await n.query({account_id:y,finality:"final",request_type:"view_access_key_list"})).keys.find((H)=>H.access_key.permission==="FullAccess");if(!o)throw new X8("toolbox_near_no_public_key_found");let{PublicKey:f}=await import("@near-js/crypto"),T=f.fromString(o.public_key);return{nonce:o.access_key.nonce||0,publicKey:T}}var qH;var ET=F(()=>{qH=class qH extends W8{#n;constructor(n){super(n);this.#n=n}getAddress(){let n=this.#n.getPublicKey(),y=Buffer.from(n.data).toString("hex");return Promise.resolve(y)}}});function vT(n){return"recipient"in n&&"amount"in n&&!("contractId"in n)}function bT(n){return"contractId"in n&&"methodName"in n}function VT(n){return"actions"in n}function KT(n){return"newAccountId"in n}function jT(n){return"contractCode"in n}function cT(n){return"customEstimator"in n}function iT(n){let y=0;for(let t of n)switch(t.enum){case"transfer":y+=Number(Tn.SIMPLE_TRANSFER);break;case"functionCall":y+=Number(Tn.CONTRACT_CALL);break;case"createAccount":y+=Number(Tn.ACCOUNT_CREATION);break;case"deployContract":y+=Number(Tn.CONTRACT_DEPLOYMENT);break;case"addKey":y+=Number(Tn.ACCESS_KEY_ADDITION);break;case"deleteKey":y+=Number(Tn.ACCESS_KEY_DELETION);break;case"stake":y+=Number(Tn.STAKE);break;default:y+=Number(Tn.CONTRACT_CALL)}return y.toString()}function hT(n){if(n==="ft_transfer"||n==="ft_transfer_call")return Tn.TOKEN_TRANSFER;if(n==="storage_deposit")return Tn.STORAGE_DEPOSIT;return Tn.CONTRACT_CALL}function M8(n){return(BigInt(n)*BigInt(1000000000000)).toString()}function L8(n){return(BigInt(n)/BigInt(1000000000000)).toString()}var Tn;var mT=F(()=>{Tn={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function rT({account:n,contractId:y,viewMethods:t,changeMethods:o}){let{Contract:f}=await import("@near-js/accounts");return new f(n,y,{changeMethods:o,useLocalViewExecution:!0,viewMethods:t})}import{JsonRpcProvider as Q8}from"@near-js/providers";import{AssetValue as gT,Chain as bo,getRPCUrl as lH,SwapKitError as ln}from"@swapkit/helpers";import{match as WH,P as BH}from"ts-pattern";function Z8(n){let y;async function t(){if(y)return y;return y=await WH(n).with({phrase:BH.string},async(J)=>{return await pf(J)}).with({signer:BH.any},({signer:J})=>J).otherwise(()=>{return}),y}async function o(){let J=await lH(bo.Near);return new Q8({url:J})}async function f(J){let{Account:O}=await import("@near-js/accounts"),x=await o(),u=await t(),I=J||await T();return new O(I,x,u)}async function T(){let J=await t();if(!J)throw new ln("toolbox_near_no_signer");return await J.getAddress()}async function C(J){return(await X({changeMethods:[],contractId:J.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:J.accountId})}async function H(J){let x=[await w({args:{account_id:J.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await w({args:{amount:J.assetValue.getBaseValue("string"),memo:J.memo||null,receiver_id:J.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return U({actions:x,receiverId:J.contractId})}async function _(J){if(!await t())throw new ln("toolbox_near_no_signer");let{assetValue:x,recipient:u,memo:I}=J,P=await T();if(!x.isGasAsset&&x.address){if(!await C({accountId:u,contractId:x.address}))return H({assetValue:x,contractId:x.address,memo:I,recipient:u})}let b=await A({...J,sender:P});return W(b)}async function A({recipient:J,assetValue:O,memo:x,attachedDeposit:u,sender:I,functionCall:P}){let b=await o();if(!Yy(J))throw new ln("toolbox_near_invalid_address",{recipient:J});if(!Yy(I))throw new ln("toolbox_near_invalid_address",{sender:I});if(P)return M({...P,sender:I});if(!O.isGasAsset){let B0=O.address;if(!B0)throw new ln("toolbox_near_missing_contract_address");return M({args:{amount:O.getBaseValue("string"),memo:x||null,receiver_id:J},attachedDeposit:u||"1",contractId:B0,gas:"250000000000000",methodName:"ft_transfer",sender:I})}let{publicKey:V,nonce:m}=await Pf(b,I),Hn=O.getBaseValue("bigint"),{actionCreators:An,createTransaction:a}=await import("@near-js/transactions"),{baseDecode:i}=await import("@near-js/utils"),Un=[An.transfer(Hn)];if(x&&u)Un.push(An.functionCall("memo",{memo:x},BigInt("250000000000000"),BigInt(u)));let fo=await b.block({finality:"final"}),Xo=i(fo.header.hash);return a(I,V,J,m+1,Un,Xo)}function G(J){let O=J.encode();return Buffer.from(O).toString("base64")}async function M({args:J,attachedDeposit:O,contractId:x,gas:u,methodName:I,sender:P}){let b=await o(),{publicKey:V,nonce:m}=await Pf(b,P),{createTransaction:Hn,actionCreators:An}=await import("@near-js/transactions"),{baseDecode:a}=await import("@near-js/utils"),i=await b.block({finality:"final"}),Un=a(i.header.hash),fo=[An.functionCall(I,Buffer.from(JSON.stringify(J)),BigInt(u),BigInt(O))];return Hn(P,V,x,m+1,fo,Un)}async function w(J){let{actionCreators:O}=await import("@near-js/transactions");return O.functionCall(J.methodName,Buffer.from(JSON.stringify(J.args)),BigInt(J.gas),BigInt(J.attachedDeposit))}async function B(J){let O=await t();if(!O)throw new ln("toolbox_near_no_signer");let[x,u]=await O.signTransaction(J);return u}async function l(J){return(await(await o()).sendTransaction(J)).transaction.hash}async function W(J){let O=await t();if(!O)throw new ln("toolbox_near_no_signer");try{let x=await B(J);return await l(x)}catch{return O.signAndSendTransactions?.({transactions:[J]})}}async function Q(J){let O=await t();if("assetValue"in J){let u=await N();try{let I=await lH(bo.Near),P=await fetch(I,{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:b}}=await P.json(),{execution:V,send_sir:m}=b.transaction_costs.action_receipt_creation_config,{execution:Hn,send_sir:An}=b.transaction_costs.action_creation_config.transfer_cost,a=BigInt(An)+BigInt(Hn),i=BigInt(m)+BigInt(V),fo=(a+i)*BigInt(u.toString());return gT.from({chain:bo.Near,value:fo})}catch(I){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",I);let P=BigInt("115123062500"),b=BigInt("108059500000"),m=(P+b)*BigInt(u.toString());return gT.from({chain:bo.Near,value:m})}}let x=O?await f():void 0;return q(J,x)}async function N(){let J=await o();try{return await J.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Z(J,O,x){if(!await t())throw new ln("toolbox_near_no_signer");let I=await f(),{formatNearAmount:P}=await import("@near-js/utils"),{PublicKey:b}=await import("@near-js/crypto"),V=P(x)||"0";return(await I.createAccount(J,b.fromString(O),BigInt(V))).transaction.hash}async function z(J){let O=await t();try{if(!O)throw new ln("toolbox_near_no_signer");let{actionCreators:x}=await import("@near-js/transactions"),{contractId:u,methodName:I,args:P,deposit:b}=J,V=await f(),m=await q({args:P||{},contractId:u,methodName:I}),Hn=x.functionCall(I,P||{},m.getBaseValue("bigint"),BigInt(b||"1"));return(await V.signAndSendTransaction({actions:[Hn],receiverId:u})).transaction_outcome.id}catch(x){throw new ln("toolbox_near_transfer_failed",{error:x})}}async function X(J){let O=await f();return rT({account:O,changeMethods:J.changeMethods,contractId:J.contractId,viewMethods:J.viewMethods})}async function U(J){if(!await t())throw new ln("toolbox_near_no_signer");if(J.actions.length===0)throw new ln("toolbox_near_empty_batch");return(await(await f()).signAndSendTransaction({actions:J.actions,receiverId:J.receiverId})).transaction.hash}async function q(J,O){let x=await WH(J).when(vT,()=>Tn.SIMPLE_TRANSFER).when(bT,(I)=>hT(I.methodName)).when(VT,(I)=>iT(I.actions)).when(KT,()=>Tn.ACCOUNT_CREATION).when(jT,()=>Tn.CONTRACT_DEPLOYMENT).when(cT,(I)=>{if(!O)throw new ln("toolbox_near_no_account");return I.customEstimator(O)}).otherwise(()=>{throw new ln("toolbox_near_invalid_gas_params")}),u=BigInt(x)*BigInt(1000000000000);return gT.from({chain:bo.Near,value:u})}function L(J,O){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),q(J,O)}async function Y(){let J=await o();try{return(await J.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function D(){let J=await t();return J?(await J.getPublicKey()).toString():""}return{broadcastTransaction:l,callFunction:z,createAction:w,createContract:X,createContractFunctionCall:M,createSubAccount:Z,createTransaction:A,estimateGas:L,estimateGasLimit:q,estimateTransactionFee:Q,executeBatchTransaction:U,getAddress:T,getBalance:wn(bo.Near),getGasPrice:Y,getNearProvider:o,getPublicKey:D,getSignerFromPhrase:pf,getSignerFromPrivateKey:$T,serializeTransaction:G,signAndBroadcastTransaction:W,signTransaction:B,transfer:_,validateAddress:Yy}}var dT=F(()=>{In();ET();mT()});var XH=F(()=>{dT()});var aT={};nn(aT,{validateNearAddress:()=>Yy,tgasToGas:()=>M8,isSimpleTransfer:()=>vT,isCustomEstimator:()=>cT,isContractDeployment:()=>jT,isContractCall:()=>bT,isBatchTransaction:()=>VT,isAccountCreation:()=>KT,getNearToolbox:()=>Z8,getNearSignerFromPrivateKey:()=>$T,getNearSignerFromPhrase:()=>pf,getFullAccessPublicKey:()=>Pf,getContractMethodGas:()=>hT,gasToTGas:()=>L8,estimateBatchGas:()=>iT,createNearContract:()=>rT,GAS_COSTS:()=>Tn});var sT=F(()=>{ET();mT();dT();XH()});var n0={};nn(n0,{validateRadixAddress:()=>LH,getRadixToolbox:()=>S8});import{GatewayApiClient as J8}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as Y8}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as MH,Chain as eT,SKConfig as N8,SwapKitError as z8}from"@swapkit/helpers";function LH(n){return n.startsWith("account_rdx1")&&n.length===66}function D8({networkApi:n}){return async function(t){let o=await O8({address:t,networkApi:n}),f=await x8({networkApi:n,resources:o});if(!f.some((C)=>C.isGasAsset))return[MH.from({chain:eT.Radix}),...f];return f}}async function O8({address:n,networkApi:y}){let t=!0,o,f=[],T=await R8(y);while(t){let C={address:n,at_ledger_state:{state_version:T},cursor:o,limit_per_page:100},H=await y.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:C});if(f=f.concat(H.items),H.next_cursor)o=H.next_cursor;else t=!1}return f}async function x8({resources:n,networkApi:y}){let t=[],o=50,f=[];for(let T=0;T<n.length;T+=50)f.push(n.slice(T,T+50));for(let T of f){let C=T.map((A)=>A.resource_address),H=await y.state.getEntityDetailsVaultAggregated(C),_=new Map;for(let A of H)if(A.details!==void 0){let G=A.metadata?.items.find((w)=>w.key==="symbol"),M=G?.value.typed.type==="String"?G.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 G=_.get(A.resource_address)||{decimals:0,symbol:"?"},M=MH.from({asset:G.symbol!==eT.Radix?`${eT.Radix}.${G.symbol}-${A.resource_address}`:"XRD.XRD",value:A.amount});t.push(M)}}return t}async function R8(n){return(await n.status.getCurrent()).ledger_state.state_version}function S8({dappConfig:n}={}){let y=n||N8.get("integrations").radix,t=Y8({...y,networkId:y.network?.networkId||1}),o=J8.initialize(t.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:D8({networkApi:o}),networkApi:o,signAndBroadcast:()=>{throw new z8("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:LH}}var o0=()=>{};import{SwapKitError as F8}from"@swapkit/helpers";function $f(n){return/^[0-9A-Fa-f]{40}$/.test(n)}function Ny(n){if($f(n))return n.toUpperCase();if(n.length<=3){let t=Buffer.from(n.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${t}${"0".repeat(10)}`.toUpperCase()}let y=Buffer.from(n).toString("hex").toUpperCase();if(y.length>40)throw new F8({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n,reason:"Currency exceeds maximum length (20 bytes)"}});return y.padEnd(40,"0")}function u8(n){if(!$f(n))return n;if(n.toUpperCase().startsWith("00")){let y=n.slice(24,30);try{let t=Buffer.from(y,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(t)&&t.length>0)return t}catch{}return n.toUpperCase()}try{let y=n.replace(/0+$/,""),t=y.length%2===0?y:`${y}0`,o=Buffer.from(t,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(o))return o}catch{}return n.toUpperCase()}function Vo(n){if($f(n))return n.toUpperCase();if(n.length<=3)return n;return Ny(n)}var Ef=()=>{};import{RequestClient as k8,warnOnce as I8}from"@swapkit/helpers";async function p8(n,y){let t=Vo(n),o=vf.find((f)=>Vo(f.currency)===t&&f.issuer===y);if(o)return o;try{let f=await k8.get(`https://api.xrplmeta.org/token/${n}:${y}`);if(f)return{currency:n,decimals:15,description:f.desc,domain:f.domain,icon:f.icon,issuer:y,name:f.name,verified:f.self_assessment?.is_regulated||f.self_assessment?.is_licensed}}catch(f){I8({condition:!0,id:`xrpl_token_lookup_${n}_${y}`,warning:`Failed to fetch XRPL token info for ${n}:${y}: ${f}`})}return{currency:n,decimals:15,issuer:y,verified:!1}}function P8(n){return vf.filter((y)=>y.issuer===n)}function $8(n,y){let t=Vo(n);return vf.some((o)=>Vo(o.currency)===t&&o.issuer===y)}var vf;var QH=F(()=>{Ef();vf=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var y0={};nn(y0,{validateRippleAddress:()=>Kf,parseXrplTokenIdentifier:()=>OH,normalizeCurrency:()=>Vo,isKnownToken:()=>$8,isHexCurrency:()=>$f,hexToCurrency:()=>u8,hashes:()=>c8,getXrplTokenInfo:()=>p8,getRippleToolbox:()=>j8,getKnownTokensByIssuer:()=>P8,formatXrplTokenIdentifier:()=>xH,currencyToHex:()=>Ny,XRPL_TOKEN_ERROR_CODES:()=>Vf,XRPL_KNOWN_TOKENS:()=>vf});import{AssetValue as bf,Chain as zn,getChainConfig as ZH,getRPCUrl as E8,SwapKitError as _n}from"@swapkit/helpers";import{match as JH,P as YH}from"ts-pattern";import{Client as v8,isValidAddress as DH,Wallet as b8,xrpToDrops as V8}from"xrpl";import{hashes as c8}from"xrpl";function OH(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(!DH(y[2]))return null;return{currency:y[1],issuer:y[2]}}function xH(n,y){return`${zn.Ripple}.${n}-${y}`}function K8(n){if(n.isGasAsset)return V8(n.getValue("string"));let y=OH(n.toString());if(!y)throw new _n({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n.toString()}});return{currency:y.currency,issuer:y.issuer,value:n.getValue("string")}}function zH(n){let y=b8.fromMnemonic(n);return{getAddress:()=>Promise.resolve(y.address),signTransaction:(t)=>Promise.resolve(y.sign(t))}}function Kf(n){return DH(n)}function j8(n={}){let y=JH(n).with({phrase:YH.string},({phrase:Z})=>zH(Z)).with({signer:YH.any},({signer:Z})=>Z).otherwise(()=>{return}),t;async function o(){let Z=await E8(zn.Ripple);if(!Z)throw new _n({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:zn.Ripple}});let z=new v8(Z);return await z.connect(),z}async function f(){if(t){let Z=await t.catch(()=>null);if(Z?.isConnected())return Z}return t=o(),t}let T=()=>{if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});return y.getAddress()},C=async(Z)=>{let z=Z||await T(),{baseDecimal:X}=ZH(zn.Ripple),U=await f();try{let[q,L]=await Promise.all([U.request({account:z,command:"account_info"}),U.request({account:z,command:"account_lines"})]),Y=q.result.account_data.Balance,D=[bf.from({chain:zn.Ripple,fromBaseDecimal:X,value:Y})];for(let J of L.result.lines){let O=xH(J.currency,J.account);if(Number.parseFloat(J.balance)!==0)D.push(bf.from({asset:O,asyncTokenLookup:!1,value:J.balance}))}return D}catch(q){if(q.data?.error_code===NH.ACCOUNT_NOT_FOUND)return[bf.from({chain:zn.Ripple,value:0})];throw new _n({errorKey:"toolbox_ripple_get_balance_error",info:{address:z,error:q}})}},H=async()=>{let{baseDecimal:Z}=ZH(zn.Ripple),U=(await(await f()).request({command:"fee"})).result.drops.open_ledger_fee;return bf.from({chain:zn.Ripple,fromBaseDecimal:Z,value:U})};async function _(Z){let z=Z||await T(),X=await f();try{return(await X.request({account:z,command:"account_lines"})).result.lines.map((q)=>({account:q.account,authorized:q.authorized??!1,balance:q.balance,currency:q.currency,freeze:q.freeze??!1,freezePeer:q.freeze_peer??!1,limit:q.limit,limitPeer:q.limit_peer,noRipple:q.no_ripple??!1,noRipplePeer:q.no_ripple_peer??!1,peerAuthorized:q.peer_authorized??!1,qualityIn:q.quality_in??0,qualityOut:q.quality_out??0}))}catch(U){if(U.data?.error_code===NH.ACCOUNT_NOT_FOUND)return[];throw new _n({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:z,error:U}})}}async function A({address:Z,currency:z,issuer:X}){let U=await _(Z),q=Ny(z);return U.some((L)=>{return Ny(L.currency)===q&&L.account===X})}async function G({currency:Z,issuer:z,limit:X,sender:U}){let q=U||await T();if(!Kf(z))throw new _n({errorKey:"core_transaction_invalid_recipient_address",info:{address:z}});let L=Number.parseFloat(X);if(Number.isNaN(L)||L<0)throw new _n({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:X}});let Y=await f(),D={Account:q,LimitAmount:{currency:Z,issuer:z,value:X},TransactionType:"TrustSet"};return Y.autofill(D)}async function M({assetValue:Z,recipient:z,memo:X,sender:U,destinationTag:q,extendBySeconds:L=150}){if(!Kf(z))throw new _n({errorKey:"core_transaction_invalid_recipient_address"});let Y=U||await T();if(Z.chain!==zn.Ripple)throw new _n({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:Z.toString()}});let D=K8(Z),J={Account:Y,Amount:D,Destination:z,TransactionType:"Payment",...q!==void 0&&{DestinationTag:q}};if(X)J.Memos=[{Memo:{MemoData:Buffer.from(X).toString("hex")}}];let x=await(await f()).autofill(J);if(x.LastLedgerSequence&&L>0)x.LastLedgerSequence+=Math.ceil(L/4);return x}function w(Z){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});return y.signTransaction(Z)}async function B(Z){let X=await(await f()).submitAndWait(Z),{result:U}=X;if(U.validated)return U.hash;let q=U.meta?.TransactionResult,L=JH(q).with(Vf.tecNO_LINE,()=>"No trust line exists for this token").with(Vf.tecPATH_DRY,()=>"Payment path could not deliver funds").with(Vf.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new _n({errorKey:"toolbox_ripple_broadcast_error",info:{chain:zn.Ripple,...L?{reason:L}:{txResult:q}}})}let l=async(Z)=>{try{let z=await w(Z);return B(z.tx_blob)}catch(z){if(z instanceof _n)throw z;throw new _n({errorKey:"toolbox_ripple_broadcast_error",info:{chain:zn.Ripple,error:z}})}};async function W(Z){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});let z=await y.getAddress(),X=await M({...Z,sender:z}),U=await w(X);return B(U.tx_blob)}async function Q(Z){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});let z=await y.getAddress(),X=await G({...Z,sender:z}),U=await w(X);return B(U.tx_blob)}function N(){let Z=t;if(t=null,Z)Z.then((z)=>{if(z?.isConnected())return z.disconnect();return}).catch((z)=>{console.warn("XRPL Cleanup failed silently:",z)})}return{broadcastTransaction:B,createSigner:zH,createTransaction:M,disconnect:N,estimateTransactionFee:H,getAddress:T,getBalance:C,getTrustLines:_,hasTrustLine:A,setTrustLine:G,setTrustLineAndBroadcast:Q,signAndBroadcastTransaction:l,signTransaction:w,transfer:W,validateAddress:Kf}}var NH,Vf;var f0=F(()=>{Ef();Ef();QH();NH={ACCOUNT_NOT_FOUND:19},Vf={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});import{sha256 as i8}from"@noble/hashes/sha2.js";import{bytesToHex as RH,hexToBytes as SH}from"@noble/hashes/utils.js";import{SwapKitError as Ko}from"@swapkit/helpers";function t0(n,y){let t=0n,o=0n,f=y;while(f<n.length&&f-y<10){let T=n[f++];if(T===void 0)break;if(t|=BigInt(T&127)<<o,o+=7n,(T&128)===0)return[t,f]}throw new Ko("toolbox_tron_transaction_creation_failed")}function zy(n){let y=[],t=n<0n?n+2n**64n:n;while(t>=128n)y.push(Number(t&0x7fn)|128),t>>=7n;return y.push(Number(t)),y}function jf(n,y,t){let o=n.get(y);if(o)o.push(t);else n.set(y,[t])}function g8(n){let y=new Map,t=0;while(t<n.length){let[o,f]=t0(n,t);t=f;let T=Number(o>>3n),C=Number(o&7n);if(C===cf){let[H,_]=t0(n,t);t=_,jf(y,T,{data:new Uint8Array(zy(H)),wireType:cf})}else if(C===hf){let[H,_]=t0(n,t);t=_;let A=Number(H);if(A<0||t+A>n.length)throw new Ko("toolbox_tron_transaction_creation_failed");let G=n.slice(t,t+A);t+=A,jf(y,T,{data:G,wireType:hf})}else if(C===FH){if(t+8>n.length)throw new Ko("toolbox_tron_transaction_creation_failed");let H=n.slice(t,t+8);t+=8,jf(y,T,{data:H,wireType:FH})}else if(C===uH){if(t+4>n.length)throw new Ko("toolbox_tron_transaction_creation_failed");let H=n.slice(t,t+4);t+=4,jf(y,T,{data:H,wireType:uH})}else throw new Ko("toolbox_tron_transaction_creation_failed")}return y}function d8(n){let y=[];for(let[T,C]of[...n.entries()].sort(([H],[_])=>H-_))for(let{wireType:H,data:_}of C){let A=BigInt(T<<3|H);if(y.push(new Uint8Array(zy(A))),H===hf)y.push(new Uint8Array(zy(BigInt(_.length))));y.push(_)}let t=y.reduce((T,C)=>T+C.length,0),o=new Uint8Array(t),f=0;for(let T of y)o.set(T,f),f+=T.length;return o}function kH(n,y){if(!n||n.length%2!==0)throw new Ko("toolbox_tron_transaction_creation_failed");let t=SH(n),o=g8(t);if(y.expiration!==void 0)o.set(h8,[{data:new Uint8Array(zy(BigInt(y.expiration))),wireType:cf}]);if(y.data!==void 0)o.set(m8,[{data:SH(y.data),wireType:hf}]);if(y.fee_limit!==void 0)o.set(r8,[{data:new Uint8Array(zy(BigInt(y.fee_limit))),wireType:cf}]);let f=d8(o),T=RH(f),C=RH(i8(f));return{raw_data_hex:T,txID:C}}var cf=0,FH=1,hf=2,uH=5,h8=8,m8=10,r8=18;var IH=()=>{};import{secp256k1 as pH}from"@noble/curves/secp256k1.js";import{sha256 as PH}from"@noble/hashes/sha2.js";import{keccak_256 as a8}from"@noble/hashes/sha3.js";import{bytesToHex as jo,hexToBytes as mf}from"@noble/hashes/utils.js";import{createBase58check as s8}from"@scure/base";import{SwapKitError as $H}from"@swapkit/helpers";function Dn(n){if(typeof n!=="string")return!1;try{let y=rf.decode(n);return y.length===21&&y[0]===EH}catch{return!1}}function vH(n){return jo(rf.decode(n))}function nw(n){return rf.decode(n).slice(1)}function bH(n){let y=pH.getPublicKey(mf(n),!1),t=a8(y.slice(1)).slice(-20),o=new Uint8Array(21);return o[0]=EH,o.set(t,1),rf.encode(o)}function VH({txID:n,privateKey:y}){let t=pH.sign(mf(n),mf(y),{format:"recovered",prehash:!1}),o=t[0]??0,f=jo(t.slice(1,33)),T=jo(t.slice(33,65)),C=(o+27).toString(16).padStart(2,"0");return f+T+C}function co({txID:n,raw_data_hex:y}){let t=jo(PH(mf(y)));if(n!==t)throw new $H("toolbox_tron_invalid_transaction_integrity",{expected:t,txID:n})}function ow(n){return`000000000000000000000000${jo(nw(n))}`}function yw(n){let y=typeof n==="bigint"?n:BigInt(n);if(y<0n||y>=e8)throw new $H("toolbox_tron_invalid_token_identifier",{identifier:y.toString()});return y.toString(16).padStart(64,"0")}function io(n){return n.map(({type:y,value:t})=>y==="address"?ow(t):yw(BigInt(t))).join("")}function KH(n){return jo(new TextEncoder().encode(n))}var rf,EH=65,e8;var T0=F(()=>{rf=s8(PH),e8=2n**256n});import{Chain as fw,getRPCUrlSync as tw,SwapKitError as On,warnOnce as C0}from"@swapkit/helpers";function cH(){try{return tw(fw.Tron)}catch{return jH}}function iH(){let n=new AbortController,y=setTimeout(()=>n.abort(),_w);return{cleanup:()=>clearTimeout(y),signal:n.signal}}async function ho(n,y){let{signal:t,cleanup:o}=iH();try{let f=await fetch(`${cH()}${n}`,{body:JSON.stringify(y),headers:{"Content-Type":"application/json"},method:"POST",signal:t});if(!f.ok)throw new On("toolbox_tron_trongrid_api_error",{message:`${f.status} ${f.statusText} on ${n}`});return await f.json()}finally{o()}}async function hH(n,y){let{signal:t,cleanup:o}=iH();try{let f=await fetch(`${y??cH()}${n}`,{headers:{"Content-Type":"application/json"},signal:t});if(!f.ok)throw new On("toolbox_tron_trongrid_api_error",{message:`${f.status} ${f.statusText} on ${n}`});return await f.json()}finally{o()}}async function mH(n){if(!Dn(n))throw new On("toolbox_tron_trongrid_api_error",{address:n,message:"Invalid address"});try{let y=await hH(`/v1/accounts/${n}`,jH);if(!(y.success&&y.data)||y.data.length===0)return;let t;try{t=vH(n).toLowerCase()}catch{t=n.toLowerCase()}let o=y.data.find((f)=>f.address.toLowerCase()===t);if(!o)return;return{balance:o.balance,trc20:o.trc20||[]}}catch(y){if(y instanceof On)throw y;throw new On("toolbox_tron_trongrid_api_error",{address:n,message:y instanceof Error?y.message:"Unknown error"})}}async function rH({from:n,to:y,amount:t}){let f=await ho("/wallet/createtransaction",{amount:t,owner_address:n,to_address:y,visible:!0});if(!f.txID||!f.raw_data_hex||!f.raw_data)throw new On("toolbox_tron_transaction_creation_failed");let C=f.raw_data?.contract?.[0]?.parameter?.value;if(C?.to_address!==y||C?.owner_address!==n||C?.amount!==t)throw new On("toolbox_tron_transaction_creation_failed");return co(f),f}async function gH({ownerAddress:n,contractAddress:y,functionSelector:t,parameter:o,feeLimit:f,callValue:T=0}){let C=await ho("/wallet/triggersmartcontract",{call_value:T,contract_address:y,fee_limit:f,function_selector:t,owner_address:n,parameter:o,visible:!0});if(!C.result.result||!C.transaction?.txID||!C.transaction?.raw_data_hex)throw new On("toolbox_tron_transaction_creation_failed");let _=C.transaction.raw_data?.contract?.[0]?.parameter?.value;if(_?.contract_address!==y||_?.owner_address!==n)throw new On("toolbox_tron_transaction_creation_failed");return co(C.transaction),C.transaction}function dH({ownerAddress:n,contractAddress:y,functionSelector:t,parameter:o}){return ho("/wallet/triggerconstantcontract",{contract_address:y,function_selector:t,owner_address:n,parameter:o,visible:!0})}async function Dy(n){try{let{result:y,txid:t}=await ho("/wallet/broadcasttransaction",{raw_data:n.raw_data,raw_data_hex:n.raw_data_hex,signature:n.signature,txID:n.txID,visible:n.visible});if(!y||!t)throw new On("toolbox_tron_token_transfer_failed");return t}catch(y){throw new On("toolbox_tron_broadcast_failed",{error:y})}}async function gf(){let n={};try{let{chainParameter:y}=await hH("/wallet/getchainparameters");for(let t of y)n[t.key]=t.value}catch(y){C0({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${y instanceof Error?y.message:y}`})}return{bandwidthFee:n.getTransactionFee??Tw,createAccountFee:n.getCreateAccountFee??Cw,energyFee:n.getEnergyFee??Hw}}async function H0(n){try{let y=await ho("/wallet/getaccountresource",{address:n,visible:!0});return{bandwidth:{free:(y.freeNetLimit??600)-(y.freeNetUsed??0),total:y.NetLimit??0,used:y.NetUsed??0},energy:{total:y.EnergyLimit??0,used:y.EnergyUsed??0}}}catch(y){return C0({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${y instanceof Error?y.message:y}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function _0(n){try{let y=await ho("/wallet/getaccount",{address:n,visible:!0});return y&&Object.keys(y).length>0}catch{return!1}}async function A0(n){try{let{energy_used:y}=await dH({...n,ownerAddress:n.sender});return y}catch(y){return C0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy, using default: ${y instanceof Error?y.message:y}`}),65000}}async function aH({assetAddress:n,owner:y,spender:t}){let o=io([{type:"address",value:y},{type:"address",value:t}]),T=(await dH({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 jH="https://api.trongrid.io",Tw=1000,Cw=1e5,Hw=420,_w=30000;var sH=F(()=>{T0()});import{bytesToHex as Aw}from"@noble/hashes/utils.js";import{HDKey as Uw}from"@scure/bip32";import{mnemonicToSeedSync as ww}from"@scure/bip39";import{AssetValue as Kn,BaseDecimal as eH,Chain as Qn,derivationPathToString as y_,getRPCUrl as qw,NetworkDerivationPath as f_,SwapKitError as Cn,updateDerivationPath as t_,warnOnce as n_}from"@swapkit/helpers";import{match as Gw,P as U0}from"ts-pattern";function C_({phrase:n,derivationPath:y}){let t=Uw.fromMasterSeed(ww(n)).derive(y);if(!t.privateKey)throw new Cn("toolbox_tron_no_signer");return Aw(t.privateKey)}function H_({phrase:n,derivationPath:y,index:t}){let o=y||y_(t_(f_[Qn.Tron],{index:t||0}));return C_({derivationPath:o,phrase:n})}function Mw({phrase:n,derivationPath:y}){let t=C_({derivationPath:y,phrase:n}),o=bH(t);return{getAddress:()=>Promise.resolve(o),signTransaction:(f)=>{co(f);let T=VH({privateKey:t,txID:f.txID});return Promise.resolve({...f,signature:[T]})}}}function o_({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 _=KH(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}=kH(n.raw_data_hex,f);return{...n,raw_data:{...n.raw_data,...T},raw_data_hex:C,txID:H}}function __(n={}){let y="index"in n?n.index||0:0,t=y_("derivationPath"in n&&n.derivationPath?n.derivationPath:t_(f_[Qn.Tron],{index:y})),o,f=!1;function T(){if(f)return Promise.resolve(o);return o=Gw(n).with({phrase:U0.string},({phrase:U})=>Mw({derivationPath:t,phrase:U})).with({signer:U0.not(U0.nullish)},({signer:U})=>U).otherwise(()=>{return}),f=!0,Promise.resolve(o)}async function C(){let U=await T();if(!U)throw new Cn("toolbox_tron_no_signer");return U.getAddress()}async function H(U){let q=U||Ww,L=await gf(),Y=q*L.energyFee,D=Math.ceil(Y*1.5);return Math.min(Math.max(D,1e7),150000000)}async function _({contractAddress:U,functionSelector:q,parameter:L,sender:Y,memo:D,expiration:J}){let O=await A0({contractAddress:U,functionSelector:q,parameter:L,sender:Y}),x=await H(O),u=await gH({contractAddress:U,feeLimit:x,functionSelector:q,ownerAddress:Y,parameter:L});return o_({expiration:J,feeLimit:x,memo:D,transaction:u})}async function A(U){if(!Dn(U))return[Kn.from({chain:Qn.Tron})];try{let q=await mH(U);if(!q)return[Kn.from({chain:Qn.Tron})];let L=[Kn.from({chain:Qn.Tron,fromBaseDecimal:6,value:String(q.balance)})],Y=q.trc20?.find((D)=>(w0 in D));if(Y){let D=Y[w0];L.push(Kn.from({asset:`TRON.USDT-${w0}`,fromBaseDecimal:6,value:D}))}return L}catch(q){return n_({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${q instanceof Error?q.message:q}`}),[Kn.from({chain:Qn.Tron})]}}async function G({recipient:U,assetValue:q,memo:L,expiration:Y}){if(!Dn(U))throw new Cn("toolbox_tron_token_transfer_failed",{message:"invalid address"});let D=await T();if(!D)throw new Cn("toolbox_tron_no_signer");try{let J=await C(),O=await W({assetValue:q,expiration:Y,memo:L,recipient:U,sender:J}),x=await D.signTransaction(O),u=await Dy(x);if(!u)throw new Cn("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return u}catch(J){throw new Cn("toolbox_tron_token_transfer_failed",{message:J instanceof Error?J.message:String(J)})}}function M({requiredBandwidth:U,resources:q,feePerUnit:L}){let Y=Math.max(0,q.free+q.total-q.used);return U>Y?(U-Y)*L:0}async function w({recipient:U,senderAddress:q}){let[L,Y,D]=await Promise.all([gf(),_0(U),H0(q)]),J=Y?0:L.createAccountFee,O=M({feePerUnit:L.bandwidthFee,requiredBandwidth:lw,resources:D.bandwidth});return Kn.from({chain:Qn.Tron,fromBaseDecimal:eH.TRON,value:J+O})}async function B({assetValue:U,recipient:q,senderAddress:L}){let Y=U.address;if(!Y)throw new Cn("toolbox_tron_invalid_token_identifier",{identifier:U.toString()});let[D,J,O,x]=await Promise.all([gf(),_0(q),H0(L),A0({contractAddress:Y,functionSelector:"transfer(address,uint256)",parameter:io([{type:"address",value:q},{type:"uint256",value:U.getBaseValue("string")}]),sender:L})]),u=J?0:D.createAccountFee,I=M({feePerUnit:D.bandwidthFee,requiredBandwidth:Bw,resources:O.bandwidth}),P=Math.max(0,O.energy.total-O.energy.used),b=x>P?(x-P)*D.energyFee:0;return Kn.from({chain:Qn.Tron,fromBaseDecimal:eH.TRON,value:u+I+b})}async function l({assetValue:U,recipient:q,sender:L}){let Y=await T();try{let D=L?L:Y?await C():void 0;if(!D)return U.isGasAsset?Kn.from({chain:Qn.Tron,value:0.1}):Kn.from({chain:Qn.Tron,value:15});return U.isGasAsset?w({recipient:q,senderAddress:D}):B({assetValue:U,recipient:q,senderAddress:D})}catch(D){throw n_({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${D instanceof Error?D.message:D}`}),new Cn("toolbox_fee_estimation_failed",{chain:Qn.Tron,error:D})}}async function W({recipient:U,assetValue:q,memo:L,sender:Y,expiration:D}){if(!Dn(U)||!Dn(Y))throw new Cn("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(q.isGasAsset){let O=await rH({amount:q.getBaseValue("number"),from:Y,to:U});return o_({expiration:D,memo:L,transaction:O})}let J=q.address;if(!J)throw new Cn("toolbox_tron_invalid_token_identifier",{identifier:q.toString()});return _({contractAddress:J,expiration:D,functionSelector:"transfer(address,uint256)",memo:L,parameter:io([{type:"address",value:U},{type:"uint256",value:q.getBaseValue("string")}]),sender:Y})}async function Q(U){co(U);let q=await T();if(!q)throw new Cn("toolbox_tron_no_signer");return q.signTransaction(U)}async function N(U){let q=await Q(U);return Dy(q)}function Z({assetAddress:U,spenderAddress:q,from:L}){return aH({assetAddress:U,owner:L,spender:q})}async function z({assetAddress:U,spenderAddress:q,from:L,amount:Y}){let D=await Z({assetAddress:U,from:L,spenderAddress:q});if(!Y)return D>0n;return D>=BigInt(Y)}async function X({assetAddress:U,spenderAddress:q,amount:L,from:Y}){if(!Dn(U)||!Dn(q))throw new Cn("toolbox_tron_approve_failed");let D=await T();if(!D)throw new Cn("toolbox_tron_no_signer");let J=Y||await C(),O=L!==void 0?BigInt(L).toString():Xw;try{let x=await _({contractAddress:U,functionSelector:"approve(address,uint256)",parameter:io([{type:"address",value:q},{type:"uint256",value:O}]),sender:J}),u=await D.signTransaction(x),I=await Dy(u);if(!I)throw new Cn("toolbox_tron_approve_failed");return I}catch(x){if(x instanceof Cn)throw x;throw new Cn("toolbox_tron_approve_failed",{error:x})}}return{approve:X,broadcastTransaction:Dy,createTransaction:W,estimateTransactionFee:l,getAddress:C,getApprovedAmount:Z,getBalance:A,getRpcUrl:()=>qw(Qn.Tron),isApproved:z,signAndBroadcastTransaction:N,signTransaction:Q,transfer:G,validateAddress:Dn}}var T_,lw=268,Ww=65000,Bw=345,w0="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",Xw="115792089237316195423570985008687907853269984665640564039457584007913129639935";var A_=F(()=>{IH();sH();T0();T_=Dn});var q0={};nn(q0,{validateTronAddress:()=>T_,getTronToolbox:()=>__,getTronPrivateKeyFromMnemonic:()=>H_});var G0=F(()=>{A_()});import{AssetValue as Oy,Chain as oo,derivationPathToString as Lw,getChainConfig as Qw,getRPCUrl as Zw,NetworkDerivationPath as Jw,SwapKitError as yo}from"@swapkit/helpers";import{match as Yw,P as Nw}from"ts-pattern";function df(n){if(!n||typeof n!=="string"||!n.startsWith("G")||n.length!==56)return!1;return zw.test(n)}async function Dw(n){if(!df(n))return!1;try{let{StrKey:y}=await import("@stellar/stellar-sdk");return y.isValidEd25519PublicKey(n)}catch{return!1}}function U_(n={}){let y,t=n.derivationPath||Jw[oo.Stellar],o=Lw(t.slice(0,3));async function f({phrase:W,path:Q}){let{HDKey:N}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:Z}=await import("@scure/bip39"),{Keypair:z}=await import("@stellar/stellar-sdk"),X=Z(W),q=N.fromMasterSeed(X).derive(Q,!0);return z.fromRawEd25519Seed(Buffer.from(q.privateKey))}async function T(){if(y)return y;let W=Yw(n).with({phrase:Nw.string},({phrase:Q})=>Q).otherwise(()=>{return});if(!W)throw new yo("toolbox_stellar_no_signer");return y=await f({path:o,phrase:W}),y}async function C(){let{Horizon:W}=await import("@stellar/stellar-sdk"),Q=await Zw(oo.Stellar);return new W.Server(Q)}async function H(){try{return(await T()).publicKey()}catch{return""}}async function _(W){let Q=W||await H();if(!Q)throw new yo("toolbox_stellar_account_not_found");try{return(await(await C()).loadAccount(Q)).balances.map((z)=>{if(z.asset_type==="native")return Oy.from({chain:oo.Stellar,value:z.balance});let X="asset_code"in z?z.asset_code:"",U="asset_issuer"in z?z.asset_issuer:"";return Oy.from({asset:`${oo.Stellar}.${X}-${U}`,asyncTokenLookup:!1,value:z.balance})})}catch{return[Oy.from({chain:oo.Stellar,value:0})]}}async function A({recipient:W,assetValue:Q,memo:N,sender:Z}){if(N){if(new TextEncoder().encode(N).length>28)throw new yo("helpers_invalid_memo_type")}if(!await Dw(W))throw new yo("core_transaction_invalid_recipient_address");let X=Z||await H();if(!X)throw new yo("toolbox_stellar_no_signer");let{Asset:U,Memo:q,Networks:L,Operation:Y,TransactionBuilder:D}=await import("@stellar/stellar-sdk"),J=await C(),O=await J.fetchBaseFee(),x=await J.loadAccount(X),u=new D(x,{fee:String(O),networkPassphrase:L.PUBLIC});if(Q.isGasAsset)try{await J.loadAccount(W),u.addOperation(Y.payment({amount:Q.getValue("string"),asset:U.native(),destination:W}))}catch{u.addOperation(Y.createAccount({destination:W,startingBalance:Q.getValue("string")}))}else u.addOperation(Y.payment({amount:Q.getValue("string"),asset:new U(Q.symbol,Q.address),destination:W}));if(N)u.addMemo(q.text(N));return u.setTimeout(30).build()}async function G(W){let{TransactionBuilder:Q,Networks:N}=await import("@stellar/stellar-sdk"),Z=await T(),z=Q.fromXDR(W.toXDR(),N.PUBLIC);return z.sign(Z),z}async function M(W){try{let Q=await C(),{hash:N}=await Q.submitTransaction(W);return N}catch(Q){throw new yo("toolbox_stellar_broadcast_error",Q)}}async function w({recipient:W,assetValue:Q,memo:N}){let Z=await T(),z=Z.publicKey(),X=await A({assetValue:Q,memo:N,recipient:W,sender:z});X.sign(Z);try{return(await(await C()).submitTransaction(X)).hash}catch(U){if(U instanceof yo)throw U;throw new yo("toolbox_stellar_transaction_failed",U)}}async function B(W){let Q=await G(W);return M(Q)}async function l(){let{baseDecimal:W}=Qw(oo.Stellar);try{let Z=(await(await C()).feeStats()).fee_charged.p50;return Oy.from({chain:oo.Stellar,fromBaseDecimal:W,value:Z})}catch{return Oy.from({chain:oo.Stellar,fromBaseDecimal:W,value:"100"})}}return{broadcastTransaction:M,createTransaction:A,estimateTransactionFee:l,getAddress:H,getBalance:_,signAndBroadcastTransaction:B,signTransaction:G,transfer:w,validateAddress:df}}var zw;var w_=F(()=>{zw=/^G[A-Z2-7]{55}$/});var af={};nn(af,{validateStellarAddress:()=>df,getStellarToolbox:()=>U_});var sf=F(()=>{w_()});import{AssetValue as Ow,Chain as $,CosmosChains as l0,EVMChains as W0,FeeOption as xw,SwapKitError as Rw,UTXOChains as G_}from"@swapkit/helpers";async function v4(){let{match:n}=await import("ts-pattern"),{validateAptosAddress:y}=await Promise.resolve().then(() => (Ry(),xy)),{validateEVMAddress:t}=await Promise.resolve().then(() => (Nt(),e0)),{validateCardanoAddress:o}=await Promise.resolve().then(() => (St(),Rt)),{getCosmosAddressValidator:f}=await Promise.resolve().then(() => (Hf(),Cf)),{validateHyperCoreAddress:T}=await Promise.resolve().then(() => (CT(),TT)),{validateSolanaAddress:C}=await Promise.resolve().then(() => (wT(),UT)),{validateStarknetAddress:H}=await Promise.resolve().then(() => (Bf(),Wf)),{validateSuiAddress:_}=await Promise.resolve().then(() => (Lf(),Mf)),{validateTonAddress:A}=await Promise.resolve().then(() => (Jf(),Zf)),{getUTXOAddressValidator:G}=await Promise.resolve().then(() => (PT(),pT)),{validateNearAddress:M}=await Promise.resolve().then(() => (sT(),aT)),{validateRadixAddress:w}=await Promise.resolve().then(() => (o0(),n0)),{validateRippleAddress:B}=await Promise.resolve().then(() => (f0(),y0)),{validateTronAddress:l}=await Promise.resolve().then(() => (G0(),q0)),{validateStellarAddress:W}=await Promise.resolve().then(() => (sf(),af));return function({address:N,chain:Z}){return n(Z).with(...W0,()=>t(N)).with(...G_,(X)=>{return G(X)(N)}).with(...l0,(X)=>{return f(X)(N)}).with($.Aptos,()=>y(N)).with($.Radix,()=>w(N)).with($.HyperCore,()=>T(N)).with($.Near,()=>M(N)).with($.Ripple,()=>B(N)).with($.Solana,()=>C(N)).with($.Stellar,()=>W(N)).with($.Starknet,()=>H(N)).with($.Sui,()=>_(N)).with($.Ton,()=>A(N)).with($.Tron,()=>l(N)).with($.Cardano,()=>o(N)).otherwise(()=>!1)}}function b4(n){return async function(t){let{match:o}=await import("ts-pattern");return o(n).returnType().with(...W0,async(f)=>{let T=await q_(f),C=await T.createTransaction(t),H="feeOptionKey"in t?t.feeOptionKey:xw.Fast;return T.estimateTransactionFee({...C,feeOption:H})}).with($.Bitcoin,$.BitcoinCash,$.Dogecoin,$.Dash,$.Litecoin,$.Solana,$.Ripple,$.Tron,$.Near,$.Cardano,$.HyperCore,async(f)=>{return(await q_(f)).estimateTransactionFee(t)}).with($.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (Ry(),xy));return f().estimateTransactionFee(t)}).with($.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (Bf(),Wf));return(await f()).estimateTransactionFee(t)}).with($.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (sf(),af));return f().estimateTransactionFee()}).with($.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (Lf(),Mf));return f().estimateTransactionFee(t)}).with($.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (Jf(),Zf));return f().estimateTransactionFee(t)}).with(...l0,async()=>{let{estimateTransactionFee:f}=await Promise.resolve().then(() => (Hf(),Cf));return f(t)}).otherwise(async()=>Ow.from({chain:n}))}}async function q_(n,y){let{match:t}=await import("ts-pattern");return t(n).returnType().with(...W0,async()=>{let{getEvmToolboxAsync:o}=await Promise.resolve().then(() => (Yt(),d0));return await o(n,y)}).with(...G_,async()=>{let{getUtxoToolbox:o}=await Promise.resolve().then(() => (PT(),pT));return o(n,y)}).with(...l0,async()=>{let{getCosmosToolbox:o}=await Promise.resolve().then(() => (Hf(),Cf));return o(n,y)}).with($.Aptos,async()=>{let{getAptosToolbox:o}=await Promise.resolve().then(() => (Ry(),xy));return o(y)}).with($.HyperCore,async()=>{let{getHyperCoreToolbox:o}=await Promise.resolve().then(() => (CT(),TT));return o(y)}).with($.Radix,async()=>{let{getRadixToolbox:o}=await Promise.resolve().then(() => (o0(),n0));return o(y)}).with($.Ripple,async()=>{let{getRippleToolbox:o}=await Promise.resolve().then(() => (f0(),y0));return o(y)}).with($.Solana,async()=>{let{getSolanaToolbox:o}=await Promise.resolve().then(() => (wT(),UT));return o(y)}).with($.Stellar,async()=>{let{getStellarToolbox:o}=await Promise.resolve().then(() => (sf(),af));return o(y)}).with($.Starknet,async()=>{let{getStarknetToolbox:o}=await Promise.resolve().then(() => (Bf(),Wf));return o(y)}).with($.Sui,async()=>{let{getSuiToolbox:o}=await Promise.resolve().then(() => (Lf(),Mf));return o(y)}).with($.Tron,async()=>{let{getTronToolbox:o}=await Promise.resolve().then(() => (G0(),q0));return o(y)}).with($.Near,async()=>{let{getNearToolbox:o}=await Promise.resolve().then(() => (sT(),aT));return o(y)}).with($.Cardano,async()=>{let{getCardanoToolbox:o}=await Promise.resolve().then(() => (St(),Rt));return o(y)}).with($.Ton,async()=>{let{getTONToolbox:o}=await Promise.resolve().then(() => (Jf(),Zf));return o(y)}).otherwise(()=>{throw new Rw("toolbox_not_supported",{chain:n})})}export{q_ as getToolbox,b4 as getFeeEstimator,v4 as getAddressValidator};
|