@swapkit/toolboxes 4.24.1 → 4.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- var z4=Object.create;var{getPrototypeOf:G4,defineProperty:C1,getOwnPropertyNames:u8,getOwnPropertyDescriptor:L4}=Object,p8=Object.prototype.hasOwnProperty;function m8(y){return this[y]}var M4,_4,g8=(y,T,H)=>{var f=y!=null&&typeof y==="object";if(f){var X=T?M4??=new WeakMap:_4??=new WeakMap,U=X.get(y);if(U)return U}H=y!=null?z4(G4(y)):{};let q=T||!y||!y.__esModule?C1(H,"default",{value:y,enumerable:!0}):H;for(let Q of u8(y))if(!p8.call(q,Q))C1(q,Q,{get:m8.bind(y,Q),enumerable:!0});if(f)X.set(y,q);return q},E0=(y)=>{var T=(l8??=new WeakMap).get(y),H;if(T)return T;if(T=C1({},"__esModule",{value:!0}),y&&typeof y==="object"||typeof y==="function"){for(var f of u8(y))if(!p8.call(T,f))C1(T,f,{get:m8.bind(y,f),enumerable:!(H=L4(y,f))||H.enumerable})}return l8.set(y,T),T},l8;var C4=(y)=>y;function N4(y,T){this[y]=C4.bind(null,T)}var x0=(y,T)=>{for(var H in T)C1(y,H,{get:T[H],enumerable:!0,configurable:!0,set:N4.bind(T,H)})};var l=(y,T)=>()=>(y&&(T=y(y=0)),T);function dy(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let T=y.slice(2);if(T.length===0||T.length>64)return!1;return k4.test(T)}function o8(y,T,H){if(y<=0n)throw new t.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amount:y.toString(),asset:T.toString(),...H}});return y}async function $4({aptos:y,assetValue:T,senderAddress:H}){let f=T.address;if(!f)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");let[X]=await y.getCurrentFungibleAssetBalances({options:{limit:1,where:{asset_type:{_eq:f},is_primary:{_eq:!0},owner_address:{_eq:H}}}});return o8(BigInt(X?.amount??0),T)}function n8({derivationPath:y,provider:T,...H}={}){let f,X=t.derivationPathToString(y||t.NetworkDerivationPath[t.Chain.Aptos],{allHardened:!0});async function U(){if(f)return f;return f=await Iy.match(H).with({phrase:Iy.P.string},async({phrase:C})=>{let{Ed25519Account:B}=await import("@aptos-labs/ts-sdk");return B.fromDerivationPath({mnemonic:C,path:X})}).with({signer:Iy.P.any},({signer:C})=>C).otherwise(()=>{return}),f}async function q(){let{Aptos:C,AptosConfig:B,Network:R}=await import("@aptos-labs/ts-sdk"),A=new B({clientConfig:{http2:!1},fullnode:T||t.getRPCUrlSync(t.Chain.Aptos),network:R.MAINNET});return new C(A)}async function Q(){return(await U())?.accountAddress.toString()||""}async function Z(C){let B=C||await Q();if(!B)throw new t.SwapKitError("toolbox_aptos_address_required");let{baseDecimal:R,chain:A}=t.getChainConfig(t.Chain.Aptos);try{let x=await q(),P=await x.getAccountAPTAmount({accountAddress:B}),K=[t.AssetValue.from({chain:A,fromBaseDecimal:R,value:P.toString()})],O=await x.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:B}}}});for(let $ of O){if($.asset_type===Fy.COIN_TYPE||Number($.amount)<=0)continue;let z=$.asset_type;if(z){let J=("metadata"in $&&typeof $.metadata==="object"&&$.metadata!==null?$.metadata:void 0)?.decimals??R;K.push(t.AssetValue.from({asset:`${t.Chain.Aptos}.APT-${z}`,fromBaseDecimal:J,value:String($.amount)}))}}return K}catch{return[t.AssetValue.from({chain:A})]}}async function Y(C){if(!C){let{baseDecimal:K}=t.getChainConfig(t.Chain.Aptos),O=T||t.getRPCUrlSync(t.Chain.Aptos),$=await fetch(`${O}/estimate_gas_price`),{gas_estimate:z}=await $.json();return t.AssetValue.from({chain:t.Chain.Aptos,fromBaseDecimal:K,value:String(z)})}let B=await W(C),R=await q(),[A]=await R.transaction.simulate.simple({transaction:B});if(!A)throw new t.SwapKitError("toolbox_aptos_transaction_creation_error");let x=BigInt(A.gas_used)*BigInt(A.gas_unit_price),{baseDecimal:P}=t.getChainConfig(t.Chain.Aptos);return t.AssetValue.from({chain:t.Chain.Aptos,fromBaseDecimal:P,value:x.toString()})}async function W({recipient:C,assetValue:B,maxGasAmount:R,sender:A,sweep:x}){if(!dy(C))throw new t.SwapKitError("core_transaction_invalid_recipient_address");let P=A||await Q();if(!P)throw new t.SwapKitError("toolbox_aptos_no_sender");let{AccountAddress:K}=await import("@aptos-labs/ts-sdk"),O=await q(),$=K.from(P);try{let z=B.isGasAsset?Fy.TRANSFER:Fy.FUNGIBLE_STORE_TRANSFER,G=B.address,J=(T0,Z0)=>{let D0=Iy.match({address:G,isGasAsset:B.isGasAsset}).with({isGasAsset:!0},()=>[K.from(C),T0]).with({address:Iy.P.string},({address:S})=>[K.from(S),K.from(C),T0]).otherwise(()=>null);if(!D0)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");let I=Z0?.maxGasAmount??R;return O.transaction.build.simple({data:{function:z,functionArguments:D0,typeArguments:B.isGasAsset?[]:[Fy.FUNGIBLE_ASSET_METADATA]},options:I!==void 0||Z0?.gasUnitPrice!==void 0?{gasUnitPrice:Z0?.gasUnitPrice,maxGasAmount:I}:void 0,sender:$})};if(!x)return J(B.getBaseValue("bigint"));if(!B.isGasAsset){let T0=await $4({aptos:O,assetValue:B,senderAddress:P});return J(T0)}let N=BigInt(await O.getAccountAPTAmount({accountAddress:P})),D=await J(1n,{maxGasAmount:R??O4}),[F]=await O.transaction.simulate.simple({options:{estimateMaxGasAmount:R===void 0},transaction:D});if(!F)throw new t.SwapKitError("toolbox_aptos_transaction_creation_error");if(!F.success)throw new t.SwapKitError({errorKey:"toolbox_aptos_transaction_creation_error",info:{vmStatus:F.vm_status}});let j=BigInt(F.gas_used),V=j>0n?(j*6n+4n)/5n:1n,v=V*BigInt(F.gas_unit_price),m=o8(N-v,B,{balance:N.toString(),fee:v.toString()});return J(m,{gasUnitPrice:Number(F.gas_unit_price),maxGasAmount:Number(V)})}catch(z){if(z instanceof t.SwapKitError)throw z;throw new t.SwapKitError("toolbox_aptos_transaction_creation_error",z)}}async function k(C){let B=await U();if(!B)throw new t.SwapKitError("toolbox_aptos_no_signer");return(await q()).transaction.sign({signer:B,transaction:C})}async function M({assetValue:C,maxGasAmount:B,recipient:R,sweep:A}){let x=await U();if(!x)throw new t.SwapKitError("toolbox_aptos_no_signer");if(!dy(R))throw new t.SwapKitError("core_transaction_invalid_recipient_address");try{let P=x.accountAddress.toString(),K=await W({assetValue:C,maxGasAmount:B,recipient:R,sender:P,sweep:A});return(await(await q()).signAndSubmitTransaction({signer:x,transaction:K})).hash}catch(P){if(P instanceof t.SwapKitError)throw P;throw new t.SwapKitError("toolbox_aptos_transaction_creation_error",P)}}async function L({senderAuthenticator:C,transaction:B}){try{return(await(await q()).transaction.submit.simple({senderAuthenticator:C,transaction:B})).hash}catch(R){throw new t.SwapKitError("toolbox_aptos_broadcast_error",R)}}async function _(C){let B=await k(C);return L({senderAuthenticator:B,transaction:C})}return{broadcastTransaction:L,createTransaction:W,estimateTransactionFee:Y,getAddress:Q,getBalance:Z,signAndBroadcastTransaction:_,signTransaction:k,transfer:M,validateAddress:dy}}function c8({provider:y}){return async function({assetValue:H,recipient:f,sweep:X}){if(X)throw new t.SwapKitError({errorKey:"toolbox_not_supported",info:{chain:t.Chain.Aptos,feature:"extension_provider_sweep",reason:"Aptos extension providers cannot query balances or simulate transactions"}});if(!dy(f))throw new t.SwapKitError("core_transaction_invalid_recipient_address");let{AccountAddress:U}=await import("@aptos-labs/ts-sdk");if(H.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[U.from(f).toString(),H.getBaseValue("string")],function:Fy.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let q=H.address;if(!q)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[q,U.from(f).toString(),H.getBaseValue("string")],function:Fy.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[Fy.FUNGIBLE_ASSET_METADATA]})).hash}}var t,Iy,Fy,O4=2000,k4;var d8=l(()=>{t=require("@swapkit/helpers"),Iy=require("ts-pattern"),Fy={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"},k4=/^[0-9a-fA-F]+$/});var Xf={};x0(Xf,{validateAptosAddress:()=>dy,getAptosToolbox:()=>n8,createAptosExtensionTransfer:()=>c8});module.exports=E0(Xf);var Uf=l(()=>{d8()});function t8(){function y(){let T=Date.now(),H=S5||T;return S5=H,T>S5?T:H+1}return B4+y().toString(36)}function v0(y){return async function(H,f=!0){let X=await i8.SwapKitApi.getChainBalance({address:H,chain:y,scamFilter:f}),{baseDecimal:U}=N1.getChainConfig(y),q=X.map(({identifier:Z,value:Y,decimal:W})=>{return new N1.AssetValue({decimal:W||U,identifier:Z,value:Y})});if(!q.some((Z)=>Z.isGasAsset))return[N1.AssetValue.from({chain:y}),...q];return q}}var N1,i8,B4,S5=0;var Xy=l(()=>{N1=require("@swapkit/helpers"),i8=require("@swapkit/helpers/api"),B4=typeof process<"u"&&process.pid?process.pid.toString(36):""});function O1(y){return{getBalance:v0(y)}}function D4(y){return y}var qf=l(()=>{Xy()});function a8(y){return new u0.JsonRpcProvider(y)}async function R4(y,T){return a8(T||await e.getRPCUrl(y))}function b5(y){let T=e.SKConfig.get("rpcUrls")[y]?.filter(Boolean)??[];if(T.length===0)throw new e.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:y});let{chainId:H}=e.getChainConfig(y),f=u0.Network.from(Number(H)),[X]=T;if(T.length===1)return new u0.JsonRpcProvider(X,f,{staticNetwork:f});return new u0.FallbackProvider(T.map((U,q)=>({priority:q+1,provider:new u0.JsonRpcProvider(U,f,{staticNetwork:f}),stallTimeout:2000})),f,{quorum:1})}function b0(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function h5(y){let{explorerUrl:T,chainIdHex:H,rpcUrls:f}=e.getChainConfig(y);return function(){return y!==e.Chain.Ethereum?{...F4({chain:y}),blockExplorerUrls:[T],chainId:H,rpcUrls:f}:void 0}}function l5(y){return![e.Chain.Adi,e.Chain.Arbitrum,e.Chain.BinanceSmartChain,e.Chain.Robinhood].includes(y)}function F4({chain:y}){let{name:T,nativeCurrency:H,baseDecimal:f}=e.getChainConfig(y);return v5.match(y).with(e.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:e.Chain.Ethereum}})).with(e.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:e.Chain.Ethereum}})).with(e.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(e.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:e.Chain.Ethereum}})).with(e.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(e.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(e.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(e.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(e.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:e.Chain.Ethereum}})).with(e.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:e.Chain.Polygon}})).with(e.Chain.Robinhood,()=>({chainName:"Robinhood Chain",nativeCurrency:{decimals:f,name:"Ethereum",symbol:e.Chain.Ethereum}})).otherwise(()=>({chainName:T,nativeCurrency:{decimals:f,name:H,symbol:H}}))}async function u5(y,T){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let H={...T,nonce:T.nonce!==void 0?BigInt(T.nonce):void 0};return await y.authorize(H)}function s8(y,T){let H=T!==void 0?`index ${T}: `:"",f=(X,U)=>{throw new e.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:X,message:`${H}${U}`}})};v5.match(y).when(({chainId:X})=>typeof X!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:X})=>!I4(X),()=>f("address","address must be a valid checksummed address")).when(({nonce:X})=>typeof X!=="bigint"||X<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:X})=>!X,()=>f("signature","signature is required")).when(({signature:X})=>typeof X?.yParity!=="number"||![0,1].includes(X.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:X})=>!r8(X?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:X})=>!r8(X?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function e8(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:T})=>y[T]!=null).map(({key:T,type:H})=>({name:T,type:H}))}function K5(y){return y.charAt(0).toUpperCase()+y.slice(1)}function V5(y,T){if(y.isTuple()&&y.components){let H=K5(y.name);return T[H]=y.components.map((f)=>({name:f.name,type:V5(f,T)})),H}if(y.isArray()){let H=y.arrayChildren;if(H?.isTuple()&&H.components){let f=K5(y.name.replace(/s$/,""));return T[f]=H.components.map((X)=>({name:X.name,type:V5(X,T)})),`${f}[]`}return`${H?.type??"bytes"}[]`}return y.type}function w5(y,T){if(typeof y==="bigint")return y;if(T?.isTuple()&&typeof y?.toObject==="function"){let H=y.toObject(),f={};for(let[X,U]of(T.components??[]).entries())f[U.name]=w5(H[U.name]??y[X],U);return f}if(Array.isArray(y)){let H=T?.arrayChildren;return y.map((f)=>w5(f,H??void 0))}return y}function x4({chain:y,abi:T,data:H,to:f}){let U=new u0.Interface(T).parseTransaction({data:H});if(!U)throw new e.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let q={},Q=K5(U.name);q[Q]=U.fragment.inputs.map((M)=>({name:M.name,type:V5(M,q)}));let Z={};for(let[M,L]of U.fragment.inputs.entries())Z[L.name]=w5(U.args[M],L);let{chainId:Y}=e.getChainConfig(y),W={chainId:Number(Y),verifyingContract:u0.getAddress(f)},k=e8(W);return{domain:W,message:Z,primaryType:Q,types:{EIP712Domain:k,...q}}}function p5(y,T){if(!Array.isArray(y)||y.length===0)throw new e.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[H,f]of y.entries())if(s8(f,H),T!==void 0&&f.chainId!==T)throw new e.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${H}: authorization chainId (${f.chainId}) does not match transaction chainId (${T})`}})}var e,u0,v5,r8=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),I4=(y)=>{try{return typeof y==="string"&&!!u0.getAddress(y)}catch{return!1}};var k1=l(()=>{e=require("@swapkit/helpers"),u0=require("ethers"),v5=require("ts-pattern")});var y2;var f2=l(()=>{y2=[{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"}]});function iy({chain:y=E.Chain.Ethereum,provider:T,signer:H,isEIP1559Compatible:f=!0,estimateGasPrices:X,estimateAdditionalFee:U}){let q=X??Ay({chain:y,isEIP1559Compatible:f,provider:T}),Q=Q2({chain:y,estimateAdditionalFee:U,estimateGasPrices:q,isEIP1559Compatible:f,provider:T,signer:H});return{approve:S4({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),approvedAmount:X2({chain:y,provider:T}),broadcastTransaction:T.broadcastTransaction,call:Qf({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),createApprovalTx:g4({chain:y,provider:T,signer:H}),createContract:o5({chain:y,provider:T}),createContractTxObject:jy({chain:y,provider:T}),createTransaction:Q,createTransferTx:Q,EIP1193SendTransaction:ry(T),estimateCall:U2({provider:T,signer:H}),estimateGasLimit:V4({chain:y,provider:T,signer:H}),estimateGasPrices:q,estimateTransactionFee:o4({chain:y,isEIP1559Compatible:f,provider:T}),getAddress:()=>{return H?H.getAddress():void 0},getBalance:O1(y).getBalance,getNetworkParams:h5(y),isApproved:E4({chain:y,provider:T}),sendTransaction:q2({chain:y,estimateGasPrices:q,isEIP1559Compatible:f,provider:T,signer:H}),signAuthorization:w4({signer:H}),signMessage:H?(Z)=>H.signMessage(Z):void 0,signTypedData:H?({domain:Z,types:Y,value:W})=>H.signTypedData(Z,Y,W):void 0,transfer:K4({chain:y,estimateAdditionalFee:U,estimateGasPrices:q,isEIP1559Compatible:f,provider:T,signer:H}),validateAddress:B1}}function B1(y){try{return V0.getAddress(y),!0}catch{return!1}}function ty(y){return y instanceof V0.BrowserProvider}function D1(y,T,H){return new V0.Contract(y,V0.Interface.from(T),H)}function o5({provider:y}){return function(H,f){return new V0.Contract(H,V0.Interface.from(f),y)}}function n5({abi:y,funcName:T}){let H=y.find((f)=>f.name===T);if(!H)throw new E.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:T});return H.stateMutability&&P4.includes(H.stateMutability)}function T2(y){return V0.getAddress(y)}function ry(y,T=!1){return function({value:f,...X}){if(!ty(y))throw new E.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let U={...X,gasPrice:"gasPrice"in X?X.gasPrice:void 0,maxFeePerGas:"maxFeePerGas"in X?X.maxFeePerGas:void 0,maxPriorityFeePerGas:"maxPriorityFeePerGas"in X?X.maxPriorityFeePerGas:void 0},{gasLimit:q,gasPrice:Q,maxFeePerGas:Z,maxPriorityFeePerGas:Y,...W}=U,k={...W,...T&&q!==void 0&&{gas:b0(BigInt(q))},...T&&Q!==void 0&&{gasPrice:b0(BigInt(Q))},...T&&Z!==void 0&&{maxFeePerGas:b0(BigInt(Z))},...T&&Y!==void 0&&{maxPriorityFeePerGas:b0(BigInt(Y))},value:b0(BigInt(f||0))};return y.send("eth_sendTransaction",[k])}}function H2(y,T){let H=R1(y,T);if(H)return V0.getAddress(H.toLowerCase());throw new E.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function R1({chain:y,symbol:T,ticker:H},f){try{let X=y===E.Chain.BinanceSmartChain&&T==="BNB"&&H==="BNB",U=y===E.Chain.Hyperevm&&T==="HYPE"&&H==="HYPE",q=y===f&&T===f&&H===f,Q=A4.includes(y)&&T==="ETH"&&H==="ETH";if(q||X||U||Q)return c5[f];return V0.getAddress(T.slice(H.length+1).replace(/^0X/,""))}catch{return null}}function jy({provider:y}){return async({contractAddress:T,abi:H,funcName:f,funcParams:X=[],txOverrides:U})=>{let q=await D1(T,H,y).getFunction(f).populateTransaction(...X.concat(U).filter((Q)=>typeof Q<"u"));return{...q,value:b0(BigInt(q.value||0))}}}function Ay({chain:y,provider:T,isEIP1559Compatible:H=!0}){return g5.match(y).with(E.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:X,maxPriorityFeePerGas:U}=await T.getFeeData();if(!X||U===null)throw new E.SwapKitError("toolbox_evm_no_fee_data");return{[E.FeeOption.Average]:{maxFeePerGas:E.applyFeeMultiplierToBigInt(X,E.FeeOption.Average),maxPriorityFeePerGas:E.applyFeeMultiplierToBigInt(U,E.FeeOption.Average)},[E.FeeOption.Fast]:{maxFeePerGas:E.applyFeeMultiplierToBigInt(X,E.FeeOption.Fast),maxPriorityFeePerGas:E.applyFeeMultiplierToBigInt(U,E.FeeOption.Fast)},[E.FeeOption.Fastest]:{maxFeePerGas:E.applyFeeMultiplierToBigInt(X,E.FeeOption.Fastest),maxPriorityFeePerGas:E.applyFeeMultiplierToBigInt(U,E.FeeOption.Fastest)}}}catch(X){throw new E.SwapKitError("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}}}).with(E.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:X}=await T.getFeeData();if(!X)throw new E.SwapKitError("toolbox_evm_no_fee_data");let U=X*12n/10n;return{[E.FeeOption.Average]:{gasPrice:U},[E.FeeOption.Fast]:{gasPrice:E.applyFeeMultiplierToBigInt(U,E.FeeOption.Fast)},[E.FeeOption.Fastest]:{gasPrice:E.applyFeeMultiplierToBigInt(U,E.FeeOption.Fastest)}}}catch(X){throw new E.SwapKitError("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:X,maxPriorityFeePerGas:U,gasPrice:q}=await T.getFeeData();if(H){if(X===null||U===null)throw new E.SwapKitError("toolbox_evm_no_fee_data");return{[E.FeeOption.Average]:{maxFeePerGas:X,maxPriorityFeePerGas:U},[E.FeeOption.Fast]:{maxFeePerGas:E.applyFeeMultiplierToBigInt(X,E.FeeOption.Fast),maxPriorityFeePerGas:E.applyFeeMultiplierToBigInt(U,E.FeeOption.Fast)},[E.FeeOption.Fastest]:{maxFeePerGas:E.applyFeeMultiplierToBigInt(X,E.FeeOption.Fastest),maxPriorityFeePerGas:E.applyFeeMultiplierToBigInt(U,E.FeeOption.Fastest)}}}if(!q)throw new E.SwapKitError("toolbox_evm_no_gas_price");return{[E.FeeOption.Average]:{gasPrice:q},[E.FeeOption.Fast]:{gasPrice:E.applyFeeMultiplierToBigInt(q,E.FeeOption.Fast)},[E.FeeOption.Fastest]:{gasPrice:E.applyFeeMultiplierToBigInt(q,E.FeeOption.Fastest)}}}catch(X){throw new E.SwapKitError("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}}})}function Qf({provider:y,isEIP1559Compatible:T,signer:H,chain:f}){return async function({callProvider:U,contractAddress:q,abi:Q,funcName:Z,funcParams:Y=[],txOverrides:W={},feeOption:k=E.FeeOption.Fast}){let M=U||y;if(!q)throw new E.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let L=n5({abi:Q,funcName:Z});if(L&&ty(M)&&H){let B=jy({chain:f,provider:M}),R=W?.from||await H?.getAddress(),A=await B({abi:Q,contractAddress:q,funcName:Z,funcParams:Y,txOverrides:{...W,from:R}});return ry(M)(A)}let _=D1(q,Q,M);if(L){if(!H)throw new E.SwapKitError("toolbox_evm_no_signer");let B=W?.from||await H.getAddress();if(!B)throw new E.SwapKitError("toolbox_evm_no_signer_address");let R=_.connect(H),A=Ay({chain:f,isEIP1559Compatible:T,provider:y}),{maxFeePerGas:x,maxPriorityFeePerGas:P,gasPrice:K}=(await A())[k],O=await _.getFunction(Z).estimateGas(...Y,W),$=await R[Z](...Y,{...W,gasLimit:O,gasPrice:K,maxFeePerGas:x,maxPriorityFeePerGas:P,nonce:W?.nonce||await M.getTransactionCount(B)});return typeof $?.hash==="string"?$?.hash:$}let C=await _[Z]?.(...Y);return typeof C?.hash==="string"?C?.hash:C}}function X2({provider:y,chain:T}){return function({assetAddress:f,spenderAddress:X,from:U}){return Qf({chain:T,isEIP1559Compatible:!0,provider:y})({abi:Py.erc20ABI,contractAddress:f,funcName:"allowance",funcParams:[U,X]})}}function E4({provider:y,chain:T}){return async function({assetAddress:f,spenderAddress:X,from:U,amount:q=$1}){let Q=await X2({chain:T,provider:y})({assetAddress:f,from:U,spenderAddress:X});return E.SwapKitNumber.fromBigInt(Q).gte(E.SwapKitNumber.fromBigInt(BigInt(q)))}}function S4({signer:y,isEIP1559Compatible:T=!0,provider:H,chain:f}){return async function({assetAddress:U,spenderAddress:q,feeOptionKey:Q=E.FeeOption.Fast,amount:Z,gasLimitFallback:Y,from:W,nonce:k}){let M=[q,BigInt(Z||$1)],L=await y?.getAddress()||W,_={abi:Py.erc20ABI,contractAddress:U,funcName:"approve",funcParams:M,signer:y,txOverrides:{from:L}};if(ty(H)){let B=jy({chain:f,provider:H}),R=ry(H),A=await B(_);return R(A)}return Qf({chain:f,isEIP1559Compatible:T,provider:H,signer:y})({..._,feeOption:Q,funcParams:M,txOverrides:{from:L,gasLimit:Y?BigInt(Y.toString()):void 0,nonce:k}})}}function K4({chain:y,estimateGasPrices:T,estimateAdditionalFee:H,signer:f,isEIP1559Compatible:X=!0,provider:U}){return async function({assetValue:Q,memo:Z,recipient:Y,feeOptionKey:W=E.FeeOption.Fast,sender:k,sweep:M,...L}){let _=k||await f?.getAddress(),C=q2({chain:y,estimateGasPrices:T,isEIP1559Compatible:X,provider:U,signer:f});if(!_)throw new E.SwapKitError("toolbox_evm_no_from_address");let B=await Q2({chain:y,estimateAdditionalFee:H,estimateGasPrices:T,isEIP1559Compatible:X,provider:U,signer:f})({assetValue:Q,feeOptionKey:W,memo:Z,recipient:Y,sender:_,sweep:M,...L});return C({...B,feeOptionKey:W,sweep:M})}}function U2({provider:y,signer:T}){return function({contractAddress:f,abi:X,funcName:U,funcParams:q=[],txOverrides:Q}){if(!f)throw new E.SwapKitError("toolbox_evm_no_contract_address");let Z=D1(f,X,y);return T?Z.connect(T).getFunction(U).estimateGas(...q,Q):Z.getFunction(U).estimateGas(...q,Q)}}function V4({provider:y,signer:T}){return async function({assetValue:f,recipient:X,memo:U,data:q,sender:Q,funcName:Z,funcParams:Y,txOverrides:W}){let k=f.bigIntValue,M=f.isGasAsset?null:R1(f,f.chain);if(M&&Z)return U2({provider:y,signer:T})({abi:Py.erc20ABI,contractAddress:M,funcName:Z,funcParams:Y,txOverrides:W});let{hexlify:L,toUtf8Bytes:_}=await import("ethers");return y.estimateGas({data:q?q:U?L(_(U)):void 0,from:Q,to:X,value:k})}}function w4({signer:y}){if(!y)return;return(T)=>u5(y,T)}function v4(y,T){if(y==="legacy"){if(T.gasPrice===void 0)throw new E.SwapKitError("toolbox_evm_no_fee_data");return{gasPrice:b0(T.gasPrice)}}if(T.maxFeePerGas===void 0||T.maxPriorityFeePerGas===void 0)throw new E.SwapKitError("toolbox_evm_no_fee_data");return{maxFeePerGas:b0(T.maxFeePerGas),maxPriorityFeePerGas:b0(T.maxPriorityFeePerGas)}}function q2({chain:y,estimateGasPrices:T,provider:H,signer:f,isEIP1559Compatible:X=!0}){return async function({feeOptionKey:q=E.FeeOption.Fast,sweep:Q,...Z}){let{from:Y,to:W,data:k,value:M,...L}=Z;if(!f)throw new E.SwapKitError("toolbox_evm_no_signer");if(!W)throw new E.SwapKitError("toolbox_evm_no_to_address");let _={...L,data:k||"0x",from:Y,to:W,value:BigInt(M||0)};if(ty(H))return ry(H,Q)(_);let C=Y||await f.getAddress(),B=Z.nonce??await H.getTransactionCount(C),R=(await H.getNetwork()).chainId,A=i5(_,X);if(A==="eip7702")p5(_.authorizations||[],R);let x=g5.match(A).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),P={..._,chainId:R,nonce:B,type:x,...A==="eip7702"&&{authorizationList:_.authorizations}},K=T??Ay({chain:y,isEIP1559Compatible:X,provider:H}),$=(A==="legacy"?_.gasPrice!==void 0:_.maxFeePerGas!==void 0&&_.maxPriorityFeePerGas!==void 0)?{}:v4(A,(await K())[q]),z;try{z=b0(_.gasLimit?BigInt(_.gasLimit):await H.estimateGas(P)*11n/10n)}catch(G){throw new E.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:G})}try{let G={...P,gasLimit:z,...$};try{return(await f.sendTransaction(G)).hash}catch{let J=await f.signTransaction({...G,from:C});return(await H.broadcastTransaction(J)).hash}}catch(G){throw new E.SwapKitError("toolbox_evm_error_sending_transaction",{error:G})}}}function xy(y,T){throw new E.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{balance:y.toString(),fee:T.toString()}})}function b4(y,T){if(T){if(y.maxFeePerGas===void 0||y.maxPriorityFeePerGas===void 0)throw new E.SwapKitError("toolbox_evm_no_fee_data");return{feeFields:{maxFeePerGas:y.maxFeePerGas,maxPriorityFeePerGas:y.maxPriorityFeePerGas},feePerGas:y.maxFeePerGas}}if(y.gasPrice===void 0)throw new E.SwapKitError("toolbox_evm_no_fee_data");return{feeFields:{gasPrice:y.gasPrice},feePerGas:y.gasPrice}}function h4(y,T){if(y>T)return y;return T}function l4(y){return V0.getBytes(y).reduce((T,H)=>T+(H===0?4n:16n),21000n)}function m5(y){let H=(y instanceof Error?y.message:String(y)).toLowerCase();return H.includes("insufficient funds")||H.includes("insufficient balance")||H.includes("gas required exceeds allowance")}async function u4({balance:y,estimateAdditionalFee:T,feeOptionKey:H,l2Reserve:f,sweepTx:X,valueBeforeL1Fee:U}){if(!T)return 0n;let q=await T({...X,value:U})??0n,Q=E.applyFeeMultiplierToBigInt(q,H),Z=U-Q;if(Z<=0n)xy(y,f+Q);let Y=await T({...X,value:Z})??q;return E.applyFeeMultiplierToBigInt(h4(q,Y),H)}async function p4({chain:y,data:T,estimateGasPrices:H,estimateAdditionalFee:f,feeOptionKey:X,from:U,isEIP1559Compatible:q,provider:Q,recipient:Z,transaction:Y}){let W=await Q.getBalance(U),k=H??Ay({chain:y,isEIP1559Compatible:q,provider:Q}),{feeFields:M,feePerGas:L}=b4((await k())[X],q),C={...f&&Y.nonce===void 0?{...Y,nonce:await Q.getTransactionCount(U)}:Y,...M,data:T,from:U,to:Z},B=l4(T)*L;if(W-B<=0n)xy(W,B);let R=(W-B)/2n,A;try{A=await Q.estimateGas({...C,value:R})}catch(F){if(!m5(F))throw F;try{A=await Q.estimateGas({...C,value:0n})}catch(j){if(m5(j))xy(W,B);throw j}}let x=A*L;if(W-x<=0n)xy(W,x);let O=A*11n/10n*L,$=W>O?W-O:0n,z;try{z=await Q.estimateGas({...C,value:$})}catch(F){if(!m5(F))throw F;xy(W,O)}let G=z*L,J=W-G;if(J<=0n)xy(W,G);let N=await u4({balance:W,estimateAdditionalFee:f,feeOptionKey:X,l2Reserve:G,sweepTx:{...C,gasLimit:z},valueBeforeL1Fee:J}),D=J-N;if(D<=0n)xy(W,G+N);return{...C,gasLimit:z,value:b0(D)}}async function m4({chain:y,contractAddress:T,from:H,provider:f}){let X=await Qf({chain:y,provider:f})({abi:Py.erc20ABI,contractAddress:T,funcName:"balanceOf",funcParams:[H]});if(typeof X!=="bigint")throw new E.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid ERC20 balance"}});return X}function Q2({chain:y,estimateAdditionalFee:T,estimateGasPrices:H,isEIP1559Compatible:f=!0,provider:X,signer:U}){return async function({assetValue:Q,authorizations:Z,memo:Y,recipient:W,data:k,feeOptionKey:M=E.FeeOption.Fast,gasLimit:L,sender:_,sweep:C,type:B,maxFeePerGas:R,maxPriorityFeePerGas:A,gasPrice:x,...P}){let K=Q.getBaseValue("bigint"),O=_||await U?.getAddress();if(!O)throw new E.SwapKitError("toolbox_evm_no_from_address");if(C&&(B===4||(Z?.length??0)>0))throw new E.SwapKitError({errorKey:"toolbox_not_supported",info:{chain:y,reason:"EIP-7702 sweep transactions are not supported"}});if(E.isGasAsset(Q)){let{hexlify:J,toUtf8Bytes:N}=await import("ethers"),D=k||J(N(Y||""));if(!C)return{...P,...Z!==void 0&&{authorizations:Z},data:D,from:O,...L!==void 0&&{gasLimit:L},to:W,...B!==void 0&&{type:B},value:b0(K)};return p4({chain:y,data:D,estimateAdditionalFee:T,estimateGasPrices:H,feeOptionKey:M,from:O,isEIP1559Compatible:f,provider:X,recipient:W,transaction:{nonce:P.nonce,type:B}})}let $=R1(Q,y);if(!$)throw new E.SwapKitError("toolbox_evm_no_contract_address");let z=jy({chain:y,provider:X}),G=C?await m4({chain:y,contractAddress:$,from:O,provider:X}):K;if(C&&G<=0n)throw new E.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:Q.toString(),balance:G.toString()}});return z({abi:Py.erc20ABI,contractAddress:$,funcName:"transfer",funcParams:[W,G],txOverrides:{from:O,gasLimit:L,gasPrice:x,maxFeePerGas:R,maxPriorityFeePerGas:A}})}}function g4({provider:y,signer:T,chain:H}){return async function({assetAddress:X,spenderAddress:U,amount:q,from:Q}){let Z=await T?.getAddress()||Q,Y=jy({chain:H,provider:y}),W=["bigint","number"].includes(typeof q)?q:q||$1;return await Y({abi:Py.erc20ABI,contractAddress:X,funcName:"approve",funcParams:[U,BigInt(W)],txOverrides:{from:Z}})}}function o4({provider:y,isEIP1559Compatible:T=!0,chain:H}){return async function({feeOption:X=E.FeeOption.Fast,...U}){let Q=await Ay({chain:H,isEIP1559Compatible:T,provider:y})(),Z=await y.estimateGas(U),Y=E.AssetValue.from({chain:H}),{gasPrice:W,maxFeePerGas:k,maxPriorityFeePerGas:M}=Q[X];if(!T&&W)return Y.set(E.SwapKitNumber.fromBigInt(W*Z,Y.decimal));if(k&&M){let L=(k+M)*Z;return Y.set(E.SwapKitNumber.fromBigInt(L,Y.decimal))}throw new E.SwapKitError("toolbox_evm_no_gas_price")}}var E,Py,V0,g5,$1,P4,j4,c5,A4,Zf=(y)=>y.type===4||(y.authorizations?.length??0)>0,d5=(y)=>!Zf(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),i5=(y,T=!0)=>{if(Zf(y))return"eip7702";if(d5(y)||T)return"eip1559";return"legacy"};var Yf=l(()=>{qf();k1();E=require("@swapkit/helpers"),Py=require("@swapkit/helpers/contracts"),V0=require("ethers"),g5=require("ts-pattern"),$1=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");P4=["payable","nonpayable"];j4=E.EVMChains.reduce((y,T)=>{return y[T]="0x0000000000000000000000000000000000000000",y},{}),c5={...j4,[E.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[E.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},A4=[E.Chain.Arbitrum,E.Chain.Aurora,E.Chain.Base,E.Chain.Optimism,E.Chain.Robinhood]});var Z2;var Y2=l(()=>{Z2=[{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:[{internalType:"uint256",name:"_gasUsed",type:"uint256"}],name:"getOperatorFee",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"}]});function Wf(y){return new Jf.Contract(n4,Z2,y)}function J2(y){return async function(){let H=Wf(y);if(H&&"l1BaseFee"in H)return await H?.l1BaseFee();return}}function W2(y){return async function({from:H,to:f,nonce:X,...U}){let{Transaction:q}=await import("ethers");if(!f)throw new G0.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return q.from({...U,authorizationList:U.authorizationList,nonce:X??(H?await y.getTransactionCount(H):0),to:f}).unsignedSerialized}}function t5(y,T){return async function(f){let X=Wf(y),U=f.chainId??T??(await y.getNetwork()).chainId,q=await W2(y)({...f,chainId:U});if(X&&"getL1Fee"in X){let Q=await X.getL1Fee(q);if(typeof Q!=="bigint")throw new G0.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid OP-stack L1 fee"}});return Q}return}}function r5(y){return async function(H){let f=Wf(y);if(f&&"getOperatorFee"in f){let X=await f.getOperatorFee(H);if(typeof X!=="bigint")throw new G0.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid OP-stack operator fee"}});return X}return 0n}}function c4(y,T){let H=t5(y,T),f=r5(y);return async function(U){if(U.gasLimit===void 0||U.gasLimit===null)throw new G0.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Missing gas limit for OP-stack fee estimation"}});let[q,Q]=await Promise.all([H(U),f(BigInt(U.gasLimit.toString()))]);return(q??0n)+Q}}function z2(y){return async function(H){let X=(await y.getFeeData()).gasPrice??0n,U=await y.estimateGas(H);return X*U}}function d4(y){return async function(H){let f=await t5(y)(H)??0n,X=await z2(y)(H),U=H.gasLimit??await y.estimateGas(H),q=await r5(y)(BigInt(U.toString()));return f+X+q}}function i4(y){return async function(H){let f=Wf(y),X=await W2(y)(H);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(X)}}function t4(y){return async function(){try{let{maxFeePerGas:H,maxPriorityFeePerGas:f,gasPrice:X}=await y.getFeeData(),U=await J2(y)(),q=X;if(!(H&&f))throw new G0.SwapKitError("toolbox_evm_no_fee_data");return{[G0.FeeOption.Average]:{gasPrice:q,l1GasPrice:U,maxFeePerGas:H,maxPriorityFeePerGas:f},[G0.FeeOption.Fast]:{gasPrice:G0.applyFeeMultiplierToBigInt(q,G0.FeeOption.Fast),l1GasPrice:G0.applyFeeMultiplierToBigInt(U||0n,G0.FeeOption.Fast),maxFeePerGas:H,maxPriorityFeePerGas:G0.applyFeeMultiplierToBigInt(f,G0.FeeOption.Fast)},[G0.FeeOption.Fastest]:{gasPrice:G0.applyFeeMultiplierToBigInt(q,G0.FeeOption.Fastest),l1GasPrice:G0.applyFeeMultiplierToBigInt(U||0n,G0.FeeOption.Fastest),maxFeePerGas:H,maxPriorityFeePerGas:G0.applyFeeMultiplierToBigInt(f,G0.FeeOption.Fastest)}}}catch(H){throw new G0.SwapKitError("toolbox_evm_gas_estimation_error",{error:H.msg??H.toString()})}}}function ay(y){return function({provider:H,...f}){let X=F1.match(f).with({phrase:F1.P.string},({phrase:M})=>Jf.HDNodeWallet.fromPhrase(M).connect(H)).with({signer:F1.P.any},({signer:M})=>M).otherwise(()=>{return}),U=J2(H),q=BigInt(G0.getChainConfig(y).chainId),Q=t5(H,q),Z=c4(H,q),Y=r5(H),W=y===G0.Chain.Optimism?t4(H):void 0;return{...iy({chain:y,estimateAdditionalFee:Z,estimateGasPrices:W,provider:H,signer:X}),estimateL1Gas:i4(H),estimateL1GasCost:Q,estimateL2GasCost:z2(H),estimateOperatorFee:Y,estimateTotalGasCost:d4(H),getBalance:O1(y).getBalance,getL1GasPrice:U}}}var G0,Jf,F1,n4="0x420000000000000000000000000000000000000f",zf;var Gf=l(()=>{qf();Y2();Yf();G0=require("@swapkit/helpers"),Jf=require("ethers"),F1=require("ts-pattern");zf=ay(G0.Chain.Optimism)});function Lf(y){let T=R0(_0.Chain.Ethereum)(y);async function H(f,X="0x5ba1e12693dc8f9c48aad8770482f4739beed696",U="aggregate",q=_0.FeeOption.Fast){let Q=await T.createContractTxObject({abi:y2,contractAddress:X,funcName:U,funcParams:[f]});return T.sendTransaction({...Q,feeOptionKey:q})}return{...T,multicall:H}}function R0(y){return function({provider:H,...f}){let X=l5(y),U=I1.match(f).with({phrase:I1.P.string},({phrase:Q})=>G2.HDNodeWallet.fromPhrase(Q).connect(H)).with({signer:I1.P.any},({signer:Q})=>Q).otherwise(()=>{return});return iy({chain:y,isEIP1559Compatible:X,provider:H,signer:U})}}var _0,G2,I1,Mf,_f,Cf,Nf,Of,kf,$f,L2,Bf,Df,Rf,Ff,If,xf,Pf,jf,Af,Ef,Sf,x1,Kf,Vf;var a5=l(()=>{f2();k1();Yf();Gf();_0=require("@swapkit/helpers"),G2=require("ethers"),I1=require("ts-pattern");Mf=R0(_0.Chain.Adi),_f=R0(_0.Chain.Arbitrum),Cf=R0(_0.Chain.Aurora),Nf=R0(_0.Chain.Avalanche),Of=ay(_0.Chain.Base),kf=R0(_0.Chain.Berachain),$f=R0(_0.Chain.BinanceSmartChain),L2=R0(_0.Chain.Botanix),Bf=R0(_0.Chain.Core),Df=R0(_0.Chain.Corn),Rf=R0(_0.Chain.Cronos),Ff=R0(_0.Chain.Gnosis),If=R0(_0.Chain.Robinhood),xf=R0(_0.Chain.Hyperevm),Pf=R0(_0.Chain.Linea),jf=R0(_0.Chain.Polygon),Af=R0(_0.Chain.MegaETH),Ef=R0(_0.Chain.Monad),Sf=R0(_0.Chain.Plasma),x1=R0(_0.Chain.Sonic),Kf=ay(_0.Chain.Unichain),Vf=R0(_0.Chain.XLayer)});var C2={};x0(C2,{validateEVMAddress:()=>B1,toChecksumAddress:()=>T2,isStateChangingCall:()=>n5,isEIP7702Transaction:()=>Zf,isEIP1559Transaction:()=>d5,isBrowserProvider:()=>ty,getTokenAddress:()=>R1,getEvmToolboxAsync:()=>_2,getEvmToolbox:()=>s5,getEstimateGasPrices:()=>Ay,getEVMTxType:()=>i5,getEIP1193SendTransaction:()=>ry,getCreateContractTxObject:()=>jy,getCreateContract:()=>o5,getChecksumAddressFromAsset:()=>H2,createOPStackToolbox:()=>ay,createContract:()=>D1,XLayerToolbox:()=>Vf,UNIToolbox:()=>Kf,SONICToolbox:()=>x1,PLASMAToolbox:()=>Sf,OPToolbox:()=>zf,MONADToolbox:()=>Ef,MEGAETHToolbox:()=>Af,MAX_APPROVAL:()=>$1,MATICToolbox:()=>jf,LINEAToolbox:()=>Pf,HYPEREVMToolbox:()=>xf,HOODToolbox:()=>If,GNOToolbox:()=>Ff,ETHToolbox:()=>Lf,ContractAddress:()=>c5,CROToolbox:()=>Rf,CORNToolbox:()=>Df,COREToolbox:()=>Bf,BotanixToolbox:()=>L2,BaseEVMToolbox:()=>iy,BSCToolbox:()=>$f,BERAToolbox:()=>kf,BASEToolbox:()=>Of,AVAXToolbox:()=>Nf,AURORAToolbox:()=>Cf,ARBToolbox:()=>_f,ADIToolbox:()=>Mf});function s5(y,T){return M2.match(y).with(C0.Chain.Adi,()=>Mf(T)).with(C0.Chain.Arbitrum,()=>_f(T)).with(C0.Chain.Aurora,()=>Cf(T)).with(C0.Chain.Avalanche,()=>Nf(T)).with(C0.Chain.Base,()=>Of(T)).with(C0.Chain.Berachain,()=>kf(T)).with(C0.Chain.BinanceSmartChain,()=>$f(T)).with(C0.Chain.Botanix,()=>x1(T)).with(C0.Chain.Core,()=>Bf(T)).with(C0.Chain.Corn,()=>Df(T)).with(C0.Chain.Cronos,()=>Rf(T)).with(C0.Chain.Ethereum,()=>Lf(T)).with(C0.Chain.Gnosis,()=>Ff(T)).with(C0.Chain.Hyperevm,()=>xf(T)).with(C0.Chain.Linea,()=>Pf(T)).with(C0.Chain.MegaETH,()=>Af(T)).with(C0.Chain.Monad,()=>Ef(T)).with(C0.Chain.Optimism,()=>zf(T)).with(C0.Chain.Plasma,()=>Sf(T)).with(C0.Chain.Polygon,()=>jf(T)).with(C0.Chain.Robinhood,()=>If(T)).with(C0.Chain.Sonic,()=>x1(T)).with(C0.Chain.Unichain,()=>Kf(T)).with(C0.Chain.XLayer,()=>Vf(T)).exhaustive()}async function _2(y,T){let H={...T,provider:T?.provider||b5(y)};return s5(y,H)}var C0,M2;var e5=l(()=>{k1();a5();Gf();C0=require("@swapkit/helpers"),M2=require("ts-pattern");Yf();a5();Gf()});var N2;var O2=l(()=>{((H)=>{H.Test="goerli";H.Main="homestead"})(N2||={})});var k2={};x0(k2,{validateEVMAddress:()=>B1,validateAuthorizations:()=>p5,validateAuthorization:()=>s8,toHexString:()=>b0,toChecksumAddress:()=>T2,signAuthorization:()=>u5,parseEIP712FromEVMTx:()=>x4,isStateChangingCall:()=>n5,isEIP7702Transaction:()=>Zf,isEIP1559Transaction:()=>d5,isBrowserProvider:()=>ty,getTokenAddress:()=>R1,getProviderSync:()=>a8,getProvider:()=>R4,getNetworkParams:()=>h5,getIsEIP1559Compatible:()=>l5,getFallbackProvider:()=>b5,getEvmToolboxAsync:()=>_2,getEvmToolbox:()=>s5,getEvmApi:()=>O1,getEstimateGasPrices:()=>Ay,getEVMTxType:()=>i5,getEIP1193SendTransaction:()=>ry,getCreateContractTxObject:()=>jy,getCreateContract:()=>o5,getChecksumAddressFromAsset:()=>H2,createOPStackToolbox:()=>ay,createCustomEvmApi:()=>D4,createContract:()=>D1,buildEIP712DomainType:()=>e8,XLayerToolbox:()=>Vf,UNIToolbox:()=>Kf,SONICToolbox:()=>x1,PLASMAToolbox:()=>Sf,OPToolbox:()=>zf,MONADToolbox:()=>Ef,MEGAETHToolbox:()=>Af,MAX_APPROVAL:()=>$1,MATICToolbox:()=>jf,LINEAToolbox:()=>Pf,HYPEREVMToolbox:()=>xf,HOODToolbox:()=>If,GNOToolbox:()=>Ff,EthNetwork:()=>N2,ETHToolbox:()=>Lf,ContractAddress:()=>c5,CROToolbox:()=>Rf,CORNToolbox:()=>Df,COREToolbox:()=>Bf,BotanixToolbox:()=>L2,BaseEVMToolbox:()=>iy,BSCToolbox:()=>$f,BERAToolbox:()=>kf,BASEToolbox:()=>Of,AVAXToolbox:()=>Nf,AURORAToolbox:()=>Cf,ARBToolbox:()=>_f,ADIToolbox:()=>Mf});module.exports=E0(k2);var yT=l(()=>{qf();k1();e5();O2()});async function TT(y,T){let H=await fetch(`${x2}${y}`,{...T,headers:{project_id:I2,...T?.headers}});if(!H.ok)throw Error(`Blockfrost API error: ${H.status} ${H.statusText}`);return H.json()}async function P2(y){try{return await TT(`/addresses/${y}/utxos`)}catch{return[]}}async function a4(){return(await TT("/blocks/latest")).slot}async function s4(){let y=await TT("/epochs/latest/parameters"),T={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new h0.default(y.collateral_percent),languageView:T,maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new h0.default(y.min_fee_a),minFeeB:new h0.default(y.min_fee_b),minFeeRefScriptCostPerByte:new h0.default(15),priceMem:new h0.default(y.price_mem),priceSteps:new h0.default(y.price_step),stakeKeyDeposit:new h0.default(2000000),utxoCostPerByte:new h0.default(y.coins_per_utxo_size)}}async function B2(y){let T=await fetch(`${x2}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:I2},method:"POST"});if(!T.ok){let H=await T.text();throw Error(`Transaction submission failed: ${H}`)}return T.json()}function e4(y,T){return y.map((H)=>{let f=H.amount.find((q)=>q.unit==="lovelace"),X=f?new h0.default(f.quantity):new h0.default(0),U=H.amount.filter((q)=>q.unit!=="lovelace").map((q)=>({amount:new h0.default(q.quantity),assetName:q.unit.slice(56),policyId:q.unit.slice(0,56)}));return{address:T,amount:X,index:H.output_index,tokens:U,txId:H.tx_hash}})}function yU({TransactionConstructor:y,auxiliaryData:T,bufferedParams:H,currentSlot:f,inputs:X,recipientAddress:U}){let q=X.reduce((L,_)=>L.plus(_.amount),new h0.default(0));if(!q.isPositive())throw new L0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{available:q.toString()}});let Q=new y({protocolParams:H});for(let L of X)Q.addInput(L);if(Q.addOutput({address:U,amount:q,tokens:[]}),Q.setTTL(f+3600),T)Q.setAuxiliaryData(T);Q.setFee(Q.calculateFee());let Z=Q.getFee(),Y=q.minus(Z),W={address:U,amount:Y,tokens:[]},k=Q.calculateMinUtxoAmountBabbage(W);if(!Y.isPositive()||Y.lt(k))throw new L0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{available:q.toString(),fee:Z.toString(),minimumOutput:k.toString()}});return new y({protocolParams:H}).paymentTransaction({auxiliaryData:T,changeAddress:U,inputs:X,outputs:[W],ttl:f+3600})}async function fU(y){try{let T=await P2(y),H=0n,f=new Map;for(let q of T){if(!q.amount||!Array.isArray(q.amount))continue;for(let Q of q.amount){let{unit:Z,quantity:Y}=Q;if(Z==="lovelace")H+=BigInt(Y);else{let W=f.get(Z)||0n;f.set(Z,W+BigInt(Y))}}}let X=[],{baseDecimal:U}=L0.getChainConfig(L0.Chain.Cardano);if(H>0n)X.push(L0.AssetValue.from({chain:L0.Chain.Cardano,fromBaseDecimal:U,value:H.toString()}));for(let[q,Q]of f)X.push(L0.AssetValue.from({asset:`${L0.Chain.Cardano}.${q}`,value:Q.toString()}));if(X.length===0)return[L0.AssetValue.from({chain:L0.Chain.Cardano})];return X}catch(T){let H=T instanceof Error?T.message:String(T);return console.error(`Cardano balance fetch error: ${H}`),[L0.AssetValue.from({chain:L0.Chain.Cardano})]}}function j2(y){if(!y||typeof y!=="string")return!1;try{let T=D2.bech32.decode(y,120);return T.prefix==="addr"||T.prefix==="addr_test"}catch{return!1}}async function TU(y,T=0,H=0){let{Bip32PrivateKey:f}=await import("@stricahq/bip32ed25519"),{types:X,address:U,crypto:q}=await import("@stricahq/typhonjs"),Q=R2.mnemonicToEntropy(y,F2.wordlist),Y=(await f.fromEntropy(Buffer.from(Array.from(Q)))).derive(fT+1852).derive(fT+1815).derive(fT+T),W=Y.derive(0).derive(H),k=W.toBip32PublicKey().toPublicKey().toBytes(),M=q.hash28(k),_=Y.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),C=q.hash28(_),B={hash:M,type:X.HashType.ADDRESS},R={hash:C,type:X.HashType.ADDRESS},x=new U.BaseAddress(X.NetworkId.MAINNET,B,R).getBech32(),P=W.toPrivateKey();return{getAddress:()=>x,publicKey:k,publicKeyHash:M,signTransaction:async(K)=>{try{let O=await import("@stricahq/cbors"),$=Buffer.from(K,"hex"),z=O.Decoder.decode($),[G,J,N,D]=z.value,F=O.Encoder.encode(G),j=q.hash32(F),V=P.sign(j),v=J instanceof Map?J:new Map,m=v.get($2)||[];m.push([k,V]),v.set($2,m);let T0=[G,v,N,D];return O.Encoder.encode(T0).toString("hex")}catch(O){throw new L0.SwapKitError("toolbox_cardano_sign_transaction_failed",{message:String(O)})}}}}function HU(y){let T,H,f;async function X(){if(!f)f=await s4();return f}async function U(){if(T!==void 0)return T;if(y&&"phrase"in y&&y.phrase){let L=y.index??0;return T=await TU(y.phrase,0,L),T}if(y&&"signer"in y&&y.signer)return T=y.signer,T;return}async function q(){if(H)return H;let L=await U();if(!L)return"";if("getAddress"in L)return H=await L.getAddress(),H;return""}async function Q(L){let _=L||await q();if(!_)throw new L0.SwapKitError("core_wallet_connection_not_found");return fU(_)}async function Z(L){if(L)try{let{tx:R}=await Y(L),A=R.getFee();return L0.AssetValue.from({chain:L0.Chain.Cardano,fromBaseDecimal:6,value:A.toString()})}catch{}let _=await X(),C=400,B=_.minFeeB.plus(_.minFeeA.times(C));return L0.AssetValue.from({chain:L0.Chain.Cardano,fromBaseDecimal:6,value:B.toString()})}async function Y({sender:L="",recipient:_,assetValue:C,memo:B,pureLovelaceOnly:R=!1,sweep:A=!1}){let{Transaction:x,utils:P}=await import("@stricahq/typhonjs"),K=L||await q();if(!K)throw new L0.SwapKitError("core_wallet_connection_not_found");let[O,$,z]=await Promise.all([P2(K),a4(),X()]);if(A&&!C.isGasAsset)throw new L0.SwapKitError({errorKey:"toolbox_not_supported",info:{asset:C.toString(),chain:L0.Chain.Cardano,feature:"token_sweep"}});let G=A&&C.isGasAsset,J=R||G,N=O.filter((S)=>J?S.amount.some((b)=>b.unit==="lovelace")&&S.amount.every((b)=>b.unit==="lovelace"):S.amount.some((b)=>b.unit==="lovelace")).sort((S,b)=>{let c=S.amount.some((y0)=>y0.unit!=="lovelace"),d=b.amount.some((y0)=>y0.unit!=="lovelace");if(c===d)return 0;return c?1:-1}),D=P.getAddressFromString(K),F=P.getAddressFromString(_),j=e4(N,D),V;if(B){let S=new Map;S.set("msg",[B]),V={metadata:[{data:S,label:674}]}}let v={...z,minFeeB:z.minFeeB.plus(z.minFeeA.times(4))};if(G){let S=yU({auxiliaryData:V,bufferedParams:v,currentSlot:$,inputs:j,recipientAddress:F,TransactionConstructor:x}),{payload:b}=S.buildTransaction();return{tx:S,unsignedTx:b}}let m=new h0.default(C.getBaseValue("string")),T0=[{address:F,amount:m,tokens:[]}],D0=new x({protocolParams:v}).paymentTransaction({auxiliaryData:V,changeAddress:D,inputs:j,outputs:T0,ttl:$+3600}),{payload:I}=D0.buildTransaction();return{tx:D0,unsignedTx:I}}async function W(L){let _=await U();if(!_||!("signTransaction"in _))throw new L0.SwapKitError("core_wallet_connection_not_found");return _.signTransaction(L)}async function k({recipient:L,assetValue:_,memo:C,sweep:B}){let R=await U();if(!R||!("signTransaction"in R))throw new L0.SwapKitError("core_wallet_connection_not_found");let{unsignedTx:A}=await Y({assetValue:_,memo:C,recipient:L,sender:await q(),sweep:B}),x=await W(A);return await B2(x)}async function M(L){let _=await W(L);return await B2(_)}return{createTransaction:Y,estimateTransactionFee:Z,getAddress:q,getBalance:Q,signAndBroadcastTransaction:M,signTransaction:W,transfer:k,validateAddress:j2}}var D2,R2,F2,L0,h0,I2="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",x2="https://cardano-mainnet.blockfrost.io/api/v0",fT=2147483648,$2=0;var A2=l(()=>{D2=require("@scure/base"),R2=require("@scure/bip39"),F2=require("@scure/bip39/wordlists/english.js"),L0=require("@swapkit/helpers"),h0=g8(require("bignumber.js"))});var HT={};x0(HT,{validateCardanoAddress:()=>j2,getCardanoToolbox:()=>HU});module.exports=E0(HT);var XT=l(()=>{A2()});function P1(y){return e0.base64.encode(Uint8Array.from(e0.bech32.fromWords(e0.bech32.decode(y).words)))}function j1(y,T="thor"){return e0.bech32.encode(T,e0.bech32.toWords(e0.base64.decode(y)))}function XU(y){return e0.base64.encode(y)}function UU(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new E2.SwapKitError("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return e0.base64.decode(y)}var e0,E2;var UT=l(()=>{e0=require("@scure/base"),E2=require("@swapkit/helpers")});function c0(y){switch(y){case u.Chain.Maya:return{amount:[],gas:"10000000000"};case u.Chain.THORChain:return{amount:[],gas:"500000000"};case u.Chain.Kujira:return V2;case u.Chain.Noble:return w2;default:return K2}}async function A1(y){let{isStagenet:T}=u.SKConfig.get("envs"),H=u.SKConfig.get("thornodeUrls"),f=y===u.Chain.Maya,U=`${f?T?H.MAYA_STAGENET:H.MAYA:T?H.THOR_STAGENET:H.THOR}/${f?"mayachain":"thorchain"}/constants`,q=u.getChainConfig(y).baseDecimal;try{let{int_64_values:{NativeTransactionFee:Q}}=await u.RequestClient.get(U);if(!Number.isInteger(Q)||Q<=0)throw new u.SwapKitError("toolbox_cosmos_invalid_fee",{nativeFee:Q.toString()});return u.SwapKitNumber.fromBigInt(BigInt(Q),q)}catch{let Q=f?10000000000n:2000000n;return u.SwapKitNumber.fromBigInt(Q,q)}}async function yy(y){let T=await import("@cosmjs/stargate"),H=T.StargateClient??T.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return H.connect({headers:f,url:y})}async function Ey(y,T,H={}){let f=await import("@cosmjs/stargate"),X=f.SigningStargateClient??f.default?.SigningStargateClient,U=f.GasPrice??f.default?.GasPrice,q=typeof H==="string"?H:"0.0003uatom",Q=typeof H==="string"?{}:H;return X.connectWithSigner(y,T,{gasPrice:U.fromString(q),...Q})}async function QT(y,T){let H=await import("@cosmjs/stargate");return(H.SigningStargateClient??H.default?.SigningStargateClient).offline(y,T)}async function ZT({sender:y,recipient:T,assetValue:H,memo:f="",feeRate:X,sequence:U,accountNumber:q,sweep:Q}){let{chain:Z,chainId:Y}=H,W=await u.getRPCUrl(Z),k=await yy(W),M=await k.getAccount(y);if(!M)throw new u.SwapKitError("toolbox_cosmos_account_not_found",{sender:y});let L=u.AssetValue.from({chain:Z}),_=Uy(L.symbol),C=c0(Z),B=_&&X?{amount:[{amount:X.toString(),denom:_}],gas:C.gas}:C,R=Uy(H.symbol),x={amount:[{amount:(Q?sy({assetValue:H,balances:await k.getAllBalances(y),denom:R,feeAmount:wf(B.amount,R)}):H).getBaseValue("string"),denom:R}],fromAddress:y,toAddress:T};return{accountNumber:q??Number(M.accountNumber),chainId:Y,fee:B,memo:f,msgs:[{typeUrl:qU(Z),value:x}],sequence:U??M.sequence}}function wf(y,T){let H=T.toLowerCase();return y.reduce((f,X)=>X.denom.toLowerCase()===H?f+BigInt(X.amount):f,0n)}function sy({assetValue:y,balances:T,denom:H,feeAmount:f=0n}){let X=H.toLowerCase(),U=T.find(({denom:Z})=>Z.toLowerCase()===X),q=BigInt(U?.amount??"0"),Q=q-f;if(Q<=0n)throw new u.SwapKitError("toolbox_sweep_amount_too_low",{asset:y.toString(),balance:q.toString(),fee:f.toString()});return y.set(u.SwapKitNumber.fromBigInt(Q,y.decimal))}var u,qT="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",S2="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",K2,V2,w2,Uy=(y,T=!1)=>{if(T)return y.toLowerCase();switch(y){case"uUSK":case"USK":return qT;case"uYUM":case"YUM":return S2;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":case"NOBLE":return"uusdc";default:return y}},E1=({symbol:y,chain:T})=>{if(T===u.Chain.Maya)return(y.toUpperCase()!=="CACAO"?y:`${u.Chain.Maya}.${y}`).toUpperCase();if(T===u.Chain.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${u.Chain.THORChain}.${y}`:y).toUpperCase();return Uy(y,!1)},qU=(y)=>{switch(y){case u.Chain.Maya:case u.Chain.THORChain:return"/types.MsgSend";case u.Chain.Cosmos:case u.Chain.Kujira:case u.Chain.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new u.SwapKitError("toolbox_cosmos_not_supported",{chain:y})}},QU,YT=(y,T)=>{let H=QU[y.toLowerCase()];if(!H)return u.AssetValue.from({asset:y,fromBaseDecimal:8,value:T});let{chain:f,asset:X,decimals:U}=H,q=f?{chain:f}:{asset:X};return u.AssetValue.from({...q,fromBaseDecimal:U,value:T})};var S1=l(()=>{u=require("@swapkit/helpers"),K2={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},V2={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},w2={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};QU={atom:{chain:u.Chain.Cosmos,decimals:u.getChainConfig(u.Chain.Cosmos).baseDecimal},cacao:{chain:u.Chain.Maya,decimals:10},kuji:{chain:u.Chain.Kujira,decimals:u.getChainConfig(u.Chain.Kujira).baseDecimal},maya:{asset:`${u.Chain.Maya}.${u.Chain.Maya}`,decimals:4},rune:{chain:u.Chain.THORChain,decimals:u.getChainConfig(u.Chain.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:u.getChainConfig(u.Chain.THORChain).baseDecimal},uatom:{chain:u.Chain.Cosmos,decimals:u.getChainConfig(u.Chain.Cosmos).baseDecimal},ukuji:{chain:u.Chain.Kujira,decimals:u.getChainConfig(u.Chain.Kujira).baseDecimal},usdc:{chain:u.Chain.Noble,decimals:u.getChainConfig(u.Chain.Noble).baseDecimal},uusdc:{chain:u.Chain.Noble,decimals:u.getChainConfig(u.Chain.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:u.getChainConfig(u.Chain.THORChain).baseDecimal},[qT.toLowerCase()]:{asset:`${u.Chain.Kujira}.USK`,decimals:u.getChainConfig(u.Chain.Kujira).baseDecimal}}});var v2={};x0(v2,{$root:()=>h});var P0,r,m0,o,h;var b2=l(()=>{P0=g8(require("protobufjs/minimal.js")),r=P0.default.Reader,m0=P0.default.Writer,o=P0.default.util,h=P0.default.roots.default||(P0.default.roots.default={});h.common=(()=>{let y={};return y.Asset=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.chain="",T.prototype.symbol="",T.prototype.ticker="",T.prototype.synth=!1,T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=m0.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))X.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))X.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))X.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))X.uint32(32).bool(f.synth);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let U=X===void 0?f.len:f.pos+X,q=new h.common.Asset;while(f.pos<U){let Q=f.uint32();switch(Q>>>3){case 1:q.chain=f.string();break;case 2:q.symbol=f.string();break;case 3:q.ticker=f.string();break;case 4:q.synth=f.bool();break;default:f.skipType(Q&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!o.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!o.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!o.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},T.fromObject=function(f){if(f instanceof h.common.Asset)return f;let X=new h.common.Asset;if(f.chain!=null)X.chain=String(f.chain);if(f.symbol!=null)X.symbol=String(f.symbol);if(f.ticker!=null)X.ticker=String(f.ticker);if(f.synth!=null)X.synth=Boolean(f.synth);return X},T.toObject=function(f,X){if(!X)X={};let U={};if(X.defaults)U.chain="",U.symbol="",U.ticker="",U.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))U.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))U.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))U.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))U.synth=f.synth;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,P0.default.util.toJSONOptions)},T})(),y.Coin=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.asset=null,T.prototype.amount="",T.prototype.decimals=o.Long?o.Long.fromBits(0,0,!1):0,T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=m0.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))h.common.Asset.encode(f.asset,X.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))X.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))X.uint32(24).int64(f.decimals);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let U=X===void 0?f.len:f.pos+X,q=new h.common.Coin;while(f.pos<U){let Q=f.uint32();switch(Q>>>3){case 1:q.asset=h.common.Asset.decode(f,f.uint32());break;case 2:q.amount=f.string();break;case 3:q.decimals=f.int64();break;default:f.skipType(Q&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let X=h.common.Asset.verify(f.asset);if(X)return"asset."+X}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!o.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!o.isInteger(f.decimals)&&!(f.decimals&&o.isInteger(f.decimals.low)&&o.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},T.fromObject=function(f){if(f instanceof h.common.Coin)return f;let X=new h.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");X.asset=h.common.Asset.fromObject(f.asset)}if(f.amount!=null)X.amount=String(f.amount);if(f.decimals!=null){if(o.Long)(X.decimals=o.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")X.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")X.decimals=f.decimals;else if(typeof f.decimals==="object")X.decimals=new o.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return X},T.toObject=function(f,X){if(!X)X={};let U={};if(X.defaults)if(U.asset=null,U.amount="",o.Long){let q=new o.Long(0,0,!1);U.decimals=X.longs===String?q.toString():X.longs===Number?q.toNumber():q}else U.decimals=X.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))U.asset=h.common.Asset.toObject(f.asset,X);if(f.amount!=null&&f.hasOwnProperty("amount"))U.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")U.decimals=X.longs===String?String(f.decimals):f.decimals;else U.decimals=X.longs===String?o.Long.prototype.toString.call(f.decimals):X.longs===Number?new o.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,P0.default.util.toJSONOptions)},T})(),y.PubKeySet=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.secp256k1="",T.prototype.ed25519="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=m0.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))X.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))X.uint32(18).string(f.ed25519);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let U=X===void 0?f.len:f.pos+X,q=new h.common.PubKeySet;while(f.pos<U){let Q=f.uint32();switch(Q>>>3){case 1:q.secp256k1=f.string();break;case 2:q.ed25519=f.string();break;default:f.skipType(Q&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!o.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!o.isString(f.ed25519))return"ed25519: string expected"}return null},T.fromObject=function(f){if(f instanceof h.common.PubKeySet)return f;let X=new h.common.PubKeySet;if(f.secp256k1!=null)X.secp256k1=String(f.secp256k1);if(f.ed25519!=null)X.ed25519=String(f.ed25519);return X},T.toObject=function(f,X){if(!X)X={};let U={};if(X.defaults)U.secp256k1="",U.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))U.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))U.ed25519=f.ed25519;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,P0.default.util.toJSONOptions)},T})(),y.Tx=(()=>{function T(H){if(this.coins=[],this.gas=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.id="",T.prototype.chain="",T.prototype.fromAddress="",T.prototype.toAddress="",T.prototype.coins=o.emptyArray,T.prototype.gas=o.emptyArray,T.prototype.memo="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=m0.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))X.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))X.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))X.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))X.uint32(34).string(f.toAddress);if(f.coins?.length)for(let U=0;U<f.coins.length;++U)h.common.Coin.encode(f.coins[U],X.uint32(42).fork()).ldelim();if(f.gas?.length)for(let U=0;U<f.gas.length;++U)h.common.Coin.encode(f.gas[U],X.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))X.uint32(58).string(f.memo);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let U=X===void 0?f.len:f.pos+X,q=new h.common.Tx;while(f.pos<U){let Q=f.uint32();switch(Q>>>3){case 1:q.id=f.string();break;case 2:q.chain=f.string();break;case 3:q.fromAddress=f.string();break;case 4:q.toAddress=f.string();break;case 5:if(!q.coins?.length)q.coins=[];q.coins.push(h.common.Coin.decode(f,f.uint32()));break;case 6:if(!q.gas?.length)q.gas=[];q.gas.push(h.common.Coin.decode(f,f.uint32()));break;case 7:q.memo=f.string();break;default:f.skipType(Q&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!o.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!o.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!o.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!o.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let X=0;X<f.coins.length;++X){let U=h.common.Coin.verify(f.coins[X]);if(U)return"coins."+U}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let X=0;X<f.gas.length;++X){let U=h.common.Coin.verify(f.gas[X]);if(U)return"gas."+U}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!o.isString(f.memo))return"memo: string expected"}return null},T.fromObject=function(f){if(f instanceof h.common.Tx)return f;let X=new h.common.Tx;if(f.id!=null)X.id=String(f.id);if(f.chain!=null)X.chain=String(f.chain);if(f.fromAddress!=null)X.fromAddress=String(f.fromAddress);if(f.toAddress!=null)X.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");X.coins=[];for(let U=0;U<f.coins.length;++U){if(typeof f.coins[U]!=="object")throw TypeError(".common.Tx.coins: object expected");X.coins[U]=h.common.Coin.fromObject(f.coins[U])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");X.gas=[];for(let U=0;U<f.gas.length;++U){if(typeof f.gas[U]!=="object")throw TypeError(".common.Tx.gas: object expected");X.gas[U]=h.common.Coin.fromObject(f.gas[U])}}if(f.memo!=null)X.memo=String(f.memo);return X},T.toObject=function(f,X){if(!X)X={};let U={};if(X.arrays||X.defaults)U.coins=[],U.gas=[];if(X.defaults)U.id="",U.chain="",U.fromAddress="",U.toAddress="",U.memo="";if(f.id!=null&&f.hasOwnProperty("id"))U.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))U.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))U.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))U.toAddress=f.toAddress;if(f.coins?.length){U.coins=[];for(let q=0;q<f.coins.length;++q)U.coins[q]=h.common.Coin.toObject(f.coins[q],X)}if(f.gas?.length){U.gas=[];for(let q=0;q<f.gas.length;++q)U.gas[q]=h.common.Coin.toObject(f.gas[q],X)}if(f.memo!=null&&f.hasOwnProperty("memo"))U.memo=f.memo;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,P0.default.util.toJSONOptions)},T})(),y.Fee=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.coins=o.emptyArray,T.prototype.poolDeduct="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=m0.create();if(f.coins?.length)for(let U=0;U<f.coins.length;++U)h.common.Coin.encode(f.coins[U],X.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))X.uint32(18).string(f.poolDeduct);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let U=X===void 0?f.len:f.pos+X,q=new h.common.Fee;while(f.pos<U){let Q=f.uint32();switch(Q>>>3){case 1:if(!q.coins?.length)q.coins=[];q.coins.push(h.common.Coin.decode(f,f.uint32()));break;case 2:q.poolDeduct=f.string();break;default:f.skipType(Q&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let X=0;X<f.coins.length;++X){let U=h.common.Coin.verify(f.coins[X]);if(U)return"coins."+U}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!o.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},T.fromObject=function(f){if(f instanceof h.common.Fee)return f;let X=new h.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");X.coins=[];for(let U=0;U<f.coins.length;++U){if(typeof f.coins[U]!=="object")throw TypeError(".common.Fee.coins: object expected");X.coins[U]=h.common.Coin.fromObject(f.coins[U])}}if(f.poolDeduct!=null)X.poolDeduct=String(f.poolDeduct);return X},T.toObject=function(f,X){if(!X)X={};let U={};if(X.arrays||X.defaults)U.coins=[];if(X.defaults)U.poolDeduct="";if(f.coins?.length){U.coins=[];for(let q=0;q<f.coins.length;++q)U.coins[q]=h.common.Coin.toObject(f.coins[q],X)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))U.poolDeduct=f.poolDeduct;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,P0.default.util.toJSONOptions)},T})(),y.ProtoUint=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.value="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=m0.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))X.uint32(10).string(f.value);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let U=X===void 0?f.len:f.pos+X,q=new h.common.ProtoUint;while(f.pos<U){let Q=f.uint32();switch(Q>>>3){case 1:q.value=f.string();break;default:f.skipType(Q&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!o.isString(f.value))return"value: string expected"}return null},T.fromObject=function(f){if(f instanceof h.common.ProtoUint)return f;let X=new h.common.ProtoUint;if(f.value!=null)X.value=String(f.value);return X},T.toObject=function(f,X){if(!X)X={};let U={};if(X.defaults)U.value="";if(f.value!=null&&f.hasOwnProperty("value"))U.value=f.value;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,P0.default.util.toJSONOptions)},T})(),y})();h.types=(()=>{let y={};return y.MsgDeposit=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.coins=o.emptyArray,T.prototype.memo="",T.prototype.signer=o.newBuffer([]),T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=m0.create();if(f.coins?.length)for(let U=0;U<f.coins.length;++U)h.common.Coin.encode(f.coins[U],X.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))X.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))X.uint32(26).bytes(f.signer);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let U=X===void 0?f.len:f.pos+X,q=new h.types.MsgDeposit;while(f.pos<U){let Q=f.uint32();switch(Q>>>3){case 1:if(!q.coins?.length)q.coins=[];q.coins.push(h.common.Coin.decode(f,f.uint32()));break;case 2:q.memo=f.string();break;case 3:q.signer=f.bytes();break;default:f.skipType(Q&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let X=0;X<f.coins.length;++X){let U=h.common.Coin.verify(f.coins[X]);if(U)return"coins."+U}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!o.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||o.isString(f.signer)))return"signer: buffer expected"}return null},T.fromObject=function(f){if(f instanceof h.types.MsgDeposit)return f;let X=new h.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");X.coins=[];for(let U=0;U<f.coins.length;++U){if(typeof f.coins[U]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");X.coins[U]=h.common.Coin.fromObject(f.coins[U])}}if(f.memo!=null)X.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")o.base64.decode(f.signer,X.signer=o.newBuffer(o.base64.length(f.signer)),0);else if(f.signer.length)X.signer=f.signer}return X},T.toObject=function(f,X){if(!X)X={};let U={};if(X.arrays||X.defaults)U.coins=[];if(X.defaults){if(U.memo="",X.bytes===String)U.signer="";else if(U.signer=[],X.bytes!==Array)U.signer=o.newBuffer(U.signer)}if(f.coins?.length){U.coins=[];for(let q=0;q<f.coins.length;++q)U.coins[q]=h.common.Coin.toObject(f.coins[q],X)}if(f.memo!=null&&f.hasOwnProperty("memo"))U.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))U.signer=X.bytes===String?o.base64.encode(f.signer,0,f.signer.length):X.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,P0.default.util.toJSONOptions)},T})(),y.MsgSend=(()=>{function T(H){if(this.amount=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.fromAddress=o.newBuffer([]),T.prototype.toAddress=o.newBuffer([]),T.prototype.amount=o.emptyArray,T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=m0.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))X.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))X.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let U=0;U<f.amount.length;++U)h.cosmos.base.v1beta1.Coin.encode(f.amount[U],X.uint32(26).fork()).ldelim();return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let U=X===void 0?f.len:f.pos+X,q=new h.types.MsgSend;while(f.pos<U){let Q=f.uint32();switch(Q>>>3){case 1:q.fromAddress=f.bytes();break;case 2:q.toAddress=f.bytes();break;case 3:if(!q.amount?.length)q.amount=[];q.amount.push(h.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(Q&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||o.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||o.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let X=0;X<f.amount.length;++X){let U=h.cosmos.base.v1beta1.Coin.verify(f.amount[X]);if(U)return"amount."+U}}return null},T.fromObject=function(f){if(f instanceof h.types.MsgSend)return f;let X=new h.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")o.base64.decode(f.fromAddress,X.fromAddress=o.newBuffer(o.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)X.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")o.base64.decode(f.toAddress,X.toAddress=o.newBuffer(o.base64.length(f.toAddress)),0);else if(f.toAddress.length)X.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");X.amount=[];for(let U=0;U<f.amount.length;++U){if(typeof f.amount[U]!=="object")throw TypeError(".types.MsgSend.amount: object expected");X.amount[U]=h.cosmos.base.v1beta1.Coin.fromObject(f.amount[U])}}return X},T.toObject=function(f,X){if(!X)X={};let U={};if(X.arrays||X.defaults)U.amount=[];if(X.defaults){if(X.bytes===String)U.fromAddress="";else if(U.fromAddress=[],X.bytes!==Array)U.fromAddress=o.newBuffer(U.fromAddress);if(X.bytes===String)U.toAddress="";else if(U.toAddress=[],X.bytes!==Array)U.toAddress=o.newBuffer(U.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))U.fromAddress=X.bytes===String?o.base64.encode(f.fromAddress,0,f.fromAddress.length):X.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))U.toAddress=X.bytes===String?o.base64.encode(f.toAddress,0,f.toAddress.length):X.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){U.amount=[];for(let q=0;q<f.amount.length;++q)U.amount[q]=h.cosmos.base.v1beta1.Coin.toObject(f.amount[q],X)}return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,P0.default.util.toJSONOptions)},T})(),y})();h.cosmos=(()=>{let y={};return y.base=(()=>{let T={};return T.v1beta1=(()=>{let H={};return H.Coin=(()=>{function f(X){if(X){for(let U=Object.keys(X),q=0;q<U.length;++q)if(X[U[q]]!=null)this[U[q]]=X[U[q]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=m0.create();if(U.denom!=null&&Object.hasOwnProperty.call(U,"denom"))q.uint32(10).string(U.denom);if(U.amount!=null&&Object.hasOwnProperty.call(U,"amount"))q.uint32(18).string(U.amount);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof r))U=r.create(U);let Q=q===void 0?U.len:U.pos+q,Z=new h.cosmos.base.v1beta1.Coin;while(U.pos<Q){let Y=U.uint32();switch(Y>>>3){case 1:Z.denom=U.string();break;case 2:Z.amount=U.string();break;default:U.skipType(Y&7);break}}return Z},f.decodeDelimited=function(U){if(!(U instanceof r))U=new r(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.denom!=null&&U.hasOwnProperty("denom")){if(!o.isString(U.denom))return"denom: string expected"}if(U.amount!=null&&U.hasOwnProperty("amount")){if(!o.isString(U.amount))return"amount: string expected"}return null},f.fromObject=function(U){if(U instanceof h.cosmos.base.v1beta1.Coin)return U;let q=new h.cosmos.base.v1beta1.Coin;if(U.denom!=null)q.denom=String(U.denom);if(U.amount!=null)q.amount=String(U.amount);return q},f.toObject=function(U,q){if(!q)q={};let Q={};if(q.defaults)Q.denom="",Q.amount="";if(U.denom!=null&&U.hasOwnProperty("denom"))Q.denom=U.denom;if(U.amount!=null&&U.hasOwnProperty("amount"))Q.amount=U.amount;return Q},f.prototype.toJSON=function(){return this.constructor.toObject(this,P0.default.util.toJSONOptions)},f})(),H.DecCoin=(()=>{function f(X){if(X){for(let U=Object.keys(X),q=0;q<U.length;++q)if(X[U[q]]!=null)this[U[q]]=X[U[q]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=m0.create();if(U.denom!=null&&Object.hasOwnProperty.call(U,"denom"))q.uint32(10).string(U.denom);if(U.amount!=null&&Object.hasOwnProperty.call(U,"amount"))q.uint32(18).string(U.amount);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof r))U=r.create(U);let Q=q===void 0?U.len:U.pos+q,Z=new h.cosmos.base.v1beta1.DecCoin;while(U.pos<Q){let Y=U.uint32();switch(Y>>>3){case 1:Z.denom=U.string();break;case 2:Z.amount=U.string();break;default:U.skipType(Y&7);break}}return Z},f.decodeDelimited=function(U){if(!(U instanceof r))U=new r(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.denom!=null&&U.hasOwnProperty("denom")){if(!o.isString(U.denom))return"denom: string expected"}if(U.amount!=null&&U.hasOwnProperty("amount")){if(!o.isString(U.amount))return"amount: string expected"}return null},f.fromObject=function(U){if(U instanceof h.cosmos.base.v1beta1.DecCoin)return U;let q=new h.cosmos.base.v1beta1.DecCoin;if(U.denom!=null)q.denom=String(U.denom);if(U.amount!=null)q.amount=String(U.amount);return q},f.toObject=function(U,q){if(!q)q={};let Q={};if(q.defaults)Q.denom="",Q.amount="";if(U.denom!=null&&U.hasOwnProperty("denom"))Q.denom=U.denom;if(U.amount!=null&&U.hasOwnProperty("amount"))Q.amount=U.amount;return Q},f.prototype.toJSON=function(){return this.constructor.toObject(this,P0.default.util.toJSONOptions)},f})(),H.IntProto=(()=>{function f(X){if(X){for(let U=Object.keys(X),q=0;q<U.length;++q)if(X[U[q]]!=null)this[U[q]]=X[U[q]]}}return f.prototype.int="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=m0.create();if(U.int!=null&&Object.hasOwnProperty.call(U,"int"))q.uint32(10).string(U.int);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof r))U=r.create(U);let Q=q===void 0?U.len:U.pos+q,Z=new h.cosmos.base.v1beta1.IntProto;while(U.pos<Q){let Y=U.uint32();switch(Y>>>3){case 1:Z.int=U.string();break;default:U.skipType(Y&7);break}}return Z},f.decodeDelimited=function(U){if(!(U instanceof r))U=new r(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.int!=null&&U.hasOwnProperty("int")){if(!o.isString(U.int))return"int: string expected"}return null},f.fromObject=function(U){if(U instanceof h.cosmos.base.v1beta1.IntProto)return U;let q=new h.cosmos.base.v1beta1.IntProto;if(U.int!=null)q.int=String(U.int);return q},f.toObject=function(U,q){if(!q)q={};let Q={};if(q.defaults)Q.int="";if(U.int!=null&&U.hasOwnProperty("int"))Q.int=U.int;return Q},f.prototype.toJSON=function(){return this.constructor.toObject(this,P0.default.util.toJSONOptions)},f})(),H.DecProto=(()=>{function f(X){if(X){for(let U=Object.keys(X),q=0;q<U.length;++q)if(X[U[q]]!=null)this[U[q]]=X[U[q]]}}return f.prototype.dec="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=m0.create();if(U.dec!=null&&Object.hasOwnProperty.call(U,"dec"))q.uint32(10).string(U.dec);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof r))U=r.create(U);let Q=q===void 0?U.len:U.pos+q,Z=new h.cosmos.base.v1beta1.DecProto;while(U.pos<Q){let Y=U.uint32();switch(Y>>>3){case 1:Z.dec=U.string();break;default:U.skipType(Y&7);break}}return Z},f.decodeDelimited=function(U){if(!(U instanceof r))U=new r(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.dec!=null&&U.hasOwnProperty("dec")){if(!o.isString(U.dec))return"dec: string expected"}return null},f.fromObject=function(U){if(U instanceof h.cosmos.base.v1beta1.DecProto)return U;let q=new h.cosmos.base.v1beta1.DecProto;if(U.dec!=null)q.dec=String(U.dec);return q},f.toObject=function(U,q){if(!q)q={};let Q={};if(q.defaults)Q.dec="";if(U.dec!=null&&U.hasOwnProperty("dec"))Q.dec=U.dec;return Q},f.prototype.toJSON=function(){return this.constructor.toObject(this,P0.default.util.toJSONOptions)},f})(),H})(),T})(),y})()});async function Sy(){let{$root:y}=await Promise.resolve().then(() => (b2(),v2)),T=await import("@cosmjs/proto-signing"),H=await import("@cosmjs/stargate"),f=T.Registry??T.default?.Registry,X=H.defaultRegistryTypes??H.default?.defaultRegistryTypes;return new f([...X,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function Wy(y,T=y===JT.Chain.THORChain?"thor":"maya"){let H=await import("@cosmjs/stargate"),f=H.AminoTypes??H.default?.AminoTypes,X=y===JT.Chain.THORChain?"thorchain":"mayachain";return new f({"/types.MsgDeposit":{aminoType:`${X}/MsgDeposit`,fromAmino:({signer:U,...q})=>({...q,signer:P1(U)}),toAmino:({signer:U,...q})=>({...q,signer:j1(U,T)})},"/types.MsgSend":{aminoType:`${X}/MsgSend`,fromAmino:({from_address:U,to_address:q,...Q})=>({...Q,fromAddress:P1(U),toAddress:P1(q)}),toAmino:({fromAddress:U,toAddress:q,...Q})=>({...Q,from_address:j1(U,T),to_address:j1(q,T)})}})}var JT;var WT=l(()=>{UT();JT=require("@swapkit/helpers")});async function LT(y){let{assetValue:T,recipient:H,memo:f,sender:X,asSignable:U,asAminoMessage:q}=y,Q=y.sweep?await bf({assetValue:T,sender:X}):T;if(H)return l2({asAminoMessage:q,asSignable:U,assetValue:Q,memo:f,recipient:H,sender:X});return u2({asAminoMessage:q,asSignable:U,assetValue:Q,memo:f,sender:X})}async function bf({assetValue:y,sender:T}){let H=y.chain,f=await S0.getRPCUrl(H),U=await(await yy(f)).getAllBalances(T),q=y.isGasAsset?(await A1(H)).getBaseValue("bigint"):0n;return sy({assetValue:y,balances:U,denom:Uy(y.symbol,!0),feeAmount:q})}async function l2({sender:y,recipient:T,assetValue:H,memo:f="",asSignable:X=!0,asAminoMessage:U=!1,sequence:q,accountNumber:Q}){let Z=H.chain,Y=await S0.getRPCUrl(Z),W=await h2({rpcUrl:Y,sender:y}),{chainId:k}=S0.getChainConfig(Z),M=zT({assetValue:H,recipient:T,sender:y}),L=X?await zy(U?M:Gy(M),Z):M;return{accountNumber:Q||Number(W.accountNumber),chainId:k,fee:c0(Z),memo:f,msgs:[L],sequence:q||W.sequence}}async function u2({sender:y,assetValue:T,memo:H="",asSignable:f=!0,asAminoMessage:X=!1,sequence:U,accountNumber:q}){let Q=T.chain,Z=await S0.getRPCUrl(Q),Y=await h2({rpcUrl:Z,sender:y}),{chainId:W}=S0.getChainConfig(Q),k=GT({assetValue:T,memo:H,sender:y}),M=f?await zy(X?k:Gy(k),Q):k;return{accountNumber:q||Number(Y.accountNumber),chainId:W,fee:c0(Q),memo:H,msgs:[M],sequence:U||Y.sequence}}function Gy(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((T)=>{let H=S0.AssetValue.from({asset:T.asset}),f=(H.isSynthetic?H.symbol.split("/")?.[1]:H.symbol)?.toUpperCase(),X=(H.isSynthetic?H.symbol.split("/")?.[0]:H.chain)?.toUpperCase();return{...T,asset:{chain:X,symbol:f,synth:H.isSynthetic,ticker:H.ticker}}})}}}async function K1({chain:y,memo:T,msgs:H}){let f=await Sy(),X=await Wy(y),U={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:T,messages:H.map((q)=>X.fromAmino(q))}};return f.encode(U)}var S0,ZU,YU,zT=({sender:y,recipient:T,assetValue:H})=>{return{type:`${H.chain===S0.Chain.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:H.getBaseValue("string"),denom:Uy(H.symbol,!0)}],from_address:y,to_address:T}}},GT=({sender:y,assetValue:T,memo:H=""})=>{return{type:`${T.chain===S0.Chain.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:T.getBaseValue("string"),asset:E1(T)}],memo:H,signer:y}}},vf=({sender:y,recipient:T,assetValue:H,memo:f})=>{return!T?GT({assetValue:H,memo:f,sender:y}):zT({assetValue:H,recipient:T,sender:y})},zy=async(y,T)=>{return(await Wy(T)).fromAmino(y)},h2=async({rpcUrl:y,sender:T})=>{let f=await(await yy(y)).getAccount(T);if(!f)throw new S0.SwapKitError("toolbox_cosmos_account_not_found",{sender:T});return f};var p2=l(()=>{S1();WT();S0=require("@swapkit/helpers"),ZU=c0(S0.Chain.THORChain).gas,YU=c0(S0.Chain.Maya).gas});var m2=()=>{};var g2=l(()=>{m2()});var MT=l(()=>{UT();p2();WT();g2()});async function OT(y,T){try{let f=(await NT.SwapKitApi.getGasRate()).find((X)=>X.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}async function CT({phrase:y,prefix:T,...H}){let f=await import("@cosmjs/proto-signing"),X=await import("@cosmjs/crypto"),U=f.DirectSecp256k1HdWallet??f.default?.DirectSecp256k1HdWallet,q=X.stringToPath??X.default?.stringToPath,Q="derivationPath"in H?H.derivationPath:`${g.DerivationPath[H.chain]}/${H.index}`;return await U.fromMnemonic(y,{hdPaths:[q(Q)],prefix:T})}async function JU({privateKey:y,prefix:T}){let H=await import("@cosmjs/proto-signing");return(H.DirectSecp256k1Wallet??H.default?.DirectSecp256k1Wallet).fromKey(y,T)}function c2(y){return async function({signature:H,message:f,address:X}){let U=await y(X);if(!U?.pubkey)throw new g.SwapKitError("toolbox_cosmos_verify_signature_no_pubkey");let q=await import("@cosmjs/crypto"),Q=q.Secp256k1Signature??q.default?.Secp256k1Signature,Z=q.Secp256k1??q.default?.Secp256k1,Y=Q.fromFixedLength(Ly.base64.decode(H));return Z.verifySignature(Y,Ly.base64.decode(f),U.pubkey.value)}}function w1({chain:y,...T}){let H=g.CosmosChainPrefixes[y],f="index"in T?T.index||0:0,X=g.derivationPathToString("derivationPath"in T&&T.derivationPath?T.derivationPath:g.updateDerivationPath(g.NetworkDerivationPath[y],{index:f})),U;async function q(){if(U)return U;return U=await V1.match(T).with({phrase:V1.P.string},({phrase:L})=>CT({derivationPath:X,phrase:L,prefix:H})).with({signer:V1.P.any},({signer:L})=>L).otherwise(()=>{return}),U}async function Q(L){let _=await g.getRPCUrl(y);return(await yy(_)).getAccount(L)}async function Z(){let L=await q(),[_]=await L?.getAccounts()||[];return _?.address}async function Y(){let L=await q(),[_]=await L?.getAccounts()||[];if(!_?.pubkey)throw new g.SwapKitError("toolbox_cosmos_signer_not_defined");return Ly.base64.encode(_?.pubkey)}async function W(L){let _=await q(),C=await Z(),B=await g.getRPCUrl(y);if(!(_&&C))throw new g.SwapKitError("toolbox_cosmos_signer_not_defined");return await(await Ey(B,_)).sign(C,L.msgs,L.fee,L.memo,{accountNumber:BigInt(L.accountNumber),chainId:L.chainId,sequence:L.sequence})}async function k(L){let _=await q(),C=await Z(),B=await g.getRPCUrl(y);if(!(_&&C))throw new g.SwapKitError("toolbox_cosmos_signer_not_defined");let A=await(await Ey(B,_)).signAndBroadcast(C,L.msgs,L.fee,L.memo);if(A.code!==0)throw new g.SwapKitError("core_swap_transaction_error",{code:A.code,message:A.rawLog});return A.transactionHash}async function M({recipient:L,assetValue:_,memo:C="",feeRate:B,feeOptionKey:R=g.FeeOption.Fast,sweep:A}){let x=await q(),P=await Z();if(!(x&&P))throw new g.SwapKitError("toolbox_cosmos_signer_not_defined");let K=await g.getRPCUrl(y),O=g.AssetValue.from({chain:y}),$=E1(O),z=GU(B||(await n2(y,o2[y]))[R],$,y),G=await Ey(K,x),J=Uy(_.symbol),D=[{amount:(A?sy({assetValue:_,balances:await _T(y)(P),denom:J,feeAmount:wf(z.amount,J)}):_).getBaseValue("string"),denom:J}],{transactionHash:F}=await G.sendTokens(P,L,D,z,C);return F}return{createPrivateKeyFromPhrase:MU(X),createTransaction:ZT,fetchFeeRateFromSwapKit:OT,getAccount:Q,getAddress:Z,getBalance:async(L,_)=>{let C=await _T(y)(L),B=await Promise.all(C.filter(({denom:R})=>R&&!R.includes("IBC/")&&!([g.Chain.THORChain,g.Chain.Maya].includes(y)&&R.split("-").length>2)).map(({denom:R,amount:A})=>{let x=[g.Chain.THORChain,g.Chain.Maya].includes(y)&&(R.includes("/")||R.includes("˜"))?`${y}.${R}`:R;return YT(x,A)}));if(B.length===0)return[g.AssetValue.from({chain:y})];return B},getBalanceAsDenoms:_T(y),getFees:()=>n2(y,o2[y]),getPubKey:Y,getSignerFromPhrase:({phrase:L,derivationPath:_})=>CT({derivationPath:g.derivationPathToString(_),index:f,phrase:L,prefix:H}),getSignerFromPrivateKey:async(L)=>{let _=await import("@cosmjs/proto-signing");return(_.DirectSecp256k1Wallet??_.default?.DirectSecp256k1Wallet).fromKey(L,H)},signAndBroadcastTransaction:k,signTransaction:W,transfer:M,validateAddress:d2(y),verifySignature:c2(Q)}}async function WU(y,T){try{let f=(await NT.SwapKitApi.getGasRate()).find((X)=>X.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}function zU({assetValue:{chain:y}}){return g.AssetValue.from({chain:y,value:LU(y)})}async function n2(y,T){let{chainId:H,baseDecimal:f}=g.getChainConfig(y),X=await OT(H,T);return{average:g.SwapKitNumber.fromBigInt(BigInt(X),f),fast:g.SwapKitNumber.fromBigInt(BigInt(g.applyFeeMultiplier(X,g.FeeOption.Fast,!0)),f),fastest:g.SwapKitNumber.fromBigInt(BigInt(g.applyFeeMultiplier(X,g.FeeOption.Fastest,!0)),f)}}function GU(y,T,H){return{amount:[{amount:typeof y==="number"?y.toString():y.getBaseValue("string"),denom:T}],gas:c0(H).gas}}function LU(y){return{[g.Chain.Cosmos]:0.007,[g.Chain.Kujira]:0.02,[g.Chain.Noble]:0.01,[g.Chain.THORChain]:0.02,[g.Chain.Maya]:0.02,[g.Chain.Harbor]:0.02}[y]||0}function d2(y){let T=g.CosmosChainPrefixes[y];return function(f){if(!f.startsWith(T))return!1;try{let{prefix:X,words:U}=Ly.bech32.decode(f);return Ly.bech32.encode(X,U)===f.toLocaleLowerCase()}catch{return!1}}}function _T(y){return async function(H){let f=await g.getRPCUrl(y);return(await(await yy(f)).getAllBalances(H)).map((Q)=>({...Q,denom:Q.denom.includes("/")?Q.denom.toUpperCase():Q.denom}))}}function MU(y){return async function(H){let f=await import("@cosmjs/crypto"),X=f.stringToPath??f.default?.stringToPath,U=f.Slip10Curve??f.default?.Slip10Curve,q=f.Slip10??f.default?.Slip10,Q=f.EnglishMnemonic??f.default?.EnglishMnemonic,Z=f.Bip39??f.default?.Bip39,Y=new Q(H),W=await Z.mnemonicToSeed(Y),{privkey:k}=q.derivePath(U.Secp256k1,W,X(y));return k}}var Ly,g,NT,V1,o2;var hf=l(()=>{S1();Ly=require("@scure/base"),g=require("@swapkit/helpers"),NT=require("@swapkit/helpers/api"),V1=require("ts-pattern");o2={[g.Chain.Cosmos]:1000,[g.Chain.Kujira]:1000,[g.Chain.Noble]:1000,[g.Chain.THORChain]:5000000,[g.Chain.Maya]:5000000,[g.Chain.Harbor]:5000000}});function _U({prefix:y,derivationPath:T}){return async function(f,X=0){let U=await import("@cosmjs/amino"),q=U.Secp256k1HdWallet??U.default?.Secp256k1HdWallet,Q=await import("@cosmjs/crypto"),Z=Q.stringToPath??Q.default?.stringToPath;return q.fromMnemonic(f,{hdPaths:[Z(`${T}/${X}`)],prefix:y})}}function CU(y){return My.base64.encode(y)}function NU(y,T){return async function({wallet:f,tx:X}){let{msgs:U,accountNumber:q,sequence:Q,chainId:Z,fee:Y,memo:W}=typeof X==="string"?JSON.parse(X):X,k=(await f.getAccounts())?.[0]?.address||"",M=await Wy(y,T),L=await Sy(),_=await QT(f,{aminoTypes:M,registry:L}),C=[];for(let A of U){let x=await zy(A,y);C.push(x)}let{signatures:[B]}=await _.sign(k,C,Y,W,{accountNumber:BigInt(q),chainId:Z,sequence:Q});return{bodyBytes:await K1({chain:y,memo:W,msgs:U.map(Gy)}),signature:CU(B)}}}function OU({prefix:y,chain:T}){return async function(f,X,U,q,Q){let Z=await $0.getRPCUrl(T),{encodeSecp256k1Pubkey:Y,pubkeyToAddress:W}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:k}=(await import("@cosmjs/stargate")).default,{sequence:M,fee:L}=JSON.parse(f),_=await i2(U,q),C=X.map((A)=>[W(Y(My.base64.decode(A.pubKey)),y),My.base64.decode(A.signature)]),B=await yy(Z),{transactionHash:R}=await B.broadcastTx(k(_,M,L,Q,new Map(C)));return R}}async function i2(y,T,H=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:X}=(await import("@cosmjs/amino")).default;return f(y.map((U)=>X(My.base64.decode(U))),T,H)}function kU(y){return My.base64.decode(y)}async function $U({privateKey:y,message:T}){let{Secp256k1:H}=(await import("@cosmjs/crypto")).default,f=await H.createSignature(My.base64.decode(T),y);return My.base64.encode(Buffer.concat([f.r(32),f.s(32)]))}function kT({chain:y,...T}){let{isStagenet:H}=$0.SKConfig.get("envs"),f=`${H?"s":""}${$0.CosmosChainPrefixes[y]}`,X="index"in T?T.index||0:0,U="derivationPath"in T&&T.derivationPath?T.derivationPath:$0.updateDerivationPath($0.NetworkDerivationPath[y],{index:X}),q=w1({chain:y,...T}),Q=c0(y),Z;function Y(){return Z??=v1.match(T).with({phrase:v1.P.string},({phrase:C})=>q.getSignerFromPhrase({derivationPath:U,phrase:C})).with({signer:v1.P.any},({signer:C})=>Promise.resolve(C)).otherwise(()=>Promise.resolve(void 0)),Z}async function W(){let C=await $0.getRPCUrl(y),B=await Y();if(!B)throw new $0.SwapKitError("toolbox_cosmos_no_signer");let R=await Sy(),A=await Wy(y,f),x=await Ey(C,B,{aminoTypes:A,registry:R});return{signer:B,signingClient:x}}async function k({fee:C,memo:B,msgs:R}){let{signer:A,signingClient:x}=await W(),P=(await A.getAccounts())?.[0]?.address;if(!P)throw new $0.SwapKitError("toolbox_cosmos_signer_not_defined");let K=await x.signAndBroadcast(P,R,C,B);if(K.code!==0)throw new $0.SwapKitError("core_swap_transaction_error",{code:K.code,message:K.rawLog});return K.transactionHash}async function M(){let C=await A1(y);return{[$0.FeeOption.Average]:C,[$0.FeeOption.Fast]:C,[$0.FeeOption.Fastest]:C}}async function L({assetValue:C,memo:B="",recipient:R,sweep:A}){let{TxRaw:x}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:P,signingClient:K}=await W(),O=(await P.getAccounts())?.[0]?.address;if(!O)throw new $0.SwapKitError("toolbox_cosmos_no_signer");let $="signAmino"in P,z=A?await bf({assetValue:C,sender:O}):C,G=vf({assetValue:z,memo:B,recipient:R,sender:O});if($){let D=await zy(G,y),{signatures:F,authInfoBytes:j}=await K.sign(O,[D],Q,B),V=x.encode({authInfoBytes:j,bodyBytes:await K1({chain:y,memo:B,msgs:[G].map(Gy)}),signatures:F}).finish();return(await K.broadcastTx(V)).transactionHash}let J=Gy(G),N=await zy(J,y);return k({fee:Q,memo:B,msgs:[N]})}async function _(C){let{signer:B,signingClient:R}=await W(),A=(await B.getAccounts())?.[0]?.address;if(!A)throw new $0.SwapKitError("toolbox_cosmos_signer_not_defined");return R.sign(A,C.msgs,C.fee,C.memo,{accountNumber:BigInt(C.accountNumber),chainId:C.chainId,sequence:C.sequence})}return{...q,broadcastMultisigTx:OU({chain:y,prefix:f}),buildAminoMsg:vf,buildEncodedTxBody:K1,convertToSignable:zy,createDefaultAminoTypes:()=>Wy(y,f),createDefaultRegistry:Sy,createMultisig:i2,createTransaction:LT,deposit:L,getFees:M,importSignature:kU,parseAminoMessageForDirectSigning:Gy,pubkeyToAddress:async(C)=>{let{pubkeyToAddress:B}=(await import("@cosmjs/amino")).default;return B(C,f)},secp256k1HdWalletFromMnemonic:_U({derivationPath:$0.derivationPathToString(U),prefix:f}),signAndBroadcastTransaction:k,signMultisigTx:NU(y,f),signTransaction:_,signWithPrivateKey:$U,transfer:L}}var My,$0,v1;var $T=l(()=>{MT();S1();hf();My=require("@scure/base"),$0=require("@swapkit/helpers"),v1=require("ts-pattern")});var _y,BU=(y,T)=>{switch(y){case _y.Chain.Cosmos:case _y.Chain.Kujira:case _y.Chain.Noble:return w1({chain:y,...T});case _y.Chain.Maya:case _y.Chain.THORChain:return kT({chain:y,...T});default:throw new _y.SwapKitError("toolbox_cosmos_not_supported",{chain:y})}};var t2=l(()=>{hf();$T();_y=require("@swapkit/helpers");hf();$T()});var lf={};x0(lf,{verifySignature:()=>c2,transferMsgAmino:()=>zT,toBase64:()=>XU,resolveThorchainSweepAssetValue:()=>bf,parseAminoMessageForDirectSigning:()=>Gy,getThorchainNativeFee:()=>A1,getSweepAssetValue:()=>sy,getSignerFromPrivateKey:()=>JU,getSignerFromPhrase:()=>CT,getMsgSendDenom:()=>Uy,getFeeRateFromSwapKit:()=>WU,getFeeAmountForDenom:()=>wf,getDenomWithChain:()=>E1,getDefaultChainFee:()=>c0,getCosmosToolbox:()=>BU,getCosmosAddressValidator:()=>d2,getAssetFromDenom:()=>YT,fromBase64:()=>UU,fetchFeeRateFromSwapKit:()=>OT,estimateTransactionFee:()=>zU,depositMsgAmino:()=>GT,createTransaction:()=>LT,createThorchainToolbox:()=>kT,createStargateClient:()=>yy,createSigningStargateClient:()=>Ey,createOfflineStargateClient:()=>QT,createDefaultRegistry:()=>Sy,createDefaultAminoTypes:()=>Wy,createCosmosToolbox:()=>w1,cosmosCreateTransaction:()=>ZT,convertToSignable:()=>zy,buildTransferTx:()=>l2,buildEncodedTxBody:()=>K1,buildDepositTx:()=>u2,buildAminoMsg:()=>vf,bech32ToBase64:()=>P1,base64ToBech32:()=>j1,YUM_KUJIRA_FACTORY_DENOM:()=>S2,USK_KUJIRA_FACTORY_DENOM:()=>qT,THORCHAIN_GAS_VALUE:()=>ZU,MAYA_GAS_VALUE:()=>YU,DEFAULT_NOBLE_FEE_MAINNET:()=>w2,DEFAULT_KUJI_FEE_MAINNET:()=>V2,DEFAULT_COSMOS_FEE_MAINNET:()=>K2});module.exports=E0(lf);var uf=l(()=>{MT();t2();S1()});function DU({builder:y,grouping:T="na",orders:H}){return{builder:y,grouping:T,orders:H,type:"order"}}function RU({cancels:y}){return{cancels:y,type:"cancel"}}function FU({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function IU({oid:y,order:T}){return{oid:y,order:T,type:"modify"}}function xU({modifies:y}){return{modifies:y,type:"batchModify"}}function PU({asset:y,isCross:T,leverage:H}){return{asset:y,isCross:T,leverage:H,type:"updateLeverage"}}function jU({asset:y,isBuy:T,ntli:H}){return{asset:y,isBuy:T,ntli:H,type:"updateIsolatedMargin"}}function AU({asset:y,leverage:T}){return{asset:y,leverage:T,type:"topUpIsolatedOnlyMargin"}}function EU({time:y}){return{time:y,type:"scheduleCancel"}}function SU({amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:X}){return{amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:X,type:"usdClassTransfer"}}function KU({amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:X,nonce:U,signatureChainId:q,sourceDex:Q,token:Z}){return{amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:X,nonce:U,signatureChainId:q,sourceDex:Q,token:Z,type:"sendAsset"}}function VU({agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:X}){return{agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:X,type:"approveAgent"}}function wU({builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:X}){return{builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:X,type:"approveBuilderFee"}}function vU({hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,validator:X,wei:U}){return{hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,type:"tokenDelegate",validator:X,wei:U}}function l0(...y){let T=y.reduce((X,U)=>X+U.length,0),H=new Uint8Array(T),f=0;for(let X of y)H.set(X,f),f+=X.length;return H}function mU(y,T,H){if(H<T)return new Uint8Array([y+H]);if(H<=255)return new Uint8Array([y+T,H]);if(H<=65535)return new Uint8Array([y+T+1,H>>8,H&255]);return new Uint8Array([y+T+2,H>>>24&255,H>>>16&255,H>>>8&255,H&255])}function Cy(y,T){let H=new Uint8Array(T),f=y;for(let X=T-1;X>=0;X-=1)H[X]=Number(f&0xffn),f>>=8n;return H}function r2(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return l0(new Uint8Array([205]),Cy(y,2));if(y<=0xffffffffn)return l0(new Uint8Array([206]),Cy(y,4));return l0(new Uint8Array([207]),Cy(y,8))}if(y>=-32n)return new Uint8Array([256+Number(y)]);if(y>=-128n)return new Uint8Array([208,256+Number(y)]);if(y>=-32768n)return l0(new Uint8Array([209]),Cy(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return l0(new Uint8Array([210]),Cy(BigInt.asUintN(32,y),4));return l0(new Uint8Array([211]),Cy(BigInt.asUintN(64,y),8))}function e2(y){let T=pU.encode(y);if(T.length<32)return l0(new Uint8Array([160+T.length]),T);return l0(mU(217,0,T.length),T)}function gU(y){let T=y.map((f)=>BT(f)),H=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return l0(H,...T)}function oU(y){let T=Object.entries(y).filter(([,f])=>typeof f<"u"),H=T.length<16?new Uint8Array([128+T.length]):T.length<=65535?new Uint8Array([222,T.length>>8,T.length&255]):new Uint8Array([223,T.length>>>24&255,T.length>>>16&255,T.length>>>8&255,T.length&255]);return l0(H,...T.flatMap(([f,X])=>[e2(f),BT(X)]))}function BT(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return e2(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new pf.SwapKitError("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return r2(BigInt(y))}if(typeof y==="bigint")return r2(y);if(y instanceof Uint8Array){let T=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return l0(T,y)}if(Array.isArray(y))return gU(y);if(typeof y==="object")return oU(y);throw new pf.SwapKitError("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function nU(y){let T=y.startsWith("0x")?y.slice(2):y;if(T.length%2!==0||/[^a-fA-F0-9]/u.test(T))throw new pf.SwapKitError("helpers_invalid_params",{hexValue:y});let H=new Uint8Array(T.length/2);for(let f=0;f<T.length;f+=2)H[f/2]=Number.parseInt(T.slice(f,f+2),16);return H}function yH(y){return{domain:bU,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...hU.Agent]}}}function fH(y){let T=uU[y.type],H=lU[y.type],{type:f,...X}=y;return{domain:{chainId:Number.parseInt(X.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:a2,version:"1"},message:{...X,hyperliquidChain:X.hyperliquidChain||s2},primaryType:T,types:{[T]:H}}}function TH(y){let T=mf.Signature.from(y);return{r:T.r,s:T.s,v:T.v}}function HH(y,T,{expiresAfter:H,vaultAddress:f}={}){let X=BT(y),U=Cy(BigInt(T),8),q=f?l0(new Uint8Array([1]),nU(f.toLowerCase())):new Uint8Array([0]),Q=typeof H==="number"?l0(new Uint8Array([0]),Cy(BigInt(H),8)):new Uint8Array;return mf.keccak256(l0(X,U,q,Q))}function XH(y){let T=y.hyperliquidChain||s2;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:T};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:T};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:T};case"tokenDelegate":return{...y,hyperliquidChain:T,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:T};default:return y}}var pf,mf,a2="0x0000000000000000000000000000000000000000",bU,hU,s2="Mainnet",lU,uU,pU;var UH=l(()=>{pf=require("@swapkit/helpers"),mf=require("ethers"),bU={chainId:1337,name:"Exchange",verifyingContract:a2,version:"1"},hU={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},lU={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"}]},uU={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},pU=new TextEncoder});function d0(y,T){if(!FT(y))throw new J0.SwapKitError(T,{address:y});return y.toLowerCase()}async function Ky(y){let T=await gf();return J0.RequestClient.post(`${T}/info`,{json:y})}function sU({dex:y,user:T}){return Ky({...y?{dex:y}:{},type:"clearinghouseState",user:d0(T,"helpers_invalid_params")})}function JH({user:y}){return Ky({type:"spotClearinghouseState",user:d0(y,"helpers_invalid_params")})}function eU({dex:y,user:T}){return Ky({...y?{dex:y}:{},type:"openOrders",user:d0(T,"helpers_invalid_params")})}function y9({dex:y,user:T}){return Ky({...y?{dex:y}:{},type:"frontendOpenOrders",user:d0(T,"helpers_invalid_params")})}function f9({oidOrCloid:y,user:T}){return Ky({oid:y,type:"orderStatus",user:d0(T,"helpers_invalid_params")})}function T9({aggregateByTime:y,user:T}){return Ky({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:d0(T,"helpers_invalid_params")})}function H9({aggregateByTime:y,endTime:T,startTime:H,user:f}){return Ky({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof T==="number"?{endTime:T}:{},startTime:H,type:"userFillsByTime",user:d0(f,"helpers_invalid_params")})}function qH({coin:y,token:T,value:H,spotMeta:f}){if(!H||Number(H)<=0)return null;let X=y?.toUpperCase()||`TOKEN-${T||"UNKNOWN"}`,U=cU[X]||YH,q=f?.tokens?.find((Z)=>Z.name===y||T!==void 0&&Z.index===Number(T)),Q=q?`${fy}.${X}-${q.name}:${q.tokenId}`:`${fy}.${X}`;return new J0.AssetValue({decimal:U,identifier:Q,value:H})}function X9(y){let T=new Map;for(let H of y){let f=H.toString({includeSynthProtocol:!0}),X=T.get(f);T.set(f,X?X.add(H):H)}if(![...T.values()].some((H)=>H.isGasAsset||H.ticker==="HYPE")){let H=J0.AssetValue.from({chain:fy,value:0});T.set(H.toString({includeSynthProtocol:!0}),H)}return[...T.values()]}async function gf(){try{return await J0.getRPCUrl(fy)}catch{let[y]=J0.getChainConfig(fy).rpcUrls;if(!y)throw new J0.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:fy});return y}}async function RT(){return`${await gf()}/exchange`}function U9(y){let T=aU[y.type],{type:H,...f}=y,X=rU[H];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:tU,version:"1"},message:f,primaryType:T,types:{[T]:X}}}async function WH({action:y,expiresAfter:T,nonce:H,vaultAddress:f}){let X=H||Date.now(),U=f?d0(f,"helpers_invalid_params"):void 0,q=await RT(),Q=HH(y,X,{expiresAfter:T,vaultAddress:U});return{action:y,endpoint:q,expiresAfter:T,nonce:X,typedData:yH(Q),vaultAddress:U}}async function zH({action:y,nonce:T,signatureChainId:H}){let f=T||y.nonce||Date.now(),X=H||y.signatureChainId||"0xa4b1",U=XH({...y,nonce:f,signatureChainId:X});return{action:U,endpoint:await RT(),nonce:f,typedData:fH(U)}}async function q9({assetValue:y,sender:T,token:H}){let f=await JH({user:T}),X=(f.spotState?.balances||f.balances||[]).find(({coin:U})=>U&&H.startsWith(`${U}:`))?.total;if(!X||Number(X)<=0)throw new J0.SwapKitError("toolbox_sweep_amount_too_low",{asset:y.toString(),balance:X||"0"});return X}async function DT({assetValue:y,recipient:T,sender:H,signatureChainId:f,sweep:X,time:U}){let q=d0(T,"core_transaction_invalid_recipient_address"),Q=d0(H,"core_transaction_invalid_sender_address"),Z=y.address;if(!Z)throw new J0.SwapKitError("helpers_invalid_params",{asset:y.toString(),from:Q});let Y=X?await q9({assetValue:y,sender:Q,token:Z}):y.getValue("string"),W=await RT(),k=U||Date.now(),M={amount:Y,destination:q,hyperliquidChain:dU,signatureChainId:f||iU,time:k,token:Z,type:"spotSend"};return{action:M,endpoint:W,nonce:k,typedData:U9(M)}}async function QH(y){let T=await J0.RequestClient.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(T.status!=="ok")throw new J0.SwapKitError("core_transaction_failed",{response:T});return T}async function Q9(y,T){let H=await gf(),f=T-5000;for(let X=0;X<5;X++){if(X>0)await new Promise((U)=>setTimeout(U,1000));try{let U=await J0.RequestClient.post(`${H}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),q=Array.isArray(U)?U.find((Q)=>Q.time&&Q.time>=T&&(Q.delta?.type==="spotTransfer"||Q.delta?.type==="internalTransfer")):void 0;if(q?.hash)return q.hash}catch{}}return""}function FT(y){return y.startsWith("0x")&&B1(y)}function Z9(y){let T=v0(fy),H=y&&"index"in y?y.index||0:0,f=J0.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:J0.updateDerivationPath(J0.NetworkDerivationPath[fy],{index:H})),X,U=!1;function q(){if(U)return X;return X=ey.match(y).with({phrase:ey.P.string},({phrase:M})=>{return ZH.HDNodeWallet.fromPhrase(M,void 0,f)}).with({signer:ey.P.not(ey.P.nullish)},({signer:M})=>M).otherwise(()=>{return}),U=!0,X}async function Q(){let M=q();return M?await M.getAddress():""}async function Z(M){let L=q();if(!L)throw new J0.SwapKitError("toolbox_hypercore_no_signer");let _=await L.signTypedData(M.typedData.domain,M.typedData.types,M.typedData.message);return{action:M.action,endpoint:M.endpoint,nonce:M.nonce,signature:TH(_),..."expiresAfter"in M?{expiresAfter:M.expiresAfter}:{},..."vaultAddress"in M?{vaultAddress:M.vaultAddress}:{}}}async function Y(M){let L=d0(M,"helpers_invalid_params");try{let _=await gf(),[C,B,R]=await Promise.all([J0.RequestClient.post(`${_}/info`,{json:{type:"spotClearinghouseState",user:L}}),J0.RequestClient.post(`${_}/info`,{json:{type:"clearinghouseState",user:L}}),J0.RequestClient.post(`${_}/info`,{json:{type:"spotMeta"}})]),A=(C.spotState?.balances||C.balances||[]).map(({coin:P,token:K,total:O})=>qH({coin:P,spotMeta:R,token:K,value:O})).filter((P)=>!!P),x=qH({coin:"USDC",spotMeta:R,value:B.withdrawable||B.marginSummary?.accountValue||B.marginSummary?.totalRawUsd});return X9(x?[...A,x]:A)}catch{return T(L)}}async function W({sweep:M,...L}){let _=q();if(!_)throw new J0.SwapKitError("toolbox_hypercore_no_signer");let C=L.sender||await _.getAddress(),B=await DT({...L,feeRate:0,sender:C,sweep:M}),R=await Z(B);return await QH(R),Q9(C,B.nonce)}function k(){return J0.AssetValue.from({chain:fy,value:0})}return{broadcastTransaction:QH,createL1ActionRequest:WH,createTransaction:DT,createUserSignedActionRequest:zH,estimateTransactionFee:k,getAddress:Q,getBalance:Y,getState:{clearinghouse:sU,frontendOpenOrders:y9,openOrders:eU,orderStatus:f9,spotClearinghouse:JH,userFills:T9,userFillsByTime:H9},signTransaction:Z,transfer:W,validateAddress:FT}}var J0,ZH,ey,fy,YH,cU,dU="Mainnet",iU="0xa4b1",tU="0x0000000000000000000000000000000000000000",rU,aU;var GH=l(()=>{yT();Xy();UH();J0=require("@swapkit/helpers"),ZH=require("ethers"),ey=require("ts-pattern"),fy=J0.Chain.Hype,{baseDecimal:YH}=J0.getChainConfig(fy),cU={HYPE:YH,USDC:6,USDT:6},rU={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},aU={spotSend:"HyperliquidTransaction:SpotSend"}});var IT={};x0(IT,{validateHyperCoreAddress:()=>FT,getHyperCoreToolbox:()=>Z9,createUserSignedActionRequest:()=>zH,createTransaction:()=>DT,createL1ActionRequest:()=>WH,buildUsdClassTransferAction:()=>SU,buildUpdateLeverageAction:()=>PU,buildUpdateIsolatedMarginAction:()=>jU,buildTopUpIsolatedOnlyMarginAction:()=>AU,buildTokenDelegateAction:()=>vU,buildSendAssetAction:()=>KU,buildScheduleCancelAction:()=>EU,buildOrderAction:()=>DU,buildModifyAction:()=>IU,buildCancelByCloidAction:()=>FU,buildCancelAction:()=>RU,buildBatchModifyAction:()=>xU,buildApproveBuilderFeeAction:()=>wU,buildApproveAgentAction:()=>VU});module.exports=E0(IT);var xT=l(()=>{GH()});async function _H(y){let T=H0.AssetValue.from({address:y,chain:H0.Chain.Solana});if(T.symbol!=="UNKNOWN")return{decimals:T.decimal||0,id:y,logoURI:T.getIconUrl(),name:T.symbol,symbol:T.ticker};let H=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(H);if(!f.ok)return null;let X=await f.json();if(!Array.isArray(X)||X.length===0)return null;return X.find((q)=>q.id===y)||null}catch{return null}}async function Y9(y){let T=await qy(),{PublicKey:H}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),X=new H(y),{baseDecimal:U}=H0.getChainConfig(H0.Chain.Solana),q=await T.getBalance(X),Q=[H0.AssetValue.from({chain:H0.Chain.Solana,fromBaseDecimal:U,value:q||0})],Z=await T.getParsedTokenAccountsByOwner(X,{programId:f});for(let{account:Y}of Z.value){let W=Y.data.parsed.info,k=W.mint,M=W.tokenAmount.amount;if(Number(M)===0)continue;let L=await _H(k),_=L?.symbol||"UNKNOWN",C=L?.decimals||W.tokenAmount.decimals;Q.push(H0.AssetValue.from({asset:`${H0.Chain.Solana}.${_}-${k}`,fromBaseDecimal:C,value:M}))}return Q}function jT(y){try{let T=new Ty.PublicKey(y);return Ty.PublicKey.isOnCurve(T.toBytes())}catch{return!1}}function J9(y){let T=y&&"index"in y?y.index||0:0,H=H0.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:H0.updateDerivationPath(H0.NetworkDerivationPath[H0.Chain.Solana],{index:T})),f;async function X(){if(f)return f;return f=await b1.match(y).with({phrase:b1.P.string},({phrase:q})=>PT({derivationPath:H,phrase:q})).with({signer:b1.P.any},({signer:q})=>q).otherwise(()=>{return}),f}async function U(){let q=await X();return q?.publicKey?MH(q.publicKey):""}return{broadcastTransaction:of(qy),createKeysForPath:PT,createTransaction:AT(qy),createTransactionFromInstructions:L9,estimateTransactionFee:W9(qy),getAddress:U,getAddressFromPubKey:MH,getBalance:v0(H0.Chain.Solana),getBalanceFromRPC:Y9,getConnection:qy,getPubkeyFromAddress:(q)=>new Ty.PublicKey(q),signAndBroadcastTransaction:async(q)=>{let Q=await LH(qy,X)(q);return of(qy)(Q)},signTransaction:LH(qy,X),transfer:M9(qy,X),validateAddress:jT}}function W9(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:X,sender:U})=>{let q=await y(),Q=await AT(y)({assetValue:H,isProgramDerivedAddress:X,memo:f,recipient:T,sender:U}),Z=await CH(q,Q),{baseDecimal:Y}=H0.getChainConfig(H0.Chain.Solana);return H0.AssetValue.from({chain:H0.Chain.Solana,fromBaseDecimal:Y,value:Z})}}async function CH(y,T){let H=await y.getFeeForMessage(T.compileMessage());if(H.value===null)throw new H0.SwapKitError("toolbox_fee_estimation_failed","Could not estimate Solana fee.");return H.value}async function qy(){let{Connection:y}=await import("@solana/web3.js"),T=await H0.getRPCUrl(H0.Chain.Solana);return new y(T,{commitment:"confirmed",fetchMiddleware:(H,f,X)=>{let U={};for(let[q,Q]of Object.entries(f?.headers??{})){let Z=q.toLowerCase();if(Z!=="pragma"&&Z!=="solana-client")U[q]=Q}X(H,{...f,headers:U})}})}function z9(y){return async({assetValue:T,recipient:H,sender:f,isProgramDerivedAddress:X,sweep:U})=>{let q=await y(),Q=new Ty.PublicKey(f);if(T.isGasAsset){let{Transaction:Z,SystemProgram:Y}=await import("@solana/web3.js");return new Z().add(Y.transfer({fromPubkey:Q,lamports:U?0:T.getBaseValue("number"),toPubkey:new Ty.PublicKey(H)}))}if(T.address)return G9({amount:U?0:T.getBaseValue("number"),connection:q,decimals:T.decimal,from:Q,isProgramDerivedAddress:X,recipient:H,sweep:U,tokenAddress:T.address});return}}async function G9({tokenAddress:y,recipient:T,from:H,connection:f,amount:X,decimals:U,isProgramDerivedAddress:q,sweep:Q}){let{getAssociatedTokenAddress:Z,getAccount:Y,createAssociatedTokenAccountInstruction:W,createTransferCheckedInstruction:k}=await import("@solana/spl-token"),{Transaction:M}=await import("@solana/web3.js"),L=new M,_=new Ty.PublicKey(y),C=await Z(_,H),B=new Ty.PublicKey(T),R=await Z(_,B,q),A=!1;try{await Y(f,R),A=!0}catch{}if(!A)L.add(W(H,R,B,_));let x=Q?BigInt((await f.getTokenAccountBalance(C)).value.amount):X;if(Q&&x<=0n)throw new H0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:y,balance:x.toString()}});return L.add(k(C,_,R,H,x,U)),L}function AT(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:X,sender:U,sweep:q})=>{let{createMemoInstruction:Q}=await import("@solana/spl-memo"),Z=new Ty.PublicKey(U);if(!(X||jT(T)))throw new H0.SwapKitError("core_transaction_invalid_recipient_address");let Y=await y(),W=await z9(y)({assetValue:H,isProgramDerivedAddress:X,recipient:T,sender:U,sweep:q});if(!W)throw new H0.SwapKitError("core_transaction_invalid_sender_address");if(f)W.add(Q(f));let k=await Y.getLatestBlockhash();if(W.recentBlockhash=k.blockhash,W.feePayer=Z,q&&H.isGasAsset){let[M,L,_]=await Promise.all([Y.getBalance(Z),CH(Y,W),Y.getMinimumBalanceForRentExemption(0)]),C=M-L-_;if(C<=0)throw new H0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{balance:M,fee:L,rentReserve:_}});let{SystemProgram:B}=await import("@solana/web3.js");W.instructions[0]=B.transfer({fromPubkey:Z,lamports:C,toPubkey:new Ty.PublicKey(T)})}return W}}async function L9({instructions:y}){let{Transaction:T}=await import("@solana/web3.js"),H=new T().add(...y);if(!H)throw new H0.SwapKitError("core_transaction_invalid_sender_address");return H}function M9(y,T){return async({recipient:H,assetValue:f,memo:X,isProgramDerivedAddress:U,sweep:q})=>{let Q=await T();if(!Q)throw new H0.SwapKitError("core_transaction_invalid_sender_address");let Z=Q.publicKey?.toString()??(await Q.connect()).publicKey.toString(),Y=await AT(y)({assetValue:f,isProgramDerivedAddress:U,memo:X,recipient:H,sender:Z,sweep:q});if("signTransaction"in Q){let W=await Q.signTransaction(Y);return of(y)(W)}return Y.sign(Q),of(y)(Y)}}function of(y){return async(T)=>{return(await y()).sendRawTransaction(T.serialize())}}function LH(y,T){return async(H)=>{let f=await T();if(!f)throw new H0.SwapKitError("toolbox_solana_no_signer");let{VersionedTransaction:X}=await import("@solana/web3.js");if(!(H instanceof X)){let q=await(await y()).getLatestBlockhash();H.recentBlockhash=q.blockhash,H.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(H);return H.sign([f]),H}}async function PT({phrase:y,derivationPath:T=H0.DerivationPath.SOL}){let{HDKey:H}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:X}=await import("@solana/web3.js"),U=f(y),q=H.fromMasterSeed(U);return X.fromSeed(q.derive(T,!0).privateKey)}function MH(y){return y.toString()}var Ty,H0,b1;var NH=l(()=>{Xy();Ty=require("@solana/web3.js"),H0=require("@swapkit/helpers"),b1=require("ts-pattern")});var ET={};x0(ET,{validateSolanaAddress:()=>jT,getSolanaToolbox:()=>J9,fetchTokenMetaData:()=>_H,createKeysForPath:()=>PT});module.exports=E0(ET);var ST=l(()=>{NH()});function h1(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function cf({phrase:y,derivationPath:T=s.DerivationPath.STRK}){let{HDKey:H}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:X,hash:U,encode:q,CallData:Q}=await import("starknet"),Z=f(y),W=H.fromMasterSeed(Z).derive(T);if(!W.privateKey)throw new s.SwapKitError("toolbox_starknet_no_signer");let k=q.addHexPrefix(Buffer.from(W.privateKey).toString("hex")),M=X.starkCurve.grindKey(k),L=q.addHexPrefix(M),_=X.starkCurve.getStarkKey(L),C=Q.compile([_,0]);return{address:U.calculateContractAddressFromHash(_,KT,C,0),privateKey:L,publicKey:_}}async function VT({phrase:y,derivationPath:T=s.DerivationPath.STRK}){let{Account:H,RpcProvider:f}=await import("starknet"),{privateKey:X,address:U}=await cf({derivationPath:T,phrase:y}),q=await s.getRPCUrl(s.Chain.Starknet),Q=new f({nodeUrl:q});return new H({address:U,provider:Q,signer:X})}function kH(y){let T=s.Chain.Starknet,H=y&&"index"in y?y.index||0:0,f=s.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:s.updateDerivationPath(s.NetworkDerivationPath[T],{index:H})),X,U,q;async function Q(){if(U)return U;if(X)return U=X.provider,U;let{RpcProvider:G}=await import("starknet"),J=await s.getRPCUrl(T);return U=new G({nodeUrl:J}),U}async function Z(G){let J=await Q(),N=G||await M();if(!N)return!1;try{return await J.getClassHashAt(N),!0}catch(D){if(D instanceof Error&&D.message.includes("Contract not found"))return!1;let F=D;if(F?.code===20||F?.code===19)return!1;throw D}}async function Y(){let{CallData:G,hash:J}=await import("starknet"),N=await Q(),D=await k();if(!D)throw new s.SwapKitError("toolbox_starknet_no_signer");if(!q)throw new s.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await Z())return D.address;let j=G.compile([q,0]);if(J.calculateContractAddressFromHash(q,KT,j,0).toLowerCase()!==D.address.toLowerCase())throw new s.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let v={addressSalt:q,classHash:KT,constructorCalldata:j},{transaction_hash:m}=await D.deployAccount(v);return await N.waitForTransaction(m),m}async function W(){if(!await Z()){if(!q)throw new s.SwapKitError({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 Y()}}async function k(){if(X)return X;return X=await Ny.match(y).with({phrase:Ny.P.string},async({phrase:G})=>{let{Account:J,RpcProvider:N}=await import("starknet"),{privateKey:D,address:F,publicKey:j}=await cf({derivationPath:f,phrase:G});q=j;let V=await s.getRPCUrl(s.Chain.Starknet),v=new N({nodeUrl:V});return new J({address:F,provider:v,signer:D})}).with({address:Ny.P.string,privateKey:Ny.P.string},async({privateKey:G,address:J})=>{let{Account:N}=await import("starknet"),D=await Q();return new N({address:J,provider:D,signer:G})}).with({signer:Ny.P.instanceOf(Object)},({signer:G})=>G).otherwise(()=>{return}),X}async function M(){return(await k())?.address??""}async function L(G,J){let N=await Q(),{uint256:D,CallData:F}=await import("starknet"),[j="0",V="0"]=await N.callContract({calldata:F.compile({account:G}),contractAddress:J,entrypoint:"balanceOf"});return D.uint256ToBN({high:V,low:j})}async function _(G){let{baseDecimal:J}=s.getChainConfig(T),N=[],D=[nf,OH];for(let F of D)try{let j=await L(G,F);Ny.match(F).with(nf,()=>{N.push(s.AssetValue.from({chain:T,fromBaseDecimal:J,value:j}))}).with(OH,()=>{if(j>0n)N.push(s.AssetValue.from({asset:`${T}.ETH-${F}`,fromBaseDecimal:J,value:j}))}).otherwise(()=>{})}catch{}return N}async function C(G){let J=await k();if(J&&(!G||J.address.toLowerCase()===G.toLowerCase()))return J;if(G){let{Account:N}=await import("starknet"),D=await Q();return new N({address:G,provider:D,signer:"0x0"})}throw new s.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer"}})}async function B(G,J){try{let N=await C(J),{overall_fee:D}=await N.estimateInvokeFee(G);if(D<=0n)throw new s.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Sweep fee estimation returned a non-positive fee",sender:J}});return D}catch(N){throw new s.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Unable to estimate the sweep fee. Verify RPC availability and that the sender account is deployed.",sender:J}},N)}}async function R(G,J){let N=await z(G),D=J.isGasAsset?N.find(({isGasAsset:F})=>F):N.find(({address:F})=>F?.toLowerCase()===J.address?.toLowerCase());if(D)return D.getBaseValue("bigint");if(J.isGasAsset)return L(G,nf);if(J.address)return L(G,J.address);return 0n}async function A({recipient:G,assetValue:J,sender:N,sweep:D}){let{CallData:F,uint256:j}=await import("starknet");if(!h1(G))throw new s.SwapKitError("core_transaction_invalid_recipient_address",{address:G});let V=J.isGasAsset?nf:J.address;if(!V)throw new s.SwapKitError("toolbox_starknet_invalid_address",{address:V,assetValue:J});let v=J.getBaseValue("bigint");if(D){let Z0=N??await M();if(!h1(Z0))throw new s.SwapKitError("core_transaction_invalid_sender_address",{address:Z0});if(J.isGasAsset){let D0=[{calldata:F.compile([G,j.bnToUint256(1n)]),contractAddress:V,entrypoint:"transfer"}],I=await B(D0,Z0);v=await R(Z0,J)-I}else v=await R(Z0,J);if(v<=0n)throw new s.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amount:v.toString(),asset:J.toString()}})}let m=j.bnToUint256(v);return[{calldata:F.compile([G,m]),contractAddress:V,entrypoint:"transfer"}]}async function x({recipient:G,assetValue:J,sender:N}){let{baseDecimal:D}=s.getChainConfig(s.Chain.Starknet);try{let F=await A({assetValue:J,recipient:G}),V=await(await C(N)).estimateInvokeFee(F);if(V?.overall_fee)return s.AssetValue.from({chain:T,fromBaseDecimal:D,value:V.overall_fee})}catch(F){throw new s.SwapKitError("toolbox_starknet_fee_estimation_failed",F)}return s.AssetValue.from({chain:T,value:"0.00001"})}async function P({recipient:G,assetValue:J,memo:N,sweep:D}){let F=await k();if(!F)throw new s.SwapKitError("toolbox_starknet_no_signer");await W();let j=await A({assetValue:J,memo:N,recipient:G,sender:F.address,sweep:D});return(await F.execute(j)).transaction_hash}async function K(G){let J=await k();if(!J)throw new s.SwapKitError("toolbox_starknet_no_signer");let N=await J.signMessage(G);return Array.isArray(N)?N:[N.r.toString(),N.s.toString()]}async function O(G){let J=await k();if(!J)throw new s.SwapKitError("toolbox_starknet_no_signer");return await W(),(await J.execute(G)).transaction_hash}function $(G){return O(G)}async function z(G,J=!0){try{return await v0(T)(G,J)}catch{return _(G)}}return{broadcastTransaction:O,createKeysForPath:VT,createTransaction:A,deployAccount:Y,estimateTransactionFee:x,getAddress:M,getBalance:z,getProvider:Q,isAccountDeployed:Z,signAndBroadcastTransaction:$,signMessage:K,transfer:P,validateAddress:h1}}var s,Ny,nf="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",OH="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",KT="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var $H=l(()=>{Xy();s=require("@swapkit/helpers"),Ny=require("ts-pattern")});var df={};x0(df,{validateStarknetAddress:()=>h1,starknetCreateKeysForPath:()=>VT,getStarknetToolbox:()=>kH,deriveStarknetKeys:()=>cf});module.exports=E0(df);var tf=l(()=>{$H()});async function vT(y,T,H,f){let X=[],U,q=0n;while(!0){let Q=await y.getCoins({coinType:H,cursor:U,owner:T});if(X.push(...Q.data),q+=Q.data.reduce((Z,Y)=>Z+BigInt(Y.balance),0n),!Q.hasNextPage||f!==void 0&&q>=f)return X;U=Q.nextCursor}}async function RH(y){return BigInt(await y.getReferenceGasPrice())}function af({coinObjectId:y,digest:T,version:H}){return{digest:T,objectId:y,version:H}}function C9(y,T,H,f=!1){let X=T.reduce((W,k)=>W+BigInt(k.balance),0n);if(X<H)throw new q0.SwapKitError("toolbox_sui_insufficient_balance",{available:X.toString(),required:H.toString()});let{selectedCoins:U}=T.reduce((W,k)=>{if(W.total>=H)return W;return{selectedCoins:[...W.selectedCoins,k],total:W.total+BigInt(k.balance)}},{selectedCoins:[],total:0n}),q=U[0],Q=y.objectRef(af(q)),Z=U.slice(1).map((W)=>y.objectRef(af(W)));if(Z.length>0)y.mergeCoins(Q,Z);if(f)return Q;let[Y]=y.splitCoins(Q,[H]);return Y}function FH(y,T){let H=y.reduce((f,X)=>f+BigInt(X.balance),0n);if(H<=0n)throw new q0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:T,available:H.toString()}});return H}function IH(y){if(y.length>wT)throw new q0.SwapKitError({errorKey:"toolbox_sui_transaction_creation_error",info:{coinCount:y.length,maxGasPaymentCoins:wT,reason:`SUI transactions support at most ${wT} gas payment coins`}})}function N9(y,T,H,f,X,U){let q=H.getBaseValue("bigint");if(U)FH(T,H.toString()),IH(T);else xH(T,q+BigInt(f));if(y.setGasPayment(T.map(af)),U)y.transferObjects([y.gas],X);else{let[Q]=y.splitCoins(y.gas,[H.getBaseValue("string")]);y.transferObjects([Q],X)}}function xH(y,T){let H=y.reduce((f,X)=>f+BigInt(X.balance),0n);if(H<T)throw new q0.SwapKitError("toolbox_sui_insufficient_balance",{available:H.toString(),required:T.toString()})}async function O9({assetValue:y,gasBudget:T,recipient:H,sender:f,suiClient:X,sweep:U,tx:q}){let Q=y.getBaseValue("bigint"),[Z,Y]=await Promise.all([RH(X),vT(X,f,rf,U?void 0:Q+BigInt(T))]);if(q.setGasPrice(Z),N9(q,Y,y,T,H,U),U){let W=Y.reduce((k,M)=>k+BigInt(M.balance),0n);return W<BigInt(T)?W:T}return T}async function k9({assetValue:y,gasBudget:T,recipient:H,sender:f,suiClient:X,sweep:U,tx:q}){let Q=y.address;if(!Q)throw new q0.SwapKitError("toolbox_sui_missing_coin_type");let Z=y.getBaseValue("bigint"),[Y,W,k]=await Promise.all([RH(X),vT(X,f,rf,BigInt(T)),vT(X,f,Q,U?void 0:Z)]);if(!k.length&&!U)throw new q0.SwapKitError("toolbox_sui_no_coins_found",{coinType:Q});let M=U?FH(k,y.toString()):Z;if(xH(W,BigInt(T)),U)IH(W);q.setGasPrice(Y),q.setGasPayment(W.map(af));let L=C9(q,k,M,U);q.transferObjects([L],H)}function PH(y){try{return DH.isValidSuiAddress(y)}catch{return!1}}function BH(y){return"signWithIntent"in y}function $9({provider:y,...T}={}){let H;async function f(){if(H)return H;return H=await l1.match(T).with({phrase:l1.P.string},async({phrase:_})=>{let{Ed25519Keypair:C}=await import("@mysten/sui/keypairs/ed25519");return C.deriveKeypair(_)}).with({signer:l1.P.any},({signer:_})=>_).otherwise(()=>{return}),H}async function X(_=y){let{SuiJsonRpcClient:C}=await import("@mysten/sui/jsonRpc");return new C({network:"mainnet",url:_||q0.getRPCUrlSync(q0.Chain.Sui)})}async function U(){return(await f())?.toSuiAddress()||""}function q(_){try{let C=q0.AssetValue.from({address:_,chain:q0.Chain.Sui});return{asset:C.toString(),decimals:C.decimal}}catch{}return null}async function Q(_){let C=_||await U();if(!C)throw new q0.SwapKitError("toolbox_sui_address_required");let{baseDecimal:B,chain:R}=q0.getChainConfig(q0.Chain.Sui);try{let x=await(await X()).getAllBalances({owner:C}),P=x.find(({coinType:O})=>O===rf)?.totalBalance||"0",K=[q0.AssetValue.from({chain:R,fromBaseDecimal:B,value:P})];for(let{coinType:O,totalBalance:$}of x){if(O===rf||Number($)<=0)continue;let z=q(O);if(z)K.push(q0.AssetValue.from({asset:z.asset,fromBaseDecimal:z.decimals,value:$}))}return K}catch{return[q0.AssetValue.from({chain:R})]}}async function Z(_){let C=q0.AssetValue.from({chain:q0.Chain.Sui,value:"0.01"});if(!_)return C;try{let B=await X(),{txBytes:R}=await Y(_),{effects:{status:A,gasUsed:x}}=await B.dryRunTransactionBlock({transactionBlock:R});if(A.status!=="success")return C;let{baseDecimal:P}=q0.getChainConfig(q0.Chain.Sui),K=BigInt(x.computationCost)+BigInt(x.storageCost)-BigInt(x.storageRebate);return q0.AssetValue.from({chain:q0.Chain.Sui,fromBaseDecimal:P,value:K.toString()})}catch{return C}}async function Y({recipient:_,assetValue:C,gasBudget:B,sender:R,sweep:A}){let{Transaction:x}=await import("@mysten/sui/transactions"),P=R||await U(),K=B||_9;if(!P)throw new q0.SwapKitError("toolbox_sui_no_sender");try{let O=await X(),$=new x;$.setSender(P);let z={assetValue:C,gasBudget:K,recipient:_,sender:P,suiClient:O,sweep:A,tx:$},G;if(C.isGasAsset||C.symbol==="SUI"){let N=await O9(z);if(BigInt(N)<BigInt(K))G=BigInt(N);$.setGasBudget(N)}else await k9(z),$.setGasBudget(K);let J=await $.build({client:O});if(G!==void 0){let{effects:{status:N}}=await O.dryRunTransactionBlock({transactionBlock:J});if(N.status!=="success")throw new q0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:C.toString(),budget:G.toString(),error:N.error}})}return{tx:$,txBytes:J}}catch(O){if(O instanceof q0.SwapKitError)throw O;throw new q0.SwapKitError("toolbox_sui_transaction_creation_error",{error:O})}}async function W(_){let C=await f();if(!C)throw new q0.SwapKitError("toolbox_sui_no_signer");if(_ instanceof Uint8Array)return C.signTransaction(_);let{txBytes:B}="tx"in _?_:await Y(_);return C.signTransaction(B)}async function k({assetValue:_,gasBudget:C,recipient:B,sweep:R}){let A=await f();if(!A)throw new q0.SwapKitError("toolbox_sui_no_signer");let x=A.toSuiAddress()||await U();if(!x)throw new q0.SwapKitError("toolbox_sui_no_sender");let{txBytes:P}=await Y({assetValue:_,gasBudget:C,recipient:B,sender:x,sweep:R}),K=await X();if(!BH(A)){let $=await A.signTransaction(P),{digest:z}=await K.executeTransactionBlock({signature:$.signature,transactionBlock:$.bytes});return z}let{digest:O}=await K.signAndExecuteTransaction({signer:A,transaction:P});return O}async function M(_){let C=await X(),{digest:B}=await C.executeTransactionBlock({signature:_.signature,transactionBlock:_.bytes});return B}async function L(_){let C=await f();if(!C)throw new q0.SwapKitError("toolbox_sui_no_signer");let B=await X(),R;if(typeof _==="string")R=Uint8Array.from(Buffer.from(_,"base64"));else if(_ instanceof Uint8Array)R=_;else R=await _.build({client:B});if(!BH(C)){let x=await C.signTransaction(R),{digest:P}=await B.executeTransactionBlock({signature:x.signature,transactionBlock:x.bytes});return P}let{digest:A}=await B.signAndExecuteTransaction({signer:C,transaction:R});return A}return{broadcastTransaction:M,createTransaction:Y,estimateTransactionFee:Z,getAddress:U,getBalance:Q,signAndBroadcastTransaction:L,signTransaction:W,transfer:k,validateAddress:PH}}var DH,q0,l1,rf="0x2::sui::SUI",wT=256,_9=50000000;var jH=l(()=>{DH=require("@mysten/sui/utils"),q0=require("@swapkit/helpers"),l1=require("ts-pattern")});var sf={};x0(sf,{validateSuiAddress:()=>PH,getSuiToolbox:()=>$9});module.exports=E0(sf);var ef=l(()=>{jH()});async function x9(){let y=Date.now();if(y5&&y-EH<I9)return y5;let{getHttpEndpoint:T}=await import("@orbs-network/ton-access");return y5=await T(),EH=y,y5}async function P9(){let[y]=B0.SKConfig.get("rpcUrls")[B0.Chain.Ton]??[];if(y)return y;return await x9()}function j9(y={}){let T,H,f;async function X(){if(!T){let{TonClient:O}=await import("@ton/ton"),$=y.provider??await P9();T=new O({endpoint:$})}return T}async function U(){return(await Q()).address.toString()}async function q(){if(f)return f;return f=await Vy.match(y).with({phrase:Vy.P.string},async({phrase:O})=>{let{mnemonicToWalletKey:$}=await import("@ton/crypto");return $(O.split(" "))}).with({signer:Vy.P.any},({signer:O})=>O).otherwise(()=>{return}),f}async function Q(O){if(!H||O){let $=await q(),z=await X(),G=O||$;if(!G)throw new B0.SwapKitError("core_wallet_connection_not_found");let{WalletContractV4:J}=await import("@ton/ton"),N=J.create({publicKey:G.publicKey,workchain:0});H=z.open(N)}return H}let Z=v0(B0.Chain.Ton);async function Y({assetValue:O,recipient:$,memo:z,sender:G,sweep:J}){if(O.isGasAsset){if(J){let D0=G||await U(),S=await(await X()).getBalance(Q0.Address.parse(D0));if(S<=0n)throw new B0.SwapKitError("toolbox_sweep_amount_too_low",{asset:O.toString(),balance:S.toString()})}let Z0=z?K(z).toBoc().toString("base64"):void 0;return[{address:$,amount:O.getBaseValue("string"),payload:Z0}]}let N=O.address;if(!N)throw new B0.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:O.toString()}});let D=G??await U(),F=await A({jettonMasterAddress:N,ownerAddress:D}),j=Q0.Address.parse($),V=Q0.Address.parse(D),v=J?await x(F):O.getBaseValue("bigint");if(J&&v<=0n)throw new B0.SwapKitError("toolbox_sweep_amount_too_low",{asset:O.toString(),balance:v.toString()});let m=z?K(z):void 0,T0=P({destinationAddress:j,forwardPayload:m,jettonAmount:v,responseAddress:V});return[{address:F.toString(),amount:R9.toString(),payload:T0.toBoc().toString("base64")}]}async function W({sender:O,sweep:$,...z}){let G=$&&z.assetValue.isGasAsset?F9:AH;return{messages:await Y({...z,sender:O,sweep:$}),sendMode:G}}function k(O){if(!Array.isArray(O))return O;let[$]=O;return{messages:O.map(({sendMode:G,...J})=>J),sendMode:$?.sendMode??AH}}function M(O){return O.map(($)=>{let z=$.payload?Q0.Cell.fromBase64($.payload):void 0,G=$.stateInit?Q0.loadStateInit(Q0.Cell.fromBase64($.stateInit).asSlice()):void 0,J=Q0.Address.parse($.address),N=Q0.Address.isFriendly($.address)?Q0.Address.parseFriendly($.address).isBounceable:!0;return Q0.internal({body:z,bounce:N,init:G,to:J,value:BigInt($.amount)})})}async function L(O){let $=await q(),z=await Q();if(!z||!$)throw new B0.SwapKitError("core_wallet_connection_not_found");let G=await X(),{state:J}=await G.getContractState(z.address),N=J==="active",D=N?await z.getSeqno():0,{messages:F,sendMode:j}=k(O),V=z.createTransfer({messages:M(F),secretKey:$.secretKey,sendMode:j,seqno:D}),v=Q0.external({body:V,init:N?void 0:z.init,to:z.address});return Q0.beginCell().store(Q0.storeMessage(v)).endCell()}async function _(O){return await(await X()).sendFile(O.toBoc()),O.hash().toString("hex")}async function C(O){let $=await L(O);return _($)}async function B({assetValue:O,recipient:$,memo:z,sweep:G}){let J=await W({assetValue:O,memo:z,recipient:$,sweep:G});return C(J)}async function R({sender:O,...$}){let{baseDecimal:z}=B0.getChainConfig(B0.Chain.Ton),G=await Vy.match(O).with(Vy.P.string,(D)=>{return Q0.Address.parseFriendly(D).address}).otherwise(async()=>{return(await Q()).address});if(!G)throw new B0.SwapKitError("toolbox_fee_estimation_failed",{chain:B0.Chain.Ton});let J=B0.AssetValue.from({chain:B0.Chain.Ton,value:"0.01"}),N=await X();try{let D=await W({sender:O,...$}),F=await q(),j=await Q();if(!j||!F)return J;let V=await j.getSeqno(),v=j.createTransfer({messages:M(D.messages),secretKey:F.secretKey,sendMode:D.sendMode,seqno:V}),{source_fees:m}=await N.estimateExternalMessageFee(G,{body:v,ignoreSignature:!0,initCode:null,initData:null}),T0=m.in_fwd_fee+m.storage_fee+m.gas_fee+m.fwd_fee;return J.set(B0.SwapKitNumber.fromBigInt(BigInt(T0),z))}catch{return J}}async function A({jettonMasterAddress:O,ownerAddress:$}){try{let z=await X(),G=Q0.Address.parse(O),J=Q0.Address.parse($),{JettonMaster:N}=await import("@ton/ton");return await z.open(N.create(G)).getWalletAddress(J)}catch{throw new B0.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:O,ownerAddress:$}})}}async function x(O){try{let $=await X(),{JettonWallet:z}=await import("@ton/ton");return await $.open(z.create(O)).getBalance()}catch{throw new B0.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonWalletAddress:O.toString()}})}}function P({jettonAmount:O,destinationAddress:$,responseAddress:z,forwardAmount:G=D9,forwardPayload:J}){let N=Q0.beginCell().storeUint(B9,32).storeUint(0,64).storeCoins(O).storeAddress($).storeAddress(z).storeBit(0).storeCoins(G);if(J)N.storeBit(1).storeRef(J);else N.storeBit(0);return N.endCell()}function K(O){return Q0.beginCell().storeUint(0,32).storeStringTail(O).endCell()}return{broadcastTransaction:_,createTransaction:W,estimateTransactionFee:R,getAddress:U,getBalance:Z,getJettonWalletAddress:A,sign:L,signAndBroadcastTransaction:C,transfer:B,validateAddress:SH}}function SH(y){try{return Q0.Address.parse(y),!0}catch{return!1}}var B0,Q0,Vy,B9=260734629,D9,R9,AH,F9,I9=60000,y5,EH=0;var KH=l(()=>{Xy();B0=require("@swapkit/helpers"),Q0=require("@ton/core"),Vy=require("ts-pattern"),D9=Q0.toNano("0.01"),R9=Q0.toNano("0.05"),AH=Q0.SendMode.PAY_GAS_SEPARATELY+Q0.SendMode.IGNORE_ERRORS,F9=Q0.SendMode.CARRY_ALL_REMAINING_BALANCE+Q0.SendMode.IGNORE_ERRORS});var f5={};x0(f5,{validateTonAddress:()=>SH,getTONToolbox:()=>j9});module.exports=E0(f5);var T5=l(()=>{KH()});function i0(y,T){if(!Number.isInteger(T)||T<0)throw RangeError(`${y} must be a non-negative integer, got: ${T}`)}function Oy({accountIndex:y,chain:T,derivationPath:H}){if(y!==void 0)i0("accountIndex",y);let f=[...H?.slice(0,3)??VH.NetworkDerivationPath[T].slice(0,3)];if(y!==void 0)f[2]=y;return f}function y1({accountIndex:y,change:T=!1,chain:H,derivationPath:f,index:X}){return i0("index",X),[...Oy({accountIndex:y,chain:H,derivationPath:f}),Number(T),X]}function wy(y){return y[2]??0}function wH({deriveAddress:y,getBalance:T,getUtxos:H}){async function f(Q){let{accountIndex:Z,count:Y,startIndex:W=0,change:k=!1}=Q;if(i0("count",Y),Y<1)throw RangeError("count must be at least 1");i0("startIndex",W);let M=[];for(let L=0;L<Y;L++){let _=await y({accountIndex:Z,change:k,index:W+L});if(_)M.push(_)}return M}async function X(Q){let{gapLimit:Z=20,change:Y=!1}=Q??{},W=[],k=0,M=0;while(k<Z){let L=await y({change:Y,index:M});if(!L)break;if((await T(L.address)).some((B)=>B.getValue("number")>0))W.push(L),k=0;else k++;M++}return W}async function U(Q=20){let[Z,Y]=await Promise.all([X({change:!1,gapLimit:Q}),X({change:!0,gapLimit:Q})]),W=[...Z,...Y],k=await Promise.all(W.map(async(L)=>{let C=(await T(L.address)).reduce((B,R)=>B+R.getValue("number"),0);return{...L,balance:C}})),M=k.reduce((L,_)=>L+_.balance,0);return{addresses:k,total:M}}async function q(Q=20){let[Z,Y]=await Promise.all([X({change:!1,gapLimit:Q}),X({change:!0,gapLimit:Q})]),W=[...Z,...Y];return(await Promise.all(W.map(async(M)=>{return(await H(M.address)).map((_)=>({..._,address:M.address,derivationIndex:M.index,isChange:M.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:U,getAggregatedUtxos:q,scanForAddresses:X}}var VH;var u1=l(()=>{VH=require("@swapkit/helpers")});async function A9({chain:y,txHash:T}){let H=`${p1(y)}/push/transaction`,f=JSON.stringify({data:T});try{let X=await f0.RequestClient.post(H,{body:f,headers:{"Content-Type":"application/json"}});if(X.context.code!==200)throw new f0.SwapKitError("toolbox_utxo_broadcast_failed",{error:X.context.error||"Transaction broadcast failed"});return X.data?.transaction_hash||T}catch(X){let U=await f0.getRPCUrl(y);if(U){let q=JSON.stringify({id:t8(),jsonrpc:"2.0",method:"sendrawtransaction",params:[T]}),Q=await f0.RequestClient.post(U,{body:q,headers:{"Content-Type":"application/json"}});if(Q.error)throw new f0.SwapKitError("toolbox_utxo_broadcast_failed",{error:Q.error?.message});if(Q.result.includes('"code":-26'))throw new f0.SwapKitError("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return Q.result}throw X}}function p1(y){return`https://api.blockchair.com/${E9(y)}`}function vH(y){switch(y){case f0.Chain.Bitcoin:return 5;case f0.Chain.Dogecoin:return 1e4;case f0.Chain.Litecoin:return 1;case f0.Chain.Zcash:return 1;default:return 2}}function E9(y){switch(y){case f0.Chain.BitcoinCash:return"bitcoin-cash";case f0.Chain.Litecoin:return"litecoin";case f0.Chain.Dash:return"dash";case f0.Chain.Dogecoin:return"dogecoin";case f0.Chain.Zcash:return"zcash";case f0.Chain.Polkadot:return"polkadot";default:return"bitcoin"}}async function S9(y){try{let{feePerKb:T}=await f0.RequestClient.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),H=T/1000;return Math.max(H,vH(y))}catch{return vH(y)}}async function H5(y,T){let H=await f0.RequestClient.get(`${y}${T?`${y.includes("?")?"&":"?"}key=${T}`:""}`);if(!H||H.context.code!==200)throw new f0.SwapKitError("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return H.data}async function hH({address:y,chain:T,apiKey:H}){if(!y)throw new f0.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await H5(`${p1(T)}/dashboards/address/${y}?transaction_details=true`,H))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function K9({address:y,chain:T,apiKey:H}){return(await hH({address:y,apiKey:H,chain:T}))?.address.balance||0}async function lH({chain:y,apiKey:T,txHash:H}){if(!H)throw new f0.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await H5(`${p1(y)}/raw/transaction/${H}`,T))?.[H]?.raw_transaction||""}catch(f){let X=f instanceof Error?f.message:String(f);return console.error(`Failed to fetch raw transaction: ${X}`),""}}async function w9({chain:y,apiKey:T,txHash:H}){if(!H)throw new f0.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});let X=(await H5(`${p1(y)}/dashboards/transaction/${H}`,T))?.[H];if(!X)throw new f0.SwapKitError("toolbox_utxo_tx_not_found",{txHash:H});let{transaction:U,inputs:q,outputs:Q}=X,Z=q.map((W)=>W.spending_sequence),Y=U.is_rbf===!0||Z.some((W)=>W<V9);return{blockId:U.block_id,confirmed:U.block_id!==-1,fee:U.fee,inputs:q,isRBF:Y,outputs:Q,sequences:Z,size:U.size,txid:U.hash,weight:U.weight}}async function v9({chain:y,address:T,apiKey:H,offset:f=0,limit:X=30}){return(await H5(`${p1(y)}/outputs?q=recipient(${T}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${X}&offset=${f}`,H)).map(({is_spent:Z,script_hex:Y,block_id:W,transaction_hash:k,index:M,value:L,spending_signature_hex:_})=>({hash:k,index:M,is_confirmed:W!==-1,is_spent:Z,script_hex:Y,txHex:_,value:L}))}function b9(y){return y.reduce((T,H)=>T+H.value,0)}function bH(y,T){let H=[...y].sort((f,X)=>X.value-f.value);if(T){let f=[],X=0;for(let U of H)if(f.push(U),X+=U.value,X>=T)break;return f}return H}async function uH({chain:y,address:T,apiKey:H,targetValue:f,accumulativeValue:X=0,offset:U=0,limit:q=30}){if(!T)throw new f0.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{let Q=await v9({address:T,apiKey:H,chain:y,limit:q,offset:U,targetValue:f}),Y=Q.length<q,W=Q.filter(({is_spent:B})=>!B),k=b9(W),M=X+k,L=f&&M>=f;if(Y||L)return bH(W,f);let _=await uH({accumulativeValue:M,address:T,apiKey:H,chain:y,limit:q,offset:U+q,targetValue:f}),C=[...W,..._];return bH(C,f)}catch(Q){let Z=Q instanceof Error?Q.message:String(Q);return console.error(`Failed to fetch unspent UTXOs: ${Z}`),[]}}async function h9({address:y,chain:T,apiKey:H,fetchTxHex:f=!0,targetValue:X}){let U=await uH({address:y,apiKey:H,chain:T,targetValue:X}),q=[];for(let{hash:Q,index:Z,script_hex:Y,value:W}of U){let k;if(f)k=await lH({apiKey:H,chain:T,txHash:Q});q.push({address:y,hash:Q,index:Z,txHex:k,value:W,witnessUtxo:{script:Buffer.from(Y,"hex"),value:W}})}return q}function j0(y){let T=f0.SKConfig.get("apiKeys").blockchair||"";return f0.warnOnce({condition:!T,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(H)=>A9({chain:y,txHash:H}),getAddressData:(H)=>hH({address:H,apiKey:T,chain:y}),getBalance:(H)=>K9({address:H,apiKey:T,chain:y}),getRawTx:(H)=>lH({apiKey:T,chain:y,txHash:H}),getSuggestedTxFee:()=>S9(y),getTransactionDetails:(H)=>w9({apiKey:T,chain:y,txHash:H}),getUtxos:(H)=>h9({...H,apiKey:T,chain:y})}}function l9(y){return y}function u9(){return function(T){switch(T){case f0.Chain.Bitcoin:return vy.NETWORKS.bitcoin;case f0.Chain.BitcoinCash:return vy.NETWORKS.bitcoinCash;case f0.Chain.Dash:return vy.NETWORKS.dash;case f0.Chain.Litecoin:return vy.NETWORKS.litecoin;case f0.Chain.Dogecoin:return vy.NETWORKS.dogecoin;case f0.Chain.Zcash:return vy.NETWORKS.zcash;default:throw new f0.SwapKitError("toolbox_utxo_not_supported",{chain:T})}}}var f0,vy,V9=4294967294;var pH=l(()=>{Xy();f0=require("@swapkit/helpers"),vy=require("@swapkit/utxo-signer")});function g9(y,T,H){return Qy.encodeCashAddr({hash:H,prefix:y,type:p9[T]})}function o9(y){let T=Qy.decodeCashAddr(y),H=m9[T.type];if(!H)throw Error(`Unknown CashAddr type: ${T.type}`);return{hash:T.hash,prefix:T.prefix,type:H}}var Qy,p9,m9,bT;var mH=l(()=>{Qy=require("@swapkit/utxo-signer"),p9={P2PKH:Qy.CashAddrType.P2PKH,P2SH:Qy.CashAddrType.P2SH},m9={[Qy.CashAddrType.P2PKH]:"P2PKH",[Qy.CashAddrType.P2SH]:"P2SH"};bT={decode:o9,encode:g9}});function uT(y){try{return X5(y),!0}catch{return!1}}function pT(y){return X5(y)?.network}function Zy(y){let T=X5(y);if(T?.format==="legacy")return y;return d9(T)}function m1(y){let T=X5(y);return i9(T)}function X5(y){try{let T=n9(y);if(T)return T}catch{}try{let T=c9(y);if(T)return T}catch{}throw new hT.SwapKitError("toolbox_utxo_invalid_address",{address:y})}function n9(y){try{let T=cH.decode(y);if(T.length!==21)throw new hT.SwapKitError("toolbox_utxo_invalid_address",{address:y});let H=T[0],f=Array.prototype.slice.call(T,1);switch(H){case by.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case by.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case by.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case by.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case by.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case by.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function c9(y){if(y.indexOf(":")!==-1)try{return gH(y)}catch{}else{let T=["bitcoincash","bchtest","bchreg"];for(let H of T)try{return gH(`${H}:${y}`)}catch{}}return}function gH(y){try{let{hash:T,prefix:H,type:f}=bT.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(T,0),network:H==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function d9(y){let T=by.legacy[y.network][y.type],H=Buffer.alloc(1+y.hash.length);return H[0]=T,H.set(y.hash,1),cH.encode(H)}function i9(y){let T=y.network==="mainnet"?"bitcoincash":"bchtest",H=y.type==="p2pkh"?"P2PKH":"P2SH",f=new Uint8Array(y.hash);return bT.encode(T,H,f)}var oH,nH,hT,cH,lT,by;var dH=l(()=>{mH();oH=require("@noble/hashes/sha2.js"),nH=require("@scure/base"),hT=require("@swapkit/helpers"),cH=nH.createBase58check(oH.sha256);((H)=>{H.Mainnet="mainnet";H.Testnet="testnet"})(lT||={});by={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});function p0(y){let T=new Uint8Array(Buffer.from(y,"utf8"));return tH.Script.encode(["RETURN",T])}var iH,tH,t9=1000,q5=10,Q5=2,rH=10,r9=41,a9=107,Z5,U5,g1,f1=(y)=>{if(y.startsWith("bc1")||y.startsWith("tb1")||y.startsWith("ltc1")||y.startsWith("tltc1"))return"P2WPKH";if(y.startsWith("1")||y.startsWith("m")||y.startsWith("n")||y.startsWith("bitcoincash:q")||y.startsWith("bitcoincash:p")||y.startsWith("q")||y.startsWith("p")||y.startsWith("L")||y.startsWith("M")||y.startsWith("3")||y.startsWith("D")||y.startsWith("A")||y.startsWith("9")||y.startsWith("X")||y.startsWith("7")||y.startsWith("y")||y.startsWith("t1")||y.startsWith("t3")||y.startsWith("tm"))return"P2PKH";throw new iH.SwapKitError("toolbox_utxo_invalid_address",{address:y})},hy=({inputs:y,outputs:T,feeRate:H})=>{let f=y[0]&&"address"in y[0]&&y[0].address?f1(y[0].address):"P2PKH",U=(H?y.filter((Y)=>Y.value>=U5["type"in Y&&Y.type?Y.type:"P2PKH"]*Math.ceil(H)):y).reduce((Y,W)=>Y+ky(W),0),q=T?.reduce((Y,W)=>Y+o1(W),0)||g1[f],Q=q5+U+q;return f==="P2WPKH"?Math.ceil(Q+Q5/4):Q},ky=(y)=>{if("type"in y&&y.type)return U5[y.type];if("address"in y&&y.address)return U5[f1(y.address)];return r9+a9},o1=(y,T)=>{if(y?.script)return rH+y.script.length+(y.script.length>=74?2:1);if(T)return g1[T];if("address"in y&&y.address)return g1[f1(y.address)];return g1.P2PKH};var mT=l(()=>{iH=require("@swapkit/helpers"),tH=require("@swapkit/utxo-signer");((H)=>{H.P2PKH="P2PKH";H.P2WPKH="P2WPKH"})(Z5||={});U5={["P2PKH"]:148,["P2WPKH"]:68},g1={["P2PKH"]:34,["P2WPKH"]:31}});function T1(y){switch(y){case g0.Chain.Bitcoin:case g0.Chain.BitcoinCash:return 550;case g0.Chain.Dash:case g0.Chain.Litecoin:return 5500;case g0.Chain.Dogecoin:return 1e5;case g0.Chain.Zcash:return 546;default:throw new g0.SwapKitError("toolbox_utxo_not_supported",{chain:y})}}function o0({inputs:y,outputs:T,feeRate:H=1,chain:f=g0.Chain.Bitcoin,changeAddress:X="",sweep:U=!1}){let q=T1(f),Q=y.filter((B)=>{let R=ky(B)*H;return U?B.value>Math.max(R,q):R<=B.value});if(U){let B=Math.ceil(H*hy({inputs:Q,outputs:T})),R=Q.reduce((P,K)=>P+K.value,0),A=R-B;if(A<=q)throw new g0.SwapKitError("toolbox_sweep_amount_too_low",{available:R,dustThreshold:q,fee:B});let x=T.findIndex((P)=>("address"in P)&&P.address);if(x===-1)throw new g0.SwapKitError("toolbox_utxo_invalid_params",{error:"Sweep requires a recipient output"});return{fee:B,inputs:Q,outputs:T.map((P,K)=>K===x?{...P,value:A}:P)}}let W=(y[0]&&"address"in y[0]&&y[0].address?f1(y[0].address):"P2PKH")==="P2WPKH"?Math.ceil(Q5/4):0,k=q5+W+T.reduce((B,R)=>B+o1(R),0),M=T.reduce((B,R)=>B+R.value,0),L=k*H,_=0,C=[];for(let B of Q){let R=ky(B),A=H*R;L+=A,_+=B.value,C.push(B);let x=L+M;if(_<x)continue;let P=_-x,K=H*o1({address:X,value:0});if(P>K){let O=K+L,$=_-(M+Math.ceil(O));if($>Math.max(ky({value:0})*H,T1(f)))return{fee:Math.ceil(O),inputs:C,outputs:T.concat({address:X,value:$})}}return{fee:Math.ceil(L),inputs:C,outputs:T}}return{fee:Math.ceil(H*hy({inputs:y,outputs:T}))}}var g0;var aH=l(()=>{mT();g0=require("@swapkit/helpers")});var H1=l(()=>{pH();dH();aH();mT()});function ly(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function $y(y){let T=ly(y);return uT(T)&&pT(T)==="mainnet"}var uy;var n1=l(()=>{H1();uy=require("@swapkit/utxo-signer")});function nT({address:y,chain:T}){return oT.match(T).with(w.Chain.BitcoinCash,()=>$y(y)).with(w.Chain.Zcash,()=>uy.validateZcashAddress(y)).otherwise(()=>{try{return X0.Address(w0(T)).decode(y),!0}catch{return!1}})}function w0(y){return oT.match(y).with(w.Chain.Bitcoin,()=>X0.NETWORKS.bitcoin).with(w.Chain.BitcoinCash,()=>X0.NETWORKS.bitcoinCash).with(w.Chain.Dash,()=>X0.NETWORKS.dash).with(w.Chain.Dogecoin,()=>X0.NETWORKS.dogecoin).with(w.Chain.Litecoin,()=>X0.NETWORKS.litecoin).with(w.Chain.Zcash,()=>X0.NETWORKS.zcash).exhaustive()}function s9({phrase:y,derivationPath:T,network:H,seed:f}){let X=f??J5.mnemonicToSeedSync(y),q=gT.HDKey.fromMasterSeed(X,H.bip32).derive(T);if(!q.privateKey)throw new w.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return q.privateKey}function sH(y){return eH.secp256k1.getPublicKey(y,!0)}function d1({publicKey:y,chain:T,network:H}){if(T===w.Chain.BitcoinCash){let U=X0.p2pkh(y,H);if(!U.hash)throw new w.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return X0.encodeCashAddr({hash:U.hash,prefix:X0.CashAddrPrefix.MAINNET,type:X0.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}let X=!c1.includes(T)?X0.p2wpkh(y,H):X0.p2pkh(y,H);if(!X.address)throw new w.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive address"});return X.address}function X1({phrase:y,derivationPath:T,chain:H,wif:f,seed:X}){let U=w0(H);if(f){let Y=X0.WIF(U).decode(f),W=sH(Y);return{privateKey:Y,publicKey:W}}if(!y)throw new w.SwapKitError("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let q=T||w.derivationPathToString(w.NetworkDerivationPath[H]),Q=s9({derivationPath:q,network:U,phrase:y,seed:X}),Z=sH(Q);return{privateKey:Q,publicKey:Z}}function e9(y,T){return X0.WIF(w0(T)).encode(y)}function yq({phrase:y,derivationPath:T,chain:H,seed:f}){let X=T.split("/");if(X.length<4)throw new w.SwapKitError("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${X.length}): ${T}`});let U=w0(H),q=f??J5.mnemonicToSeedSync(y),Q=gT.HDKey.fromMasterSeed(q,U.bip32),Z=X.slice(0,4).join("/");return Q.derive(Z)}function Dy({inputs:y,outputs:T,chain:H,tx:f,sender:X,compiledMemo:U,enableRBF:q=!1}){let Q=w0(H),Z=!c1.includes(H),Y=q?X0.RBF_SEQUENCE:void 0,W=new Set;for(let k of y){let M=`${k.hash}:${k.index}`;if(W.has(M))throw new w.SwapKitError("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});W.add(M);let L=typeof k.hash==="string"?By.hex.decode(k.hash):k.hash;if(Z&&k.witnessUtxo)f.addInput({index:k.index,sequence:Y,txid:L,witnessUtxo:{amount:BigInt(k.witnessUtxo.value),script:k.witnessUtxo.script}});else if(k.txHex)f.addInput({index:k.index,nonWitnessUtxo:By.hex.decode(k.txHex),sequence:Y,txid:L,...H===w.Chain.BitcoinCash?{sighashType:X0.BCHSigHash.ALL}:{}});else throw new w.SwapKitError("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let k of T){let M="address"in k&&k.address?k.address:X;if(H===w.Chain.BitcoinCash)M=Zy(M);if(k.script){if(U)f.addOutput({amount:0n,script:U})}else f.addOutputAddress(M,BigInt(k.value),Q)}return{inputs:y,tx:f}}async function U1(y){let T=await j0(y).getSuggestedTxFee();return{[w.FeeOption.Average]:T,[w.FeeOption.Fast]:w.applyFeeMultiplier(T,w.FeeOption.Fast),[w.FeeOption.Fastest]:w.applyFeeMultiplier(T,w.FeeOption.Fastest)}}async function yX({assetValue:y,recipient:T,memo:H,sender:f,sweep:X,fetchTxHex:U=!1}){let q=y.chain,Q=U||c1.includes(q),Z=y.getBaseValue("number"),Y=X?void 0:Math.ceil(Z+(await U1(q))[w.FeeOption.Fastest]*5000);return{inputs:await j0(q).getUtxos({address:f,fetchTxHex:Q,targetValue:Y}),outputs:[{address:T,value:X?0:Z},...H?[{address:"",script:p0(H),value:0}]:[]]}}async function fX({assetValue:y,recipient:T,memo:H,feeRate:f,sender:X,fetchTxHex:U=!1,enableRBF:q=!1,sweep:Q}){let Z=y.chain,Y=H?p0(H):null,W=await yX({assetValue:y,fetchTxHex:U,memo:H,recipient:T,sender:X,sweep:Q}),{inputs:k,outputs:M}=o0({...W,chain:Z,feeRate:f,sweep:Q});if(!(k&&M))throw new w.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let L=new X0.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Y,version:1}),{inputs:_,tx:C}=Dy({chain:Z,compiledMemo:Y,enableRBF:q,inputs:k,outputs:M,sender:X,tx:L});return{inputs:_,tx:C,utxos:W.inputs}}async function TX({assetValue:y,feeOptionKey:T=w.FeeOption.Fast,feeRate:H,memo:f,sender:X,recipient:U,sweep:q}){let Q=y.chain,Z=await yX({assetValue:y,memo:f,recipient:U,sender:X,sweep:q}),Y=H?Math.floor(H):(await U1(Q))[T];return o0({...Z,chain:Q,feeRate:Y,sweep:q})}function fq(y){return async function({from:H,memo:f,feeRate:X,feeOptionKey:U=w.FeeOption.Fast,recipient:q=H,recipients:Q=1}){let Z=X??(await U1(y))[U],W=(await j0(y).getUtxos({address:H,fetchTxHex:!1})).filter((C)=>C.value>Math.max(T1(y),ky(C)*Z));if(!W.length)return w.AssetValue.from({chain:y});let k=typeof Q==="number"?Math.max(Q,1):Q.length,M=typeof Q==="number"||k===0?Array.from({length:k||1},()=>({address:q,value:0})):[...Q];if(f)M.push({address:H,script:p0(f),value:0});let{outputs:L}=o0({chain:y,feeRate:Z,inputs:W,outputs:M,sweep:!0}),_=L?.[0]?.value??0;return w.AssetValue.from({chain:y,value:BigInt(_)})}}function Tq(y){return async function(H){let{fee:f}=await TX(H);return w.AssetValue.from({chain:y,value:w.SwapKitNumber.fromBigInt(BigInt(f),8).getValue("string")})}}function Hq({chain:y,phrase:T,derivationPath:H,seed:f}){let X=w0(y),{privateKey:U,publicKey:q}=X1({chain:y,derivationPath:H,phrase:T,seed:f}),Q=y===w.Chain.BitcoinCash?[X0.BCHSigHash.ALL]:[X0.SigHash.ALL];return{getAddress:()=>d1({chain:y,network:X,publicKey:q}),privateKey:U,publicKey:q,signTransaction:(Z)=>{return Z.sign(U,Q),Z}}}function Xq(y,T){return async function({memo:f,recipient:X,feeOptionKey:U,feeRate:q,assetValue:Q,enableRBF:Z=!1,sweep:Y}){let W=await T?.getAddress();if(!(T&&W))throw new w.SwapKitError("toolbox_utxo_no_signer");if(!X)throw new w.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});w.warnOnce({condition:Z&&!Y5.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let k=Z&&Y5.includes(y),M=q||(await U1(y))[U||w.FeeOption.Fast],{tx:L}=await fX({assetValue:Q,enableRBF:k,feeRate:M,memo:f,recipient:X,sender:W,sweep:Y}),_=await T.signTransaction(L);return _.finalize(),j0(y).broadcastTx(By.hex.encode(_.extract()))}}function cT(y){return(T)=>nT({address:T,chain:y})}function dT(y){let T=w0(y);return function(f){if(!f)throw new w.SwapKitError("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return d1({chain:y,network:T,publicKey:f.publicKey})}}function Ry({chain:y,...T}){let H="phrase"in T?T.phrase:void 0,f="index"in T?T.index||0:0,X=H?J5.mnemonicToSeedSync(H):void 0,U="derivationPath"in T&&T.derivationPath?T.derivationPath:w.updateDerivationPath(w.NetworkDerivationPath[y],{index:f}),q=w.derivationPathToString(U),Q=H?Hq({chain:y,derivationPath:q,phrase:H,seed:X}):void 0,Z="signer"in T?T.signer:void 0,Y=Q||Z,W=H?X1({chain:y,derivationPath:q,phrase:H,seed:X}):void 0;function k(){if(Y)return Y.getAddress();return Promise.resolve(void 0)}function M(J){if(!H)return;let N=Oy({accountIndex:J,chain:y,derivationPath:U});return yq({chain:y,derivationPath:w.derivationPathToString(N),phrase:H,seed:X})}let L=M();function _(){if(!L)return;return L.publicExtendedKey}function C({accountIndex:J}={}){let N=J===void 0?L:M(J);if(!N)return;let D=Oy({accountIndex:J,chain:y,derivationPath:U});return{accountIndex:wy(D),path:w.derivationPathToString(D),xpub:N.publicExtendedKey}}function B({accountIndex:J,index:N,change:D=!1}){let F=J===void 0?L:M(J);if(!F)return;let j=y1({accountIndex:J,chain:y,change:D,derivationPath:U,index:N}),V=w0(y),v=F.deriveChild(Number(D)).deriveChild(N);if(!v.publicKey)throw new w.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let m=d1({chain:y,network:V,publicKey:v.publicKey}),T0=By.hex.encode(v.publicKey);return{accountIndex:wy(j),address:m,change:D,index:N,path:w.derivationPathToString(j),pubkey:T0}}async function R(J){if(!Y5.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let N=await j0(y).getTransactionDetails(J);return{canReplace:N.isRBF&&!N.confirmed,confirmed:N.confirmed,enabled:N.isRBF,fee:N.fee,sequences:N.sequences,supported:!0}}async function A({txid:J,newFeeRate:N,recipient:D,memo:F}){if(!Y5.includes(y))throw new w.SwapKitError("toolbox_utxo_rbf_not_supported",{chain:y});let j=await j0(y).getTransactionDetails(J);if(!j.isRBF)throw new w.SwapKitError("toolbox_utxo_tx_not_replaceable",{txid:J});if(j.confirmed)throw new w.SwapKitError("toolbox_utxo_tx_already_confirmed",{blockId:j.blockId,txid:J});let V=j.inputs.reduce((U0,M0)=>U0+M0.value,0),m=j.outputs.find((U0)=>U0.recipient===D)?.value||0;if(m===0)throw new w.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let T0=await Promise.all(j.inputs.map(async(U0)=>{let M0=await j0(y).getRawTx(U0.transaction_hash);return{hash:U0.transaction_hash,index:U0.index,txHex:M0,value:U0.value,witnessUtxo:void 0}})),Z0=F?p0(F):null,D0=hy({feeRate:N,inputs:T0.map((U0)=>({...U0,type:"P2WPKH"})),outputs:[{address:D,value:m}]}),I=Math.ceil(D0*N);if(I<=j.fee)throw new w.SwapKitError("toolbox_utxo_rbf_fee_too_low",{newFee:I,originalFee:j.fee});let S=I-j.fee,b=m-S;if(b<=0)throw new w.SwapKitError("toolbox_utxo_rbf_insufficient_change");let c=new X0.Transaction({allowLegacyWitnessUtxo:!0,version:1}),d=[{address:D,value:b},...F?[{address:"",script:p0(F),value:0}]:[]],y0=V-b-I,z0=await k();if(y0>T1(y)&&z0)d.push({address:z0,value:y0});return Dy({chain:y,compiledMemo:Z0,inputs:T0,outputs:d,sender:z0||D,tx:c}),{feeDelta:S,newFee:I,originalFee:j.fee,tx:c}}async function x({txid:J,newFeeRate:N,recipient:D,memo:F}){let{tx:j,originalFee:V,newFee:v}=await A({memo:F,newFeeRate:N,recipient:D,txid:J}),m=await z(j);m.finalize();let T0=await j0(y).broadcastTx(By.hex.encode(m.extract()));return{newFee:v,originalFee:V,txid:T0}}function P({accountIndex:J,index:N,change:D=!1}){i0("index",N);let F=J===void 0?L:M(J);if(!F)return;return F.deriveChild(Number(D)).deriveChild(N).privateKey||void 0}function K({tx:J,inputDerivations:N}){if(!L)throw new w.SwapKitError("toolbox_utxo_no_signer");let D=y===w.Chain.BitcoinCash?[X0.BCHSigHash.ALL]:[X0.SigHash.ALL];for(let F=0;F<N.length;F++){let j=N[F];if(!j)continue;let{derivationIndex:V,isChange:v}=j,m=P({change:v,index:V});if(!m)throw new w.SwapKitError("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${F} at index ${V}`});J.signIdx(m,F,D)}return J}async function O({utxos:J,recipient:N,assetValue:D,memo:F,feeRate:j,feeOptionKey:V,changeAddress:v,sweep:m}){if(m)throw new w.SwapKitError("toolbox_utxo_invalid_params",{error:"Sweep is not supported for transfers from multiple addresses"});if(!L)throw new w.SwapKitError("toolbox_utxo_no_signer");let T0=j||(await U1(y))[V||w.FeeOption.Fast],Z0=F?p0(F):null,D0=[{address:N,value:D.getBaseValue("number")}];if(Z0)D0.push({address:"",script:Z0,value:0});let I=J.map(({hash:U0,index:M0,value:A0,txHex:a0,witnessUtxo:s0})=>({hash:U0,index:M0,txHex:a0,value:A0,witnessUtxo:s0?{script:s0.script,value:s0.value}:void 0})),{inputs:S,outputs:b}=o0({chain:y,feeRate:T0,inputs:I,outputs:D0});if(!(S&&b))throw new w.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:D,sender:"multiple addresses"});let c=new X0.Transaction({allowLegacyWitnessUtxo:!0,version:1}),d=J[0]?.address,y0=v||await k()||d||N;Dy({chain:y,compiledMemo:Z0,inputs:S,outputs:b,sender:y0,tx:c});let z0=S.map((U0)=>{let M0=J.find((A0)=>A0.hash===U0.hash&&A0.index===U0.index);return M0?{derivationIndex:M0.derivationIndex,isChange:M0.isChange}:{derivationIndex:0,isChange:!1}});return K({inputDerivations:z0,tx:c}),c.finalize(),j0(y).broadcastTx(By.hex.encode(c.extract()))}function $({address:J,gapLimit:N=20}){if(!L)return;for(let D=0;D<N;D++){let F=B({change:!1,index:D}),j=B({change:!0,index:D}),V=F?.address===J?!1:j?.address===J;if(F?.address===J||j?.address===J)return{change:V,index:D}}return}function z(J){if(!Y)throw new w.SwapKitError("toolbox_utxo_no_signer");return Y.signTransaction(J)}async function G(J){let N=await z(J);return N.finalize(),await j0(y).broadcastTx(By.hex.encode(N.extract()))}return{accumulative:o0,broadcastTx:(J)=>j0(y).broadcastTx(J),bumpFee:x,calculateTxSize:hy,createKeysForPath:(J)=>X1({...J,chain:y}),createReplacementTransaction:A,createTransaction:fX,deriveAddressAtIndex:B,derivePrivateKeyAtIndex:P,estimateMaxSendableAmount:fq(y),estimateTransactionFee:Tq(y),getAddress:k,getAddressFromKeys:dT(y),getBalance:v0(y),getExtendedPublicKey:_,getExtendedPublicKeyInfo:C,getFeeRates:()=>U1(y),getInputsOutputsFee:TX,getNetworkForChain:()=>w0(y),getPrivateKeyFromMnemonic:(J)=>e9(X1({...J,chain:y}).privateKey,y),isRBFEnabled:R,keys:W,resolveDerivationIndex:$,signAndBroadcastTransaction:G,signTransaction:z,signTransactionWithMultipleKeys:K,transfer:Xq(y,Y),transferFromMultipleAddresses:O,validateAddress:cT(y)}}var eH,By,gT,J5,w,X0,oT,c1,Y5;var q1=l(()=>{Xy();u1();H1();n1();eH=require("@noble/curves/secp256k1.js"),By=require("@scure/base"),gT=require("@scure/bip32"),J5=require("@scure/bip39"),w=require("@swapkit/helpers"),X0=require("@swapkit/utxo-signer"),oT=require("ts-pattern"),c1=[w.Chain.Dash,w.Chain.Dogecoin,w.Chain.Zcash,w.Chain.BitcoinCash],Y5=[w.Chain.Bitcoin]});function i1(y){return ly(m1(y))}function Uq(y){let T=w0(Hy);function H(X){return X.sign(y.privateKey,[I0.BCHSigHash.ALL]),X}function f(){let X=I0.p2pkh(y.publicKey,T);if(!X.hash)throw new F0.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let U=I0.encodeCashAddr({hash:X.hash,prefix:I0.CashAddrPrefix.MAINNET,type:I0.CashAddrType.P2PKH});return Promise.resolve(U.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:H}}function tT(y){let T="phrase"in y?y.phrase:void 0,H="index"in y?y.index||0:0,f=F0.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:F0.updateDerivationPath(F0.NetworkDerivationPath[Hy],{index:H})),X=T?X1({chain:Hy,derivationPath:f,phrase:T}):void 0,U=X?Uq(X):("signer"in y)?y.signer:void 0;function q(){return Promise.resolve(U?.getAddress())}let{getBalance:Q,getFeeRates:Z,broadcastTx:Y,...W}=Ry({chain:Hy});function k(_,C=!0){return Q(ly(m1(_)))}function M(_){if(!U)throw new F0.SwapKitError("toolbox_utxo_no_signer");return U.signTransaction(_)}async function L(_){let C=await M(_);return C.finalize(),await Y(iT.hex.encode(C.extract()))}return{...W,broadcastTx:Y,buildTx:Qq,createTransaction:HX,getAddress:q,getAddressFromKeys:Zq,getBalance:k,getFeeRates:Z,signAndBroadcastTransaction:L,signTransaction:M,stripPrefix:ly,stripToCashAddress:i1,transfer:qq({broadcastTx:Y,getFeeRates:Z,signer:U}),validateAddress:$y}}async function HX({assetValue:y,recipient:T,memo:H,feeRate:f,sender:X,sweep:U}){if(!$y(T))throw new F0.SwapKitError("toolbox_utxo_invalid_address",{address:T});let q=Math.ceil(y.getBaseValue("number")+f*7500),Q=await j0(Hy).getUtxos({address:i1(X),fetchTxHex:!0,targetValue:U?void 0:q}),Z=H?p0(H):null,Y=[],W=Zy(T);if(Y.push({address:W,value:U?0:y.getBaseValue("number")}),Z)Y.push({script:Z,value:0});let{inputs:k,outputs:M}=o0({chain:Hy,feeRate:f,inputs:Q,outputs:Y,sweep:U});if(!(k&&M))throw new F0.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let L=new I0.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Z,version:1}),_=Zy(X),{inputs:C,tx:B}=Dy({chain:Hy,compiledMemo:Z,inputs:k,outputs:M.map((R)=>("address"in R)&&R.address?{...R,address:Zy(R.address)}:R),sender:_,tx:L});return{inputs:C,tx:B,utxos:k}}function qq({broadcastTx:y,getFeeRates:T,signer:H}){return async function({recipient:X,assetValue:U,feeOptionKey:q=F0.FeeOption.Fast,sweep:Q,...Z}){let Y=await H?.getAddress();if(!(H&&Y))throw new F0.SwapKitError("toolbox_utxo_no_signer");if(!X)throw new F0.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let W=Z.feeRate||(await T())[q],{tx:k}=await HX({...Z,assetValue:U,feeRate:W,recipient:X,sender:Y,sweep:Q}),M=await H.signTransaction(k);return M.finalize(),y(iT.hex.encode(M.extract()))}}async function Qq({assetValue:y,recipient:T,memo:H,feeRate:f,sender:X}){let U=m1(T);if(!$y(U))throw new F0.SwapKitError("toolbox_utxo_invalid_address",{address:U});let q=Math.ceil(y.getBaseValue("number")+f*7500),Q=await j0(Hy).getUtxos({address:i1(X),fetchTxHex:!0,targetValue:q}),Z=Number(f.toFixed(0)),Y=H?p0(H):null,W=[];if(W.push({address:Zy(T),value:y.getBaseValue("number")}),Y)W.push({script:Y,value:0});let{inputs:k,outputs:M}=o0({chain:Hy,feeRate:Z,inputs:Q,outputs:W});if(!(k&&M))throw new F0.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let L=new I0.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Y,version:1}),{inputs:_,tx:C}=Dy({chain:Hy,compiledMemo:Y,inputs:k,outputs:M,sender:Zy(X),tx:L});return{inputs:_,tx:C,utxos:Q}}function Zq(y){let T=I0.NETWORKS.bitcoinCash,H=I0.p2pkh(y.publicKey,T);if(!H.hash)throw new F0.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return I0.encodeCashAddr({hash:H.hash,prefix:I0.CashAddrPrefix.MAINNET,type:I0.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}var iT,F0,I0,Hy;var W5=l(()=>{H1();q1();n1();iT=require("@scure/base"),F0=require("@swapkit/helpers"),I0=require("@swapkit/utxo-signer"),Hy=F0.Chain.BitcoinCash});function sT(){let{isStagenet:y}=k0.SKConfig.get("envs");return y?W0.ZCASH_TEST_NETWORK:W0.ZCASH_NETWORK}function Jq(y){return Yq.encode(y)}function Wq({phrase:y,derivationPath:T}){let H=aT.mnemonicToSeedSync(y),X=rT.HDKey.fromMasterSeed(H).derive(T);if(!X.privateKey||!X.publicKey)throw new k0.SwapKitError("toolbox_utxo_invalid_params");let{privateKey:U,publicKey:q}=X,Q=W0.utils.hash160(q),{isStagenet:Z}=k0.SKConfig.get("envs"),Y=Z?new Uint8Array([29,37]):new Uint8Array([28,184]),W=new Uint8Array(Y.length+Q.length);W.set(Y,0),W.set(Q,Y.length);let k=Jq(W);return{getAddress:()=>Promise.resolve(k),signTransaction:(M)=>{if(M instanceof W0.ZcashPSBT){let L=M.toPCZT();return L.signAllInputs(U,q,W0.ZcashSigHash.ALL),L.finalizeAllInputs(),Promise.resolve(L.extract())}if(M instanceof W0.PCZT)return M.signAllInputs(U,q,W0.ZcashSigHash.ALL),M.finalizeAllInputs(),Promise.resolve(M.extract());return M.signAllInputs(U,q,W0.ZcashSigHash.ALL),Promise.resolve(M)}}}function zq({inputs:y,outputs:T,tx:H,sender:f,compiledMemo:X}){let U=sT();for(let q of y){let Q=W0.Address(U).decode(f),Z=W0.OutScript.encode(Q);H.addInput({index:q.index,script:Z,sequence:4294967295,txid:z5.hex.decode(q.hash),value:BigInt(q.value)})}for(let q of T){let Q="address"in q&&q.address?q.address:f,Z=q.script;if(Z&&!X)continue;if(Z&&X)H.addOutput({amount:0n,script:X});else H.addOutputAddress(Q,BigInt(q.value),U)}return{inputs:y,tx:H}}async function XX(y){let{assetValue:T,recipient:H,memo:f,feeRate:X,sender:U,fetchTxHex:q,sweep:Q}=y,Z=sT();if(!W0.isTransparentZcashAddress(U,Z))throw new k0.SwapKitError("toolbox_utxo_invalid_address",{address:U});if(!W0.isTransparentZcashAddress(H,Z))throw new k0.SwapKitError("toolbox_utxo_invalid_address",{address:H,error:"Zcash transaction creation currently supports transparent addresses only"});let Y=f?p0(f):null,W=await j0(k0.Chain.Zcash).getUtxos({address:U,fetchTxHex:q!==!1}),k=[{address:H,value:Q?0:Number(T.getBaseValue("string"))},...Y?[{script:Y,value:0}]:[]],{inputs:M,outputs:L}=o0({chain:k0.Chain.Zcash,changeAddress:U,feeRate:X,inputs:W,outputs:k,sweep:Q});if(!(M&&L))throw new k0.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:T,sender:U});let _=W0.createZcashTransaction({consensusBranchId:W0.ZcashConsensusBranchId.NU6_2,expiryHeight:0,lockTime:0,version:4,versionGroupId:W0.ZcashVersionGroupId.SAPLING}),{tx:C,inputs:B}=zq({compiledMemo:Y,inputs:M,outputs:L,sender:U,tx:_});return{inputs:B,outputs:L,tx:C}}function eT(y){let T=Q1.match(y).with({signer:Q1.P.not(Q1.P.nullish)},({signer:Z})=>Z).with({phrase:Q1.P.string},({phrase:Z,derivationPath:Y,index:W=0})=>{let k=Y||k0.NetworkDerivationPath[k0.Chain.Zcash]||[44,133,0,0,0],M=k0.updateDerivationPath(k,{index:W}),L=k0.derivationPathToString(M);return Wq({derivationPath:L,phrase:Z})}).otherwise(()=>{return}),H=Ry({chain:k0.Chain.Zcash,signer:T});async function f(Z){if(!T)throw new k0.SwapKitError("toolbox_utxo_no_signer");return await T.signTransaction(Z)}async function X(Z){let Y=await f(Z);return H.broadcastTx(Y.toHex())}async function U({recipient:Z,assetValue:Y,feeOptionKey:W=k0.FeeOption.Fast,sweep:k,...M}){let L=await T?.getAddress();if(!(T&&L))throw new k0.SwapKitError("toolbox_utxo_no_signer");let _=M.feeRate||(await H.getFeeRates())[W],{tx:C}=await XX({...M,assetValue:Y,feeRate:_,recipient:Z,sender:L,sweep:k}),R=(await T.signTransaction(C)).toHex();return H.broadcastTx(R)}function q({phrase:Z,derivationPath:Y="m/44'/133'/0'/0/0"}){let W=aT.mnemonicToSeedSync(Z),M=rT.HDKey.fromMasterSeed(W).derive(Y);if(!M.privateKey||!M.publicKey)throw new k0.SwapKitError("toolbox_utxo_invalid_params");return{privateKey:M.privateKey,publicKey:M.publicKey}}function Q({phrase:Z,derivationPath:Y="m/44'/133'/0'/0/0"}){let W=q({derivationPath:Y,phrase:Z}),k=sT();return W0.WIF(k).encode(W.privateKey)}return{...H,createKeysForPath:q,createTransaction:XX,getPrivateKeyFromMnemonic:Q,signAndBroadcastTransaction:X,signTransaction:f,transfer:U,validateAddress:uy.validateZcashAddress}}var z5,rT,aT,k0,W0,Q1,Yq;var y8=l(()=>{H1();q1();n1();z5=require("@scure/base"),rT=require("@scure/bip32"),aT=require("@scure/bip39"),k0=require("@swapkit/helpers"),W0=require("@swapkit/utxo-signer"),Q1=require("ts-pattern");Yq=z5.createBase58check(W0.utils.sha256)});function ZX({xpub:y,chain:T,count:H,startIndex:f=0,accountIndex:X}){if(i0("count",H),H<1)throw RangeError("count must be at least 1");i0("startIndex",f);let U=w0(T),q=qX.HDKey.fromExtendedKey(y,U.bip32),Q=Oy({accountIndex:X,chain:T}),Z=wy(Q),Y=[];for(let W of[!1,!0]){let k=q.deriveChild(Number(W));for(let M=0;M<H;M++){let L=f+M,_=k.deriveChild(L);if(!_.publicKey)continue;let C=y1({accountIndex:X,chain:T,change:W,index:L});Y.push({accountIndex:Z,address:d1({chain:T,network:U,publicKey:_.publicKey}),change:W,index:L,path:QX.derivationPathToString(C),pubkey:UX.hex.encode(_.publicKey)})}}return Y}var UX,qX,QX;var YX=l(()=>{u1();q1();UX=require("@scure/base"),qX=require("@scure/bip32"),QX=require("@swapkit/helpers")});function Gq(y,T){switch(y){case Yy.Chain.BitcoinCash:return tT(T||{});case Yy.Chain.Zcash:return eT(T);case Yy.Chain.Bitcoin:case Yy.Chain.Dogecoin:case Yy.Chain.Litecoin:case Yy.Chain.Dash:return Ry({chain:y,...T});default:throw new Yy.SwapKitError("toolbox_utxo_not_supported",{chain:y})}}var Yy;var JX=l(()=>{W5();q1();y8();u1();YX();W5();n1();Yy=require("@swapkit/helpers")});var f8={};x0(f8,{validateZcashAddress:()=>uy.validateZcashAddress,validateUtxoAddress:()=>nT,validateBchAddress:()=>$y,toLegacyAddress:()=>Zy,toCashAddress:()=>m1,stripToCashAddress:()=>i1,stripPrefix:()=>ly,nonSegwitChains:()=>c1,isValidAddress:()=>uT,getUtxoToolbox:()=>Gq,getUtxoNetwork:()=>u9,getUtxoApi:()=>j0,getUTXOAddressValidator:()=>cT,getUTXOAddressPath:()=>y1,getUTXOAccountPath:()=>Oy,getUTXOAccountIndexFromPath:()=>wy,getScriptTypeForAddress:()=>f1,getOutputSize:()=>o1,getNetworkForChain:()=>w0,getInputSize:()=>ky,getDustThreshold:()=>T1,detectAddressNetwork:()=>pT,deriveAddressesFromXpub:()=>ZX,createZcashToolbox:()=>eT,createUTXOToolbox:()=>Ry,createHDWalletHelpers:()=>wH,createCustomUtxoApi:()=>l9,createBCHToolbox:()=>tT,compileMemo:()=>p0,calculateTxSize:()=>hy,assertDerivationIndex:()=>i0,addressFromKeysGetter:()=>dT,addInputsAndOutputs:()=>Dy,accumulative:()=>o0,UtxoNetwork:()=>lT,UTXOScriptType:()=>Z5,TX_OVERHEAD:()=>q5,SEGWIT_MARKER_FLAG_WEIGHT:()=>Q5,OutputSizes:()=>g1,OP_RETURN_OVERHEAD:()=>rH,MIN_TX_FEE:()=>t9,InputSizes:()=>U5});module.exports=E0(f8);var T8=l(()=>{q1();u1();H1();JX();W5();y8()});function t1(y){return y.length>=2&&y.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(y)}async function L5(y){let{KeyPair:T}=await import("@near-js/crypto"),H=y.index||0,f=y.derivationPath?G5.derivationPathToString(y.derivationPath.slice(0,3)):`m/44'/397'/${H}'`,{parseSeedPhrase:X}=await import("near-seed-phrase"),{secretKey:U}=X(y.phrase,f),q=T.fromString(U);return WX(q)}async function H8(y){let{KeyPair:T}=await import("@near-js/crypto"),H=T.fromString(y);return WX(H)}async function WX(y){let{KeyPairSigner:T}=await import("@near-js/signers");class H extends T{#y;constructor(f){super(f);this.#y=f}getAddress(){let f=this.#y.getPublicKey(),X=Buffer.from(f.data).toString("hex");return Promise.resolve(X)}}return new H(y)}async function M5(y,T){let f=(await y.query({account_id:T,finality:"final",request_type:"view_access_key_list"})).keys.find((Q)=>Q.access_key.permission==="FullAccess");if(!f)throw new G5.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:X}=await import("@near-js/crypto"),U=X.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:U}}var G5;var X8=l(()=>{G5=require("@swapkit/helpers")});function U8(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function q8(y){return"contractId"in y&&"methodName"in y}function Q8(y){return"actions"in y}function Z8(y){return"newAccountId"in y}function Y8(y){return"contractCode"in y}function J8(y){return"customEstimator"in y}function W8(y){let T=0;for(let H of y)switch(H.enum){case"transfer":T+=Number(K0.SIMPLE_TRANSFER);break;case"functionCall":T+=Number(K0.CONTRACT_CALL);break;case"createAccount":T+=Number(K0.ACCOUNT_CREATION);break;case"deployContract":T+=Number(K0.CONTRACT_DEPLOYMENT);break;case"addKey":T+=Number(K0.ACCESS_KEY_ADDITION);break;case"deleteKey":T+=Number(K0.ACCESS_KEY_DELETION);break;case"stake":T+=Number(K0.STAKE);break;default:T+=Number(K0.CONTRACT_CALL)}return T.toString()}function z8(y){if(y==="ft_transfer"||y==="ft_transfer_call")return K0.TOKEN_TRANSFER;if(y==="storage_deposit")return K0.STORAGE_DEPOSIT;return K0.CONTRACT_CALL}function Lq(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function Mq(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var K0;var G8=l(()=>{K0={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 L8({account:y,contractId:T,viewMethods:H,changeMethods:f}){let{Contract:X}=await import("@near-js/accounts");return new X(y,T,{changeMethods:f,useLocalViewExecution:!0,viewMethods:H})}function kq(y){let T;async function H(){if(T)return T;return T=await Z1.match(y).with({phrase:Z1.P.string},async(I)=>{return await L5(I)}).with({signer:Z1.P.any},({signer:I})=>I).otherwise(()=>{return}),T}async function f(){let{JsonRpcProvider:I}=await import("@near-js/providers"),S=await Y0.getRPCUrl(Y0.Chain.Near);return new I({url:S})}async function X(I){let{Account:S}=await import("@near-js/accounts"),b=await f(),c=await H(),d=I||await U();return new S(d,b,c)}async function U(){let I=await H();if(!I)throw new Y0.SwapKitError("toolbox_near_no_signer");return await I.getAddress()}async function q(I,S){return(S||await f()).callFunction(I.contractId,"storage_balance_of",{account_id:I.accountId},{finality:"final"})}async function Q(I,S){try{let b=await S.callFunction(I,"storage_balance_bounds",{},{finality:"final"});return b?.min?BigInt(b.min):zX}catch{return zX}}function Z(I){return(I*(M8+Oq)+M8-1n)/M8}function Y(I,S){return BigInt(I)*BigInt(S.runtime_config.storage_amount_per_byte)}function W(I,S){if(I<=0n)throw new Y0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:S});return I}async function k(I){return await(I||await f()).experimental_protocolConfig({finality:"final"})}async function M(I,S,b){let d=await(b||await f()).callFunction(I,"ft_balance_of",{account_id:S},{finality:"final"});return BigInt(d||"0")}async function L(I){if(!await H())throw new Y0.SwapKitError("toolbox_near_no_signer");let{assetValue:b,recipient:c,memo:d,sweep:y0}=I,z0=await U(),U0=await B({assetValue:b,memo:d,recipient:c,sender:z0,sweep:y0});return J(U0)}async function _({assetValue:I,attachedDeposit:S,memo:b,provider:c,recipient:d,sender:y0,sweep:z0}){let U0=I.address;if(!U0)throw new Y0.SwapKitError("toolbox_near_missing_contract_address");let M0=await q({accountId:d,contractId:U0},c),A0=M0?0n:await Q(U0,c),a0=M0?Cq:_q,s0=BigInt(S||"1"),oy=I.getBaseValue("bigint");if(z0){let[ny,cy,M1,ff]=await Promise.all([M(U0,y0,c),c.viewAccount(y0,{finality:"final"}),k(c),D(c)]);oy=W(ny,{asset:I.toString(),balance:ny.toString()});let Tf=Y(cy.storage_usage,M1),_1=cy.amount-Tf,Hf=A0,h8=(a0+(M0?0n:GX))*Z(ff)+Hf+s0;if(_1<h8)throw new Y0.SwapKitError("toolbox_sweep_amount_too_low",{asset:I.toString(),availableNear:_1.toString(),reason:"Insufficient NEAR to cover token transfer gas and storage deposit",requiredNear:h8.toString()})}let Jy=[];if(!M0)Jy.push(await P({args:{account_id:d},attachedDeposit:A0.toString(),gas:GX.toString(),methodName:"storage_deposit"}));return Jy.push(await P({args:{amount:oy.toString(),memo:b||null,receiver_id:d},attachedDeposit:s0.toString(),gas:a0.toString(),methodName:"ft_transfer"})),x({actions:Jy,receiverId:U0,sender:y0})}async function C({assetValue:I,attachedDeposit:S,memo:b,provider:c,recipient:d,sender:y0,sweep:z0}){let{publicKey:U0,nonce:M0}=await M5(c,y0),A0=I.getBaseValue("bigint");if(z0){let[M1,ff]=await Promise.all([c.viewAccount(y0,{finality:"final"}),k(c)]),Tf=await N({assetValue:I,memo:b,recipient:d,sweep:z0},ff),_1=Y(M1.storage_usage,ff),Hf=0n;if(b&&S){let b8=await D(c);Hf=Nq*Z(b8)+BigInt(S)}A0=W(M1.amount-Tf.getBaseValue("bigint")-_1-Hf,{asset:I.toString(),balance:M1.amount.toString(),fee:Tf.getBaseValue("bigint").toString(),storageStakeReserve:_1.toString()})}let{actionCreators:a0,createTransaction:s0}=await import("@near-js/transactions"),{baseDecode:oy}=await import("@near-js/utils"),Jy=[a0.transfer(A0)];if(b&&S)Jy.push(a0.functionCall("memo",{memo:b},BigInt("250000000000000"),BigInt(S)));let ny=await c.block({finality:"final"}),cy=oy(ny.header.hash);return s0(y0,U0,d,M0+1,Jy,cy)}async function B({recipient:I,assetValue:S,memo:b,attachedDeposit:c,sender:d,functionCall:y0,sweep:z0}){if(!t1(I))throw new Y0.SwapKitError("toolbox_near_invalid_address",{recipient:I});if(!t1(d))throw new Y0.SwapKitError("toolbox_near_invalid_address",{sender:d});if(y0)return A({...y0,sender:d});if(z0&&!await H())throw new Y0.SwapKitError("toolbox_near_no_signer");let U0=await f(),M0={assetValue:S,attachedDeposit:c,memo:b,provider:U0,recipient:I,sender:d,sweep:z0};return S.isGasAsset?C(M0):_(M0)}function R(I){let S=I.encode();return Buffer.from(S).toString("base64")}async function A({args:I,attachedDeposit:S,contractId:b,gas:c,methodName:d,sender:y0}){let z0=await P({args:I,attachedDeposit:S,gas:c,methodName:d});return x({actions:[z0],receiverId:b,sender:y0})}async function x({actions:I,receiverId:S,sender:b}){let c=await f(),{publicKey:d,nonce:y0}=await M5(c,b),{createTransaction:z0}=await import("@near-js/transactions"),{baseDecode:U0}=await import("@near-js/utils"),M0=await c.block({finality:"final"}),A0=U0(M0.header.hash);return z0(b,d,S,y0+1,I,A0)}async function P(I){let{actionCreators:S}=await import("@near-js/transactions");return S.functionCall(I.methodName,Buffer.from(JSON.stringify(I.args)),BigInt(I.gas),BigInt(I.attachedDeposit))}async function K(I){let S=await H();if(!S)throw new Y0.SwapKitError("toolbox_near_no_signer");await O(I);let[b,c]=await S.signTransaction(I);return c}async function O(I){let S=I.publicKey;if(S.toString?.().startsWith("ed25519:")||S.toString?.().startsWith("secp256k1:"))return;let{KeyType:b,PublicKey:c}=await import("@near-js/crypto"),d=S.data||S.ed25519Key?.data,y0=S.secp256k1Key?.data;if(d){I.publicKey=new c({data:Uint8Array.from(d),keyType:b.ED25519});return}if(y0)I.publicKey=new c({data:Uint8Array.from(y0),keyType:b.SECP256K1})}function $(I){if(typeof I==="string")return I;if(Array.isArray(I))return I.map($).find(Boolean);if(!(I&&typeof I==="object"))return;let S=I;return S.transaction?.hash||S.transaction_outcome?.id}function z(I){return I instanceof Error?I.message:String(I)}async function G(I){let b=await(await f()).sendTransaction(I),c=$(b);if(!c)throw new Y0.SwapKitError("toolbox_near_transfer_failed",{result:b});return c}async function J(I){let S=await H();if(!S)throw new Y0.SwapKitError("toolbox_near_no_signer");let b;try{b=await K(I)}catch(c){let d;try{d=S.signAndSendTransaction?await S.signAndSendTransaction({actions:I.actions,receiverId:I.receiverId,signerId:I.signerId}):await S.signAndSendTransactions?.({transactions:[I]})}catch(z0){throw new Y0.SwapKitError({errorKey:"toolbox_near_sign_transaction_failed",info:{directSignError:z(c),signAndSendError:z(z0)}},z0)}let y0=$(d);if(y0)return y0;throw c}return G(b)}async function N(I,S){let b=await H();if("assetValue"in I){if(I.sweep&&!b)throw new Y0.SwapKitError("toolbox_near_no_signer");try{let[d,y0]=await Promise.all([D(),S?Promise.resolve(S):k()]),{runtime_config:z0}=y0,{execution:U0,send_sir:M0}=z0.transaction_costs.action_receipt_creation_config,{execution:A0,send_sir:a0}=z0.transaction_costs.action_creation_config.transfer_cost,s0=BigInt(a0)+BigInt(A0),oy=BigInt(M0)+BigInt(U0),Jy=s0+oy,ny=I.sweep?Z(d):d,cy=Jy*ny;return Y0.AssetValue.from({chain:Y0.Chain.Near,value:cy})}catch(d){throw new Y0.SwapKitError({errorKey:"toolbox_fee_estimation_failed",info:{chain:Y0.Chain.Near,message:z(d)}},d)}}let c=b?await X():void 0;return m(I,c)}async function D(I){let b=await(I||await f()).gasPrice(null);return BigInt(b.gas_price)}async function F(I,S,b){if(!await H())throw new Y0.SwapKitError("toolbox_near_no_signer");let d=await X(),{formatNearAmount:y0}=await import("@near-js/utils"),{PublicKey:z0}=await import("@near-js/crypto"),U0=y0(b)||"0";return(await d.createAccount(I,z0.fromString(S),BigInt(U0))).transaction.hash}async function j(I){let S=await H();try{if(!S)throw new Y0.SwapKitError("toolbox_near_no_signer");let{actionCreators:b}=await import("@near-js/transactions"),{contractId:c,methodName:d,args:y0,deposit:z0}=I,U0=await X(),M0=await m({args:y0||{},contractId:c,methodName:d}),A0=b.functionCall(d,y0||{},M0.getBaseValue("bigint"),BigInt(z0||"1"));return(await U0.signAndSendTransaction({actions:[A0],receiverId:c})).transaction_outcome.id}catch(b){throw new Y0.SwapKitError("toolbox_near_transfer_failed",{error:b})}}async function V(I){let S=await X();return L8({account:S,changeMethods:I.changeMethods,contractId:I.contractId,viewMethods:I.viewMethods})}async function v(I){if(!await H())throw new Y0.SwapKitError("toolbox_near_no_signer");if(I.actions.length===0)throw new Y0.SwapKitError("toolbox_near_empty_batch");return(await(await X()).signAndSendTransaction({actions:I.actions,receiverId:I.receiverId})).transaction.hash}async function m(I,S){let b=await Z1.match(I).when(U8,()=>K0.SIMPLE_TRANSFER).when(q8,(d)=>z8(d.methodName)).when(Q8,(d)=>W8(d.actions)).when(Z8,()=>K0.ACCOUNT_CREATION).when(Y8,()=>K0.CONTRACT_DEPLOYMENT).when(J8,(d)=>{if(!S)throw new Y0.SwapKitError("toolbox_near_no_account");return d.customEstimator(S)}).otherwise(()=>{throw new Y0.SwapKitError("toolbox_near_invalid_gas_params")}),c=BigInt(b)*BigInt(1000000000000);return Y0.AssetValue.from({chain:Y0.Chain.Near,value:c})}function T0(I,S){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),m(I,S)}async function Z0(){let I=await f();try{return(await I.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function D0(){let I=await H();return I?(await I.getPublicKey()).toString():""}return{broadcastTransaction:G,callFunction:j,createAction:P,createContract:V,createContractFunctionCall:A,createSubAccount:F,createTransaction:B,estimateGas:T0,estimateGasLimit:m,estimateTransactionFee:N,executeBatchTransaction:v,getAddress:U,getBalance:v0(Y0.Chain.Near),getGasPrice:Z0,getNearProvider:f,getPublicKey:D0,getSignerFromPhrase:L5,getSignerFromPrivateKey:H8,serializeTransaction:R,signAndBroadcastTransaction:J,signTransaction:K,transfer:L,validateAddress:t1}}var Y0,Z1,zX=1250000000000000000000n,GX=150000000000000n,_q=150000000000000n,Cq=250000000000000n,Nq=250000000000000n,Oq=500n,M8=10000n;var _8=l(()=>{Xy();X8();G8();Y0=require("@swapkit/helpers"),Z1=require("ts-pattern")});var LX=l(()=>{_8()});var C8={};x0(C8,{validateNearAddress:()=>t1,tgasToGas:()=>Lq,isSimpleTransfer:()=>U8,isCustomEstimator:()=>J8,isContractDeployment:()=>Y8,isContractCall:()=>q8,isBatchTransaction:()=>Q8,isAccountCreation:()=>Z8,getNearToolbox:()=>kq,getNearSignerFromPrivateKey:()=>H8,getNearSignerFromPhrase:()=>L5,getFullAccessPublicKey:()=>M5,getContractMethodGas:()=>z8,gasToTGas:()=>Mq,estimateBatchGas:()=>W8,createNearContract:()=>L8,GAS_COSTS:()=>K0});module.exports=E0(C8);var N8=l(()=>{X8();G8();_8();LX()});var O8={};x0(O8,{validateRadixAddress:()=>MX,getRadixToolbox:()=>Rq});module.exports=E0(O8);function MX(y){return y.startsWith("account_rdx1")&&y.length===66}async function $q({address:y,networkApi:T}){let H=!0,f,X=[],U=await Dq(T);while(H){let q={address:y,at_ledger_state:{state_version:U},cursor:f,limit_per_page:100},Q=await T.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:q});if(X=X.concat(Q.items),Q.next_cursor)f=Q.next_cursor;else H=!1}return X}async function Bq({resources:y,networkApi:T}){let H=[],f=50,X=[];for(let U=0;U<y.length;U+=50)X.push(y.slice(U,U+50));for(let U of X){let q=U.map((Y)=>Y.resource_address),Q=await T.state.getEntityDetailsVaultAggregated(q),Z=new Map;for(let Y of Q)if(Y.details!==void 0){let W=Y.metadata?.items.find((M)=>M.key==="symbol"),k=W?.value.typed.type==="String"?W.value.typed.value:"?";if(Y.details.type==="FungibleResource")Z.set(Y.address,{decimals:Y.details.divisibility,symbol:k})}for(let Y of U)if(Y.aggregation_level==="Global"){let W=Z.get(Y.resource_address)||{decimals:0,symbol:"?"},k=t0.AssetValue.from({asset:W.symbol!==t0.Chain.Radix?`${t0.Chain.Radix}.${W.symbol}-${Y.resource_address}`:"XRD.XRD",value:Y.amount});H.push(k)}}return H}async function Dq(y){return(await y.status.getCurrent()).ledger_state.state_version}function Rq({dappConfig:y}={}){let T=y||t0.SKConfig.get("integrations").radix,H;async function f(){if(H)return H;let{GatewayApiClient:U}=await import("@radixdlt/babylon-gateway-api-sdk"),{RadixDappToolkit:q}=await import("@radixdlt/radix-dapp-toolkit"),Q=q({...T,networkId:T.network?.networkId||1});return H=U.initialize(Q.gatewayApi.clientConfig),H}async function X(U){let q=await f(),Q=await $q({address:U,networkApi:q}),Z=await Bq({networkApi:q,resources:Q});if(!Z.some((W)=>W.isGasAsset))return[t0.AssetValue.from({chain:t0.Chain.Radix}),...Z];return Z}return{getAddress:()=>"",getBalance:X,getNetworkApi:f,signAndBroadcast:()=>{throw new t0.SwapKitError("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:MX}}var t0;var k8=l(()=>{t0=require("@swapkit/helpers")});function _5(y){return/^[0-9A-Fa-f]{40}$/.test(y)}function py(y){if(_5(y))return y.toUpperCase();if(y.length<=3){let H=Buffer.from(y.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${H}${"0".repeat(10)}`.toUpperCase()}let T=Buffer.from(y).toString("hex").toUpperCase();if(T.length>40)throw new _X.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return T.padEnd(40,"0")}function Fq(y){if(!_5(y))return y;if(y.toUpperCase().startsWith("00")){let T=y.slice(24,30);try{let H=Buffer.from(T,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(H)&&H.length>0)return H}catch{}return y.toUpperCase()}try{let T=y.replace(/0+$/,""),H=T.length%2===0?T:`${T}0`,f=Buffer.from(H,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function Y1(y){if(_5(y))return y.toUpperCase();if(y.length<=3)return y;return py(y)}var _X;var C5=l(()=>{_X=require("@swapkit/helpers")});async function Iq(y,T){let H=Y1(y),f=O5.find((X)=>Y1(X.currency)===H&&X.issuer===T);if(f)return f;try{let X=await N5.RequestClient.get(`https://api.xrplmeta.org/token/${y}:${T}`);if(X)return{currency:y,decimals:15,description:X.desc,domain:X.domain,icon:X.icon,issuer:T,name:X.name,verified:X.self_assessment?.is_regulated||X.self_assessment?.is_licensed}}catch(X){N5.warnOnce({condition:!0,id:`xrpl_token_lookup_${y}_${T}`,warning:`Failed to fetch XRPL token info for ${y}:${T}: ${X}`})}return{currency:y,decimals:15,issuer:T,verified:!1}}function xq(y){return O5.filter((T)=>T.issuer===y)}function Pq(y,T){let H=Y1(y);return O5.some((f)=>Y1(f.currency)===H&&f.issuer===T)}var N5,O5;var CX=l(()=>{C5();N5=require("@swapkit/helpers"),O5=[{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 B8={};x0(B8,{validateRippleAddress:()=>r1,parseXrplTokenIdentifier:()=>$8,normalizeCurrency:()=>Y1,isKnownToken:()=>Pq,isHexCurrency:()=>_5,hexToCurrency:()=>Fq,getXrplTokenInfo:()=>Iq,getRippleToolbox:()=>Aq,getKnownTokensByIssuer:()=>xq,formatXrplTokenIdentifier:()=>$X,currencyToHex:()=>py,XRPL_TOKEN_ERROR_CODES:()=>k5,XRPL_KNOWN_TOKENS:()=>O5});module.exports=E0(B8);function NX(y){if(typeof y!=="object"||y===null||!("data"in y))return!1;let{data:T}=y;return typeof T==="object"&&T!==null&&"error_code"in T&&T.error_code===jq.ACCOUNT_NOT_FOUND}function $8(y){let T=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!T?.[1]||!T?.[2])return null;if(!r1(T[2]))return null;return{currency:T[1],issuer:T[2]}}function $X(y,T){return`${a.Chain.Ripple}.${y}-${T}`}async function OX(y){if(y.isGasAsset){let{xrpToDrops:H}=await import("xrpl");return H(y.getValue("string"))}let T=$8(y.toString());if(!T)throw new a.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:T.currency,issuer:T.issuer,value:y.getValue("string")}}function kX(y){let T,H=()=>{return T??=import("xrpl").then(({Wallet:f})=>f.fromMnemonic(y)),T};return{getAddress:async()=>(await H()).address,signTransaction:async(f)=>(await H()).sign(f)}}function r1(y){return $5.isValidClassicAddress(y)||$5.isValidXAddress(y)}function Aq(y={}){let T;async function H(){if(T)return T;return T=await J1.match(y).with({phrase:J1.P.string},({phrase:O})=>kX(O)).with({signer:J1.P.any},({signer:O})=>O).otherwise(()=>{return}),T}let f;async function X(){let O=await a.getRPCUrl(a.Chain.Ripple);if(!O)throw new a.SwapKitError({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:a.Chain.Ripple}});let{Client:$}=await import("xrpl"),z=new $(O);return await z.connect(),z}async function U(){if(f){let O=await f.catch(()=>null);if(O?.isConnected())return O}return f=X(),f}async function q(O){let $=await O.request({command:"server_state"}),z=$.result.state.validated_ledger??$.result.state.closed_ledger;if(!z||!Number.isSafeInteger(z.reserve_base)||z.reserve_base<0||!Number.isSafeInteger(z.reserve_inc)||z.reserve_inc<0)throw new a.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{reason:"XRPL reserve data is unavailable or invalid"}});return{baseReserveDrops:BigInt(z.reserve_base),ownerReserveDrops:BigInt(z.reserve_inc)}}let Q=async()=>{let O=await H();if(!O)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return O.getAddress()},Z=async(O)=>{let $=O||await Q(),{baseDecimal:z}=a.getChainConfig(a.Chain.Ripple),G=await U();try{let[J,N]=await Promise.all([G.request({account:$,command:"account_info"}),G.request({account:$,command:"account_lines"})]),D=J.result.account_data.Balance,F=[a.AssetValue.from({chain:a.Chain.Ripple,fromBaseDecimal:z,value:D})];for(let j of N.result.lines){let V=$X(j.currency,j.account);if(Number.parseFloat(j.balance)!==0)F.push(a.AssetValue.from({asset:V,asyncTokenLookup:!1,value:j.balance}))}return F}catch(J){if(NX(J))return[a.AssetValue.from({chain:a.Chain.Ripple,value:0})];throw new a.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{address:$,error:J}})}},Y=async()=>{let{baseDecimal:O}=a.getChainConfig(a.Chain.Ripple),G=(await(await U()).request({command:"fee"})).result.drops.open_ledger_fee;return a.AssetValue.from({chain:a.Chain.Ripple,fromBaseDecimal:O,value:G})};async function W(O){let $=O||await Q(),z=await U();try{return(await z.request({account:$,command:"account_lines"})).result.lines.map((J)=>({account:J.account,authorized:J.authorized??!1,balance:J.balance,currency:J.currency,freeze:J.freeze??!1,freezePeer:J.freeze_peer??!1,limit:J.limit,limitPeer:J.limit_peer,noRipple:J.no_ripple??!1,noRipplePeer:J.no_ripple_peer??!1,peerAuthorized:J.peer_authorized??!1,qualityIn:J.quality_in??0,qualityOut:J.quality_out??0}))}catch(G){if(NX(G))return[];throw new a.SwapKitError({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:$,error:G}})}}async function k({address:O,currency:$,issuer:z}){let G=await W(O),J=py($);return G.some((N)=>{return py(N.currency)===J&&N.account===z})}async function M({currency:O,issuer:$,limit:z,sender:G}){let J=G||await Q();if(!r1($))throw new a.SwapKitError({errorKey:"core_transaction_invalid_recipient_address",info:{address:$}});let N=Number.parseFloat(z);if(Number.isNaN(N)||N<0)throw new a.SwapKitError({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:z}});let D=await U(),F={Account:J,LimitAmount:{currency:O,issuer:$,value:z},TransactionType:"TrustSet"};return D.autofill(F)}async function L(O,$){let[z,G,J]=await Promise.all([O.request({account:$,command:"account_info"}),q(O),Y()]),{Balance:N,OwnerCount:D}=z.result.account_data,F=J.getBaseValue("bigint"),j=BigInt(N)-G.baseReserveDrops-BigInt(D)*G.ownerReserveDrops-F;if(j<=0n)throw new a.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:a.Chain.Ripple,balance:N,baseReserve:G.baseReserveDrops.toString(),fee:F.toString(),ownerCount:D,ownerReserve:G.ownerReserveDrops.toString()}});let{baseDecimal:V}=a.getChainConfig(a.Chain.Ripple),v=a.AssetValue.from({chain:a.Chain.Ripple,fromBaseDecimal:V,value:j.toString()});return{amount:await OX(v),fee:F.toString()}}async function _(O,$){let z=$8(O.toString());if(!z)throw new a.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:O.toString()}});let G=await U(),J="0",N;while(!0){let D=await G.request({account:$,command:"account_lines",peer:z.issuer,...N!==void 0&&{marker:N}}),F=D.result.lines.find((V)=>V.account===z.issuer&&py(V.currency)===py(z.currency));if(F){J=F.balance;break}let j=D.result.marker;if(j===void 0||j===null)break;N=j}if(!Number.isFinite(Number(J))||Number(J)<=0)throw new a.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:O.toString(),balance:J}});return{currency:z.currency,issuer:z.issuer,value:J}}async function C({assetValue:O,recipient:$,memo:z,sender:G,sweep:J,destinationTag:N,extendBySeconds:D=150}){if(!r1($))throw new a.SwapKitError({errorKey:"core_transaction_invalid_recipient_address"});let F=G||await Q();if(O.chain!==a.Chain.Ripple)throw new a.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:O.toString()}});let j=J&&O.isGasAsset?await L(await U(),F):void 0,V=j?j.amount:J?await _(O,F):await OX(O),v={Account:F,Amount:V,Destination:$,TransactionType:"Payment",...j&&{Fee:j.fee},...N!==void 0&&{DestinationTag:N}};if(z)v.Memos=[{Memo:{MemoData:Buffer.from(z).toString("hex")}}];let T0=await(await U()).autofill(v);if(T0.LastLedgerSequence&&D>0)T0.LastLedgerSequence+=Math.ceil(D/4);return T0}async function B(O){let $=await H();if(!$)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return $.signTransaction(O)}async function R(O){let z=await(await U()).submitAndWait(O),{result:G}=z;if(G.validated)return G.hash;let J=G.meta?.TransactionResult,N=J1.match(J).with(k5.tecNO_LINE,()=>"No trust line exists for this token").with(k5.tecPATH_DRY,()=>"Payment path could not deliver funds").with(k5.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new a.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:a.Chain.Ripple,...N?{reason:N}:{txResult:J}}})}let A=async(O)=>{try{let $=await B(O);return R($.tx_blob)}catch($){if($ instanceof a.SwapKitError)throw $;throw new a.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:a.Chain.Ripple,error:$}})}};async function x({assetValue:O,memo:$,recipient:z,sweep:G}){let J=await H();if(!J)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let N=await J.getAddress(),D=await C({assetValue:O,memo:$,recipient:z,sender:N,sweep:G}),F=await B(D);return R(F.tx_blob)}async function P(O){let $=await H();if(!$)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let z=await $.getAddress(),G=await M({...O,sender:z}),J=await B(G);return R(J.tx_blob)}function K(){let O=f;if(f=null,O)O.then(($)=>{if($?.isConnected())return $.disconnect();return}).catch(($)=>{console.warn("XRPL Cleanup failed silently:",$)})}return{broadcastTransaction:R,createSigner:kX,createTransaction:C,disconnect:K,estimateTransactionFee:Y,getAddress:Q,getBalance:Z,getTrustLines:W,hasTrustLine:k,setTrustLine:M,setTrustLineAndBroadcast:P,signAndBroadcastTransaction:A,signTransaction:B,transfer:x,validateAddress:r1}}var a,$5,J1,jq,k5;var D8=l(()=>{C5();a=require("@swapkit/helpers"),$5=require("ripple-address-codec"),J1=require("ts-pattern");C5();CX();jq={ACCOUNT_NOT_FOUND:19};k5={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});function R8(y,T){let H=0n,f=0n,X=T;while(X<y.length&&X-T<10){let U=y[X++];if(U===void 0)break;if(H|=BigInt(U&127)<<f,f+=7n,(U&128)===0)return[H,X]}throw new my.SwapKitError("toolbox_tron_transaction_creation_failed")}function a1(y){let T=[],H=y<0n?y+2n**64n:y;while(H>=128n)T.push(Number(H&0x7fn)|128),H>>=7n;return T.push(Number(H)),T}function B5(y,T,H){let f=y.get(T);if(f)f.push(H);else y.set(T,[H])}function Vq(y){let T=new Map,H=0;while(H<y.length){let[f,X]=R8(y,H);H=X;let U=Number(f>>3n),q=Number(f&7n);if(q===D5){let[Q,Z]=R8(y,H);H=Z,B5(T,U,{data:new Uint8Array(a1(Q)),wireType:D5})}else if(q===R5){let[Q,Z]=R8(y,H);H=Z;let Y=Number(Q);if(Y<0||H+Y>y.length)throw new my.SwapKitError("toolbox_tron_transaction_creation_failed");let W=y.slice(H,H+Y);H+=Y,B5(T,U,{data:W,wireType:R5})}else if(q===BX){if(H+8>y.length)throw new my.SwapKitError("toolbox_tron_transaction_creation_failed");let Q=y.slice(H,H+8);H+=8,B5(T,U,{data:Q,wireType:BX})}else if(q===DX){if(H+4>y.length)throw new my.SwapKitError("toolbox_tron_transaction_creation_failed");let Q=y.slice(H,H+4);H+=4,B5(T,U,{data:Q,wireType:DX})}else throw new my.SwapKitError("toolbox_tron_transaction_creation_failed")}return T}function wq(y){let T=[];for(let[U,q]of[...y.entries()].sort(([Q],[Z])=>Q-Z))for(let{wireType:Q,data:Z}of q){let Y=BigInt(U<<3|Q);if(T.push(new Uint8Array(a1(Y))),Q===R5)T.push(new Uint8Array(a1(BigInt(Z.length))));T.push(Z)}let H=T.reduce((U,q)=>U+q.length,0),f=new Uint8Array(H),X=0;for(let U of T)f.set(U,X),X+=U.length;return f}function FX(y,T){if(!y||y.length%2!==0)throw new my.SwapKitError("toolbox_tron_transaction_creation_failed");let H=W1.hexToBytes(y),f=Vq(H);if(T.expiration!==void 0)f.set(Eq,[{data:new Uint8Array(a1(BigInt(T.expiration))),wireType:D5}]);if(T.data!==void 0)f.set(Sq,[{data:W1.hexToBytes(T.data),wireType:R5}]);if(T.fee_limit!==void 0)f.set(Kq,[{data:new Uint8Array(a1(BigInt(T.fee_limit))),wireType:D5}]);let X=wq(f),U=W1.bytesToHex(X),q=W1.bytesToHex(RX.sha256(X));return{raw_data_hex:U,txID:q}}var RX,W1,my,D5=0,BX=1,R5=2,DX=5,Eq=8,Sq=10,Kq=18;var IX=l(()=>{RX=require("@noble/hashes/sha2.js"),W1=require("@noble/hashes/utils.js"),my=require("@swapkit/helpers")});function r0(y){if(typeof y!=="string")return!1;try{let T=F5.decode(y);return T.length===21&&T[0]===jX}catch{return!1}}function AX(y){return n0.bytesToHex(F5.decode(y))}function bq(y){return F5.decode(y).slice(1)}function EX(y){let T=F8.secp256k1.getPublicKey(n0.hexToBytes(y),!1),H=xX.keccak_256(T.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=jX,f.set(H,1),F5.encode(f)}function SX({txID:y,privateKey:T}){let H=F8.secp256k1.sign(n0.hexToBytes(y),n0.hexToBytes(T),{format:"recovered",prehash:!1}),f=H[0]??0,X=n0.bytesToHex(H.slice(1,33)),U=n0.bytesToHex(H.slice(33,65)),q=(f+27).toString(16).padStart(2,"0");return X+U+q}function z1({txID:y,raw_data_hex:T}){let H=n0.bytesToHex(I8.sha256(n0.hexToBytes(T)));if(y!==H)throw new x8.SwapKitError("toolbox_tron_invalid_transaction_integrity",{expected:H,txID:y})}function hq(y){return`000000000000000000000000${n0.bytesToHex(bq(y))}`}function lq(y){let T=typeof y==="bigint"?y:BigInt(y);if(T<0n||T>=vq)throw new x8.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:T.toString()});return T.toString(16).padStart(64,"0")}function G1(y){return y.map(({type:T,value:H})=>T==="address"?hq(H):lq(BigInt(H))).join("")}function KX(y){return n0.bytesToHex(new TextEncoder().encode(y))}var F8,I8,xX,n0,PX,x8,F5,jX=65,vq;var P8=l(()=>{F8=require("@noble/curves/secp256k1.js"),I8=require("@noble/hashes/sha2.js"),xX=require("@noble/hashes/sha3.js"),n0=require("@noble/hashes/utils.js"),PX=require("@scure/base"),x8=require("@swapkit/helpers"),F5=PX.createBase58check(I8.sha256),vq=2n**256n});function vX(){try{return O0.getRPCUrlSync(O0.Chain.Tron)}catch{return wX}}function bX(){let y=new AbortController,T=setTimeout(()=>y.abort(),oq);return{cleanup:()=>clearTimeout(T),signal:y.signal}}async function gy(y,T){let{signal:H,cleanup:f}=bX();try{let X=await fetch(`${vX()}${y}`,{body:JSON.stringify(T),headers:{"Content-Type":"application/json"},method:"POST",signal:H});if(!X.ok)throw new O0.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${X.status} ${X.statusText} on ${y}`});return await X.json()}finally{f()}}async function hX(y,T){let{signal:H,cleanup:f}=bX();try{let X=await fetch(`${T??vX()}${y}`,{headers:{"Content-Type":"application/json"},signal:H});if(!X.ok)throw new O0.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${X.status} ${X.statusText} on ${y}`});return await X.json()}finally{f()}}async function I5(y){if(!r0(y))throw new O0.SwapKitError("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let T=await hX(`/v1/accounts/${y}`,wX);if(!(T.success&&T.data)||T.data.length===0)return;let H;try{H=AX(y).toLowerCase()}catch{H=y.toLowerCase()}let f=T.data.find((X)=>X.address.toLowerCase()===H);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(T){if(T instanceof O0.SwapKitError)throw T;throw new O0.SwapKitError("toolbox_tron_trongrid_api_error",{address:y,message:T instanceof Error?T.message:"Unknown error"})}}async function lX({from:y,to:T,amount:H}){let X=await gy("/wallet/createtransaction",{amount:H,owner_address:y,to_address:T,visible:!0});if(!X.txID||!X.raw_data_hex||!X.raw_data)throw new O0.SwapKitError("toolbox_tron_transaction_creation_failed");let q=X.raw_data?.contract?.[0]?.parameter?.value;if(q?.to_address!==T||q?.owner_address!==y||q?.amount!==H)throw new O0.SwapKitError("toolbox_tron_transaction_creation_failed");return z1(X),X}async function uX({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f,feeLimit:X,callValue:U=0}){let q=await gy("/wallet/triggersmartcontract",{call_value:U,contract_address:T,fee_limit:X,function_selector:H,owner_address:y,parameter:f,visible:!0});if(!q.result.result||!q.transaction?.txID||!q.transaction?.raw_data_hex)throw new O0.SwapKitError("toolbox_tron_transaction_creation_failed");let Z=q.transaction.raw_data?.contract?.[0]?.parameter?.value;if(Z?.contract_address!==T||Z?.owner_address!==y)throw new O0.SwapKitError("toolbox_tron_transaction_creation_failed");return z1(q.transaction),q.transaction}function pX({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return gy("/wallet/triggerconstantcontract",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}function nq({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return gy("/wallet/estimateenergy",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}function VX(y){let T=typeof y==="number"?y:typeof y==="string"?Number(y):Number.NaN;return Number.isFinite(T)&&T>0?T:void 0}async function s1(y){try{let{result:T,txid:H}=await gy("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!T||!H)throw new O0.SwapKitError("toolbox_tron_token_transfer_failed");return H}catch(T){throw new O0.SwapKitError("toolbox_tron_broadcast_failed",{error:T})}}async function e1(){let y={};try{let{chainParameter:T}=await hX("/wallet/getchainparameters");for(let H of T)y[H.key]=H.value}catch(T){O0.warnOnce({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${T instanceof Error?T.message:T}`})}return{bandwidthFee:y.getTransactionFee??uq,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??pq,energyFee:y.getEnergyFee??mq,memoFee:y.getMemoFee??gq}}async function j8(y){try{let T=await gy("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(T.freeNetLimit??600)-(T.freeNetUsed??0),total:T.NetLimit??0,used:T.NetUsed??0},energy:{total:T.EnergyLimit??0,used:T.EnergyUsed??0}}}catch(T){return O0.warnOnce({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${T instanceof Error?T.message:T}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function yf(y){try{let T=await gy("/wallet/getaccount",{address:y,visible:!0});return T&&Object.keys(T).length>0}catch{return!1}}async function A8(y){try{let T=await nq({...y,ownerAddress:y.sender}),H=T.energy_required??T.energyRequired;if(T.result&&!T.result.result)throw new O0.SwapKitError("toolbox_tron_trongrid_api_error",{message:T.result.message||"estimateenergy failed"});if(H!==void 0){let f=VX(H);if(f!==void 0)return f;throw new O0.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(T){O0.warnOnce({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${T instanceof Error?T.message:T}`})}try{let{energy_used:T}=await pX({...y,ownerAddress:y.sender}),H=VX(T);if(H!==void 0)return H;throw new O0.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid triggerconstantcontract energy response"})}catch(T){throw O0.warnOnce({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy: ${T instanceof Error?T.message:T}`}),new O0.SwapKitError("toolbox_tron_trongrid_api_error",{message:`Unable to estimate contract energy: ${T instanceof Error?T.message:T}`})}}async function mX({assetAddress:y,owner:T,spender:H}){let f=G1([{type:"address",value:T},{type:"address",value:H}]),U=(await pX({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:H,parameter:f})).constant_result?.[0];if(!U)return 0n;try{return BigInt(`0x${U}`)}catch{return 0n}}var O0,wX="https://api.trongrid.io",uq=1000,pq=1e6,mq=420,gq=1e6,oq=30000;var gX=l(()=>{P8();O0=require("@swapkit/helpers")});function sX({phrase:y,derivationPath:T}){let H=tX.HDKey.fromMasterSeed(rX.mnemonicToSeedSync(y)).derive(T);if(!H.privateKey)throw new p.SwapKitError("toolbox_tron_no_signer");return iX.bytesToHex(H.privateKey)}function eX(y,T){return{...y,value:String(T)}}function y4(y,T){if(!T)return y;return{...y,data:T.startsWith("0x")?T:`0x${T}`}}function f4({phrase:y,derivationPath:T,index:H}){let f=T||p.derivationPathToString(p.updateDerivationPath(p.NetworkDerivationPath[p.Chain.Tron],{index:H||0}));return sX({derivationPath:f,phrase:y})}function dq({phrase:y,derivationPath:T}){let H=sX({derivationPath:T,phrase:y}),f=EX(H);return{getAddress:()=>Promise.resolve(f),signTransaction:(X)=>{z1(X);let U=SX({privateKey:H,txID:X.txID});return Promise.resolve({...X,signature:[U]})}}}function dX({transaction:y,memo:T,expiration:H,feeLimit:f}){let X={},U={};if(f!==void 0&&y.raw_data)X.fee_limit=f,U.fee_limit=f;if(T){let Z=T.startsWith("0x")?T.replace(/^0x/,""):KX(T);X.data=Z,U.data=Z}if(H){let Z=y.raw_data.expiration+H*1000;X.expiration=Z,U.expiration=Z}if(Object.keys(X).length===0)return y;let{raw_data_hex:q,txID:Q}=FX(y.raw_data_hex,X);return{...y,raw_data:{...y.raw_data,...U},raw_data_hex:q,txID:Q}}function T4(y={}){let T="index"in y?y.index||0:0,H=p.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:p.updateDerivationPath(p.NetworkDerivationPath[p.Chain.Tron],{index:T})),f,X=!1;function U(){if(X)return Promise.resolve(f);return f=L1.match(y).with({phrase:L1.P.string},({phrase:z})=>dq({derivationPath:H,phrase:z})).with({signer:L1.P.not(L1.P.nullish)},({signer:z})=>z).otherwise(()=>{return}),X=!0,Promise.resolve(f)}async function q(){let z=await U();if(!z)throw new p.SwapKitError("toolbox_tron_no_signer");return z.getAddress()}async function Q(z,G){let J=z||nX,N=G??(await e1()).energyFee,D=J*N,F=Math.ceil(D*1.5);return Math.min(Math.max(F,1e7),150000000)}async function Z({contractAddress:z,functionSelector:G,parameter:J,sender:N,memo:D,expiration:F,extraEnergy:j=0}){let V=await A8({contractAddress:z,functionSelector:G,parameter:J,sender:N}),v=await Q(V+j),m=await uX({contractAddress:z,feeLimit:v,functionSelector:G,ownerAddress:N,parameter:J});return dX({expiration:F,feeLimit:v,memo:D,transaction:m})}async function Y(z){if(!r0(z))return[p.AssetValue.from({chain:p.Chain.Tron})];try{let G=await I5(z);if(!G)return[p.AssetValue.from({chain:p.Chain.Tron})];let J=[p.AssetValue.from({chain:p.Chain.Tron,fromBaseDecimal:6,value:String(G.balance)})],N=G.trc20?.find((D)=>(S8 in D));if(N){let D=N[S8];J.push(p.AssetValue.from({asset:`TRON.USDT-${S8}`,fromBaseDecimal:6,value:D}))}return J}catch(G){return p.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${G instanceof Error?G.message:G}`}),[p.AssetValue.from({chain:p.Chain.Tron})]}}async function W({recipient:z,assetValue:G,memo:J,expiration:N,sweep:D}){if(!r0(z))throw new p.SwapKitError("toolbox_tron_token_transfer_failed",{message:"invalid address"});let F=await U();if(!F)throw new p.SwapKitError("toolbox_tron_no_signer");try{let j=await q(),V=await A({assetValue:G,expiration:N,memo:J,recipient:z,sender:j,sweep:D}),v=await F.signTransaction(V),m=await s1(v);if(!m)throw new p.SwapKitError("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return m}catch(j){if(j instanceof p.SwapKitError&&j.errorKey==="toolbox_sweep_amount_too_low")throw j;throw new p.SwapKitError("toolbox_tron_token_transfer_failed",{message:j instanceof Error?j.message:String(j)})}}function k({requiredBandwidth:z,resources:G,feePerUnit:J}){let N=Math.max(0,G.free+G.total-G.used);return z>N?(z-N)*J:0}async function M({memo:z,recipient:G,senderAddress:J}){let[N,D,F]=await Promise.all([e1(),yf(G),j8(J)]),j=D?0:N.createAccountFee,V=k({feePerUnit:N.bandwidthFee,requiredBandwidth:oX,resources:F.bandwidth}),v=z?N.memoFee:0;return p.AssetValue.from({chain:p.Chain.Tron,fromBaseDecimal:p.BaseDecimal.TRON,value:j+V+v})}async function L({assetValue:z,amountInBaseUnits:G=z.getBaseValue("string"),memo:J,recipient:N,senderAddress:D}){let F=z.address;if(!F)throw new p.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:z.toString()});let[j,V,v,m]=await Promise.all([e1(),yf(N),j8(D),A8({contractAddress:F,functionSelector:"transfer(address,uint256)",parameter:G1([{type:"address",value:N},{type:"uint256",value:G}]),sender:D})]),Z0=m+(V?0:E8),D0=k({feePerUnit:j.bandwidthFee,requiredBandwidth:cX,resources:v.bandwidth}),I=Math.max(0,v.energy.total-v.energy.used),S=Z0>I?(Z0-I)*j.energyFee:0,b=J?j.memoFee:0;return p.AssetValue.from({chain:p.Chain.Tron,fromBaseDecimal:p.BaseDecimal.TRON,value:D0+S+b})}async function _({assetValue:z,memo:G,recipient:J}){let[N,D]=await Promise.all([e1(),yf(J)]);if(z.isGasAsset){let v=D?0:N.createAccountFee,m=G?N.memoFee:0;return p.AssetValue.from({chain:p.Chain.Tron,fromBaseDecimal:p.BaseDecimal.TRON,value:v+oX*N.bandwidthFee+m})}let j=await Q(nX+(D?0:E8),N.energyFee),V=G?N.memoFee:0;return p.AssetValue.from({chain:p.Chain.Tron,fromBaseDecimal:p.BaseDecimal.TRON,value:j+cX*N.bandwidthFee+V})}async function C({assetValue:z,memo:G,recipient:J,sender:N}){let D=await U();try{let F=N?N:D?await q():void 0;if(!F)return _({assetValue:z,memo:G,recipient:J});return z.isGasAsset?M({memo:G,recipient:J,senderAddress:F}):L({assetValue:z,memo:G,recipient:J,senderAddress:F})}catch(F){throw p.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${F instanceof Error?F.message:F}`}),new p.SwapKitError("toolbox_fee_estimation_failed",{chain:p.Chain.Tron,error:F})}}async function B({assetValue:z,memo:G,recipient:J,sender:N,sweep:D}){if(!D)return z.getBaseValue("bigint");let[F,j]=await Promise.all([I5(N),M({memo:G,recipient:J,senderAddress:N})]),V=BigInt(F?.balance??0)-j.getBaseValue("bigint");if(V<=0n)throw new p.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amount:V.toString(),asset:z.toString()}});return V}async function R({assetValue:z,memo:G,recipient:J,sender:N,sweep:D}){if(!D)return z.getBaseValue("string");let F=z.address;if(!F)throw new p.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:z.toString()});let j=await I5(N),v=j?.trc20.find((D0)=>(F in D0))?.[F]??"0";if(BigInt(v)<=0n)throw new p.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:z.toString(),balance:v}});let m=await L({amountInBaseUnits:v,assetValue:z,memo:G,recipient:J,senderAddress:N}),T0=BigInt(j?.balance??0),Z0=m.getBaseValue("bigint");if(T0<Z0)throw new p.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:z.toString(),nativeBalance:T0.toString(),requiredNativeFee:Z0.toString()}});return v}async function A({recipient:z,assetValue:G,memo:J,sender:N,expiration:D,sweep:F}){if(!r0(z)||!r0(N))throw new p.SwapKitError("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(G.isGasAsset){let m=await B({assetValue:G,expiration:D,memo:J,recipient:z,sender:N,sweep:F});if(m>BigInt(Number.MAX_SAFE_INTEGER))throw new p.SwapKitError({errorKey:"toolbox_tron_transaction_creation_failed",info:{amount:m.toString(),reason:`Native transfer amount exceeds the safe integer limit of ${Number.MAX_SAFE_INTEGER} SUN`}});let T0=await lX({amount:Number(m),from:N,to:z});return dX({expiration:D,memo:J,transaction:T0})}let j=G.address;if(!j)throw new p.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:G.toString()});let V=await R({assetValue:G,expiration:D,memo:J,recipient:z,sender:N,sweep:F}),v=await yf(z);return Z({contractAddress:j,expiration:D,extraEnergy:v?0:E8,functionSelector:"transfer(address,uint256)",memo:J,parameter:G1([{type:"address",value:z},{type:"uint256",value:V}]),sender:N})}async function x(z){z1(z);let G=await U();if(!G)throw new p.SwapKitError("toolbox_tron_no_signer");return G.signTransaction(z)}async function P(z){let G=await x(z);return s1(G)}function K({assetAddress:z,spenderAddress:G,from:J}){return mX({assetAddress:z,owner:J,spender:G})}async function O({assetAddress:z,spenderAddress:G,from:J,amount:N}){let D=await K({assetAddress:z,from:J,spenderAddress:G});if(!N)return D>0n;return D>=BigInt(N)}async function $({assetAddress:z,spenderAddress:G,amount:J,from:N}){if(!r0(z)||!r0(G))throw new p.SwapKitError("toolbox_tron_approve_failed");let D=await U();if(!D)throw new p.SwapKitError("toolbox_tron_no_signer");let F=N||await q(),j=J!==void 0?BigInt(J).toString():cq;try{let V=await Z({contractAddress:z,functionSelector:"approve(address,uint256)",parameter:G1([{type:"address",value:G},{type:"uint256",value:j}]),sender:F}),v=await D.signTransaction(V),m=await s1(v);if(!m)throw new p.SwapKitError("toolbox_tron_approve_failed");return m}catch(V){if(V instanceof p.SwapKitError)throw V;throw new p.SwapKitError("toolbox_tron_approve_failed",{error:V})}}return{approve:$,broadcastTransaction:s1,createTransaction:A,estimateTransactionFee:C,getAddress:q,getApprovedAmount:K,getBalance:Y,getRpcUrl:()=>p.getRPCUrl(p.Chain.Tron),isApproved:O,signAndBroadcastTransaction:P,signTransaction:x,transfer:W,validateAddress:r0}}var iX,tX,rX,p,L1,aX,oX=268,nX=65000,E8=25000,cX=345,S8="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",cq="115792089237316195423570985008687907853269984665640564039457584007913129639935";var H4=l(()=>{IX();gX();P8();iX=require("@noble/hashes/utils.js"),tX=require("@scure/bip32"),rX=require("@scure/bip39"),p=require("@swapkit/helpers"),L1=require("ts-pattern"),aX=r0});var K8={};x0(K8,{withTronTransactionValue:()=>eX,withTronTransactionData:()=>y4,validateTronAddress:()=>aX,getTronToolbox:()=>T4,getTronPrivateKeyFromMnemonic:()=>f4});module.exports=E0(K8);var V8=l(()=>{H4()});async function X4(y){if(x5&&Date.now()-x5.timestamp<rq)return x5.value;let H=(await y.ledgers().order("desc").limit(1).call()).records[0]?.base_reserve_in_stroops;if(H===void 0)throw new i.SwapKitError({errorKey:"toolbox_stellar_balance_error",info:{reason:"base_reserve_unavailable"}});return x5={timestamp:Date.now(),value:H},H}function w8(y){return i.AssetValue.from({chain:i.Chain.Stellar,value:y}).getBaseValue("bigint")}function aq(y){let{baseDecimal:T}=i.getChainConfig(i.Chain.Stellar);return i.AssetValue.from({chain:i.Chain.Stellar,fromBaseDecimal:T,value:y}).getValue("string")}function Q4({balance:y,baseReserveInStroops:T,numSponsored:H,numSponsoring:f,sellingLiabilities:X,subentryCount:U}){let q=w8(y),Q=w8(X),Z=q4+U+f-H,Y=BigInt(Z)*BigInt(T),W=q-Y-Q;return W>0n?W:0n}function sq({account:y,assetValue:T,baseReserveInStroops:H,fee:f}){let X=y.balances.find((Q)=>Q.asset_type==="native"),q=(X?Q4({balance:X.balance,baseReserveInStroops:H,numSponsored:y.num_sponsored,numSponsoring:y.num_sponsoring,sellingLiabilities:X.selling_liabilities,subentryCount:y.subentry_count}):0n)-BigInt(f);if(q<=0n)throw new i.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:T.toString(),reason:"spendable balance does not cover the transaction fee"}});return q}function eq({baseReserveInStroops:y,sweepAmountInStroops:T}){if(T===void 0||y===void 0)return;let H=BigInt(q4)*BigInt(y);if(T<H)throw new i.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amountInStroops:T,minimumStartingBalanceInStroops:H,reason:"starting balance is below the Stellar account minimum"}})}function yQ({account:y,assetCode:T,assetValue:H,issuer:f,sweep:X}){if(!X)return H.getValue("string");let U=y.balances.find((q)=>("asset_code"in q)&&q.asset_code===T&&q.asset_issuer===f)?.balance??"0";if(w8(U)<=0n)throw new i.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:H.toString(),balance:U,reason:"trust-line balance is not positive"}});return U}function fQ(y){if(!y)return;if(new TextEncoder().encode(y).length>28)throw new i.SwapKitError("helpers_invalid_memo_type")}function j5(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return iq.test(y)}function Z4(y){if(typeof y!=="object"||y===null)return;let T="response"in y?y.response:void 0;return typeof T?.status==="number"?T.status:void 0}function TQ(y){return Z4(y)===504}function HQ(y){return y.hash?.().toString("hex")}function XQ(y){return[...new Set([y,...i.SKConfig.get("rpcUrls")[i.Chain.Stellar]])].filter(Boolean)}async function Y4(y){if(!j5(y))return!1;try{let{StrKey:T}=await import("@stellar/stellar-sdk");return T.isValidEd25519PublicKey(y)}catch{return!1}}async function U4(y){let{address:T,ticker:H}=y,f=T?await Y4(T):!1;if(y.chain!==i.Chain.Stellar||y.isGasAsset||!tq.test(H)||!T||!f)throw new i.SwapKitError({errorKey:"helpers_invalid_asset_identifier",info:{identifier:y.toString()}});return{assetCode:H,issuer:T}}function J4(y={}){let T,H=y.derivationPath||i.NetworkDerivationPath[i.Chain.Stellar],f=i.derivationPathToString(H.slice(0,3));async function X({phrase:x,path:P}){let{HDKey:K}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:O}=await import("@scure/bip39"),{Keypair:$}=await import("@stellar/stellar-sdk"),z=O(x),J=K.fromMasterSeed(z).derive(P,!0);return $.fromRawEd25519Seed(Buffer.from(J.privateKey))}async function U(){if(T)return T;let x=P5.match(y).with({phrase:P5.P.string},({phrase:P})=>P).otherwise(()=>{return});if(!x)throw new i.SwapKitError("toolbox_stellar_no_signer");return T=await X({path:f,phrase:x}),T}async function q(x){let{Horizon:P}=await import("@stellar/stellar-sdk"),K=x||await i.getRPCUrl(i.Chain.Stellar);return new P.Server(K)}async function Q(x,P){for(let K of P)try{return(await(await q(K)).transactions().transaction(x).call()).hash||x}catch{}return}async function Z(x,P){let K=await i.getRPCUrl(i.Chain.Stellar),O=XQ(K),$=HQ(x),z;for(let G of O)try{let J=await q(G),{hash:N}=await J.submitTransaction(x);return N}catch(J){if(z=J,!TQ(J))break;let N=$?await Q($,O):void 0;if(N)return N}throw new i.SwapKitError(P,z)}async function Y(){try{return(await U()).publicKey()}catch{return""}}async function W(x){let P=x||await Y();if(!P)throw new i.SwapKitError("toolbox_stellar_account_not_found");let K=await q(),[O,$]=await Promise.allSettled([K.loadAccount(P),X4(K)]);if(O.status==="rejected"){let z=O.reason;if(Z4(z)===404)return[i.AssetValue.from({chain:i.Chain.Stellar,value:0})];throw z}if($.status==="rejected")throw $.reason;return O.value.balances.map((z)=>{if(z.asset_type==="native"){let N=Q4({balance:z.balance,baseReserveInStroops:$.value,numSponsored:O.value.num_sponsored,numSponsoring:O.value.num_sponsoring,sellingLiabilities:z.selling_liabilities,subentryCount:O.value.subentry_count}),{baseDecimal:D}=i.getChainConfig(i.Chain.Stellar);return i.AssetValue.from({chain:i.Chain.Stellar,fromBaseDecimal:D,value:N})}let G="asset_code"in z?z.asset_code:"",J="asset_issuer"in z?z.asset_issuer:"";return i.AssetValue.from({asset:`${i.Chain.Stellar}.${G}-${J}`,asyncTokenLookup:!1,value:z.balance})})}async function k({recipient:x,assetValue:P,memo:K,sender:O,sweep:$}){if(fQ(K),!await Y4(x))throw new i.SwapKitError("core_transaction_invalid_recipient_address");let G=O||await Y();if(!G)throw new i.SwapKitError("toolbox_stellar_no_signer");let{Asset:J,Memo:N,Networks:D,Operation:F,TransactionBuilder:j}=await import("@stellar/stellar-sdk"),V=await q(),v=await V.fetchBaseFee(),m=await V.loadAccount(G),T0=$&&P.isGasAsset?await X4(V):void 0,Z0=new j(m,{fee:String(v),networkPassphrase:D.PUBLIC});if(P.isGasAsset){let I=$&&T0!==void 0?sq({account:m,assetValue:P,baseReserveInStroops:T0,fee:v}):void 0,S=I===void 0?P.getValue("string"):aq(I);try{await V.loadAccount(x),Z0.addOperation(F.payment({amount:S,asset:J.native(),destination:x}))}catch{eq({baseReserveInStroops:T0,sweepAmountInStroops:I}),Z0.addOperation(F.createAccount({destination:x,startingBalance:S}))}}else{let{assetCode:I,issuer:S}=await U4(P),b=yQ({account:m,assetCode:I,assetValue:P,issuer:S,sweep:$});Z0.addOperation(F.payment({amount:b,asset:new J(I,S),destination:x}))}if(K)Z0.addMemo(N.text(K));return Z0.setTimeout(30).build()}async function M({assetValue:x,limit:P,sender:K}){let O=K||await Y();if(!O)throw new i.SwapKitError("toolbox_stellar_no_signer");let{Asset:$,Networks:z,Operation:G,TransactionBuilder:J}=await import("@stellar/stellar-sdk"),{assetCode:N,issuer:D}=await U4(x),F=await q(),[j,V]=await Promise.all([F.fetchBaseFee(),F.loadAccount(O)]),v=new $(N,D),m=P!==void 0?G.changeTrust({asset:v,limit:P}):G.changeTrust({asset:v});return new J(V,{fee:String(j),networkPassphrase:z.PUBLIC}).addOperation(m).setTimeout(30).build()}async function L(x){let{TransactionBuilder:P,Networks:K}=await import("@stellar/stellar-sdk"),O=await U(),$=P.fromXDR(x.toXDR(),K.PUBLIC);return $.sign(O),$}function _(x){return Z(x,"toolbox_stellar_broadcast_error")}async function C({recipient:x,assetValue:P,memo:K,sweep:O}){let $=await U(),z=$.publicKey(),G=await k({assetValue:P,memo:K,recipient:x,sender:z,sweep:O});return G.sign($),Z(G,"toolbox_stellar_transaction_failed")}async function B({assetValue:x,limit:P}){let K=await U(),O=await M({assetValue:x,limit:P,sender:K.publicKey()});return O.sign(K),Z(O,"toolbox_stellar_transaction_failed")}async function R(x){let P=await L(x);return _(P)}async function A(){let{baseDecimal:x}=i.getChainConfig(i.Chain.Stellar);try{let O=(await(await q()).feeStats()).fee_charged.p50;return i.AssetValue.from({chain:i.Chain.Stellar,fromBaseDecimal:x,value:O})}catch{return i.AssetValue.from({chain:i.Chain.Stellar,fromBaseDecimal:x,value:"100"})}}return{broadcastTransaction:_,createTransaction:k,createTrustline:B,createTrustlineTransaction:M,estimateTransactionFee:A,getAddress:Y,getBalance:W,signAndBroadcastTransaction:R,signTransaction:L,transfer:C,validateAddress:j5}}var i,P5,iq,tq,q4=2,rq=600000,x5;var W4=l(()=>{i=require("@swapkit/helpers"),P5=require("ts-pattern"),iq=/^G[A-Z2-7]{55}$/,tq=/^[A-Za-z0-9]{1,12}$/});var A5={};x0(A5,{validateStellarAddress:()=>j5,getStellarToolbox:()=>J4});module.exports=E0(A5);var E5=l(()=>{W4()});var QQ={};x0(QQ,{getToolbox:()=>v8,getFeeEstimator:()=>qQ,getAddressValidator:()=>UQ});module.exports=E0(QQ);var n=require("@swapkit/helpers");async function UQ(){let{match:y}=await import("ts-pattern"),{validateAptosAddress:T}=await Promise.resolve().then(() => (Uf(),Xf)),{validateEVMAddress:H}=await Promise.resolve().then(() => (yT(),k2)),{validateCardanoAddress:f}=await Promise.resolve().then(() => (XT(),HT)),{getCosmosAddressValidator:X}=await Promise.resolve().then(() => (uf(),lf)),{validateHyperCoreAddress:U}=await Promise.resolve().then(() => (xT(),IT)),{validateSolanaAddress:q}=await Promise.resolve().then(() => (ST(),ET)),{validateStarknetAddress:Q}=await Promise.resolve().then(() => (tf(),df)),{validateSuiAddress:Z}=await Promise.resolve().then(() => (ef(),sf)),{validateTonAddress:Y}=await Promise.resolve().then(() => (T5(),f5)),{getUTXOAddressValidator:W}=await Promise.resolve().then(() => (T8(),f8)),{validateNearAddress:k}=await Promise.resolve().then(() => (N8(),C8)),{validateRadixAddress:M}=await Promise.resolve().then(() => (k8(),O8)),{validateRippleAddress:L}=await Promise.resolve().then(() => (D8(),B8)),{validateTronAddress:_}=await Promise.resolve().then(() => (V8(),K8)),{validateStellarAddress:C}=await Promise.resolve().then(() => (E5(),A5));return function({address:R,chain:A}){return y(A).with(...n.EVMChains,()=>H(R)).with(...n.UTXOChains,(P)=>{return W(P)(R)}).with(...n.CosmosChains,(P)=>{return X(P)(R)}).with(n.Chain.Aptos,()=>T(R)).with(n.Chain.Radix,()=>M(R)).with(n.Chain.Hype,()=>U(R)).with(n.Chain.Near,()=>k(R)).with(n.Chain.Ripple,()=>L(R)).with(n.Chain.Solana,()=>q(R)).with(n.Chain.Stellar,()=>C(R)).with(n.Chain.Starknet,()=>Q(R)).with(n.Chain.Sui,()=>Z(R)).with(n.Chain.Ton,()=>Y(R)).with(n.Chain.Tron,()=>_(R)).with(n.Chain.Cardano,()=>f(R)).otherwise(()=>!1)}}function qQ(y){return async function(H){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...n.EVMChains,async(X)=>{let U=await v8(X),q=await U.createTransaction(H),Q="feeOptionKey"in H?H.feeOptionKey:n.FeeOption.Fast;return U.estimateTransactionFee({...q,feeOption:Q})}).with(n.Chain.Bitcoin,n.Chain.BitcoinCash,n.Chain.Dogecoin,n.Chain.Dash,n.Chain.Litecoin,n.Chain.Solana,n.Chain.Ripple,n.Chain.Tron,n.Chain.Near,n.Chain.Cardano,n.Chain.Hype,async(X)=>{return(await v8(X)).estimateTransactionFee(H)}).with(n.Chain.Aptos,async()=>{let{getAptosToolbox:X}=await Promise.resolve().then(() => (Uf(),Xf));return X().estimateTransactionFee(H)}).with(n.Chain.Starknet,async()=>{let{getStarknetToolbox:X}=await Promise.resolve().then(() => (tf(),df));return(await X()).estimateTransactionFee(H)}).with(n.Chain.Stellar,async()=>{let{getStellarToolbox:X}=await Promise.resolve().then(() => (E5(),A5));return X().estimateTransactionFee()}).with(n.Chain.Sui,async()=>{let{getSuiToolbox:X}=await Promise.resolve().then(() => (ef(),sf));return X().estimateTransactionFee(H)}).with(n.Chain.Ton,async()=>{let{getTONToolbox:X}=await Promise.resolve().then(() => (T5(),f5));return X().estimateTransactionFee(H)}).with(...n.CosmosChains,async()=>{let{estimateTransactionFee:X}=await Promise.resolve().then(() => (uf(),lf));return X(H)}).otherwise(async()=>n.AssetValue.from({chain:y}))}}async function v8(y,T){let{match:H}=await import("ts-pattern");return H(y).returnType().with(...n.EVMChains,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (e5(),C2));return await f(y,T)}).with(...n.UTXOChains,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (T8(),f8));return f(y,T)}).with(...n.CosmosChains,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (uf(),lf));return f(y,T)}).with(n.Chain.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (Uf(),Xf));return f(T)}).with(n.Chain.Hype,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (xT(),IT));return f(T)}).with(n.Chain.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (k8(),O8));return f(T)}).with(n.Chain.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (D8(),B8));return f(T)}).with(n.Chain.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => (ST(),ET));return f(T)}).with(n.Chain.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (E5(),A5));return f(T)}).with(n.Chain.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (tf(),df));return f(T)}).with(n.Chain.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (ef(),sf));return f(T)}).with(n.Chain.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (V8(),K8));return f(T)}).with(n.Chain.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (N8(),C8));return f(T)}).with(n.Chain.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (XT(),HT));return f(T)}).with(n.Chain.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (T5(),f5));return f(T)}).otherwise(()=>{throw new n.SwapKitError("toolbox_not_supported",{chain:y})})}
1
+ var aX=Object.create;var{getPrototypeOf:sX,defineProperty:D1,getOwnPropertyNames:zT,getOwnPropertyDescriptor:eX}=Object,GT=Object.prototype.hasOwnProperty;function LT(y){return this[y]}var y9,f9,MT=(y,T,H)=>{var f=y!=null&&typeof y==="object";if(f){var X=T?y9??=new WeakMap:f9??=new WeakMap,Q=X.get(y);if(Q)return Q}H=y!=null?aX(sX(y)):{};let Z=T||!y||!y.__esModule?D1(H,"default",{value:y,enumerable:!0}):H;for(let q of zT(y))if(!GT.call(Z,q))D1(Z,q,{get:LT.bind(y,q),enumerable:!0});if(f)X.set(y,Z);return Z},S0=(y)=>{var T=(WT??=new WeakMap).get(y),H;if(T)return T;if(T=D1({},"__esModule",{value:!0}),y&&typeof y==="object"||typeof y==="function"){for(var f of zT(y))if(!GT.call(T,f))D1(T,f,{get:LT.bind(y,f),enumerable:!(H=eX(y,f))||H.enumerable})}return WT.set(y,T),T},WT;var T9=(y)=>y;function H9(y,T){this[y]=T9.bind(null,T)}var P0=(y,T)=>{for(var H in T)D1(y,H,{get:T[H],enumerable:!0,configurable:!0,set:H9.bind(T,H)})};var h=(y,T)=>()=>(y&&(T=y(y=0)),T);function sf(y,T){if(!m0(y))return[];let H=m0(y.transaction)?y.transaction:y,f=H.execution,X=m0(H.fee)?H.fee.transition:void 0;return[...m0(f)&&Array.isArray(f.transitions)?f.transitions:[],...m0(X)?[X]:[]].flatMap((Z)=>{if(!m0(Z)||!Array.isArray(Z.outputs))return[];if(T&&Z.program!==T)return[];return Z.outputs.flatMap((q)=>m0(q)&&q.type==="record"&&typeof q.value==="string"?[q.value]:[])})}function ef(y){return y.reduce((T,H)=>H.spent?T:T+H.microcredits,0n)}function n0(y,T){return T instanceof k0.SwapKitError&&T.errorKey.startsWith("toolbox_aleo_")?T:new k0.SwapKitError(y,T)}function X9(...y){let T=y.reduce((X,Q)=>X+Q.length,0),H=new Uint8Array(T),f=0;for(let X of y)H.set(X,f),f+=X.length;return H}function Q9(y){let T=new Uint8Array(4);return new DataView(T.buffer).setUint32(0,y,!1),T}function $T(y){let T=df.hmac(tf.sha512,OT,y);return{chainCode:T.slice(32),key:T.slice(0,32)}}function NT(y,T){if(!Number.isSafeInteger(T)||T<0||T>=cf)throw new k0.SwapKitError("toolbox_aleo_wasm_init_failed",{index:T});let H=T+cf,f=X9(Uint8Array.of(0),y.key,Q9(H)),X=df.hmac(tf.sha512,y.chainCode,f);return{chainCode:X.slice(32),key:X.slice(0,32)}}function y8(y,T){let H=y.split("/");if(H.shift()!=="m"||H.length===0)throw new k0.SwapKitError("toolbox_aleo_wasm_init_failed",{path:y});return H.reduce((f,X)=>{if(!/^\d+'$/.test(X))throw new k0.SwapKitError("toolbox_aleo_wasm_init_failed",{path:y,segment:X});return NT(f,Number.parseInt(X.slice(0,-1),10))},$T(T))}function R1(y){return typeof y==="string"&&_T.test(y)}async function f8(y){if(!R1(y))return!1;try{let{Account:T}=await import("@provablehq/sdk/mainnet.js");return T.isValidAddress(y)}catch{return!1}}function kT(y){return CT.test(y)}function T8(y,T){if(y===null)return 0n;if(typeof y!=="string")throw new k0.SwapKitError("toolbox_aleo_balance_error",{integerType:T,value:y});let H=y.match(new RegExp(`^(\\d+)${T}$`));if(!H?.[1])throw new k0.SwapKitError("toolbox_aleo_balance_error",{integerType:T,value:y});return BigInt(H[1])}function L5(y){if(y.chain!==k0.Chain.Aleo)throw new k0.SwapKitError("toolbox_aleo_unsupported_token",{asset:y.toString()});let T=y.getBaseValue("bigint");if(y.isGasAsset)return{amount:`${T}u64`,functionName:z5,isTokenTransfer:!1,programName:My};if(!y.address||!kT(y.address))throw new k0.SwapKitError("toolbox_aleo_unsupported_token",{asset:y.toString()});return{amount:`${T}u128`,functionName:z5,isTokenTransfer:!0,programName:y.address}}function _y(){let y=[...new Set([...k0.SKConfig.get("rpcUrls")[k0.Chain.Aleo],...k0.getChainConfig(k0.Chain.Aleo).rpcUrls])].filter(Boolean);if(y.length===0)throw new k0.SwapKitError("toolbox_aleo_no_rpc_urls");return y}function M5(y){if(typeof y==="object"&&y!==null&&"status"in y&&y.status===404)return!0;return y instanceof Error&&y.message.includes("404")}function m0(y){return typeof y==="object"&&y!==null}function BT(y){if(!m0(y))return!1;return[y.transaction,y.rejected].some((T)=>{if(!m0(T)||!m0(T.execution))return!1;let{transitions:H}=T.execution;return Array.isArray(H)&&H.some((f)=>m0(f)&&f.function===z5&&typeof f.program==="string"&&f.program!==My)})}function DT(y,T){if(!m0(y)||typeof y.status!=="string")throw new k0.SwapKitError("toolbox_aleo_transaction_failed",{response:y,transactionId:T});let H=y.status.toLowerCase();if(H==="rejected"){let f=BT(y)?"toolbox_aleo_token_transfer_rejected":"toolbox_aleo_transaction_failed";throw new k0.SwapKitError(f,{transactionId:T})}return H==="accepted"?"accepted":"pending"}async function FT(y){if(!F1.test(y))throw new k0.SwapKitError("toolbox_aleo_transaction_failed",{transactionId:y});let T,H=!0;for(let f of _y())try{let{AleoNetworkClient:X}=await import("@provablehq/sdk/mainnet.js"),Q=await new X(f).getConfirmedTransaction(y);return DT(Q,y)}catch(X){if(X instanceof k0.SwapKitError)throw X;T=X,H=H&&M5(X)}if(H)return"pending";throw n0("toolbox_aleo_transaction_failed",T)}async function _5(y,{intervalMs:T=5000,timeoutMs:H=60000}={}){let f=Date.now();while(Date.now()-f<H){let X=await FT(y);if(X==="accepted")return X;await new Promise((Q)=>setTimeout(Q,T))}throw new k0.SwapKitError("toolbox_aleo_transaction_failed",{reason:"confirmation_timeout",transactionId:y})}var df,tf,k0,_T,CT,F1,OT,cf=2147483648,G5=1e6,My="credits.aleo",z5="transfer_public",rf=1e6,af=2000000;var H8=h(()=>{df=require("@noble/hashes/hmac.js"),tf=require("@noble/hashes/sha2.js"),k0=require("@swapkit/helpers"),_T=/^aleo1[ac-hj-np-z02-9]{58}$/,CT=/^[a-z0-9_]+\.aleo$/,F1=/^at1[ac-hj-np-z02-9]+$/,OT=new TextEncoder().encode("bls12_377 seed")});function xT(){function y(){let T=Date.now(),H=X8||T;return X8=H,T>X8?T:H+1}return Z9+y().toString(36)}function w0(y){return async function(H,f=!0){let X=await RT.SwapKitApi.getChainBalance({address:H,chain:y,scamFilter:f}),{baseDecimal:Q}=x1.getChainConfig(y),Z=X.map(({identifier:U,value:W,decimal:G})=>{return new x1.AssetValue({decimal:G||Q,identifier:U,value:W})});if(!Z.some((U)=>U.isGasAsset))return[x1.AssetValue.from({chain:y}),...Z];return Z}}var x1,RT,Z9,X8=0;var Hy=h(()=>{x1=require("@swapkit/helpers"),RT=require("@swapkit/helpers/api"),Z9=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function PT(y,T){try{let{Account:H}=await import("@provablehq/sdk/mainnet.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),X=q0.derivationPathToString(T||q0.NetworkDerivationPath[q0.Chain.Aleo],{allHardened:!0}),{key:Q}=y8(X,f(y));return new H({seed:Q})}catch(H){throw n0("toolbox_aleo_wasm_init_failed",H)}}function IT(y,T){let H,f=()=>{return H??=PT(y,T),H};return{getAddress:async()=>(await f()).address().to_string(),signTransaction:async(X)=>{let Q=await f();if(X.sender!==Q.address().to_string())throw new q0.SwapKitError("toolbox_aleo_invalid_address",{address:X.sender});let Z;for(let q of _y())try{let{ProgramManager:U}=await import("@provablehq/sdk/mainnet.js"),W=new U(q);return W.setAccount(Q),await W.buildExecutionTransaction({functionName:X.functionName,inputs:X.inputs,priorityFee:X.priorityFee/G5,privateFee:!1,programName:X.programName})}catch(U){Z=U}throw Z}}}function jT(y={}){if("phrase"in y&&y.phrase&&"signer"in y&&y.signer)throw new q0.SwapKitError("toolbox_aleo_conflicting_signers");let T;async function H(){if(T)return T;let z="phrase"in y?y.phrase:void 0;if(!z)throw new q0.SwapKitError("toolbox_aleo_no_signer");let J="derivationPath"in y?y.derivationPath:void 0;return T=await PT(z,J),T}let f;function X(){let z="signer"in y?y.signer:void 0;if(z)return z;let J="phrase"in y?y.phrase:void 0;if(!J)throw new q0.SwapKitError("toolbox_aleo_no_signer");return f??=IT(J,"derivationPath"in y?y.derivationPath:void 0),f}async function Q(z){let J;for(let Y of _y())try{let{AleoNetworkClient:L}=await import("@provablehq/sdk/mainnet.js");return await z(new L(Y))}catch(L){J=L}throw J}async function Z(z){let J;for(let Y of _y())try{let{AleoNetworkClient:L}=await import("@provablehq/sdk/mainnet.js");return await new L(Y).getTransitionId(z),!0}catch(L){if(M5(L))return!1;J=L}throw J}async function q(){let z=X();try{return await z.getAddress()}catch(J){throw n0("toolbox_aleo_wasm_init_failed",J)}}async function U(z){let J=await Q((Y)=>Y.getProgramMappingValue(My,"account",z));return T8(J,"u64")}async function W(z){try{let J=await U(z);return[q0.AssetValue.from({chain:q0.Chain.Aleo,fromBaseDecimal:6,value:J})]}catch(J){throw n0("toolbox_aleo_balance_error",J)}}let G=w0(q0.Chain.Aleo);async function N(z,J=!0){try{return await G(z,J)}catch{return W(z)}}async function _(){return N(await q())}async function M({transactionIds:z}){try{let J=await H(),Y=[];for(let L of z){if(!F1.test(L))throw new q0.SwapKitError("toolbox_aleo_transaction_failed",{transactionId:L});let D=await Q((F)=>F.getTransaction(L));for(let F of sf(D,My)){if(!J.ownsRecordCiphertext(F))continue;let{RecordPlaintext:P}=await import("@provablehq/sdk/mainnet.js"),A=J.decryptRecord(F).toString(),E=P.fromString(A),u=E.microcredits();if(u===0n)continue;let s=J.generateRecordViewKey(F).toString(),H0=E.serialNumberString(J.privateKey(),My,"credits",s);Y.push({microcredits:u,plaintext:A,spent:await Z(H0),transactionId:L})}}return Y}catch(J){throw n0("toolbox_aleo_balance_error",J)}}async function C({transactionIds:z}){let J=await M({transactionIds:z});return q0.AssetValue.from({chain:q0.Chain.Aleo,fromBaseDecimal:6,value:ef(J)})}async function O(z,J){if(!Number.isSafeInteger(J)||J<=0)throw new q0.SwapKitError("toolbox_aleo_insufficient_fee_balance",{feeRecordCredits:J});let Y=await H();if(!z||z.microcredits<=BigInt(J)*BigInt(G5))throw new q0.SwapKitError("toolbox_aleo_insufficient_fee_balance",{available:z?.microcredits.toString(),required:`${J} credits fee record`});let{ProgramManager:L,RecordPlaintext:D}=await import("@provablehq/sdk/mainnet.js"),F;for(let P of _y())try{let A=new L(P);return A.setAccount(Y),await A.split(J,D.fromString(z.plaintext))}catch(A){F=A}throw F}async function B(z,J,Y){let L=await H(),{ProgramManager:D,RecordPlaintext:F}=await import("@provablehq/sdk/mainnet.js"),P;for(let A of _y())try{let E=new D(A);return E.setAccount(L),await E.buildExecutionTransaction({feeRecord:F.fromString(J.plaintext),functionName:"transfer_private_to_public",inputs:[z.plaintext,Y,`${z.microcredits}u64`],priorityFee:0,privateFee:!0,programName:My})}catch(E){P=E}throw P}async function R({transactionId:z,feeRecordCredits:J=4}){let Y;try{let D=(await H()).address().to_string(),F=(await M({transactionIds:[z]})).filter((s)=>!s.spent);if(F.length===0)throw new q0.SwapKitError("toolbox_aleo_no_unspent_records",{transactionId:z});if(F.length===1){if(Y=await O(F[0],J),await _5(Y),F=(await M({transactionIds:[Y]})).filter((s)=>!s.spent),F.length<2)throw new q0.SwapKitError("toolbox_aleo_transaction_failed",{transactionId:Y})}let P=[...F].sort((s,H0)=>s.microcredits<H0.microcredits?-1:1),A=P[0],E=P[P.length-1];if(!A||!E||A===E)throw new q0.SwapKitError("toolbox_aleo_no_unspent_records",{transactionId:z});let u=await $(await B(E,A,D));return await _5(u),{publicBalance:q0.AssetValue.from({chain:q0.Chain.Aleo,fromBaseDecimal:6,value:await U(D)}),splitTransactionId:Y,unshieldTransactionId:u}}catch(L){if(Y)throw new q0.SwapKitError("toolbox_aleo_transaction_failed",{error:L,splitTransactionId:Y});throw n0("toolbox_aleo_transaction_failed",L)}}function I({assetValue:z,priorityFee:J=0}){try{if(!Number.isSafeInteger(J)||J<0)throw new q0.SwapKitError("toolbox_aleo_fee_estimation_failed",{priorityFee:J});let L=L5(z).isTokenTransfer?af:rf;return q0.AssetValue.from({chain:q0.Chain.Aleo,fromBaseDecimal:6,value:BigInt(L)+BigInt(J)})}catch(Y){throw n0("toolbox_aleo_fee_estimation_failed",Y)}}async function j({assetValue:z,priorityFee:J=0,recipient:Y,sender:L}){if(!await f8(Y))throw new q0.SwapKitError("toolbox_aleo_invalid_address",{address:Y});let D=L||await q();if(!R1(D))throw new q0.SwapKitError("toolbox_aleo_invalid_address",{address:D});let F=L5(z),P=await I({assetValue:z,priorityFee:J,recipient:Y});try{let A=await U(D);if(q0.AssetValue.from({chain:q0.Chain.Aleo,fromBaseDecimal:6,value:A}).lt(P))throw new q0.SwapKitError("toolbox_aleo_insufficient_fee_balance",{available:A.toString(),required:P.getBaseValue("string")});return{functionName:F.functionName,inputs:[Y,F.amount],priorityFee:J,programName:F.programName,sender:D}}catch(A){throw n0("toolbox_aleo_transaction_failed",A)}}async function V(z){try{return await X().signTransaction(z)}catch(J){throw n0("toolbox_aleo_transaction_failed",J)}}async function S(z){return $(await V(z))}async function $(z){try{let J=typeof z==="string"?z:z.toString(),Y=await Q((L)=>L.submitTransaction(J));if(!F1.test(Y))throw new q0.SwapKitError("toolbox_aleo_broadcast_error",{transactionId:Y});return Y}catch(J){throw n0("toolbox_aleo_broadcast_error",J)}}async function k(z){let J=await j({...z,sender:await q()});return S(J)}return{broadcastTransaction:$,createSigner:IT,createTransaction:j,estimateTransactionFee:I,getAddress:q,getBalance:G,getBalanceFromRpc:W,getBalances:_,getBalanceWithFallback:N,getRecords:M,getShieldedBalance:C,signAndBroadcastTransaction:S,signTransaction:V,transfer:k,unshield:R,validateAddress:R1}}var q0;var VT=h(()=>{Hy();H8();q0=require("@swapkit/helpers")});var C5={};P0(C5,{waitForAleoTransaction:()=>_5,validateAleoProgramId:()=>kT,validateAleoAddressWithChecksum:()=>f8,validateAleoAddress:()=>R1,sumUnspentRecords:()=>ef,parseAleoTransactionStatus:()=>DT,parseAleoMappingValue:()=>T8,isRecord:()=>m0,isNotFoundError:()=>M5,isAleoTokenTransferResponse:()=>BT,getConfiguredAleoUrls:()=>_y,getAleoTransferRoute:()=>L5,getAleoTransactionStatus:()=>FT,getAleoToolbox:()=>jT,getAleoMasterSeed:()=>$T,getAleoError:()=>n0,extractAleoRecordCiphertexts:()=>sf,deriveAleoPath:()=>y8,deriveAleoChildKey:()=>NT,TRANSFER_PUBLIC_FUNCTION:()=>z5,NATIVE_PROGRAM_ID:()=>My,MICRO_CREDITS_PER_CREDIT:()=>G5,HARDENED_OFFSET:()=>cf,ALEO_TRANSFER_PUBLIC_FEE:()=>rf,ALEO_TRANSACTION_ID_REGEX:()=>F1,ALEO_TOKEN_TRANSFER_PUBLIC_FEE:()=>af,ALEO_PROGRAM_ID_REGEX:()=>CT,ALEO_HD_KEY:()=>OT,ALEO_ADDRESS_REGEX:()=>_T});module.exports=S0(C5);var O5=h(()=>{VT();H8()});function ey(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let T=y.slice(2);if(T.length===0||T.length>64)return!1;return U9.test(T)}function KT(y,T,H){if(y<=0n)throw new t.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amount:y.toString(),asset:T.toString(),...H}});return y}async function Y9({aptos:y,assetValue:T,senderAddress:H}){let f=T.address;if(!f)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");let[X]=await y.getCurrentFungibleAssetBalances({options:{limit:1,where:{asset_type:{_eq:f},is_primary:{_eq:!0},owner_address:{_eq:H}}}});return KT(BigInt(X?.amount??0),T)}function ST({derivationPath:y,provider:T,...H}={}){let f,X=t.derivationPathToString(y||t.NetworkDerivationPath[t.Chain.Aptos],{allHardened:!0});async function Q(){if(f)return f;return f=await Sy.match(H).with({phrase:Sy.P.string},async({phrase:O})=>{let{Ed25519Account:B}=await import("@aptos-labs/ts-sdk");return B.fromDerivationPath({mnemonic:O,path:X})}).with({signer:Sy.P.any},({signer:O})=>O).otherwise(()=>{return}),f}async function Z(){let{Aptos:O,AptosConfig:B,Network:R}=await import("@aptos-labs/ts-sdk"),I=new B({clientConfig:{http2:!1},fullnode:T||t.getRPCUrlSync(t.Chain.Aptos),network:R.MAINNET});return new O(I)}async function q(){return(await Q())?.accountAddress.toString()||""}async function U(O){let B=O||await q();if(!B)throw new t.SwapKitError("toolbox_aptos_address_required");let{baseDecimal:R,chain:I}=t.getChainConfig(t.Chain.Aptos);try{let j=await Z(),V=await j.getAccountAPTAmount({accountAddress:B}),S=[t.AssetValue.from({chain:I,fromBaseDecimal:R,value:V.toString()})],$=await j.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:B}}}});for(let k of $){if(k.asset_type===Ky.COIN_TYPE||Number(k.amount)<=0)continue;let z=k.asset_type;if(z){let Y=("metadata"in k&&typeof k.metadata==="object"&&k.metadata!==null?k.metadata:void 0)?.decimals??R;S.push(t.AssetValue.from({asset:`${t.Chain.Aptos}.APT-${z}`,fromBaseDecimal:Y,value:String(k.amount)}))}}return S}catch{return[t.AssetValue.from({chain:I})]}}async function W(O){if(!O){let{baseDecimal:S}=t.getChainConfig(t.Chain.Aptos),$=T||t.getRPCUrlSync(t.Chain.Aptos),k=await fetch(`${$}/estimate_gas_price`),{gas_estimate:z}=await k.json();return t.AssetValue.from({chain:t.Chain.Aptos,fromBaseDecimal:S,value:String(z)})}let B=await G(O),R=await Z(),[I]=await R.transaction.simulate.simple({transaction:B});if(!I)throw new t.SwapKitError("toolbox_aptos_transaction_creation_error");let j=BigInt(I.gas_used)*BigInt(I.gas_unit_price),{baseDecimal:V}=t.getChainConfig(t.Chain.Aptos);return t.AssetValue.from({chain:t.Chain.Aptos,fromBaseDecimal:V,value:j.toString()})}async function G({recipient:O,assetValue:B,maxGasAmount:R,sender:I,sweep:j}){if(!ey(O))throw new t.SwapKitError("core_transaction_invalid_recipient_address");let V=I||await q();if(!V)throw new t.SwapKitError("toolbox_aptos_no_sender");let{AccountAddress:S}=await import("@aptos-labs/ts-sdk"),$=await Z(),k=S.from(V);try{let z=B.isGasAsset?Ky.TRANSFER:Ky.FUNGIBLE_STORE_TRANSFER,J=B.address,Y=(s,H0)=>{let R0=Sy.match({address:J,isGasAsset:B.isGasAsset}).with({isGasAsset:!0},()=>[S.from(O),s]).with({address:Sy.P.string},({address:w})=>[S.from(w),S.from(O),s]).otherwise(()=>null);if(!R0)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");let x=H0?.maxGasAmount??R;return $.transaction.build.simple({data:{function:z,functionArguments:R0,typeArguments:B.isGasAsset?[]:[Ky.FUNGIBLE_ASSET_METADATA]},options:x!==void 0||H0?.gasUnitPrice!==void 0?{gasUnitPrice:H0?.gasUnitPrice,maxGasAmount:x}:void 0,sender:k})};if(!j)return Y(B.getBaseValue("bigint"));if(!B.isGasAsset){let s=await Y9({aptos:$,assetValue:B,senderAddress:V});return Y(s)}let L=BigInt(await $.getAccountAPTAmount({accountAddress:V})),D=await Y(1n,{maxGasAmount:R??q9}),[F]=await $.transaction.simulate.simple({options:{estimateMaxGasAmount:R===void 0},transaction:D});if(!F)throw new t.SwapKitError("toolbox_aptos_transaction_creation_error");if(!F.success)throw new t.SwapKitError({errorKey:"toolbox_aptos_transaction_creation_error",info:{vmStatus:F.vm_status}});let P=BigInt(F.gas_used),A=P>0n?(P*6n+4n)/5n:1n,E=A*BigInt(F.gas_unit_price),u=KT(L-E,B,{balance:L.toString(),fee:E.toString()});return Y(u,{gasUnitPrice:Number(F.gas_unit_price),maxGasAmount:Number(A)})}catch(z){if(z instanceof t.SwapKitError)throw z;throw new t.SwapKitError("toolbox_aptos_transaction_creation_error",z)}}async function N(O){let B=await Q();if(!B)throw new t.SwapKitError("toolbox_aptos_no_signer");return(await Z()).transaction.sign({signer:B,transaction:O})}async function _({assetValue:O,maxGasAmount:B,recipient:R,sweep:I}){let j=await Q();if(!j)throw new t.SwapKitError("toolbox_aptos_no_signer");if(!ey(R))throw new t.SwapKitError("core_transaction_invalid_recipient_address");try{let V=j.accountAddress.toString(),S=await G({assetValue:O,maxGasAmount:B,recipient:R,sender:V,sweep:I});return(await(await Z()).signAndSubmitTransaction({signer:j,transaction:S})).hash}catch(V){if(V instanceof t.SwapKitError)throw V;throw new t.SwapKitError("toolbox_aptos_transaction_creation_error",V)}}async function M({senderAuthenticator:O,transaction:B}){try{return(await(await Z()).transaction.submit.simple({senderAuthenticator:O,transaction:B})).hash}catch(R){throw new t.SwapKitError("toolbox_aptos_broadcast_error",R)}}async function C(O){let B=await N(O);return M({senderAuthenticator:B,transaction:O})}return{broadcastTransaction:M,createTransaction:G,estimateTransactionFee:W,getAddress:q,getBalance:U,signAndBroadcastTransaction:C,signTransaction:N,transfer:_,validateAddress:ey}}function AT({provider:y}){return async function({assetValue:H,recipient:f,sweep:X}){if(X)throw new t.SwapKitError({errorKey:"toolbox_not_supported",info:{chain:t.Chain.Aptos,feature:"extension_provider_sweep",reason:"Aptos extension providers cannot query balances or simulate transactions"}});if(!ey(f))throw new t.SwapKitError("core_transaction_invalid_recipient_address");let{AccountAddress:Q}=await import("@aptos-labs/ts-sdk");if(H.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[Q.from(f).toString(),H.getBaseValue("string")],function:Ky.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let Z=H.address;if(!Z)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[Z,Q.from(f).toString(),H.getBaseValue("string")],function:Ky.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[Ky.FUNGIBLE_ASSET_METADATA]})).hash}}var t,Sy,Ky,q9=2000,U9;var wT=h(()=>{t=require("@swapkit/helpers"),Sy=require("ts-pattern"),Ky={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"},U9=/^[0-9a-fA-F]+$/});var $5={};P0($5,{validateAptosAddress:()=>ey,getAptosToolbox:()=>ST,createAptosExtensionTransfer:()=>AT});module.exports=S0($5);var N5=h(()=>{wT()});function I1(y){return{getBalance:w0(y)}}function J9(y){return y}var k5=h(()=>{Hy()});function vT(y){return new g0.JsonRpcProvider(y)}async function W9(y,T){return vT(T||await y0.getRPCUrl(y))}function Y8(y){let T=y0.SKConfig.get("rpcUrls")[y]?.filter(Boolean)??[];if(T.length===0)throw new y0.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:y});let{chainId:H}=y0.getChainConfig(y),f=g0.Network.from(Number(H)),[X]=T;if(T.length===1)return new g0.JsonRpcProvider(X,f,{staticNetwork:f});return new g0.FallbackProvider(T.map((Q,Z)=>({priority:Z+1,provider:new g0.JsonRpcProvider(Q,f,{staticNetwork:f}),stallTimeout:2000})),f,{quorum:1})}function l0(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function J8(y){let{explorerUrl:T,chainIdHex:H,rpcUrls:f}=y0.getChainConfig(y);return function(){return y!==y0.Chain.Ethereum?{...z9({chain:y}),blockExplorerUrls:[T],chainId:H,rpcUrls:f}:void 0}}function W8(y){return![y0.Chain.Adi,y0.Chain.Arbitrum,y0.Chain.BinanceSmartChain,y0.Chain.Robinhood].includes(y)}function z9({chain:y}){let{name:T,nativeCurrency:H,baseDecimal:f}=y0.getChainConfig(y);return U8.match(y).with(y0.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:y0.Chain.Ethereum}})).with(y0.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:y0.Chain.Ethereum}})).with(y0.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(y0.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:y0.Chain.Ethereum}})).with(y0.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(y0.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(y0.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(y0.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(y0.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:y0.Chain.Ethereum}})).with(y0.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:y0.Chain.Polygon}})).with(y0.Chain.Robinhood,()=>({chainName:"Robinhood Chain",nativeCurrency:{decimals:f,name:"Ethereum",symbol:y0.Chain.Ethereum}})).otherwise(()=>({chainName:T,nativeCurrency:{decimals:f,name:H,symbol:H}}))}async function z8(y,T){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let H={...T,nonce:T.nonce!==void 0?BigInt(T.nonce):void 0};return await y.authorize(H)}function bT(y,T){let H=T!==void 0?`index ${T}: `:"",f=(X,Q)=>{throw new y0.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:X,message:`${H}${Q}`}})};U8.match(y).when(({chainId:X})=>typeof X!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:X})=>!G9(X),()=>f("address","address must be a valid checksummed address")).when(({nonce:X})=>typeof X!=="bigint"||X<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:X})=>!X,()=>f("signature","signature is required")).when(({signature:X})=>typeof X?.yParity!=="number"||![0,1].includes(X.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:X})=>!ET(X?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:X})=>!ET(X?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function hT(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:T})=>y[T]!=null).map(({key:T,type:H})=>({name:T,type:H}))}function Q8(y){return y.charAt(0).toUpperCase()+y.slice(1)}function Z8(y,T){if(y.isTuple()&&y.components){let H=Q8(y.name);return T[H]=y.components.map((f)=>({name:f.name,type:Z8(f,T)})),H}if(y.isArray()){let H=y.arrayChildren;if(H?.isTuple()&&H.components){let f=Q8(y.name.replace(/s$/,""));return T[f]=H.components.map((X)=>({name:X.name,type:Z8(X,T)})),`${f}[]`}return`${H?.type??"bytes"}[]`}return y.type}function q8(y,T){if(typeof y==="bigint")return y;if(T?.isTuple()&&typeof y?.toObject==="function"){let H=y.toObject(),f={};for(let[X,Q]of(T.components??[]).entries())f[Q.name]=q8(H[Q.name]??y[X],Q);return f}if(Array.isArray(y)){let H=T?.arrayChildren;return y.map((f)=>q8(f,H??void 0))}return y}function L9({chain:y,abi:T,data:H,to:f}){let Q=new g0.Interface(T).parseTransaction({data:H});if(!Q)throw new y0.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let Z={},q=Q8(Q.name);Z[q]=Q.fragment.inputs.map((_)=>({name:_.name,type:Z8(_,Z)}));let U={};for(let[_,M]of Q.fragment.inputs.entries())U[M.name]=q8(Q.args[_],M);let{chainId:W}=y0.getChainConfig(y),G={chainId:Number(W),verifyingContract:g0.getAddress(f)},N=hT(G);return{domain:G,message:U,primaryType:q,types:{EIP712Domain:N,...Z}}}function G8(y,T){if(!Array.isArray(y)||y.length===0)throw new y0.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[H,f]of y.entries())if(bT(f,H),T!==void 0&&f.chainId!==T)throw new y0.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${H}: authorization chainId (${f.chainId}) does not match transaction chainId (${T})`}})}var y0,g0,U8,ET=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),G9=(y)=>{try{return typeof y==="string"&&!!g0.getAddress(y)}catch{return!1}};var P1=h(()=>{y0=require("@swapkit/helpers"),g0=require("ethers"),U8=require("ts-pattern")});var lT;var uT=h(()=>{lT=[{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"}]});function y1({chain:y=K.Chain.Ethereum,provider:T,signer:H,isEIP1559Compatible:f=!0,estimateGasPrices:X,estimateAdditionalFee:Q}){let Z=X??vy({chain:y,isEIP1559Compatible:f,provider:T}),q=cT({chain:y,estimateAdditionalFee:Q,estimateGasPrices:Z,isEIP1559Compatible:f,provider:T,signer:H});return{approve:$9({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),approvedAmount:gT({chain:y,provider:T}),broadcastTransaction:T.broadcastTransaction,call:B5({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),createApprovalTx:V9({chain:y,provider:T,signer:H}),createContract:_8({chain:y,provider:T}),createContractTxObject:Ey({chain:y,provider:T}),createTransaction:q,createTransferTx:q,EIP1193SendTransaction:T1(T),estimateCall:oT({provider:T,signer:H}),estimateGasLimit:k9({chain:y,provider:T,signer:H}),estimateGasPrices:Z,estimateTransactionFee:K9({chain:y,isEIP1559Compatible:f,provider:T}),getAddress:()=>{return H?H.getAddress():void 0},getBalance:I1(y).getBalance,getNetworkParams:J8(y),isApproved:O9({chain:y,provider:T}),sendTransaction:nT({chain:y,estimateGasPrices:Z,isEIP1559Compatible:f,provider:T,signer:H}),signAuthorization:B9({signer:H}),signMessage:H?(U)=>H.signMessage(U):void 0,signTypedData:H?({domain:U,types:W,value:G})=>H.signTypedData(U,W,G):void 0,transfer:N9({chain:y,estimateAdditionalFee:Q,estimateGasPrices:Z,isEIP1559Compatible:f,provider:T,signer:H}),validateAddress:V1}}function V1(y){try{return b0.getAddress(y),!0}catch{return!1}}function f1(y){return y instanceof b0.BrowserProvider}function K1(y,T,H){return new b0.Contract(y,b0.Interface.from(T),H)}function _8({provider:y}){return function(H,f){return new b0.Contract(H,b0.Interface.from(f),y)}}function C8({abi:y,funcName:T}){let H=y.find((f)=>f.name===T);if(!H)throw new K.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:T});return H.stateMutability&&M9.includes(H.stateMutability)}function pT(y){return b0.getAddress(y)}function T1(y,T=!1){return function({value:f,...X}){if(!f1(y))throw new K.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let Q={...X,gasPrice:"gasPrice"in X?X.gasPrice:void 0,maxFeePerGas:"maxFeePerGas"in X?X.maxFeePerGas:void 0,maxPriorityFeePerGas:"maxPriorityFeePerGas"in X?X.maxPriorityFeePerGas:void 0},{gasLimit:Z,gasPrice:q,maxFeePerGas:U,maxPriorityFeePerGas:W,...G}=Q,N={...G,...T&&Z!==void 0&&{gas:l0(BigInt(Z))},...T&&q!==void 0&&{gasPrice:l0(BigInt(q))},...T&&U!==void 0&&{maxFeePerGas:l0(BigInt(U))},...T&&W!==void 0&&{maxPriorityFeePerGas:l0(BigInt(W))},value:l0(BigInt(f||0))};return y.send("eth_sendTransaction",[N])}}function mT(y,T){let H=S1(y,T);if(H)return b0.getAddress(H.toLowerCase());throw new K.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function S1({chain:y,symbol:T,ticker:H},f){try{let X=y===K.Chain.BinanceSmartChain&&T==="BNB"&&H==="BNB",Q=y===K.Chain.Hyperevm&&T==="HYPE"&&H==="HYPE",Z=y===f&&T===f&&H===f,q=C9.includes(y)&&T==="ETH"&&H==="ETH";if(Z||X||Q||q)return O8[f];return b0.getAddress(T.slice(H.length+1).replace(/^0X/,""))}catch{return null}}function Ey({provider:y}){return async({contractAddress:T,abi:H,funcName:f,funcParams:X=[],txOverrides:Q})=>{let Z=await K1(T,H,y).getFunction(f).populateTransaction(...X.concat(Q).filter((q)=>typeof q<"u"));return{...Z,value:l0(BigInt(Z.value||0))}}}function vy({chain:y,provider:T,isEIP1559Compatible:H=!0}){return M8.match(y).with(K.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:X,maxPriorityFeePerGas:Q}=await T.getFeeData();if(!X||Q===null)throw new K.SwapKitError("toolbox_evm_no_fee_data");return{[K.FeeOption.Average]:{maxFeePerGas:K.applyFeeMultiplierToBigInt(X,K.FeeOption.Average),maxPriorityFeePerGas:K.applyFeeMultiplierToBigInt(Q,K.FeeOption.Average)},[K.FeeOption.Fast]:{maxFeePerGas:K.applyFeeMultiplierToBigInt(X,K.FeeOption.Fast),maxPriorityFeePerGas:K.applyFeeMultiplierToBigInt(Q,K.FeeOption.Fast)},[K.FeeOption.Fastest]:{maxFeePerGas:K.applyFeeMultiplierToBigInt(X,K.FeeOption.Fastest),maxPriorityFeePerGas:K.applyFeeMultiplierToBigInt(Q,K.FeeOption.Fastest)}}}catch(X){throw new K.SwapKitError("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}}}).with(K.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:X}=await T.getFeeData();if(!X)throw new K.SwapKitError("toolbox_evm_no_fee_data");let Q=X*12n/10n;return{[K.FeeOption.Average]:{gasPrice:Q},[K.FeeOption.Fast]:{gasPrice:K.applyFeeMultiplierToBigInt(Q,K.FeeOption.Fast)},[K.FeeOption.Fastest]:{gasPrice:K.applyFeeMultiplierToBigInt(Q,K.FeeOption.Fastest)}}}catch(X){throw new K.SwapKitError("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:X,maxPriorityFeePerGas:Q,gasPrice:Z}=await T.getFeeData();if(H){if(X===null||Q===null)throw new K.SwapKitError("toolbox_evm_no_fee_data");return{[K.FeeOption.Average]:{maxFeePerGas:X,maxPriorityFeePerGas:Q},[K.FeeOption.Fast]:{maxFeePerGas:K.applyFeeMultiplierToBigInt(X,K.FeeOption.Fast),maxPriorityFeePerGas:K.applyFeeMultiplierToBigInt(Q,K.FeeOption.Fast)},[K.FeeOption.Fastest]:{maxFeePerGas:K.applyFeeMultiplierToBigInt(X,K.FeeOption.Fastest),maxPriorityFeePerGas:K.applyFeeMultiplierToBigInt(Q,K.FeeOption.Fastest)}}}if(!Z)throw new K.SwapKitError("toolbox_evm_no_gas_price");return{[K.FeeOption.Average]:{gasPrice:Z},[K.FeeOption.Fast]:{gasPrice:K.applyFeeMultiplierToBigInt(Z,K.FeeOption.Fast)},[K.FeeOption.Fastest]:{gasPrice:K.applyFeeMultiplierToBigInt(Z,K.FeeOption.Fastest)}}}catch(X){throw new K.SwapKitError("toolbox_evm_gas_estimation_error",{error:X.msg??X.toString()})}}})}function B5({provider:y,isEIP1559Compatible:T,signer:H,chain:f}){return async function({callProvider:Q,contractAddress:Z,abi:q,funcName:U,funcParams:W=[],txOverrides:G={},feeOption:N=K.FeeOption.Fast}){let _=Q||y;if(!Z)throw new K.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let M=C8({abi:q,funcName:U});if(M&&f1(_)&&H){let B=Ey({chain:f,provider:_}),R=G?.from||await H?.getAddress(),I=await B({abi:q,contractAddress:Z,funcName:U,funcParams:W,txOverrides:{...G,from:R}});return T1(_)(I)}let C=K1(Z,q,_);if(M){if(!H)throw new K.SwapKitError("toolbox_evm_no_signer");let B=G?.from||await H.getAddress();if(!B)throw new K.SwapKitError("toolbox_evm_no_signer_address");let R=C.connect(H),I=vy({chain:f,isEIP1559Compatible:T,provider:y}),{maxFeePerGas:j,maxPriorityFeePerGas:V,gasPrice:S}=(await I())[N],$=await C.getFunction(U).estimateGas(...W,G),k=await R[U](...W,{...G,gasLimit:$,gasPrice:S,maxFeePerGas:j,maxPriorityFeePerGas:V,nonce:G?.nonce||await _.getTransactionCount(B)});return typeof k?.hash==="string"?k?.hash:k}let O=await C[U]?.(...W);return typeof O?.hash==="string"?O?.hash:O}}function gT({provider:y,chain:T}){return function({assetAddress:f,spenderAddress:X,from:Q}){return B5({chain:T,isEIP1559Compatible:!0,provider:y})({abi:wy.erc20ABI,contractAddress:f,funcName:"allowance",funcParams:[Q,X]})}}function O9({provider:y,chain:T}){return async function({assetAddress:f,spenderAddress:X,from:Q,amount:Z=j1}){let q=await gT({chain:T,provider:y})({assetAddress:f,from:Q,spenderAddress:X});return K.SwapKitNumber.fromBigInt(q).gte(K.SwapKitNumber.fromBigInt(BigInt(Z)))}}function $9({signer:y,isEIP1559Compatible:T=!0,provider:H,chain:f}){return async function({assetAddress:Q,spenderAddress:Z,feeOptionKey:q=K.FeeOption.Fast,amount:U,gasLimitFallback:W,from:G,nonce:N}){let _=[Z,BigInt(U||j1)],M=await y?.getAddress()||G,C={abi:wy.erc20ABI,contractAddress:Q,funcName:"approve",funcParams:_,signer:y,txOverrides:{from:M}};if(f1(H)){let B=Ey({chain:f,provider:H}),R=T1(H),I=await B(C);return R(I)}return B5({chain:f,isEIP1559Compatible:T,provider:H,signer:y})({...C,feeOption:q,funcParams:_,txOverrides:{from:M,gasLimit:W?BigInt(W.toString()):void 0,nonce:N}})}}function N9({chain:y,estimateGasPrices:T,estimateAdditionalFee:H,signer:f,isEIP1559Compatible:X=!0,provider:Q}){return async function({assetValue:q,memo:U,recipient:W,feeOptionKey:G=K.FeeOption.Fast,sender:N,sweep:_,...M}){let C=N||await f?.getAddress(),O=nT({chain:y,estimateGasPrices:T,isEIP1559Compatible:X,provider:Q,signer:f});if(!C)throw new K.SwapKitError("toolbox_evm_no_from_address");let B=await cT({chain:y,estimateAdditionalFee:H,estimateGasPrices:T,isEIP1559Compatible:X,provider:Q,signer:f})({assetValue:q,feeOptionKey:G,memo:U,recipient:W,sender:C,sweep:_,...M});return O({...B,feeOptionKey:G,sweep:_})}}function oT({provider:y,signer:T}){return function({contractAddress:f,abi:X,funcName:Q,funcParams:Z=[],txOverrides:q}){if(!f)throw new K.SwapKitError("toolbox_evm_no_contract_address");let U=K1(f,X,y);return T?U.connect(T).getFunction(Q).estimateGas(...Z,q):U.getFunction(Q).estimateGas(...Z,q)}}function k9({provider:y,signer:T}){return async function({assetValue:f,recipient:X,memo:Q,data:Z,sender:q,funcName:U,funcParams:W,txOverrides:G}){let N=f.bigIntValue,_=f.isGasAsset?null:S1(f,f.chain);if(_&&U)return oT({provider:y,signer:T})({abi:wy.erc20ABI,contractAddress:_,funcName:U,funcParams:W,txOverrides:G});let{hexlify:M,toUtf8Bytes:C}=await import("ethers");return y.estimateGas({data:Z?Z:Q?M(C(Q)):void 0,from:q,to:X,value:N})}}function B9({signer:y}){if(!y)return;return(T)=>z8(y,T)}function D9(y,T){if(y==="legacy"){if(T.gasPrice===void 0)throw new K.SwapKitError("toolbox_evm_no_fee_data");return{gasPrice:l0(T.gasPrice)}}if(T.maxFeePerGas===void 0||T.maxPriorityFeePerGas===void 0)throw new K.SwapKitError("toolbox_evm_no_fee_data");return{maxFeePerGas:l0(T.maxFeePerGas),maxPriorityFeePerGas:l0(T.maxPriorityFeePerGas)}}function nT({chain:y,estimateGasPrices:T,provider:H,signer:f,isEIP1559Compatible:X=!0}){return async function({feeOptionKey:Z=K.FeeOption.Fast,sweep:q,...U}){let{from:W,to:G,data:N,value:_,...M}=U;if(!f)throw new K.SwapKitError("toolbox_evm_no_signer");if(!G)throw new K.SwapKitError("toolbox_evm_no_to_address");let C={...M,data:N||"0x",from:W,to:G,value:BigInt(_||0)};if(f1(H))return T1(H,q)(C);let O=W||await f.getAddress(),B=U.nonce??await H.getTransactionCount(O),R=(await H.getNetwork()).chainId,I=N8(C,X);if(I==="eip7702")G8(C.authorizations||[],R);let j=M8.match(I).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),V={...C,chainId:R,nonce:B,type:j,...I==="eip7702"&&{authorizationList:C.authorizations}},S=T??vy({chain:y,isEIP1559Compatible:X,provider:H}),k=(I==="legacy"?C.gasPrice!==void 0:C.maxFeePerGas!==void 0&&C.maxPriorityFeePerGas!==void 0)?{}:D9(I,(await S())[Z]),z;try{z=l0(C.gasLimit?BigInt(C.gasLimit):await H.estimateGas(V)*11n/10n)}catch(J){throw new K.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:J})}try{let J={...V,gasLimit:z,...k};try{return(await f.sendTransaction(J)).hash}catch{let Y=await f.signTransaction({...J,from:O});return(await H.broadcastTransaction(Y)).hash}}catch(J){throw new K.SwapKitError("toolbox_evm_error_sending_transaction",{error:J})}}}function Ay(y,T){throw new K.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{balance:y.toString(),fee:T.toString()}})}function F9(y,T){if(T){if(y.maxFeePerGas===void 0||y.maxPriorityFeePerGas===void 0)throw new K.SwapKitError("toolbox_evm_no_fee_data");return{feeFields:{maxFeePerGas:y.maxFeePerGas,maxPriorityFeePerGas:y.maxPriorityFeePerGas},feePerGas:y.maxFeePerGas}}if(y.gasPrice===void 0)throw new K.SwapKitError("toolbox_evm_no_fee_data");return{feeFields:{gasPrice:y.gasPrice},feePerGas:y.gasPrice}}function R9(y,T){if(y>T)return y;return T}function x9(y){return b0.getBytes(y).reduce((T,H)=>T+(H===0?4n:16n),21000n)}function L8(y){let H=(y instanceof Error?y.message:String(y)).toLowerCase();return H.includes("insufficient funds")||H.includes("insufficient balance")||H.includes("gas required exceeds allowance")}async function I9({balance:y,estimateAdditionalFee:T,feeOptionKey:H,l2Reserve:f,sweepTx:X,valueBeforeL1Fee:Q}){if(!T)return 0n;let Z=await T({...X,value:Q})??0n,q=K.applyFeeMultiplierToBigInt(Z,H),U=Q-q;if(U<=0n)Ay(y,f+q);let W=await T({...X,value:U})??Z;return K.applyFeeMultiplierToBigInt(R9(Z,W),H)}async function P9({chain:y,data:T,estimateGasPrices:H,estimateAdditionalFee:f,feeOptionKey:X,from:Q,isEIP1559Compatible:Z,provider:q,recipient:U,transaction:W}){let G=await q.getBalance(Q),N=H??vy({chain:y,isEIP1559Compatible:Z,provider:q}),{feeFields:_,feePerGas:M}=F9((await N())[X],Z),O={...f&&W.nonce===void 0?{...W,nonce:await q.getTransactionCount(Q)}:W,..._,data:T,from:Q,to:U},B=x9(T)*M;if(G-B<=0n)Ay(G,B);let R=(G-B)/2n,I;try{I=await q.estimateGas({...O,value:R})}catch(F){if(!L8(F))throw F;try{I=await q.estimateGas({...O,value:0n})}catch(P){if(L8(P))Ay(G,B);throw P}}let j=I*M;if(G-j<=0n)Ay(G,j);let $=I*11n/10n*M,k=G>$?G-$:0n,z;try{z=await q.estimateGas({...O,value:k})}catch(F){if(!L8(F))throw F;Ay(G,$)}let J=z*M,Y=G-J;if(Y<=0n)Ay(G,J);let L=await I9({balance:G,estimateAdditionalFee:f,feeOptionKey:X,l2Reserve:J,sweepTx:{...O,gasLimit:z},valueBeforeL1Fee:Y}),D=Y-L;if(D<=0n)Ay(G,J+L);return{...O,gasLimit:z,value:l0(D)}}async function j9({chain:y,contractAddress:T,from:H,provider:f}){let X=await B5({chain:y,provider:f})({abi:wy.erc20ABI,contractAddress:T,funcName:"balanceOf",funcParams:[H]});if(typeof X!=="bigint")throw new K.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid ERC20 balance"}});return X}function cT({chain:y,estimateAdditionalFee:T,estimateGasPrices:H,isEIP1559Compatible:f=!0,provider:X,signer:Q}){return async function({assetValue:q,authorizations:U,memo:W,recipient:G,data:N,feeOptionKey:_=K.FeeOption.Fast,gasLimit:M,sender:C,sweep:O,type:B,maxFeePerGas:R,maxPriorityFeePerGas:I,gasPrice:j,...V}){let S=q.getBaseValue("bigint"),$=C||await Q?.getAddress();if(!$)throw new K.SwapKitError("toolbox_evm_no_from_address");if(O&&(B===4||(U?.length??0)>0))throw new K.SwapKitError({errorKey:"toolbox_not_supported",info:{chain:y,reason:"EIP-7702 sweep transactions are not supported"}});if(K.isGasAsset(q)){let{hexlify:Y,toUtf8Bytes:L}=await import("ethers"),D=N||Y(L(W||""));if(!O)return{...V,...U!==void 0&&{authorizations:U},data:D,from:$,...M!==void 0&&{gasLimit:M},to:G,...B!==void 0&&{type:B},value:l0(S)};return P9({chain:y,data:D,estimateAdditionalFee:T,estimateGasPrices:H,feeOptionKey:_,from:$,isEIP1559Compatible:f,provider:X,recipient:G,transaction:{nonce:V.nonce,type:B}})}let k=S1(q,y);if(!k)throw new K.SwapKitError("toolbox_evm_no_contract_address");let z=Ey({chain:y,provider:X}),J=O?await j9({chain:y,contractAddress:k,from:$,provider:X}):S;if(O&&J<=0n)throw new K.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:q.toString(),balance:J.toString()}});return z({abi:wy.erc20ABI,contractAddress:k,funcName:"transfer",funcParams:[G,J],txOverrides:{from:$,gasLimit:M,gasPrice:j,maxFeePerGas:R,maxPriorityFeePerGas:I}})}}function V9({provider:y,signer:T,chain:H}){return async function({assetAddress:X,spenderAddress:Q,amount:Z,from:q}){let U=await T?.getAddress()||q,W=Ey({chain:H,provider:y}),G=["bigint","number"].includes(typeof Z)?Z:Z||j1;return await W({abi:wy.erc20ABI,contractAddress:X,funcName:"approve",funcParams:[Q,BigInt(G)],txOverrides:{from:U}})}}function K9({provider:y,isEIP1559Compatible:T=!0,chain:H}){return async function({feeOption:X=K.FeeOption.Fast,...Q}){let q=await vy({chain:H,isEIP1559Compatible:T,provider:y})(),U=await y.estimateGas(Q),W=K.AssetValue.from({chain:H}),{gasPrice:G,maxFeePerGas:N,maxPriorityFeePerGas:_}=q[X];if(!T&&G)return W.set(K.SwapKitNumber.fromBigInt(G*U,W.decimal));if(N&&_){let M=(N+_)*U;return W.set(K.SwapKitNumber.fromBigInt(M,W.decimal))}throw new K.SwapKitError("toolbox_evm_no_gas_price")}}var K,wy,b0,M8,j1,M9,_9,O8,C9,D5=(y)=>y.type===4||(y.authorizations?.length??0)>0,$8=(y)=>!D5(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),N8=(y,T=!0)=>{if(D5(y))return"eip7702";if($8(y)||T)return"eip1559";return"legacy"};var F5=h(()=>{k5();P1();K=require("@swapkit/helpers"),wy=require("@swapkit/helpers/contracts"),b0=require("ethers"),M8=require("ts-pattern"),j1=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");M9=["payable","nonpayable"];_9=K.EVMChains.reduce((y,T)=>{return y[T]="0x0000000000000000000000000000000000000000",y},{}),O8={..._9,[K.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[K.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},C9=[K.Chain.Arbitrum,K.Chain.Aurora,K.Chain.Base,K.Chain.Optimism,K.Chain.Robinhood]});var dT;var iT=h(()=>{dT=[{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:[{internalType:"uint256",name:"_gasUsed",type:"uint256"}],name:"getOperatorFee",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"}]});function x5(y){return new R5.Contract(S9,dT,y)}function tT(y){return async function(){let H=x5(y);if(H&&"l1BaseFee"in H)return await H?.l1BaseFee();return}}function rT(y){return async function({from:H,to:f,nonce:X,...Q}){let{Transaction:Z}=await import("ethers");if(!f)throw new L0.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return Z.from({...Q,authorizationList:Q.authorizationList,nonce:X??(H?await y.getTransactionCount(H):0),to:f}).unsignedSerialized}}function k8(y,T){return async function(f){let X=x5(y),Q=f.chainId??T??(await y.getNetwork()).chainId,Z=await rT(y)({...f,chainId:Q});if(X&&"getL1Fee"in X){let q=await X.getL1Fee(Z);if(typeof q!=="bigint")throw new L0.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid OP-stack L1 fee"}});return q}return}}function B8(y){return async function(H){let f=x5(y);if(f&&"getOperatorFee"in f){let X=await f.getOperatorFee(H);if(typeof X!=="bigint")throw new L0.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid OP-stack operator fee"}});return X}return 0n}}function A9(y,T){let H=k8(y,T),f=B8(y);return async function(Q){if(Q.gasLimit===void 0||Q.gasLimit===null)throw new L0.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Missing gas limit for OP-stack fee estimation"}});let[Z,q]=await Promise.all([H(Q),f(BigInt(Q.gasLimit.toString()))]);return(Z??0n)+q}}function aT(y){return async function(H){let X=(await y.getFeeData()).gasPrice??0n,Q=await y.estimateGas(H);return X*Q}}function w9(y){return async function(H){let f=await k8(y)(H)??0n,X=await aT(y)(H),Q=H.gasLimit??await y.estimateGas(H),Z=await B8(y)(BigInt(Q.toString()));return f+X+Z}}function E9(y){return async function(H){let f=x5(y),X=await rT(y)(H);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(X)}}function v9(y){return async function(){try{let{maxFeePerGas:H,maxPriorityFeePerGas:f,gasPrice:X}=await y.getFeeData(),Q=await tT(y)(),Z=X;if(!(H&&f))throw new L0.SwapKitError("toolbox_evm_no_fee_data");return{[L0.FeeOption.Average]:{gasPrice:Z,l1GasPrice:Q,maxFeePerGas:H,maxPriorityFeePerGas:f},[L0.FeeOption.Fast]:{gasPrice:L0.applyFeeMultiplierToBigInt(Z,L0.FeeOption.Fast),l1GasPrice:L0.applyFeeMultiplierToBigInt(Q||0n,L0.FeeOption.Fast),maxFeePerGas:H,maxPriorityFeePerGas:L0.applyFeeMultiplierToBigInt(f,L0.FeeOption.Fast)},[L0.FeeOption.Fastest]:{gasPrice:L0.applyFeeMultiplierToBigInt(Z,L0.FeeOption.Fastest),l1GasPrice:L0.applyFeeMultiplierToBigInt(Q||0n,L0.FeeOption.Fastest),maxFeePerGas:H,maxPriorityFeePerGas:L0.applyFeeMultiplierToBigInt(f,L0.FeeOption.Fastest)}}}catch(H){throw new L0.SwapKitError("toolbox_evm_gas_estimation_error",{error:H.msg??H.toString()})}}}function H1(y){return function({provider:H,...f}){let X=A1.match(f).with({phrase:A1.P.string},({phrase:_})=>R5.HDNodeWallet.fromPhrase(_).connect(H)).with({signer:A1.P.any},({signer:_})=>_).otherwise(()=>{return}),Q=tT(H),Z=BigInt(L0.getChainConfig(y).chainId),q=k8(H,Z),U=A9(H,Z),W=B8(H),G=y===L0.Chain.Optimism?v9(H):void 0;return{...y1({chain:y,estimateAdditionalFee:U,estimateGasPrices:G,provider:H,signer:X}),estimateL1Gas:E9(H),estimateL1GasCost:q,estimateL2GasCost:aT(H),estimateOperatorFee:W,estimateTotalGasCost:w9(H),getBalance:I1(y).getBalance,getL1GasPrice:Q}}}var L0,R5,A1,S9="0x420000000000000000000000000000000000000f",I5;var P5=h(()=>{k5();iT();F5();L0=require("@swapkit/helpers"),R5=require("ethers"),A1=require("ts-pattern");I5=H1(L0.Chain.Optimism)});function j5(y){let T=x0(C0.Chain.Ethereum)(y);async function H(f,X="0x5ba1e12693dc8f9c48aad8770482f4739beed696",Q="aggregate",Z=C0.FeeOption.Fast){let q=await T.createContractTxObject({abi:lT,contractAddress:X,funcName:Q,funcParams:[f]});return T.sendTransaction({...q,feeOptionKey:Z})}return{...T,multicall:H}}function x0(y){return function({provider:H,...f}){let X=W8(y),Q=w1.match(f).with({phrase:w1.P.string},({phrase:q})=>sT.HDNodeWallet.fromPhrase(q).connect(H)).with({signer:w1.P.any},({signer:q})=>q).otherwise(()=>{return});return y1({chain:y,isEIP1559Compatible:X,provider:H,signer:Q})}}var C0,sT,w1,V5,K5,S5,A5,w5,E5,v5,eT,b5,h5,l5,u5,p5,m5,g5,o5,n5,c5,d5,E1,i5,t5;var D8=h(()=>{uT();P1();F5();P5();C0=require("@swapkit/helpers"),sT=require("ethers"),w1=require("ts-pattern");V5=x0(C0.Chain.Adi),K5=x0(C0.Chain.Arbitrum),S5=x0(C0.Chain.Aurora),A5=x0(C0.Chain.Avalanche),w5=H1(C0.Chain.Base),E5=x0(C0.Chain.Berachain),v5=x0(C0.Chain.BinanceSmartChain),eT=x0(C0.Chain.Botanix),b5=x0(C0.Chain.Core),h5=x0(C0.Chain.Corn),l5=x0(C0.Chain.Cronos),u5=x0(C0.Chain.Gnosis),p5=x0(C0.Chain.Robinhood),m5=x0(C0.Chain.Hyperevm),g5=x0(C0.Chain.Linea),o5=x0(C0.Chain.Polygon),n5=x0(C0.Chain.MegaETH),c5=x0(C0.Chain.Monad),d5=x0(C0.Chain.Plasma),E1=x0(C0.Chain.Sonic),i5=H1(C0.Chain.Unichain),t5=x0(C0.Chain.XLayer)});var T4={};P0(T4,{validateEVMAddress:()=>V1,toChecksumAddress:()=>pT,isStateChangingCall:()=>C8,isEIP7702Transaction:()=>D5,isEIP1559Transaction:()=>$8,isBrowserProvider:()=>f1,getTokenAddress:()=>S1,getEvmToolboxAsync:()=>f4,getEvmToolbox:()=>F8,getEstimateGasPrices:()=>vy,getEVMTxType:()=>N8,getEIP1193SendTransaction:()=>T1,getCreateContractTxObject:()=>Ey,getCreateContract:()=>_8,getChecksumAddressFromAsset:()=>mT,createOPStackToolbox:()=>H1,createContract:()=>K1,XLayerToolbox:()=>t5,UNIToolbox:()=>i5,SONICToolbox:()=>E1,PLASMAToolbox:()=>d5,OPToolbox:()=>I5,MONADToolbox:()=>c5,MEGAETHToolbox:()=>n5,MAX_APPROVAL:()=>j1,MATICToolbox:()=>o5,LINEAToolbox:()=>g5,HYPEREVMToolbox:()=>m5,HOODToolbox:()=>p5,GNOToolbox:()=>u5,ETHToolbox:()=>j5,ContractAddress:()=>O8,CROToolbox:()=>l5,CORNToolbox:()=>h5,COREToolbox:()=>b5,BotanixToolbox:()=>eT,BaseEVMToolbox:()=>y1,BSCToolbox:()=>v5,BERAToolbox:()=>E5,BASEToolbox:()=>w5,AVAXToolbox:()=>A5,AURORAToolbox:()=>S5,ARBToolbox:()=>K5,ADIToolbox:()=>V5});function F8(y,T){return y4.match(y).with(O0.Chain.Adi,()=>V5(T)).with(O0.Chain.Arbitrum,()=>K5(T)).with(O0.Chain.Aurora,()=>S5(T)).with(O0.Chain.Avalanche,()=>A5(T)).with(O0.Chain.Base,()=>w5(T)).with(O0.Chain.Berachain,()=>E5(T)).with(O0.Chain.BinanceSmartChain,()=>v5(T)).with(O0.Chain.Botanix,()=>E1(T)).with(O0.Chain.Core,()=>b5(T)).with(O0.Chain.Corn,()=>h5(T)).with(O0.Chain.Cronos,()=>l5(T)).with(O0.Chain.Ethereum,()=>j5(T)).with(O0.Chain.Gnosis,()=>u5(T)).with(O0.Chain.Hyperevm,()=>m5(T)).with(O0.Chain.Linea,()=>g5(T)).with(O0.Chain.MegaETH,()=>n5(T)).with(O0.Chain.Monad,()=>c5(T)).with(O0.Chain.Optimism,()=>I5(T)).with(O0.Chain.Plasma,()=>d5(T)).with(O0.Chain.Polygon,()=>o5(T)).with(O0.Chain.Robinhood,()=>p5(T)).with(O0.Chain.Sonic,()=>E1(T)).with(O0.Chain.Unichain,()=>i5(T)).with(O0.Chain.XLayer,()=>t5(T)).exhaustive()}async function f4(y,T){let H={...T,provider:T?.provider||Y8(y)};return F8(y,H)}var O0,y4;var R8=h(()=>{P1();D8();P5();O0=require("@swapkit/helpers"),y4=require("ts-pattern");F5();D8();P5()});var H4;var X4=h(()=>{((H)=>{H.Test="goerli";H.Main="homestead"})(H4||={})});var Q4={};P0(Q4,{validateEVMAddress:()=>V1,validateAuthorizations:()=>G8,validateAuthorization:()=>bT,toHexString:()=>l0,toChecksumAddress:()=>pT,signAuthorization:()=>z8,parseEIP712FromEVMTx:()=>L9,isStateChangingCall:()=>C8,isEIP7702Transaction:()=>D5,isEIP1559Transaction:()=>$8,isBrowserProvider:()=>f1,getTokenAddress:()=>S1,getProviderSync:()=>vT,getProvider:()=>W9,getNetworkParams:()=>J8,getIsEIP1559Compatible:()=>W8,getFallbackProvider:()=>Y8,getEvmToolboxAsync:()=>f4,getEvmToolbox:()=>F8,getEvmApi:()=>I1,getEstimateGasPrices:()=>vy,getEVMTxType:()=>N8,getEIP1193SendTransaction:()=>T1,getCreateContractTxObject:()=>Ey,getCreateContract:()=>_8,getChecksumAddressFromAsset:()=>mT,createOPStackToolbox:()=>H1,createCustomEvmApi:()=>J9,createContract:()=>K1,buildEIP712DomainType:()=>hT,XLayerToolbox:()=>t5,UNIToolbox:()=>i5,SONICToolbox:()=>E1,PLASMAToolbox:()=>d5,OPToolbox:()=>I5,MONADToolbox:()=>c5,MEGAETHToolbox:()=>n5,MAX_APPROVAL:()=>j1,MATICToolbox:()=>o5,LINEAToolbox:()=>g5,HYPEREVMToolbox:()=>m5,HOODToolbox:()=>p5,GNOToolbox:()=>u5,EthNetwork:()=>H4,ETHToolbox:()=>j5,ContractAddress:()=>O8,CROToolbox:()=>l5,CORNToolbox:()=>h5,COREToolbox:()=>b5,BotanixToolbox:()=>eT,BaseEVMToolbox:()=>y1,BSCToolbox:()=>v5,BERAToolbox:()=>E5,BASEToolbox:()=>w5,AVAXToolbox:()=>A5,AURORAToolbox:()=>S5,ARBToolbox:()=>K5,ADIToolbox:()=>V5});module.exports=S0(Q4);var x8=h(()=>{k5();P1();R8();X4()});async function P8(y,T){let H=await fetch(`${z4}${y}`,{...T,headers:{project_id:W4,...T?.headers}});if(!H.ok)throw Error(`Blockfrost API error: ${H.status} ${H.statusText}`);return H.json()}async function G4(y){try{return await P8(`/addresses/${y}/utxos`)}catch{return[]}}async function h9(){return(await P8("/blocks/latest")).slot}async function l9(){let y=await P8("/epochs/latest/parameters"),T={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new u0.default(y.collateral_percent),languageView:T,maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new u0.default(y.min_fee_a),minFeeB:new u0.default(y.min_fee_b),minFeeRefScriptCostPerByte:new u0.default(15),priceMem:new u0.default(y.price_mem),priceSteps:new u0.default(y.price_step),stakeKeyDeposit:new u0.default(2000000),utxoCostPerByte:new u0.default(y.coins_per_utxo_size)}}async function q4(y){let T=await fetch(`${z4}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:W4},method:"POST"});if(!T.ok){let H=await T.text();throw Error(`Transaction submission failed: ${H}`)}return T.json()}function u9(y,T){return y.map((H)=>{let f=H.amount.find((Z)=>Z.unit==="lovelace"),X=f?new u0.default(f.quantity):new u0.default(0),Q=H.amount.filter((Z)=>Z.unit!=="lovelace").map((Z)=>({amount:new u0.default(Z.quantity),assetName:Z.unit.slice(56),policyId:Z.unit.slice(0,56)}));return{address:T,amount:X,index:H.output_index,tokens:Q,txId:H.tx_hash}})}function p9({TransactionConstructor:y,auxiliaryData:T,bufferedParams:H,currentSlot:f,inputs:X,recipientAddress:Q}){let Z=X.reduce((M,C)=>M.plus(C.amount),new u0.default(0));if(!Z.isPositive())throw new M0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{available:Z.toString()}});let q=new y({protocolParams:H});for(let M of X)q.addInput(M);if(q.addOutput({address:Q,amount:Z,tokens:[]}),q.setTTL(f+3600),T)q.setAuxiliaryData(T);q.setFee(q.calculateFee());let U=q.getFee(),W=Z.minus(U),G={address:Q,amount:W,tokens:[]},N=q.calculateMinUtxoAmountBabbage(G);if(!W.isPositive()||W.lt(N))throw new M0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{available:Z.toString(),fee:U.toString(),minimumOutput:N.toString()}});return new y({protocolParams:H}).paymentTransaction({auxiliaryData:T,changeAddress:Q,inputs:X,outputs:[G],ttl:f+3600})}async function m9(y){try{let T=await G4(y),H=0n,f=new Map;for(let Z of T){if(!Z.amount||!Array.isArray(Z.amount))continue;for(let q of Z.amount){let{unit:U,quantity:W}=q;if(U==="lovelace")H+=BigInt(W);else{let G=f.get(U)||0n;f.set(U,G+BigInt(W))}}}let X=[],{baseDecimal:Q}=M0.getChainConfig(M0.Chain.Cardano);if(H>0n)X.push(M0.AssetValue.from({chain:M0.Chain.Cardano,fromBaseDecimal:Q,value:H.toString()}));for(let[Z,q]of f)X.push(M0.AssetValue.from({asset:`${M0.Chain.Cardano}.${Z}`,value:q.toString()}));if(X.length===0)return[M0.AssetValue.from({chain:M0.Chain.Cardano})];return X}catch(T){let H=T instanceof Error?T.message:String(T);return console.error(`Cardano balance fetch error: ${H}`),[M0.AssetValue.from({chain:M0.Chain.Cardano})]}}function L4(y){if(!y||typeof y!=="string")return!1;try{let T=U4.bech32.decode(y,120);return T.prefix==="addr"||T.prefix==="addr_test"}catch{return!1}}async function g9(y,T=0,H=0){let{Bip32PrivateKey:f}=await import("@stricahq/bip32ed25519"),{types:X,address:Q,crypto:Z}=await import("@stricahq/typhonjs"),q=Y4.mnemonicToEntropy(y,J4.wordlist),W=(await f.fromEntropy(Buffer.from(Array.from(q)))).derive(I8+1852).derive(I8+1815).derive(I8+T),G=W.derive(0).derive(H),N=G.toBip32PublicKey().toPublicKey().toBytes(),_=Z.hash28(N),C=W.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),O=Z.hash28(C),B={hash:_,type:X.HashType.ADDRESS},R={hash:O,type:X.HashType.ADDRESS},j=new Q.BaseAddress(X.NetworkId.MAINNET,B,R).getBech32(),V=G.toPrivateKey();return{getAddress:()=>j,publicKey:N,publicKeyHash:_,signTransaction:async(S)=>{try{let $=await import("@stricahq/cbors"),k=Buffer.from(S,"hex"),z=$.Decoder.decode(k),[J,Y,L,D]=z.value,F=$.Encoder.encode(J),P=Z.hash32(F),A=V.sign(P),E=Y instanceof Map?Y:new Map,u=E.get(Z4)||[];u.push([N,A]),E.set(Z4,u);let s=[J,E,L,D];return $.Encoder.encode(s).toString("hex")}catch($){throw new M0.SwapKitError("toolbox_cardano_sign_transaction_failed",{message:String($)})}}}}function o9(y){let T,H,f;async function X(){if(!f)f=await l9();return f}async function Q(){if(T!==void 0)return T;if(y&&"phrase"in y&&y.phrase){let M=y.index??0;return T=await g9(y.phrase,0,M),T}if(y&&"signer"in y&&y.signer)return T=y.signer,T;return}async function Z(){if(H)return H;let M=await Q();if(!M)return"";if("getAddress"in M)return H=await M.getAddress(),H;return""}async function q(M){let C=M||await Z();if(!C)throw new M0.SwapKitError("core_wallet_connection_not_found");return m9(C)}async function U(M){if(M)try{let{tx:R}=await W(M),I=R.getFee();return M0.AssetValue.from({chain:M0.Chain.Cardano,fromBaseDecimal:6,value:I.toString()})}catch{}let C=await X(),O=400,B=C.minFeeB.plus(C.minFeeA.times(O));return M0.AssetValue.from({chain:M0.Chain.Cardano,fromBaseDecimal:6,value:B.toString()})}async function W({sender:M="",recipient:C,assetValue:O,memo:B,pureLovelaceOnly:R=!1,sweep:I=!1}){let{Transaction:j,utils:V}=await import("@stricahq/typhonjs"),S=M||await Z();if(!S)throw new M0.SwapKitError("core_wallet_connection_not_found");let[$,k,z]=await Promise.all([G4(S),h9(),X()]);if(I&&!O.isGasAsset)throw new M0.SwapKitError({errorKey:"toolbox_not_supported",info:{asset:O.toString(),chain:M0.Chain.Cardano,feature:"token_sweep"}});let J=I&&O.isGasAsset,Y=R||J,L=$.filter((w)=>Y?w.amount.some((b)=>b.unit==="lovelace")&&w.amount.every((b)=>b.unit==="lovelace"):w.amount.some((b)=>b.unit==="lovelace")).sort((w,b)=>{let c=w.amount.some((f0)=>f0.unit!=="lovelace"),d=b.amount.some((f0)=>f0.unit!=="lovelace");if(c===d)return 0;return c?1:-1}),D=V.getAddressFromString(S),F=V.getAddressFromString(C),P=u9(L,D),A;if(B){let w=new Map;w.set("msg",[B]),A={metadata:[{data:w,label:674}]}}let E={...z,minFeeB:z.minFeeB.plus(z.minFeeA.times(4))};if(J){let w=p9({auxiliaryData:A,bufferedParams:E,currentSlot:k,inputs:P,recipientAddress:F,TransactionConstructor:j}),{payload:b}=w.buildTransaction();return{tx:w,unsignedTx:b}}let u=new u0.default(O.getBaseValue("string")),s=[{address:F,amount:u,tokens:[]}],R0=new j({protocolParams:E}).paymentTransaction({auxiliaryData:A,changeAddress:D,inputs:P,outputs:s,ttl:k+3600}),{payload:x}=R0.buildTransaction();return{tx:R0,unsignedTx:x}}async function G(M){let C=await Q();if(!C||!("signTransaction"in C))throw new M0.SwapKitError("core_wallet_connection_not_found");return C.signTransaction(M)}async function N({recipient:M,assetValue:C,memo:O,sweep:B}){let R=await Q();if(!R||!("signTransaction"in R))throw new M0.SwapKitError("core_wallet_connection_not_found");let{unsignedTx:I}=await W({assetValue:C,memo:O,recipient:M,sender:await Z(),sweep:B}),j=await G(I);return await q4(j)}async function _(M){let C=await G(M);return await q4(C)}return{createTransaction:W,estimateTransactionFee:U,getAddress:Z,getBalance:q,signAndBroadcastTransaction:_,signTransaction:G,transfer:N,validateAddress:L4}}var U4,Y4,J4,M0,u0,W4="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",z4="https://cardano-mainnet.blockfrost.io/api/v0",I8=2147483648,Z4=0;var M4=h(()=>{U4=require("@scure/base"),Y4=require("@scure/bip39"),J4=require("@scure/bip39/wordlists/english.js"),M0=require("@swapkit/helpers"),u0=MT(require("bignumber.js"))});var j8={};P0(j8,{validateCardanoAddress:()=>L4,getCardanoToolbox:()=>o9});module.exports=S0(j8);var V8=h(()=>{M4()});function v1(y){return Xy.base64.encode(Uint8Array.from(Xy.bech32.fromWords(Xy.bech32.decode(y).words)))}function b1(y,T="thor"){return Xy.bech32.encode(T,Xy.bech32.toWords(Xy.base64.decode(y)))}function n9(y){return Xy.base64.encode(y)}function c9(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new _4.SwapKitError("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return Xy.base64.decode(y)}var Xy,_4;var K8=h(()=>{Xy=require("@scure/base"),_4=require("@swapkit/helpers")});function r0(y){switch(y){case p.Chain.Maya:return{amount:[],gas:"10000000000"};case p.Chain.THORChain:return{amount:[],gas:"500000000"};case p.Chain.Kujira:return $4;case p.Chain.Noble:return N4;default:return O4}}async function h1(y){let{isStagenet:T}=p.SKConfig.get("envs"),H=p.SKConfig.get("thornodeUrls"),f=y===p.Chain.Maya,Q=`${f?T?H.MAYA_STAGENET:H.MAYA:T?H.THOR_STAGENET:H.THOR}/${f?"mayachain":"thorchain"}/constants`,Z=p.getChainConfig(y).baseDecimal;try{let{int_64_values:{NativeTransactionFee:q}}=await p.RequestClient.get(Q);if(!Number.isInteger(q)||q<=0)throw new p.SwapKitError("toolbox_cosmos_invalid_fee",{nativeFee:q.toString()});return p.SwapKitNumber.fromBigInt(BigInt(q),Z)}catch{let q=f?10000000000n:2000000n;return p.SwapKitNumber.fromBigInt(q,Z)}}async function Qy(y){let T=await import("@cosmjs/stargate"),H=T.StargateClient??T.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return H.connect({headers:f,url:y})}async function by(y,T,H={}){let f=await import("@cosmjs/stargate"),X=f.SigningStargateClient??f.default?.SigningStargateClient,Q=f.GasPrice??f.default?.GasPrice,Z=typeof H==="string"?H:"0.0003uatom",q=typeof H==="string"?{}:H;return X.connectWithSigner(y,T,{gasPrice:Q.fromString(Z),...q})}async function A8(y,T){let H=await import("@cosmjs/stargate");return(H.SigningStargateClient??H.default?.SigningStargateClient).offline(y,T)}async function w8({sender:y,recipient:T,assetValue:H,memo:f="",feeRate:X,sequence:Q,accountNumber:Z,sweep:q}){let{chain:U,chainId:W}=H,G=await p.getRPCUrl(U),N=await Qy(G),_=await N.getAccount(y);if(!_)throw new p.SwapKitError("toolbox_cosmos_account_not_found",{sender:y});let M=p.AssetValue.from({chain:U}),C=Yy(M.symbol),O=r0(U),B=C&&X?{amount:[{amount:X.toString(),denom:C}],gas:O.gas}:O,R=Yy(H.symbol),j={amount:[{amount:(q?X1({assetValue:H,balances:await N.getAllBalances(y),denom:R,feeAmount:r5(B.amount,R)}):H).getBaseValue("string"),denom:R}],fromAddress:y,toAddress:T};return{accountNumber:Z??Number(_.accountNumber),chainId:W,fee:B,memo:f,msgs:[{typeUrl:d9(U),value:j}],sequence:Q??_.sequence}}function r5(y,T){let H=T.toLowerCase();return y.reduce((f,X)=>X.denom.toLowerCase()===H?f+BigInt(X.amount):f,0n)}function X1({assetValue:y,balances:T,denom:H,feeAmount:f=0n}){let X=H.toLowerCase(),Q=T.find(({denom:U})=>U.toLowerCase()===X),Z=BigInt(Q?.amount??"0"),q=Z-f;if(q<=0n)throw new p.SwapKitError("toolbox_sweep_amount_too_low",{asset:y.toString(),balance:Z.toString(),fee:f.toString()});return y.set(p.SwapKitNumber.fromBigInt(q,y.decimal))}var p,S8="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",C4="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",O4,$4,N4,Yy=(y,T=!1)=>{if(T)return y.toLowerCase();switch(y){case"uUSK":case"USK":return S8;case"uYUM":case"YUM":return C4;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":case"NOBLE":return"uusdc";default:return y}},l1=({symbol:y,chain:T})=>{if(T===p.Chain.Maya)return(y.toUpperCase()!=="CACAO"?y:`${p.Chain.Maya}.${y}`).toUpperCase();if(T===p.Chain.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${p.Chain.THORChain}.${y}`:y).toUpperCase();return Yy(y,!1)},d9=(y)=>{switch(y){case p.Chain.Maya:case p.Chain.THORChain:return"/types.MsgSend";case p.Chain.Cosmos:case p.Chain.Kujira:case p.Chain.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new p.SwapKitError("toolbox_cosmos_not_supported",{chain:y})}},i9,E8=(y,T)=>{let H=i9[y.toLowerCase()];if(!H)return p.AssetValue.from({asset:y,fromBaseDecimal:8,value:T});let{chain:f,asset:X,decimals:Q}=H,Z=f?{chain:f}:{asset:X};return p.AssetValue.from({...Z,fromBaseDecimal:Q,value:T})};var u1=h(()=>{p=require("@swapkit/helpers"),O4={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},$4={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},N4={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};i9={atom:{chain:p.Chain.Cosmos,decimals:p.getChainConfig(p.Chain.Cosmos).baseDecimal},cacao:{chain:p.Chain.Maya,decimals:10},kuji:{chain:p.Chain.Kujira,decimals:p.getChainConfig(p.Chain.Kujira).baseDecimal},maya:{asset:`${p.Chain.Maya}.${p.Chain.Maya}`,decimals:4},rune:{chain:p.Chain.THORChain,decimals:p.getChainConfig(p.Chain.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:p.getChainConfig(p.Chain.THORChain).baseDecimal},uatom:{chain:p.Chain.Cosmos,decimals:p.getChainConfig(p.Chain.Cosmos).baseDecimal},ukuji:{chain:p.Chain.Kujira,decimals:p.getChainConfig(p.Chain.Kujira).baseDecimal},usdc:{chain:p.Chain.Noble,decimals:p.getChainConfig(p.Chain.Noble).baseDecimal},uusdc:{chain:p.Chain.Noble,decimals:p.getChainConfig(p.Chain.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:p.getChainConfig(p.Chain.THORChain).baseDecimal},[S8.toLowerCase()]:{asset:`${p.Chain.Kujira}.USK`,decimals:p.getChainConfig(p.Chain.Kujira).baseDecimal}}});var k4={};P0(k4,{$root:()=>l});var V0,r,c0,n,l;var B4=h(()=>{V0=MT(require("protobufjs/minimal.js")),r=V0.default.Reader,c0=V0.default.Writer,n=V0.default.util,l=V0.default.roots.default||(V0.default.roots.default={});l.common=(()=>{let y={};return y.Asset=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.chain="",T.prototype.symbol="",T.prototype.ticker="",T.prototype.synth=!1,T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))X.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))X.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))X.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))X.uint32(32).bool(f.synth);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.common.Asset;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.chain=f.string();break;case 2:Z.symbol=f.string();break;case 3:Z.ticker=f.string();break;case 4:Z.synth=f.bool();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!n.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!n.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!n.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},T.fromObject=function(f){if(f instanceof l.common.Asset)return f;let X=new l.common.Asset;if(f.chain!=null)X.chain=String(f.chain);if(f.symbol!=null)X.symbol=String(f.symbol);if(f.ticker!=null)X.ticker=String(f.ticker);if(f.synth!=null)X.synth=Boolean(f.synth);return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.defaults)Q.chain="",Q.symbol="",Q.ticker="",Q.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))Q.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))Q.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))Q.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))Q.synth=f.synth;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,V0.default.util.toJSONOptions)},T})(),y.Coin=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.asset=null,T.prototype.amount="",T.prototype.decimals=n.Long?n.Long.fromBits(0,0,!1):0,T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))l.common.Asset.encode(f.asset,X.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))X.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))X.uint32(24).int64(f.decimals);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.common.Coin;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.asset=l.common.Asset.decode(f,f.uint32());break;case 2:Z.amount=f.string();break;case 3:Z.decimals=f.int64();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let X=l.common.Asset.verify(f.asset);if(X)return"asset."+X}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!n.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!n.isInteger(f.decimals)&&!(f.decimals&&n.isInteger(f.decimals.low)&&n.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},T.fromObject=function(f){if(f instanceof l.common.Coin)return f;let X=new l.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");X.asset=l.common.Asset.fromObject(f.asset)}if(f.amount!=null)X.amount=String(f.amount);if(f.decimals!=null){if(n.Long)(X.decimals=n.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")X.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")X.decimals=f.decimals;else if(typeof f.decimals==="object")X.decimals=new n.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.defaults)if(Q.asset=null,Q.amount="",n.Long){let Z=new n.Long(0,0,!1);Q.decimals=X.longs===String?Z.toString():X.longs===Number?Z.toNumber():Z}else Q.decimals=X.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))Q.asset=l.common.Asset.toObject(f.asset,X);if(f.amount!=null&&f.hasOwnProperty("amount"))Q.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")Q.decimals=X.longs===String?String(f.decimals):f.decimals;else Q.decimals=X.longs===String?n.Long.prototype.toString.call(f.decimals):X.longs===Number?new n.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,V0.default.util.toJSONOptions)},T})(),y.PubKeySet=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.secp256k1="",T.prototype.ed25519="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))X.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))X.uint32(18).string(f.ed25519);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.common.PubKeySet;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.secp256k1=f.string();break;case 2:Z.ed25519=f.string();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!n.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!n.isString(f.ed25519))return"ed25519: string expected"}return null},T.fromObject=function(f){if(f instanceof l.common.PubKeySet)return f;let X=new l.common.PubKeySet;if(f.secp256k1!=null)X.secp256k1=String(f.secp256k1);if(f.ed25519!=null)X.ed25519=String(f.ed25519);return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.defaults)Q.secp256k1="",Q.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))Q.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))Q.ed25519=f.ed25519;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,V0.default.util.toJSONOptions)},T})(),y.Tx=(()=>{function T(H){if(this.coins=[],this.gas=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.id="",T.prototype.chain="",T.prototype.fromAddress="",T.prototype.toAddress="",T.prototype.coins=n.emptyArray,T.prototype.gas=n.emptyArray,T.prototype.memo="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))X.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))X.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))X.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))X.uint32(34).string(f.toAddress);if(f.coins?.length)for(let Q=0;Q<f.coins.length;++Q)l.common.Coin.encode(f.coins[Q],X.uint32(42).fork()).ldelim();if(f.gas?.length)for(let Q=0;Q<f.gas.length;++Q)l.common.Coin.encode(f.gas[Q],X.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))X.uint32(58).string(f.memo);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.common.Tx;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.id=f.string();break;case 2:Z.chain=f.string();break;case 3:Z.fromAddress=f.string();break;case 4:Z.toAddress=f.string();break;case 5:if(!Z.coins?.length)Z.coins=[];Z.coins.push(l.common.Coin.decode(f,f.uint32()));break;case 6:if(!Z.gas?.length)Z.gas=[];Z.gas.push(l.common.Coin.decode(f,f.uint32()));break;case 7:Z.memo=f.string();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!n.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!n.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!n.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!n.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let X=0;X<f.coins.length;++X){let Q=l.common.Coin.verify(f.coins[X]);if(Q)return"coins."+Q}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let X=0;X<f.gas.length;++X){let Q=l.common.Coin.verify(f.gas[X]);if(Q)return"gas."+Q}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!n.isString(f.memo))return"memo: string expected"}return null},T.fromObject=function(f){if(f instanceof l.common.Tx)return f;let X=new l.common.Tx;if(f.id!=null)X.id=String(f.id);if(f.chain!=null)X.chain=String(f.chain);if(f.fromAddress!=null)X.fromAddress=String(f.fromAddress);if(f.toAddress!=null)X.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");X.coins=[];for(let Q=0;Q<f.coins.length;++Q){if(typeof f.coins[Q]!=="object")throw TypeError(".common.Tx.coins: object expected");X.coins[Q]=l.common.Coin.fromObject(f.coins[Q])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");X.gas=[];for(let Q=0;Q<f.gas.length;++Q){if(typeof f.gas[Q]!=="object")throw TypeError(".common.Tx.gas: object expected");X.gas[Q]=l.common.Coin.fromObject(f.gas[Q])}}if(f.memo!=null)X.memo=String(f.memo);return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.arrays||X.defaults)Q.coins=[],Q.gas=[];if(X.defaults)Q.id="",Q.chain="",Q.fromAddress="",Q.toAddress="",Q.memo="";if(f.id!=null&&f.hasOwnProperty("id"))Q.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))Q.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))Q.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))Q.toAddress=f.toAddress;if(f.coins?.length){Q.coins=[];for(let Z=0;Z<f.coins.length;++Z)Q.coins[Z]=l.common.Coin.toObject(f.coins[Z],X)}if(f.gas?.length){Q.gas=[];for(let Z=0;Z<f.gas.length;++Z)Q.gas[Z]=l.common.Coin.toObject(f.gas[Z],X)}if(f.memo!=null&&f.hasOwnProperty("memo"))Q.memo=f.memo;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,V0.default.util.toJSONOptions)},T})(),y.Fee=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.coins=n.emptyArray,T.prototype.poolDeduct="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.coins?.length)for(let Q=0;Q<f.coins.length;++Q)l.common.Coin.encode(f.coins[Q],X.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))X.uint32(18).string(f.poolDeduct);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.common.Fee;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:if(!Z.coins?.length)Z.coins=[];Z.coins.push(l.common.Coin.decode(f,f.uint32()));break;case 2:Z.poolDeduct=f.string();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let X=0;X<f.coins.length;++X){let Q=l.common.Coin.verify(f.coins[X]);if(Q)return"coins."+Q}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!n.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},T.fromObject=function(f){if(f instanceof l.common.Fee)return f;let X=new l.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");X.coins=[];for(let Q=0;Q<f.coins.length;++Q){if(typeof f.coins[Q]!=="object")throw TypeError(".common.Fee.coins: object expected");X.coins[Q]=l.common.Coin.fromObject(f.coins[Q])}}if(f.poolDeduct!=null)X.poolDeduct=String(f.poolDeduct);return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.arrays||X.defaults)Q.coins=[];if(X.defaults)Q.poolDeduct="";if(f.coins?.length){Q.coins=[];for(let Z=0;Z<f.coins.length;++Z)Q.coins[Z]=l.common.Coin.toObject(f.coins[Z],X)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))Q.poolDeduct=f.poolDeduct;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,V0.default.util.toJSONOptions)},T})(),y.ProtoUint=(()=>{function T(H){if(H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.value="",T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))X.uint32(10).string(f.value);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.common.ProtoUint;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.value=f.string();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!n.isString(f.value))return"value: string expected"}return null},T.fromObject=function(f){if(f instanceof l.common.ProtoUint)return f;let X=new l.common.ProtoUint;if(f.value!=null)X.value=String(f.value);return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.defaults)Q.value="";if(f.value!=null&&f.hasOwnProperty("value"))Q.value=f.value;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,V0.default.util.toJSONOptions)},T})(),y})();l.types=(()=>{let y={};return y.MsgDeposit=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.coins=n.emptyArray,T.prototype.memo="",T.prototype.signer=n.newBuffer([]),T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.coins?.length)for(let Q=0;Q<f.coins.length;++Q)l.common.Coin.encode(f.coins[Q],X.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))X.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))X.uint32(26).bytes(f.signer);return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.types.MsgDeposit;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:if(!Z.coins?.length)Z.coins=[];Z.coins.push(l.common.Coin.decode(f,f.uint32()));break;case 2:Z.memo=f.string();break;case 3:Z.signer=f.bytes();break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let X=0;X<f.coins.length;++X){let Q=l.common.Coin.verify(f.coins[X]);if(Q)return"coins."+Q}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!n.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||n.isString(f.signer)))return"signer: buffer expected"}return null},T.fromObject=function(f){if(f instanceof l.types.MsgDeposit)return f;let X=new l.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");X.coins=[];for(let Q=0;Q<f.coins.length;++Q){if(typeof f.coins[Q]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");X.coins[Q]=l.common.Coin.fromObject(f.coins[Q])}}if(f.memo!=null)X.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")n.base64.decode(f.signer,X.signer=n.newBuffer(n.base64.length(f.signer)),0);else if(f.signer.length)X.signer=f.signer}return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.arrays||X.defaults)Q.coins=[];if(X.defaults){if(Q.memo="",X.bytes===String)Q.signer="";else if(Q.signer=[],X.bytes!==Array)Q.signer=n.newBuffer(Q.signer)}if(f.coins?.length){Q.coins=[];for(let Z=0;Z<f.coins.length;++Z)Q.coins[Z]=l.common.Coin.toObject(f.coins[Z],X)}if(f.memo!=null&&f.hasOwnProperty("memo"))Q.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))Q.signer=X.bytes===String?n.base64.encode(f.signer,0,f.signer.length):X.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,V0.default.util.toJSONOptions)},T})(),y.MsgSend=(()=>{function T(H){if(this.amount=[],H){for(let f=Object.keys(H),X=0;X<f.length;++X)if(H[f[X]]!=null)this[f[X]]=H[f[X]]}}return T.prototype.fromAddress=n.newBuffer([]),T.prototype.toAddress=n.newBuffer([]),T.prototype.amount=n.emptyArray,T.create=function(f){return new T(f)},T.encode=function(f,X){if(!X)X=c0.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))X.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))X.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let Q=0;Q<f.amount.length;++Q)l.cosmos.base.v1beta1.Coin.encode(f.amount[Q],X.uint32(26).fork()).ldelim();return X},T.encodeDelimited=function(f,X){return this.encode(f,X).ldelim()},T.decode=function(f,X){if(!(f instanceof r))f=r.create(f);let Q=X===void 0?f.len:f.pos+X,Z=new l.types.MsgSend;while(f.pos<Q){let q=f.uint32();switch(q>>>3){case 1:Z.fromAddress=f.bytes();break;case 2:Z.toAddress=f.bytes();break;case 3:if(!Z.amount?.length)Z.amount=[];Z.amount.push(l.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(q&7);break}}return Z},T.decodeDelimited=function(f){if(!(f instanceof r))f=new r(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||n.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||n.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let X=0;X<f.amount.length;++X){let Q=l.cosmos.base.v1beta1.Coin.verify(f.amount[X]);if(Q)return"amount."+Q}}return null},T.fromObject=function(f){if(f instanceof l.types.MsgSend)return f;let X=new l.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")n.base64.decode(f.fromAddress,X.fromAddress=n.newBuffer(n.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)X.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")n.base64.decode(f.toAddress,X.toAddress=n.newBuffer(n.base64.length(f.toAddress)),0);else if(f.toAddress.length)X.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");X.amount=[];for(let Q=0;Q<f.amount.length;++Q){if(typeof f.amount[Q]!=="object")throw TypeError(".types.MsgSend.amount: object expected");X.amount[Q]=l.cosmos.base.v1beta1.Coin.fromObject(f.amount[Q])}}return X},T.toObject=function(f,X){if(!X)X={};let Q={};if(X.arrays||X.defaults)Q.amount=[];if(X.defaults){if(X.bytes===String)Q.fromAddress="";else if(Q.fromAddress=[],X.bytes!==Array)Q.fromAddress=n.newBuffer(Q.fromAddress);if(X.bytes===String)Q.toAddress="";else if(Q.toAddress=[],X.bytes!==Array)Q.toAddress=n.newBuffer(Q.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))Q.fromAddress=X.bytes===String?n.base64.encode(f.fromAddress,0,f.fromAddress.length):X.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))Q.toAddress=X.bytes===String?n.base64.encode(f.toAddress,0,f.toAddress.length):X.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){Q.amount=[];for(let Z=0;Z<f.amount.length;++Z)Q.amount[Z]=l.cosmos.base.v1beta1.Coin.toObject(f.amount[Z],X)}return Q},T.prototype.toJSON=function(){return this.constructor.toObject(this,V0.default.util.toJSONOptions)},T})(),y})();l.cosmos=(()=>{let y={};return y.base=(()=>{let T={};return T.v1beta1=(()=>{let H={};return H.Coin=(()=>{function f(X){if(X){for(let Q=Object.keys(X),Z=0;Z<Q.length;++Z)if(X[Q[Z]]!=null)this[Q[Z]]=X[Q[Z]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(Q){return new f(Q)},f.encode=function(Q,Z){if(!Z)Z=c0.create();if(Q.denom!=null&&Object.hasOwnProperty.call(Q,"denom"))Z.uint32(10).string(Q.denom);if(Q.amount!=null&&Object.hasOwnProperty.call(Q,"amount"))Z.uint32(18).string(Q.amount);return Z},f.encodeDelimited=function(Q,Z){return this.encode(Q,Z).ldelim()},f.decode=function(Q,Z){if(!(Q instanceof r))Q=r.create(Q);let q=Z===void 0?Q.len:Q.pos+Z,U=new l.cosmos.base.v1beta1.Coin;while(Q.pos<q){let W=Q.uint32();switch(W>>>3){case 1:U.denom=Q.string();break;case 2:U.amount=Q.string();break;default:Q.skipType(W&7);break}}return U},f.decodeDelimited=function(Q){if(!(Q instanceof r))Q=new r(Q);return this.decode(Q,Q.uint32())},f.verify=function(Q){if(typeof Q!=="object"||Q===null)return"object expected";if(Q.denom!=null&&Q.hasOwnProperty("denom")){if(!n.isString(Q.denom))return"denom: string expected"}if(Q.amount!=null&&Q.hasOwnProperty("amount")){if(!n.isString(Q.amount))return"amount: string expected"}return null},f.fromObject=function(Q){if(Q instanceof l.cosmos.base.v1beta1.Coin)return Q;let Z=new l.cosmos.base.v1beta1.Coin;if(Q.denom!=null)Z.denom=String(Q.denom);if(Q.amount!=null)Z.amount=String(Q.amount);return Z},f.toObject=function(Q,Z){if(!Z)Z={};let q={};if(Z.defaults)q.denom="",q.amount="";if(Q.denom!=null&&Q.hasOwnProperty("denom"))q.denom=Q.denom;if(Q.amount!=null&&Q.hasOwnProperty("amount"))q.amount=Q.amount;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,V0.default.util.toJSONOptions)},f})(),H.DecCoin=(()=>{function f(X){if(X){for(let Q=Object.keys(X),Z=0;Z<Q.length;++Z)if(X[Q[Z]]!=null)this[Q[Z]]=X[Q[Z]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(Q){return new f(Q)},f.encode=function(Q,Z){if(!Z)Z=c0.create();if(Q.denom!=null&&Object.hasOwnProperty.call(Q,"denom"))Z.uint32(10).string(Q.denom);if(Q.amount!=null&&Object.hasOwnProperty.call(Q,"amount"))Z.uint32(18).string(Q.amount);return Z},f.encodeDelimited=function(Q,Z){return this.encode(Q,Z).ldelim()},f.decode=function(Q,Z){if(!(Q instanceof r))Q=r.create(Q);let q=Z===void 0?Q.len:Q.pos+Z,U=new l.cosmos.base.v1beta1.DecCoin;while(Q.pos<q){let W=Q.uint32();switch(W>>>3){case 1:U.denom=Q.string();break;case 2:U.amount=Q.string();break;default:Q.skipType(W&7);break}}return U},f.decodeDelimited=function(Q){if(!(Q instanceof r))Q=new r(Q);return this.decode(Q,Q.uint32())},f.verify=function(Q){if(typeof Q!=="object"||Q===null)return"object expected";if(Q.denom!=null&&Q.hasOwnProperty("denom")){if(!n.isString(Q.denom))return"denom: string expected"}if(Q.amount!=null&&Q.hasOwnProperty("amount")){if(!n.isString(Q.amount))return"amount: string expected"}return null},f.fromObject=function(Q){if(Q instanceof l.cosmos.base.v1beta1.DecCoin)return Q;let Z=new l.cosmos.base.v1beta1.DecCoin;if(Q.denom!=null)Z.denom=String(Q.denom);if(Q.amount!=null)Z.amount=String(Q.amount);return Z},f.toObject=function(Q,Z){if(!Z)Z={};let q={};if(Z.defaults)q.denom="",q.amount="";if(Q.denom!=null&&Q.hasOwnProperty("denom"))q.denom=Q.denom;if(Q.amount!=null&&Q.hasOwnProperty("amount"))q.amount=Q.amount;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,V0.default.util.toJSONOptions)},f})(),H.IntProto=(()=>{function f(X){if(X){for(let Q=Object.keys(X),Z=0;Z<Q.length;++Z)if(X[Q[Z]]!=null)this[Q[Z]]=X[Q[Z]]}}return f.prototype.int="",f.create=function(Q){return new f(Q)},f.encode=function(Q,Z){if(!Z)Z=c0.create();if(Q.int!=null&&Object.hasOwnProperty.call(Q,"int"))Z.uint32(10).string(Q.int);return Z},f.encodeDelimited=function(Q,Z){return this.encode(Q,Z).ldelim()},f.decode=function(Q,Z){if(!(Q instanceof r))Q=r.create(Q);let q=Z===void 0?Q.len:Q.pos+Z,U=new l.cosmos.base.v1beta1.IntProto;while(Q.pos<q){let W=Q.uint32();switch(W>>>3){case 1:U.int=Q.string();break;default:Q.skipType(W&7);break}}return U},f.decodeDelimited=function(Q){if(!(Q instanceof r))Q=new r(Q);return this.decode(Q,Q.uint32())},f.verify=function(Q){if(typeof Q!=="object"||Q===null)return"object expected";if(Q.int!=null&&Q.hasOwnProperty("int")){if(!n.isString(Q.int))return"int: string expected"}return null},f.fromObject=function(Q){if(Q instanceof l.cosmos.base.v1beta1.IntProto)return Q;let Z=new l.cosmos.base.v1beta1.IntProto;if(Q.int!=null)Z.int=String(Q.int);return Z},f.toObject=function(Q,Z){if(!Z)Z={};let q={};if(Z.defaults)q.int="";if(Q.int!=null&&Q.hasOwnProperty("int"))q.int=Q.int;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,V0.default.util.toJSONOptions)},f})(),H.DecProto=(()=>{function f(X){if(X){for(let Q=Object.keys(X),Z=0;Z<Q.length;++Z)if(X[Q[Z]]!=null)this[Q[Z]]=X[Q[Z]]}}return f.prototype.dec="",f.create=function(Q){return new f(Q)},f.encode=function(Q,Z){if(!Z)Z=c0.create();if(Q.dec!=null&&Object.hasOwnProperty.call(Q,"dec"))Z.uint32(10).string(Q.dec);return Z},f.encodeDelimited=function(Q,Z){return this.encode(Q,Z).ldelim()},f.decode=function(Q,Z){if(!(Q instanceof r))Q=r.create(Q);let q=Z===void 0?Q.len:Q.pos+Z,U=new l.cosmos.base.v1beta1.DecProto;while(Q.pos<q){let W=Q.uint32();switch(W>>>3){case 1:U.dec=Q.string();break;default:Q.skipType(W&7);break}}return U},f.decodeDelimited=function(Q){if(!(Q instanceof r))Q=new r(Q);return this.decode(Q,Q.uint32())},f.verify=function(Q){if(typeof Q!=="object"||Q===null)return"object expected";if(Q.dec!=null&&Q.hasOwnProperty("dec")){if(!n.isString(Q.dec))return"dec: string expected"}return null},f.fromObject=function(Q){if(Q instanceof l.cosmos.base.v1beta1.DecProto)return Q;let Z=new l.cosmos.base.v1beta1.DecProto;if(Q.dec!=null)Z.dec=String(Q.dec);return Z},f.toObject=function(Q,Z){if(!Z)Z={};let q={};if(Z.defaults)q.dec="";if(Q.dec!=null&&Q.hasOwnProperty("dec"))q.dec=Q.dec;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,V0.default.util.toJSONOptions)},f})(),H})(),T})(),y})()});async function hy(){let{$root:y}=await Promise.resolve().then(() => (B4(),k4)),T=await import("@cosmjs/proto-signing"),H=await import("@cosmjs/stargate"),f=T.Registry??T.default?.Registry,X=H.defaultRegistryTypes??H.default?.defaultRegistryTypes;return new f([...X,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function Cy(y,T=y===v8.Chain.THORChain?"thor":"maya"){let H=await import("@cosmjs/stargate"),f=H.AminoTypes??H.default?.AminoTypes,X=y===v8.Chain.THORChain?"thorchain":"mayachain";return new f({"/types.MsgDeposit":{aminoType:`${X}/MsgDeposit`,fromAmino:({signer:Q,...Z})=>({...Z,signer:v1(Q)}),toAmino:({signer:Q,...Z})=>({...Z,signer:b1(Q,T)})},"/types.MsgSend":{aminoType:`${X}/MsgSend`,fromAmino:({from_address:Q,to_address:Z,...q})=>({...q,fromAddress:v1(Q),toAddress:v1(Z)}),toAmino:({fromAddress:Q,toAddress:Z,...q})=>({...q,from_address:b1(Q,T),to_address:b1(Z,T)})}})}var v8;var b8=h(()=>{K8();v8=require("@swapkit/helpers")});async function u8(y){let{assetValue:T,recipient:H,memo:f,sender:X,asSignable:Q,asAminoMessage:Z}=y,q=y.sweep?await s5({assetValue:T,sender:X}):T;if(H)return F4({asAminoMessage:Z,asSignable:Q,assetValue:q,memo:f,recipient:H,sender:X});return R4({asAminoMessage:Z,asSignable:Q,assetValue:q,memo:f,sender:X})}async function s5({assetValue:y,sender:T}){let H=y.chain,f=await E0.getRPCUrl(H),Q=await(await Qy(f)).getAllBalances(T),Z=y.isGasAsset?(await h1(H)).getBaseValue("bigint"):0n;return X1({assetValue:y,balances:Q,denom:Yy(y.symbol,!0),feeAmount:Z})}async function F4({sender:y,recipient:T,assetValue:H,memo:f="",asSignable:X=!0,asAminoMessage:Q=!1,sequence:Z,accountNumber:q}){let U=H.chain,W=await E0.getRPCUrl(U),G=await D4({rpcUrl:W,sender:y}),{chainId:N}=E0.getChainConfig(U),_=h8({assetValue:H,recipient:T,sender:y}),M=X?await Oy(Q?_:$y(_),U):_;return{accountNumber:q||Number(G.accountNumber),chainId:N,fee:r0(U),memo:f,msgs:[M],sequence:Z||G.sequence}}async function R4({sender:y,assetValue:T,memo:H="",asSignable:f=!0,asAminoMessage:X=!1,sequence:Q,accountNumber:Z}){let q=T.chain,U=await E0.getRPCUrl(q),W=await D4({rpcUrl:U,sender:y}),{chainId:G}=E0.getChainConfig(q),N=l8({assetValue:T,memo:H,sender:y}),_=f?await Oy(X?N:$y(N),q):N;return{accountNumber:Z||Number(W.accountNumber),chainId:G,fee:r0(q),memo:H,msgs:[_],sequence:Q||W.sequence}}function $y(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((T)=>{let H=E0.AssetValue.from({asset:T.asset}),f=(H.isSynthetic?H.symbol.split("/")?.[1]:H.symbol)?.toUpperCase(),X=(H.isSynthetic?H.symbol.split("/")?.[0]:H.chain)?.toUpperCase();return{...T,asset:{chain:X,symbol:f,synth:H.isSynthetic,ticker:H.ticker}}})}}}async function p1({chain:y,memo:T,msgs:H}){let f=await hy(),X=await Cy(y),Q={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:T,messages:H.map((Z)=>X.fromAmino(Z))}};return f.encode(Q)}var E0,t9,r9,h8=({sender:y,recipient:T,assetValue:H})=>{return{type:`${H.chain===E0.Chain.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:H.getBaseValue("string"),denom:Yy(H.symbol,!0)}],from_address:y,to_address:T}}},l8=({sender:y,assetValue:T,memo:H=""})=>{return{type:`${T.chain===E0.Chain.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:T.getBaseValue("string"),asset:l1(T)}],memo:H,signer:y}}},a5=({sender:y,recipient:T,assetValue:H,memo:f})=>{return!T?l8({assetValue:H,memo:f,sender:y}):h8({assetValue:H,recipient:T,sender:y})},Oy=async(y,T)=>{return(await Cy(T)).fromAmino(y)},D4=async({rpcUrl:y,sender:T})=>{let f=await(await Qy(y)).getAccount(T);if(!f)throw new E0.SwapKitError("toolbox_cosmos_account_not_found",{sender:T});return f};var x4=h(()=>{u1();b8();E0=require("@swapkit/helpers"),t9=r0(E0.Chain.THORChain).gas,r9=r0(E0.Chain.Maya).gas});var I4=()=>{};var P4=h(()=>{I4()});var p8=h(()=>{K8();x4();b8();P4()});async function n8(y,T){try{let f=(await o8.SwapKitApi.getGasRate()).find((X)=>X.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}async function g8({phrase:y,prefix:T,...H}){let f=await import("@cosmjs/proto-signing"),X=await import("@cosmjs/crypto"),Q=f.DirectSecp256k1HdWallet??f.default?.DirectSecp256k1HdWallet,Z=X.stringToPath??X.default?.stringToPath,q="derivationPath"in H?H.derivationPath:`${o.DerivationPath[H.chain]}/${H.index}`;return await Q.fromMnemonic(y,{hdPaths:[Z(q)],prefix:T})}async function a9({privateKey:y,prefix:T}){let H=await import("@cosmjs/proto-signing");return(H.DirectSecp256k1Wallet??H.default?.DirectSecp256k1Wallet).fromKey(y,T)}function K4(y){return async function({signature:H,message:f,address:X}){let Q=await y(X);if(!Q?.pubkey)throw new o.SwapKitError("toolbox_cosmos_verify_signature_no_pubkey");let Z=await import("@cosmjs/crypto"),q=Z.Secp256k1Signature??Z.default?.Secp256k1Signature,U=Z.Secp256k1??Z.default?.Secp256k1,W=q.fromFixedLength(Ny.base64.decode(H));return U.verifySignature(W,Ny.base64.decode(f),Q.pubkey.value)}}function g1({chain:y,...T}){let H=o.CosmosChainPrefixes[y],f="index"in T?T.index||0:0,X=o.derivationPathToString("derivationPath"in T&&T.derivationPath?T.derivationPath:o.updateDerivationPath(o.NetworkDerivationPath[y],{index:f})),Q;async function Z(){if(Q)return Q;return Q=await m1.match(T).with({phrase:m1.P.string},({phrase:M})=>g8({derivationPath:X,phrase:M,prefix:H})).with({signer:m1.P.any},({signer:M})=>M).otherwise(()=>{return}),Q}async function q(M){let C=await o.getRPCUrl(y);return(await Qy(C)).getAccount(M)}async function U(){let M=await Z(),[C]=await M?.getAccounts()||[];return C?.address}async function W(){let M=await Z(),[C]=await M?.getAccounts()||[];if(!C?.pubkey)throw new o.SwapKitError("toolbox_cosmos_signer_not_defined");return Ny.base64.encode(C?.pubkey)}async function G(M){let C=await Z(),O=await U(),B=await o.getRPCUrl(y);if(!(C&&O))throw new o.SwapKitError("toolbox_cosmos_signer_not_defined");return await(await by(B,C)).sign(O,M.msgs,M.fee,M.memo,{accountNumber:BigInt(M.accountNumber),chainId:M.chainId,sequence:M.sequence})}async function N(M){let C=await Z(),O=await U(),B=await o.getRPCUrl(y);if(!(C&&O))throw new o.SwapKitError("toolbox_cosmos_signer_not_defined");let I=await(await by(B,C)).signAndBroadcast(O,M.msgs,M.fee,M.memo);if(I.code!==0)throw new o.SwapKitError("core_swap_transaction_error",{code:I.code,message:I.rawLog});return I.transactionHash}async function _({recipient:M,assetValue:C,memo:O="",feeRate:B,feeOptionKey:R=o.FeeOption.Fast,sweep:I}){let j=await Z(),V=await U();if(!(j&&V))throw new o.SwapKitError("toolbox_cosmos_signer_not_defined");let S=await o.getRPCUrl(y),$=o.AssetValue.from({chain:y}),k=l1($),z=yQ(B||(await V4(y,j4[y]))[R],k,y),J=await by(S,j),Y=Yy(C.symbol),D=[{amount:(I?X1({assetValue:C,balances:await m8(y)(V),denom:Y,feeAmount:r5(z.amount,Y)}):C).getBaseValue("string"),denom:Y}],{transactionHash:F}=await J.sendTokens(V,M,D,z,O);return F}return{createPrivateKeyFromPhrase:TQ(X),createTransaction:w8,fetchFeeRateFromSwapKit:n8,getAccount:q,getAddress:U,getBalance:async(M,C)=>{let O=await m8(y)(M),B=await Promise.all(O.filter(({denom:R})=>R&&!R.includes("IBC/")&&!([o.Chain.THORChain,o.Chain.Maya].includes(y)&&R.split("-").length>2)).map(({denom:R,amount:I})=>{let j=[o.Chain.THORChain,o.Chain.Maya].includes(y)&&(R.includes("/")||R.includes("˜"))?`${y}.${R}`:R;return E8(j,I)}));if(B.length===0)return[o.AssetValue.from({chain:y})];return B},getBalanceAsDenoms:m8(y),getFees:()=>V4(y,j4[y]),getPubKey:W,getSignerFromPhrase:({phrase:M,derivationPath:C})=>g8({derivationPath:o.derivationPathToString(C),index:f,phrase:M,prefix:H}),getSignerFromPrivateKey:async(M)=>{let C=await import("@cosmjs/proto-signing");return(C.DirectSecp256k1Wallet??C.default?.DirectSecp256k1Wallet).fromKey(M,H)},signAndBroadcastTransaction:N,signTransaction:G,transfer:_,validateAddress:S4(y),verifySignature:K4(q)}}async function s9(y,T){try{let f=(await o8.SwapKitApi.getGasRate()).find((X)=>X.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}function e9({assetValue:{chain:y}}){return o.AssetValue.from({chain:y,value:fQ(y)})}async function V4(y,T){let{chainId:H,baseDecimal:f}=o.getChainConfig(y),X=await n8(H,T);return{average:o.SwapKitNumber.fromBigInt(BigInt(X),f),fast:o.SwapKitNumber.fromBigInt(BigInt(o.applyFeeMultiplier(X,o.FeeOption.Fast,!0)),f),fastest:o.SwapKitNumber.fromBigInt(BigInt(o.applyFeeMultiplier(X,o.FeeOption.Fastest,!0)),f)}}function yQ(y,T,H){return{amount:[{amount:typeof y==="number"?y.toString():y.getBaseValue("string"),denom:T}],gas:r0(H).gas}}function fQ(y){return{[o.Chain.Cosmos]:0.007,[o.Chain.Kujira]:0.02,[o.Chain.Noble]:0.01,[o.Chain.THORChain]:0.02,[o.Chain.Maya]:0.02,[o.Chain.Harbor]:0.02}[y]||0}function S4(y){let T=o.CosmosChainPrefixes[y];return function(f){if(!f.startsWith(T))return!1;try{let{prefix:X,words:Q}=Ny.bech32.decode(f);return Ny.bech32.encode(X,Q)===f.toLocaleLowerCase()}catch{return!1}}}function m8(y){return async function(H){let f=await o.getRPCUrl(y);return(await(await Qy(f)).getAllBalances(H)).map((q)=>({...q,denom:q.denom.includes("/")?q.denom.toUpperCase():q.denom}))}}function TQ(y){return async function(H){let f=await import("@cosmjs/crypto"),X=f.stringToPath??f.default?.stringToPath,Q=f.Slip10Curve??f.default?.Slip10Curve,Z=f.Slip10??f.default?.Slip10,q=f.EnglishMnemonic??f.default?.EnglishMnemonic,U=f.Bip39??f.default?.Bip39,W=new q(H),G=await U.mnemonicToSeed(W),{privkey:N}=Z.derivePath(Q.Secp256k1,G,X(y));return N}}var Ny,o,o8,m1,j4;var e5=h(()=>{u1();Ny=require("@scure/base"),o=require("@swapkit/helpers"),o8=require("@swapkit/helpers/api"),m1=require("ts-pattern");j4={[o.Chain.Cosmos]:1000,[o.Chain.Kujira]:1000,[o.Chain.Noble]:1000,[o.Chain.THORChain]:5000000,[o.Chain.Maya]:5000000,[o.Chain.Harbor]:5000000}});function HQ({prefix:y,derivationPath:T}){return async function(f,X=0){let Q=await import("@cosmjs/amino"),Z=Q.Secp256k1HdWallet??Q.default?.Secp256k1HdWallet,q=await import("@cosmjs/crypto"),U=q.stringToPath??q.default?.stringToPath;return Z.fromMnemonic(f,{hdPaths:[U(`${T}/${X}`)],prefix:y})}}function XQ(y){return ky.base64.encode(y)}function QQ(y,T){return async function({wallet:f,tx:X}){let{msgs:Q,accountNumber:Z,sequence:q,chainId:U,fee:W,memo:G}=typeof X==="string"?JSON.parse(X):X,N=(await f.getAccounts())?.[0]?.address||"",_=await Cy(y,T),M=await hy(),C=await A8(f,{aminoTypes:_,registry:M}),O=[];for(let I of Q){let j=await Oy(I,y);O.push(j)}let{signatures:[B]}=await C.sign(N,O,W,G,{accountNumber:BigInt(Z),chainId:U,sequence:q});return{bodyBytes:await p1({chain:y,memo:G,msgs:Q.map($y)}),signature:XQ(B)}}}function ZQ({prefix:y,chain:T}){return async function(f,X,Q,Z,q){let U=await D0.getRPCUrl(T),{encodeSecp256k1Pubkey:W,pubkeyToAddress:G}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:N}=(await import("@cosmjs/stargate")).default,{sequence:_,fee:M}=JSON.parse(f),C=await A4(Q,Z),O=X.map((I)=>[G(W(ky.base64.decode(I.pubKey)),y),ky.base64.decode(I.signature)]),B=await Qy(U),{transactionHash:R}=await B.broadcastTx(N(C,_,M,q,new Map(O)));return R}}async function A4(y,T,H=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:X}=(await import("@cosmjs/amino")).default;return f(y.map((Q)=>X(ky.base64.decode(Q))),T,H)}function qQ(y){return ky.base64.decode(y)}async function UQ({privateKey:y,message:T}){let{Secp256k1:H}=(await import("@cosmjs/crypto")).default,f=await H.createSignature(ky.base64.decode(T),y);return ky.base64.encode(Buffer.concat([f.r(32),f.s(32)]))}function c8({chain:y,...T}){let{isStagenet:H}=D0.SKConfig.get("envs"),f=`${H?"s":""}${D0.CosmosChainPrefixes[y]}`,X="index"in T?T.index||0:0,Q="derivationPath"in T&&T.derivationPath?T.derivationPath:D0.updateDerivationPath(D0.NetworkDerivationPath[y],{index:X}),Z=g1({chain:y,...T}),q=r0(y),U;function W(){return U??=o1.match(T).with({phrase:o1.P.string},({phrase:O})=>Z.getSignerFromPhrase({derivationPath:Q,phrase:O})).with({signer:o1.P.any},({signer:O})=>Promise.resolve(O)).otherwise(()=>Promise.resolve(void 0)),U}async function G(){let O=await D0.getRPCUrl(y),B=await W();if(!B)throw new D0.SwapKitError("toolbox_cosmos_no_signer");let R=await hy(),I=await Cy(y,f),j=await by(O,B,{aminoTypes:I,registry:R});return{signer:B,signingClient:j}}async function N({fee:O,memo:B,msgs:R}){let{signer:I,signingClient:j}=await G(),V=(await I.getAccounts())?.[0]?.address;if(!V)throw new D0.SwapKitError("toolbox_cosmos_signer_not_defined");let S=await j.signAndBroadcast(V,R,O,B);if(S.code!==0)throw new D0.SwapKitError("core_swap_transaction_error",{code:S.code,message:S.rawLog});return S.transactionHash}async function _(){let O=await h1(y);return{[D0.FeeOption.Average]:O,[D0.FeeOption.Fast]:O,[D0.FeeOption.Fastest]:O}}async function M({assetValue:O,memo:B="",recipient:R,sweep:I}){let{TxRaw:j}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:V,signingClient:S}=await G(),$=(await V.getAccounts())?.[0]?.address;if(!$)throw new D0.SwapKitError("toolbox_cosmos_no_signer");let k="signAmino"in V,z=I?await s5({assetValue:O,sender:$}):O,J=a5({assetValue:z,memo:B,recipient:R,sender:$});if(k){let D=await Oy(J,y),{signatures:F,authInfoBytes:P}=await S.sign($,[D],q,B),A=j.encode({authInfoBytes:P,bodyBytes:await p1({chain:y,memo:B,msgs:[J].map($y)}),signatures:F}).finish();return(await S.broadcastTx(A)).transactionHash}let Y=$y(J),L=await Oy(Y,y);return N({fee:q,memo:B,msgs:[L]})}async function C(O){let{signer:B,signingClient:R}=await G(),I=(await B.getAccounts())?.[0]?.address;if(!I)throw new D0.SwapKitError("toolbox_cosmos_signer_not_defined");return R.sign(I,O.msgs,O.fee,O.memo,{accountNumber:BigInt(O.accountNumber),chainId:O.chainId,sequence:O.sequence})}return{...Z,broadcastMultisigTx:ZQ({chain:y,prefix:f}),buildAminoMsg:a5,buildEncodedTxBody:p1,convertToSignable:Oy,createDefaultAminoTypes:()=>Cy(y,f),createDefaultRegistry:hy,createMultisig:A4,createTransaction:u8,deposit:M,getFees:_,importSignature:qQ,parseAminoMessageForDirectSigning:$y,pubkeyToAddress:async(O)=>{let{pubkeyToAddress:B}=(await import("@cosmjs/amino")).default;return B(O,f)},secp256k1HdWalletFromMnemonic:HQ({derivationPath:D0.derivationPathToString(Q),prefix:f}),signAndBroadcastTransaction:N,signMultisigTx:QQ(y,f),signTransaction:C,signWithPrivateKey:UQ,transfer:M}}var ky,D0,o1;var d8=h(()=>{p8();u1();e5();ky=require("@scure/base"),D0=require("@swapkit/helpers"),o1=require("ts-pattern")});var By,YQ=(y,T)=>{switch(y){case By.Chain.Cosmos:case By.Chain.Kujira:case By.Chain.Noble:return g1({chain:y,...T});case By.Chain.Maya:case By.Chain.THORChain:return c8({chain:y,...T});default:throw new By.SwapKitError("toolbox_cosmos_not_supported",{chain:y})}};var w4=h(()=>{e5();d8();By=require("@swapkit/helpers");e5();d8()});var yf={};P0(yf,{verifySignature:()=>K4,transferMsgAmino:()=>h8,toBase64:()=>n9,resolveThorchainSweepAssetValue:()=>s5,parseAminoMessageForDirectSigning:()=>$y,getThorchainNativeFee:()=>h1,getSweepAssetValue:()=>X1,getSignerFromPrivateKey:()=>a9,getSignerFromPhrase:()=>g8,getMsgSendDenom:()=>Yy,getFeeRateFromSwapKit:()=>s9,getFeeAmountForDenom:()=>r5,getDenomWithChain:()=>l1,getDefaultChainFee:()=>r0,getCosmosToolbox:()=>YQ,getCosmosAddressValidator:()=>S4,getAssetFromDenom:()=>E8,fromBase64:()=>c9,fetchFeeRateFromSwapKit:()=>n8,estimateTransactionFee:()=>e9,depositMsgAmino:()=>l8,createTransaction:()=>u8,createThorchainToolbox:()=>c8,createStargateClient:()=>Qy,createSigningStargateClient:()=>by,createOfflineStargateClient:()=>A8,createDefaultRegistry:()=>hy,createDefaultAminoTypes:()=>Cy,createCosmosToolbox:()=>g1,cosmosCreateTransaction:()=>w8,convertToSignable:()=>Oy,buildTransferTx:()=>F4,buildEncodedTxBody:()=>p1,buildDepositTx:()=>R4,buildAminoMsg:()=>a5,bech32ToBase64:()=>v1,base64ToBech32:()=>b1,YUM_KUJIRA_FACTORY_DENOM:()=>C4,USK_KUJIRA_FACTORY_DENOM:()=>S8,THORCHAIN_GAS_VALUE:()=>t9,MAYA_GAS_VALUE:()=>r9,DEFAULT_NOBLE_FEE_MAINNET:()=>N4,DEFAULT_KUJI_FEE_MAINNET:()=>$4,DEFAULT_COSMOS_FEE_MAINNET:()=>O4});module.exports=S0(yf);var ff=h(()=>{p8();w4();u1()});function JQ({builder:y,grouping:T="na",orders:H}){return{builder:y,grouping:T,orders:H,type:"order"}}function WQ({cancels:y}){return{cancels:y,type:"cancel"}}function zQ({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function GQ({oid:y,order:T}){return{oid:y,order:T,type:"modify"}}function LQ({modifies:y}){return{modifies:y,type:"batchModify"}}function MQ({asset:y,isCross:T,leverage:H}){return{asset:y,isCross:T,leverage:H,type:"updateLeverage"}}function _Q({asset:y,isBuy:T,ntli:H}){return{asset:y,isBuy:T,ntli:H,type:"updateIsolatedMargin"}}function CQ({asset:y,leverage:T}){return{asset:y,leverage:T,type:"topUpIsolatedOnlyMargin"}}function OQ({time:y}){return{time:y,type:"scheduleCancel"}}function $Q({amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:X}){return{amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:X,type:"usdClassTransfer"}}function NQ({amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:X,nonce:Q,signatureChainId:Z,sourceDex:q,token:U}){return{amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:X,nonce:Q,signatureChainId:Z,sourceDex:q,token:U,type:"sendAsset"}}function kQ({agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:X}){return{agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:X,type:"approveAgent"}}function BQ({builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:X}){return{builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:X,type:"approveBuilderFee"}}function DQ({hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,validator:X,wei:Q}){return{hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,type:"tokenDelegate",validator:X,wei:Q}}function p0(...y){let T=y.reduce((X,Q)=>X+Q.length,0),H=new Uint8Array(T),f=0;for(let X of y)H.set(X,f),f+=X.length;return H}function jQ(y,T,H){if(H<T)return new Uint8Array([y+H]);if(H<=255)return new Uint8Array([y+T,H]);if(H<=65535)return new Uint8Array([y+T+1,H>>8,H&255]);return new Uint8Array([y+T+2,H>>>24&255,H>>>16&255,H>>>8&255,H&255])}function Dy(y,T){let H=new Uint8Array(T),f=y;for(let X=T-1;X>=0;X-=1)H[X]=Number(f&0xffn),f>>=8n;return H}function E4(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return p0(new Uint8Array([205]),Dy(y,2));if(y<=0xffffffffn)return p0(new Uint8Array([206]),Dy(y,4));return p0(new Uint8Array([207]),Dy(y,8))}if(y>=-32n)return new Uint8Array([256+Number(y)]);if(y>=-128n)return new Uint8Array([208,256+Number(y)]);if(y>=-32768n)return p0(new Uint8Array([209]),Dy(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return p0(new Uint8Array([210]),Dy(BigInt.asUintN(32,y),4));return p0(new Uint8Array([211]),Dy(BigInt.asUintN(64,y),8))}function h4(y){let T=PQ.encode(y);if(T.length<32)return p0(new Uint8Array([160+T.length]),T);return p0(jQ(217,0,T.length),T)}function VQ(y){let T=y.map((f)=>i8(f)),H=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return p0(H,...T)}function KQ(y){let T=Object.entries(y).filter(([,f])=>typeof f<"u"),H=T.length<16?new Uint8Array([128+T.length]):T.length<=65535?new Uint8Array([222,T.length>>8,T.length&255]):new Uint8Array([223,T.length>>>24&255,T.length>>>16&255,T.length>>>8&255,T.length&255]);return p0(H,...T.flatMap(([f,X])=>[h4(f),i8(X)]))}function i8(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return h4(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new Tf.SwapKitError("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return E4(BigInt(y))}if(typeof y==="bigint")return E4(y);if(y instanceof Uint8Array){let T=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return p0(T,y)}if(Array.isArray(y))return VQ(y);if(typeof y==="object")return KQ(y);throw new Tf.SwapKitError("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function SQ(y){let T=y.startsWith("0x")?y.slice(2):y;if(T.length%2!==0||/[^a-fA-F0-9]/u.test(T))throw new Tf.SwapKitError("helpers_invalid_params",{hexValue:y});let H=new Uint8Array(T.length/2);for(let f=0;f<T.length;f+=2)H[f/2]=Number.parseInt(T.slice(f,f+2),16);return H}function l4(y){return{domain:FQ,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...RQ.Agent]}}}function u4(y){let T=IQ[y.type],H=xQ[y.type],{type:f,...X}=y;return{domain:{chainId:Number.parseInt(X.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:v4,version:"1"},message:{...X,hyperliquidChain:X.hyperliquidChain||b4},primaryType:T,types:{[T]:H}}}function p4(y){let T=Hf.Signature.from(y);return{r:T.r,s:T.s,v:T.v}}function m4(y,T,{expiresAfter:H,vaultAddress:f}={}){let X=i8(y),Q=Dy(BigInt(T),8),Z=f?p0(new Uint8Array([1]),SQ(f.toLowerCase())):new Uint8Array([0]),q=typeof H==="number"?p0(new Uint8Array([0]),Dy(BigInt(H),8)):new Uint8Array;return Hf.keccak256(p0(X,Q,Z,q))}function g4(y){let T=y.hyperliquidChain||b4;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:T};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:T};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:T};case"tokenDelegate":return{...y,hyperliquidChain:T,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:T};default:return y}}var Tf,Hf,v4="0x0000000000000000000000000000000000000000",FQ,RQ,b4="Mainnet",xQ,IQ,PQ;var o4=h(()=>{Tf=require("@swapkit/helpers"),Hf=require("ethers"),FQ={chainId:1337,name:"Exchange",verifyingContract:v4,version:"1"},RQ={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},xQ={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"}]},IQ={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},PQ=new TextEncoder});function a0(y,T){if(!a8(y))throw new W0.SwapKitError(T,{address:y});return y.toLowerCase()}async function ly(y){let T=await Xf();return W0.RequestClient.post(`${T}/info`,{json:y})}function lQ({dex:y,user:T}){return ly({...y?{dex:y}:{},type:"clearinghouseState",user:a0(T,"helpers_invalid_params")})}function t4({user:y}){return ly({type:"spotClearinghouseState",user:a0(y,"helpers_invalid_params")})}function uQ({dex:y,user:T}){return ly({...y?{dex:y}:{},type:"openOrders",user:a0(T,"helpers_invalid_params")})}function pQ({dex:y,user:T}){return ly({...y?{dex:y}:{},type:"frontendOpenOrders",user:a0(T,"helpers_invalid_params")})}function mQ({oidOrCloid:y,user:T}){return ly({oid:y,type:"orderStatus",user:a0(T,"helpers_invalid_params")})}function gQ({aggregateByTime:y,user:T}){return ly({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:a0(T,"helpers_invalid_params")})}function oQ({aggregateByTime:y,endTime:T,startTime:H,user:f}){return ly({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof T==="number"?{endTime:T}:{},startTime:H,type:"userFillsByTime",user:a0(f,"helpers_invalid_params")})}function n4({coin:y,token:T,value:H,spotMeta:f}){if(!H||Number(H)<=0)return null;let X=y?.toUpperCase()||`TOKEN-${T||"UNKNOWN"}`,Q=AQ[X]||i4,Z=f?.tokens?.find((U)=>U.name===y||T!==void 0&&U.index===Number(T)),q=Z?`${Zy}.${X}-${Z.name}:${Z.tokenId}`:`${Zy}.${X}`;return new W0.AssetValue({decimal:Q,identifier:q,value:H})}function nQ(y){let T=new Map;for(let H of y){let f=H.toString({includeSynthProtocol:!0}),X=T.get(f);T.set(f,X?X.add(H):H)}if(![...T.values()].some((H)=>H.isGasAsset||H.ticker==="HYPE")){let H=W0.AssetValue.from({chain:Zy,value:0});T.set(H.toString({includeSynthProtocol:!0}),H)}return[...T.values()]}async function Xf(){try{return await W0.getRPCUrl(Zy)}catch{let[y]=W0.getChainConfig(Zy).rpcUrls;if(!y)throw new W0.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:Zy});return y}}async function r8(){return`${await Xf()}/exchange`}function cQ(y){let T=hQ[y.type],{type:H,...f}=y,X=bQ[H];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:vQ,version:"1"},message:f,primaryType:T,types:{[T]:X}}}async function r4({action:y,expiresAfter:T,nonce:H,vaultAddress:f}){let X=H||Date.now(),Q=f?a0(f,"helpers_invalid_params"):void 0,Z=await r8(),q=m4(y,X,{expiresAfter:T,vaultAddress:Q});return{action:y,endpoint:Z,expiresAfter:T,nonce:X,typedData:l4(q),vaultAddress:Q}}async function a4({action:y,nonce:T,signatureChainId:H}){let f=T||y.nonce||Date.now(),X=H||y.signatureChainId||"0xa4b1",Q=g4({...y,nonce:f,signatureChainId:X});return{action:Q,endpoint:await r8(),nonce:f,typedData:u4(Q)}}async function dQ({assetValue:y,sender:T,token:H}){let f=await t4({user:T}),X=(f.spotState?.balances||f.balances||[]).find(({coin:Q})=>Q&&H.startsWith(`${Q}:`))?.total;if(!X||Number(X)<=0)throw new W0.SwapKitError("toolbox_sweep_amount_too_low",{asset:y.toString(),balance:X||"0"});return X}async function t8({assetValue:y,recipient:T,sender:H,signatureChainId:f,sweep:X,time:Q}){let Z=a0(T,"core_transaction_invalid_recipient_address"),q=a0(H,"core_transaction_invalid_sender_address"),U=y.address;if(!U)throw new W0.SwapKitError("helpers_invalid_params",{asset:y.toString(),from:q});let W=X?await dQ({assetValue:y,sender:q,token:U}):y.getValue("string"),G=await r8(),N=Q||Date.now(),_={amount:W,destination:Z,hyperliquidChain:wQ,signatureChainId:f||EQ,time:N,token:U,type:"spotSend"};return{action:_,endpoint:G,nonce:N,typedData:cQ(_)}}async function c4(y){let T=await W0.RequestClient.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(T.status!=="ok")throw new W0.SwapKitError("core_transaction_failed",{response:T});return T}async function iQ(y,T){let H=await Xf(),f=T-5000;for(let X=0;X<5;X++){if(X>0)await new Promise((Q)=>setTimeout(Q,1000));try{let Q=await W0.RequestClient.post(`${H}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),Z=Array.isArray(Q)?Q.find((q)=>q.time&&q.time>=T&&(q.delta?.type==="spotTransfer"||q.delta?.type==="internalTransfer")):void 0;if(Z?.hash)return Z.hash}catch{}}return""}function a8(y){return y.startsWith("0x")&&V1(y)}function tQ(y){let T=w0(Zy),H=y&&"index"in y?y.index||0:0,f=W0.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:W0.updateDerivationPath(W0.NetworkDerivationPath[Zy],{index:H})),X,Q=!1;function Z(){if(Q)return X;return X=Q1.match(y).with({phrase:Q1.P.string},({phrase:_})=>{return d4.HDNodeWallet.fromPhrase(_,void 0,f)}).with({signer:Q1.P.not(Q1.P.nullish)},({signer:_})=>_).otherwise(()=>{return}),Q=!0,X}async function q(){let _=Z();return _?await _.getAddress():""}async function U(_){let M=Z();if(!M)throw new W0.SwapKitError("toolbox_hypercore_no_signer");let C=await M.signTypedData(_.typedData.domain,_.typedData.types,_.typedData.message);return{action:_.action,endpoint:_.endpoint,nonce:_.nonce,signature:p4(C),..."expiresAfter"in _?{expiresAfter:_.expiresAfter}:{},..."vaultAddress"in _?{vaultAddress:_.vaultAddress}:{}}}async function W(_){let M=a0(_,"helpers_invalid_params");try{let C=await Xf(),[O,B,R]=await Promise.all([W0.RequestClient.post(`${C}/info`,{json:{type:"spotClearinghouseState",user:M}}),W0.RequestClient.post(`${C}/info`,{json:{type:"clearinghouseState",user:M}}),W0.RequestClient.post(`${C}/info`,{json:{type:"spotMeta"}})]),I=(O.spotState?.balances||O.balances||[]).map(({coin:V,token:S,total:$})=>n4({coin:V,spotMeta:R,token:S,value:$})).filter((V)=>!!V),j=n4({coin:"USDC",spotMeta:R,value:B.withdrawable||B.marginSummary?.accountValue||B.marginSummary?.totalRawUsd});return nQ(j?[...I,j]:I)}catch{return T(M)}}async function G({sweep:_,...M}){let C=Z();if(!C)throw new W0.SwapKitError("toolbox_hypercore_no_signer");let O=M.sender||await C.getAddress(),B=await t8({...M,feeRate:0,sender:O,sweep:_}),R=await U(B);return await c4(R),iQ(O,B.nonce)}function N(){return W0.AssetValue.from({chain:Zy,value:0})}return{broadcastTransaction:c4,createL1ActionRequest:r4,createTransaction:t8,createUserSignedActionRequest:a4,estimateTransactionFee:N,getAddress:q,getBalance:W,getState:{clearinghouse:lQ,frontendOpenOrders:pQ,openOrders:uQ,orderStatus:mQ,spotClearinghouse:t4,userFills:gQ,userFillsByTime:oQ},signTransaction:U,transfer:G,validateAddress:a8}}var W0,d4,Q1,Zy,i4,AQ,wQ="Mainnet",EQ="0xa4b1",vQ="0x0000000000000000000000000000000000000000",bQ,hQ;var s4=h(()=>{x8();Hy();o4();W0=require("@swapkit/helpers"),d4=require("ethers"),Q1=require("ts-pattern"),Zy=W0.Chain.Hype,{baseDecimal:i4}=W0.getChainConfig(Zy),AQ={HYPE:i4,USDC:6,USDT:6},bQ={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},hQ={spotSend:"HyperliquidTransaction:SpotSend"}});var s8={};P0(s8,{validateHyperCoreAddress:()=>a8,getHyperCoreToolbox:()=>tQ,createUserSignedActionRequest:()=>a4,createTransaction:()=>t8,createL1ActionRequest:()=>r4,buildUsdClassTransferAction:()=>$Q,buildUpdateLeverageAction:()=>MQ,buildUpdateIsolatedMarginAction:()=>_Q,buildTopUpIsolatedOnlyMarginAction:()=>CQ,buildTokenDelegateAction:()=>DQ,buildSendAssetAction:()=>NQ,buildScheduleCancelAction:()=>OQ,buildOrderAction:()=>JQ,buildModifyAction:()=>GQ,buildCancelByCloidAction:()=>zQ,buildCancelAction:()=>WQ,buildBatchModifyAction:()=>LQ,buildApproveBuilderFeeAction:()=>BQ,buildApproveAgentAction:()=>kQ});module.exports=S0(s8);var e8=h(()=>{s4()});async function fH(y){let T=X0.AssetValue.from({address:y,chain:X0.Chain.Solana});if(T.symbol!=="UNKNOWN")return{decimals:T.decimal||0,id:y,logoURI:T.getIconUrl(),name:T.symbol,symbol:T.ticker};let H=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(H);if(!f.ok)return null;let X=await f.json();if(!Array.isArray(X)||X.length===0)return null;return X.find((Z)=>Z.id===y)||null}catch{return null}}async function rQ(y){let T=await Jy(),{PublicKey:H}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),X=new H(y),{baseDecimal:Q}=X0.getChainConfig(X0.Chain.Solana),Z=await T.getBalance(X),q=[X0.AssetValue.from({chain:X0.Chain.Solana,fromBaseDecimal:Q,value:Z||0})],U=await T.getParsedTokenAccountsByOwner(X,{programId:f});for(let{account:W}of U.value){let G=W.data.parsed.info,N=G.mint,_=G.tokenAmount.amount;if(Number(_)===0)continue;let M=await fH(N),C=M?.symbol||"UNKNOWN",O=M?.decimals||G.tokenAmount.decimals;q.push(X0.AssetValue.from({asset:`${X0.Chain.Solana}.${C}-${N}`,fromBaseDecimal:O,value:_}))}return q}function f2(y){try{let T=new qy.PublicKey(y);return qy.PublicKey.isOnCurve(T.toBytes())}catch{return!1}}function aQ(y){let T=y&&"index"in y?y.index||0:0,H=X0.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:X0.updateDerivationPath(X0.NetworkDerivationPath[X0.Chain.Solana],{index:T})),f;async function X(){if(f)return f;return f=await n1.match(y).with({phrase:n1.P.string},({phrase:Z})=>y2({derivationPath:H,phrase:Z})).with({signer:n1.P.any},({signer:Z})=>Z).otherwise(()=>{return}),f}async function Q(){let Z=await X();return Z?.publicKey?yH(Z.publicKey):""}return{broadcastTransaction:Qf(Jy),createKeysForPath:y2,createTransaction:T2(Jy),createTransactionFromInstructions:fZ,estimateTransactionFee:sQ(Jy),getAddress:Q,getAddressFromPubKey:yH,getBalance:w0(X0.Chain.Solana),getBalanceFromRPC:rQ,getConnection:Jy,getPubkeyFromAddress:(Z)=>new qy.PublicKey(Z),signAndBroadcastTransaction:async(Z)=>{let q=await e4(Jy,X)(Z);return Qf(Jy)(q)},signTransaction:e4(Jy,X),transfer:TZ(Jy,X),validateAddress:f2}}function sQ(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:X,sender:Q})=>{let Z=await y(),q=await T2(y)({assetValue:H,isProgramDerivedAddress:X,memo:f,recipient:T,sender:Q}),U=await TH(Z,q),{baseDecimal:W}=X0.getChainConfig(X0.Chain.Solana);return X0.AssetValue.from({chain:X0.Chain.Solana,fromBaseDecimal:W,value:U})}}async function TH(y,T){let H=await y.getFeeForMessage(T.compileMessage());if(H.value===null)throw new X0.SwapKitError("toolbox_fee_estimation_failed","Could not estimate Solana fee.");return H.value}async function Jy(){let{Connection:y}=await import("@solana/web3.js"),T=await X0.getRPCUrl(X0.Chain.Solana);return new y(T,{commitment:"confirmed",fetchMiddleware:(H,f,X)=>{let Q={};for(let[Z,q]of Object.entries(f?.headers??{})){let U=Z.toLowerCase();if(U!=="pragma"&&U!=="solana-client")Q[Z]=q}X(H,{...f,headers:Q})}})}function eQ(y){return async({assetValue:T,recipient:H,sender:f,isProgramDerivedAddress:X,sweep:Q})=>{let Z=await y(),q=new qy.PublicKey(f);if(T.isGasAsset){let{Transaction:U,SystemProgram:W}=await import("@solana/web3.js");return new U().add(W.transfer({fromPubkey:q,lamports:Q?0:T.getBaseValue("number"),toPubkey:new qy.PublicKey(H)}))}if(T.address)return yZ({amount:Q?0:T.getBaseValue("number"),connection:Z,decimals:T.decimal,from:q,isProgramDerivedAddress:X,recipient:H,sweep:Q,tokenAddress:T.address});return}}async function yZ({tokenAddress:y,recipient:T,from:H,connection:f,amount:X,decimals:Q,isProgramDerivedAddress:Z,sweep:q}){let{getAssociatedTokenAddress:U,getAccount:W,createAssociatedTokenAccountInstruction:G,createTransferCheckedInstruction:N}=await import("@solana/spl-token"),{Transaction:_}=await import("@solana/web3.js"),M=new _,C=new qy.PublicKey(y),O=await U(C,H),B=new qy.PublicKey(T),R=await U(C,B,Z),I=!1;try{await W(f,R),I=!0}catch{}if(!I)M.add(G(H,R,B,C));let j=q?BigInt((await f.getTokenAccountBalance(O)).value.amount):X;if(q&&j<=0n)throw new X0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:y,balance:j.toString()}});return M.add(N(O,C,R,H,j,Q)),M}function T2(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:X,sender:Q,sweep:Z})=>{let{createMemoInstruction:q}=await import("@solana/spl-memo"),U=new qy.PublicKey(Q);if(!(X||f2(T)))throw new X0.SwapKitError("core_transaction_invalid_recipient_address");let W=await y(),G=await eQ(y)({assetValue:H,isProgramDerivedAddress:X,recipient:T,sender:Q,sweep:Z});if(!G)throw new X0.SwapKitError("core_transaction_invalid_sender_address");if(f)G.add(q(f));let N=await W.getLatestBlockhash();if(G.recentBlockhash=N.blockhash,G.feePayer=U,Z&&H.isGasAsset){let[_,M,C]=await Promise.all([W.getBalance(U),TH(W,G),W.getMinimumBalanceForRentExemption(0)]),O=_-M-C;if(O<=0)throw new X0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{balance:_,fee:M,rentReserve:C}});let{SystemProgram:B}=await import("@solana/web3.js");G.instructions[0]=B.transfer({fromPubkey:U,lamports:O,toPubkey:new qy.PublicKey(T)})}return G}}async function fZ({instructions:y}){let{Transaction:T}=await import("@solana/web3.js"),H=new T().add(...y);if(!H)throw new X0.SwapKitError("core_transaction_invalid_sender_address");return H}function TZ(y,T){return async({recipient:H,assetValue:f,memo:X,isProgramDerivedAddress:Q,sweep:Z})=>{let q=await T();if(!q)throw new X0.SwapKitError("core_transaction_invalid_sender_address");let U=q.publicKey?.toString()??(await q.connect()).publicKey.toString(),W=await T2(y)({assetValue:f,isProgramDerivedAddress:Q,memo:X,recipient:H,sender:U,sweep:Z});if("signTransaction"in q){let G=await q.signTransaction(W);return Qf(y)(G)}return W.sign(q),Qf(y)(W)}}function Qf(y){return async(T)=>{return(await y()).sendRawTransaction(T.serialize())}}function e4(y,T){return async(H)=>{let f=await T();if(!f)throw new X0.SwapKitError("toolbox_solana_no_signer");let{VersionedTransaction:X}=await import("@solana/web3.js");if(!(H instanceof X)){let Z=await(await y()).getLatestBlockhash();H.recentBlockhash=Z.blockhash,H.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(H);return H.sign([f]),H}}async function y2({phrase:y,derivationPath:T=X0.DerivationPath.SOL}){let{HDKey:H}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:X}=await import("@solana/web3.js"),Q=f(y),Z=H.fromMasterSeed(Q);return X.fromSeed(Z.derive(T,!0).privateKey)}function yH(y){return y.toString()}var qy,X0,n1;var HH=h(()=>{Hy();qy=require("@solana/web3.js"),X0=require("@swapkit/helpers"),n1=require("ts-pattern")});var H2={};P0(H2,{validateSolanaAddress:()=>f2,getSolanaToolbox:()=>aQ,fetchTokenMetaData:()=>fH,createKeysForPath:()=>y2});module.exports=S0(H2);var X2=h(()=>{HH()});function c1(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function qf({phrase:y,derivationPath:T=e.DerivationPath.STRK}){let{HDKey:H}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:X,hash:Q,encode:Z,CallData:q}=await import("starknet"),U=f(y),G=H.fromMasterSeed(U).derive(T);if(!G.privateKey)throw new e.SwapKitError("toolbox_starknet_no_signer");let N=Z.addHexPrefix(Buffer.from(G.privateKey).toString("hex")),_=X.starkCurve.grindKey(N),M=Z.addHexPrefix(_),C=X.starkCurve.getStarkKey(M),O=q.compile([C,0]);return{address:Q.calculateContractAddressFromHash(C,Q2,O,0),privateKey:M,publicKey:C}}async function Z2({phrase:y,derivationPath:T=e.DerivationPath.STRK}){let{Account:H,RpcProvider:f}=await import("starknet"),{privateKey:X,address:Q}=await qf({derivationPath:T,phrase:y}),Z=await e.getRPCUrl(e.Chain.Starknet),q=new f({nodeUrl:Z});return new H({address:Q,provider:q,signer:X})}function QH(y){let T=e.Chain.Starknet,H=y&&"index"in y?y.index||0:0,f=e.derivationPathToString(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:e.updateDerivationPath(e.NetworkDerivationPath[T],{index:H})),X,Q,Z;async function q(){if(Q)return Q;if(X)return Q=X.provider,Q;let{RpcProvider:J}=await import("starknet"),Y=await e.getRPCUrl(T);return Q=new J({nodeUrl:Y}),Q}async function U(J){let Y=await q(),L=J||await _();if(!L)return!1;try{return await Y.getClassHashAt(L),!0}catch(D){if(D instanceof Error&&D.message.includes("Contract not found"))return!1;let F=D;if(F?.code===20||F?.code===19)return!1;throw D}}async function W(){let{CallData:J,hash:Y}=await import("starknet"),L=await q(),D=await N();if(!D)throw new e.SwapKitError("toolbox_starknet_no_signer");if(!Z)throw new e.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await U())return D.address;let P=J.compile([Z,0]);if(Y.calculateContractAddressFromHash(Z,Q2,P,0).toLowerCase()!==D.address.toLowerCase())throw new e.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let E={addressSalt:Z,classHash:Q2,constructorCalldata:P},{transaction_hash:u}=await D.deployAccount(E);return await L.waitForTransaction(u),u}async function G(){if(!await U()){if(!Z)throw new e.SwapKitError({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 W()}}async function N(){if(X)return X;return X=await Fy.match(y).with({phrase:Fy.P.string},async({phrase:J})=>{let{Account:Y,RpcProvider:L}=await import("starknet"),{privateKey:D,address:F,publicKey:P}=await qf({derivationPath:f,phrase:J});Z=P;let A=await e.getRPCUrl(e.Chain.Starknet),E=new L({nodeUrl:A});return new Y({address:F,provider:E,signer:D})}).with({address:Fy.P.string,privateKey:Fy.P.string},async({privateKey:J,address:Y})=>{let{Account:L}=await import("starknet"),D=await q();return new L({address:Y,provider:D,signer:J})}).with({signer:Fy.P.instanceOf(Object)},({signer:J})=>J).otherwise(()=>{return}),X}async function _(){return(await N())?.address??""}async function M(J,Y){let L=await q(),{uint256:D,CallData:F}=await import("starknet"),[P="0",A="0"]=await L.callContract({calldata:F.compile({account:J}),contractAddress:Y,entrypoint:"balanceOf"});return D.uint256ToBN({high:A,low:P})}async function C(J){let{baseDecimal:Y}=e.getChainConfig(T),L=[],D=[Zf,XH];for(let F of D)try{let P=await M(J,F);Fy.match(F).with(Zf,()=>{L.push(e.AssetValue.from({chain:T,fromBaseDecimal:Y,value:P}))}).with(XH,()=>{if(P>0n)L.push(e.AssetValue.from({asset:`${T}.ETH-${F}`,fromBaseDecimal:Y,value:P}))}).otherwise(()=>{})}catch{}return L}async function O(J){let Y=await N();if(Y&&(!J||Y.address.toLowerCase()===J.toLowerCase()))return Y;if(J){let{Account:L}=await import("starknet"),D=await q();return new L({address:J,provider:D,signer:"0x0"})}throw new e.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer"}})}async function B(J,Y){try{let L=await O(Y),{overall_fee:D}=await L.estimateInvokeFee(J);if(D<=0n)throw new e.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Sweep fee estimation returned a non-positive fee",sender:Y}});return D}catch(L){throw new e.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Unable to estimate the sweep fee. Verify RPC availability and that the sender account is deployed.",sender:Y}},L)}}async function R(J,Y){let L=await z(J),D=Y.isGasAsset?L.find(({isGasAsset:F})=>F):L.find(({address:F})=>F?.toLowerCase()===Y.address?.toLowerCase());if(D)return D.getBaseValue("bigint");if(Y.isGasAsset)return M(J,Zf);if(Y.address)return M(J,Y.address);return 0n}async function I({recipient:J,assetValue:Y,sender:L,sweep:D}){let{CallData:F,uint256:P}=await import("starknet");if(!c1(J))throw new e.SwapKitError("core_transaction_invalid_recipient_address",{address:J});let A=Y.isGasAsset?Zf:Y.address;if(!A)throw new e.SwapKitError("toolbox_starknet_invalid_address",{address:A,assetValue:Y});let E=Y.getBaseValue("bigint");if(D){let H0=L??await _();if(!c1(H0))throw new e.SwapKitError("core_transaction_invalid_sender_address",{address:H0});if(Y.isGasAsset){let R0=[{calldata:F.compile([J,P.bnToUint256(1n)]),contractAddress:A,entrypoint:"transfer"}],x=await B(R0,H0);E=await R(H0,Y)-x}else E=await R(H0,Y);if(E<=0n)throw new e.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amount:E.toString(),asset:Y.toString()}})}let u=P.bnToUint256(E);return[{calldata:F.compile([J,u]),contractAddress:A,entrypoint:"transfer"}]}async function j({recipient:J,assetValue:Y,sender:L}){let{baseDecimal:D}=e.getChainConfig(e.Chain.Starknet);try{let F=await I({assetValue:Y,recipient:J}),A=await(await O(L)).estimateInvokeFee(F);if(A?.overall_fee)return e.AssetValue.from({chain:T,fromBaseDecimal:D,value:A.overall_fee})}catch(F){throw new e.SwapKitError("toolbox_starknet_fee_estimation_failed",F)}return e.AssetValue.from({chain:T,value:"0.00001"})}async function V({recipient:J,assetValue:Y,memo:L,sweep:D}){let F=await N();if(!F)throw new e.SwapKitError("toolbox_starknet_no_signer");await G();let P=await I({assetValue:Y,memo:L,recipient:J,sender:F.address,sweep:D});return(await F.execute(P)).transaction_hash}async function S(J){let Y=await N();if(!Y)throw new e.SwapKitError("toolbox_starknet_no_signer");let L=await Y.signMessage(J);return Array.isArray(L)?L:[L.r.toString(),L.s.toString()]}async function $(J){let Y=await N();if(!Y)throw new e.SwapKitError("toolbox_starknet_no_signer");return await G(),(await Y.execute(J)).transaction_hash}function k(J){return $(J)}async function z(J,Y=!0){try{return await w0(T)(J,Y)}catch{return C(J)}}return{broadcastTransaction:$,createKeysForPath:Z2,createTransaction:I,deployAccount:W,estimateTransactionFee:j,getAddress:_,getBalance:z,getProvider:q,isAccountDeployed:U,signAndBroadcastTransaction:k,signMessage:S,transfer:V,validateAddress:c1}}var e,Fy,Zf="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",XH="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",Q2="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var ZH=h(()=>{Hy();e=require("@swapkit/helpers"),Fy=require("ts-pattern")});var Uf={};P0(Uf,{validateStarknetAddress:()=>c1,starknetCreateKeysForPath:()=>Z2,getStarknetToolbox:()=>QH,deriveStarknetKeys:()=>qf});module.exports=S0(Uf);var Yf=h(()=>{ZH()});async function U2(y,T,H,f){let X=[],Q,Z=0n;while(!0){let q=await y.getCoins({coinType:H,cursor:Q,owner:T});if(X.push(...q.data),Z+=q.data.reduce((U,W)=>U+BigInt(W.balance),0n),!q.hasNextPage||f!==void 0&&Z>=f)return X;Q=q.nextCursor}}async function YH(y){return BigInt(await y.getReferenceGasPrice())}function Wf({coinObjectId:y,digest:T,version:H}){return{digest:T,objectId:y,version:H}}function XZ(y,T,H,f=!1){let X=T.reduce((G,N)=>G+BigInt(N.balance),0n);if(X<H)throw new U0.SwapKitError("toolbox_sui_insufficient_balance",{available:X.toString(),required:H.toString()});let{selectedCoins:Q}=T.reduce((G,N)=>{if(G.total>=H)return G;return{selectedCoins:[...G.selectedCoins,N],total:G.total+BigInt(N.balance)}},{selectedCoins:[],total:0n}),Z=Q[0],q=y.objectRef(Wf(Z)),U=Q.slice(1).map((G)=>y.objectRef(Wf(G)));if(U.length>0)y.mergeCoins(q,U);if(f)return q;let[W]=y.splitCoins(q,[H]);return W}function JH(y,T){let H=y.reduce((f,X)=>f+BigInt(X.balance),0n);if(H<=0n)throw new U0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:T,available:H.toString()}});return H}function WH(y){if(y.length>q2)throw new U0.SwapKitError({errorKey:"toolbox_sui_transaction_creation_error",info:{coinCount:y.length,maxGasPaymentCoins:q2,reason:`SUI transactions support at most ${q2} gas payment coins`}})}function QZ(y,T,H,f,X,Q){let Z=H.getBaseValue("bigint");if(Q)JH(T,H.toString()),WH(T);else zH(T,Z+BigInt(f));if(y.setGasPayment(T.map(Wf)),Q)y.transferObjects([y.gas],X);else{let[q]=y.splitCoins(y.gas,[H.getBaseValue("string")]);y.transferObjects([q],X)}}function zH(y,T){let H=y.reduce((f,X)=>f+BigInt(X.balance),0n);if(H<T)throw new U0.SwapKitError("toolbox_sui_insufficient_balance",{available:H.toString(),required:T.toString()})}async function ZZ({assetValue:y,gasBudget:T,recipient:H,sender:f,suiClient:X,sweep:Q,tx:Z}){let q=y.getBaseValue("bigint"),[U,W]=await Promise.all([YH(X),U2(X,f,Jf,Q?void 0:q+BigInt(T))]);if(Z.setGasPrice(U),QZ(Z,W,y,T,H,Q),Q){let G=W.reduce((N,_)=>N+BigInt(_.balance),0n);return G<BigInt(T)?G:T}return T}async function qZ({assetValue:y,gasBudget:T,recipient:H,sender:f,suiClient:X,sweep:Q,tx:Z}){let q=y.address;if(!q)throw new U0.SwapKitError("toolbox_sui_missing_coin_type");let U=y.getBaseValue("bigint"),[W,G,N]=await Promise.all([YH(X),U2(X,f,Jf,BigInt(T)),U2(X,f,q,Q?void 0:U)]);if(!N.length&&!Q)throw new U0.SwapKitError("toolbox_sui_no_coins_found",{coinType:q});let _=Q?JH(N,y.toString()):U;if(zH(G,BigInt(T)),Q)WH(G);Z.setGasPrice(W),Z.setGasPayment(G.map(Wf));let M=XZ(Z,N,_,Q);Z.transferObjects([M],H)}function GH(y){try{return UH.isValidSuiAddress(y)}catch{return!1}}function qH(y){return"signWithIntent"in y}function UZ({provider:y,...T}={}){let H;async function f(){if(H)return H;return H=await d1.match(T).with({phrase:d1.P.string},async({phrase:C})=>{let{Ed25519Keypair:O}=await import("@mysten/sui/keypairs/ed25519");return O.deriveKeypair(C)}).with({signer:d1.P.any},({signer:C})=>C).otherwise(()=>{return}),H}async function X(C=y){let{SuiJsonRpcClient:O}=await import("@mysten/sui/jsonRpc");return new O({network:"mainnet",url:C||U0.getRPCUrlSync(U0.Chain.Sui)})}async function Q(){return(await f())?.toSuiAddress()||""}function Z(C){try{let O=U0.AssetValue.from({address:C,chain:U0.Chain.Sui});return{asset:O.toString(),decimals:O.decimal}}catch{}return null}async function q(C){let O=C||await Q();if(!O)throw new U0.SwapKitError("toolbox_sui_address_required");let{baseDecimal:B,chain:R}=U0.getChainConfig(U0.Chain.Sui);try{let j=await(await X()).getAllBalances({owner:O}),V=j.find(({coinType:$})=>$===Jf)?.totalBalance||"0",S=[U0.AssetValue.from({chain:R,fromBaseDecimal:B,value:V})];for(let{coinType:$,totalBalance:k}of j){if($===Jf||Number(k)<=0)continue;let z=Z($);if(z)S.push(U0.AssetValue.from({asset:z.asset,fromBaseDecimal:z.decimals,value:k}))}return S}catch{return[U0.AssetValue.from({chain:R})]}}async function U(C){let O=U0.AssetValue.from({chain:U0.Chain.Sui,value:"0.01"});if(!C)return O;try{let B=await X(),{txBytes:R}=await W(C),{effects:{status:I,gasUsed:j}}=await B.dryRunTransactionBlock({transactionBlock:R});if(I.status!=="success")return O;let{baseDecimal:V}=U0.getChainConfig(U0.Chain.Sui),S=BigInt(j.computationCost)+BigInt(j.storageCost)-BigInt(j.storageRebate);return U0.AssetValue.from({chain:U0.Chain.Sui,fromBaseDecimal:V,value:S.toString()})}catch{return O}}async function W({recipient:C,assetValue:O,gasBudget:B,sender:R,sweep:I}){let{Transaction:j}=await import("@mysten/sui/transactions"),V=R||await Q(),S=B||HZ;if(!V)throw new U0.SwapKitError("toolbox_sui_no_sender");try{let $=await X(),k=new j;k.setSender(V);let z={assetValue:O,gasBudget:S,recipient:C,sender:V,suiClient:$,sweep:I,tx:k},J;if(O.isGasAsset||O.symbol==="SUI"){let L=await ZZ(z);if(BigInt(L)<BigInt(S))J=BigInt(L);k.setGasBudget(L)}else await qZ(z),k.setGasBudget(S);let Y=await k.build({client:$});if(J!==void 0){let{effects:{status:L}}=await $.dryRunTransactionBlock({transactionBlock:Y});if(L.status!=="success")throw new U0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:O.toString(),budget:J.toString(),error:L.error}})}return{tx:k,txBytes:Y}}catch($){if($ instanceof U0.SwapKitError)throw $;throw new U0.SwapKitError("toolbox_sui_transaction_creation_error",{error:$})}}async function G(C){let O=await f();if(!O)throw new U0.SwapKitError("toolbox_sui_no_signer");if(C instanceof Uint8Array)return O.signTransaction(C);let{txBytes:B}="tx"in C?C:await W(C);return O.signTransaction(B)}async function N({assetValue:C,gasBudget:O,recipient:B,sweep:R}){let I=await f();if(!I)throw new U0.SwapKitError("toolbox_sui_no_signer");let j=I.toSuiAddress()||await Q();if(!j)throw new U0.SwapKitError("toolbox_sui_no_sender");let{txBytes:V}=await W({assetValue:C,gasBudget:O,recipient:B,sender:j,sweep:R}),S=await X();if(!qH(I)){let k=await I.signTransaction(V),{digest:z}=await S.executeTransactionBlock({signature:k.signature,transactionBlock:k.bytes});return z}let{digest:$}=await S.signAndExecuteTransaction({signer:I,transaction:V});return $}async function _(C){let O=await X(),{digest:B}=await O.executeTransactionBlock({signature:C.signature,transactionBlock:C.bytes});return B}async function M(C){let O=await f();if(!O)throw new U0.SwapKitError("toolbox_sui_no_signer");let B=await X(),R;if(typeof C==="string")R=Uint8Array.from(Buffer.from(C,"base64"));else if(C instanceof Uint8Array)R=C;else R=await C.build({client:B});if(!qH(O)){let j=await O.signTransaction(R),{digest:V}=await B.executeTransactionBlock({signature:j.signature,transactionBlock:j.bytes});return V}let{digest:I}=await B.signAndExecuteTransaction({signer:O,transaction:R});return I}return{broadcastTransaction:_,createTransaction:W,estimateTransactionFee:U,getAddress:Q,getBalance:q,signAndBroadcastTransaction:M,signTransaction:G,transfer:N,validateAddress:GH}}var UH,U0,d1,Jf="0x2::sui::SUI",q2=256,HZ=50000000;var LH=h(()=>{UH=require("@mysten/sui/utils"),U0=require("@swapkit/helpers"),d1=require("ts-pattern")});var zf={};P0(zf,{validateSuiAddress:()=>GH,getSuiToolbox:()=>UZ});module.exports=S0(zf);var Gf=h(()=>{LH()});async function LZ(){let y=Date.now();if(Lf&&y-_H<GZ)return Lf;let{getHttpEndpoint:T}=await import("@orbs-network/ton-access");return Lf=await T(),_H=y,Lf}async function MZ(){let[y]=F0.SKConfig.get("rpcUrls")[F0.Chain.Ton]??[];if(y)return y;return await LZ()}function _Z(y={}){let T,H,f;async function X(){if(!T){let{TonClient:$}=await import("@ton/ton"),k=y.provider??await MZ();T=new $({endpoint:k})}return T}async function Q(){return(await q()).address.toString()}async function Z(){if(f)return f;return f=await uy.match(y).with({phrase:uy.P.string},async({phrase:$})=>{let{mnemonicToWalletKey:k}=await import("@ton/crypto");return k($.split(" "))}).with({signer:uy.P.any},({signer:$})=>$).otherwise(()=>{return}),f}async function q($){if(!H||$){let k=await Z(),z=await X(),J=$||k;if(!J)throw new F0.SwapKitError("core_wallet_connection_not_found");let{WalletContractV4:Y}=await import("@ton/ton"),L=Y.create({publicKey:J.publicKey,workchain:0});H=z.open(L)}return H}let U=w0(F0.Chain.Ton);async function W({assetValue:$,recipient:k,memo:z,sender:J,sweep:Y}){if($.isGasAsset){if(Y){let R0=J||await Q(),w=await(await X()).getBalance(Y0.Address.parse(R0));if(w<=0n)throw new F0.SwapKitError("toolbox_sweep_amount_too_low",{asset:$.toString(),balance:w.toString()})}let H0=z?S(z).toBoc().toString("base64"):void 0;return[{address:k,amount:$.getBaseValue("string"),payload:H0}]}let L=$.address;if(!L)throw new F0.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:$.toString()}});let D=J??await Q(),F=await I({jettonMasterAddress:L,ownerAddress:D}),P=Y0.Address.parse(k),A=Y0.Address.parse(D),E=Y?await j(F):$.getBaseValue("bigint");if(Y&&E<=0n)throw new F0.SwapKitError("toolbox_sweep_amount_too_low",{asset:$.toString(),balance:E.toString()});let u=z?S(z):void 0,s=V({destinationAddress:P,forwardPayload:u,jettonAmount:E,responseAddress:A});return[{address:F.toString(),amount:WZ.toString(),payload:s.toBoc().toString("base64")}]}async function G({sender:$,sweep:k,...z}){let J=k&&z.assetValue.isGasAsset?zZ:MH;return{messages:await W({...z,sender:$,sweep:k}),sendMode:J}}function N($){if(!Array.isArray($))return $;let[k]=$;return{messages:$.map(({sendMode:J,...Y})=>Y),sendMode:k?.sendMode??MH}}function _($){return $.map((k)=>{let z=k.payload?Y0.Cell.fromBase64(k.payload):void 0,J=k.stateInit?Y0.loadStateInit(Y0.Cell.fromBase64(k.stateInit).asSlice()):void 0,Y=Y0.Address.parse(k.address),L=Y0.Address.isFriendly(k.address)?Y0.Address.parseFriendly(k.address).isBounceable:!0;return Y0.internal({body:z,bounce:L,init:J,to:Y,value:BigInt(k.amount)})})}async function M($){let k=await Z(),z=await q();if(!z||!k)throw new F0.SwapKitError("core_wallet_connection_not_found");let J=await X(),{state:Y}=await J.getContractState(z.address),L=Y==="active",D=L?await z.getSeqno():0,{messages:F,sendMode:P}=N($),A=z.createTransfer({messages:_(F),secretKey:k.secretKey,sendMode:P,seqno:D}),E=Y0.external({body:A,init:L?void 0:z.init,to:z.address});return Y0.beginCell().store(Y0.storeMessage(E)).endCell()}async function C($){return await(await X()).sendFile($.toBoc()),$.hash().toString("hex")}async function O($){let k=await M($);return C(k)}async function B({assetValue:$,recipient:k,memo:z,sweep:J}){let Y=await G({assetValue:$,memo:z,recipient:k,sweep:J});return O(Y)}async function R({sender:$,...k}){let{baseDecimal:z}=F0.getChainConfig(F0.Chain.Ton),J=await uy.match($).with(uy.P.string,(D)=>{return Y0.Address.parseFriendly(D).address}).otherwise(async()=>{return(await q()).address});if(!J)throw new F0.SwapKitError("toolbox_fee_estimation_failed",{chain:F0.Chain.Ton});let Y=F0.AssetValue.from({chain:F0.Chain.Ton,value:"0.01"}),L=await X();try{let D=await G({sender:$,...k}),F=await Z(),P=await q();if(!P||!F)return Y;let A=await P.getSeqno(),E=P.createTransfer({messages:_(D.messages),secretKey:F.secretKey,sendMode:D.sendMode,seqno:A}),{source_fees:u}=await L.estimateExternalMessageFee(J,{body:E,ignoreSignature:!0,initCode:null,initData:null}),s=u.in_fwd_fee+u.storage_fee+u.gas_fee+u.fwd_fee;return Y.set(F0.SwapKitNumber.fromBigInt(BigInt(s),z))}catch{return Y}}async function I({jettonMasterAddress:$,ownerAddress:k}){try{let z=await X(),J=Y0.Address.parse($),Y=Y0.Address.parse(k),{JettonMaster:L}=await import("@ton/ton");return await z.open(L.create(J)).getWalletAddress(Y)}catch{throw new F0.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:$,ownerAddress:k}})}}async function j($){try{let k=await X(),{JettonWallet:z}=await import("@ton/ton");return await k.open(z.create($)).getBalance()}catch{throw new F0.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonWalletAddress:$.toString()}})}}function V({jettonAmount:$,destinationAddress:k,responseAddress:z,forwardAmount:J=JZ,forwardPayload:Y}){let L=Y0.beginCell().storeUint(YZ,32).storeUint(0,64).storeCoins($).storeAddress(k).storeAddress(z).storeBit(0).storeCoins(J);if(Y)L.storeBit(1).storeRef(Y);else L.storeBit(0);return L.endCell()}function S($){return Y0.beginCell().storeUint(0,32).storeStringTail($).endCell()}return{broadcastTransaction:C,createTransaction:G,estimateTransactionFee:R,getAddress:Q,getBalance:U,getJettonWalletAddress:I,sign:M,signAndBroadcastTransaction:O,transfer:B,validateAddress:CH}}function CH(y){try{return Y0.Address.parse(y),!0}catch{return!1}}var F0,Y0,uy,YZ=260734629,JZ,WZ,MH,zZ,GZ=60000,Lf,_H=0;var OH=h(()=>{Hy();F0=require("@swapkit/helpers"),Y0=require("@ton/core"),uy=require("ts-pattern"),JZ=Y0.toNano("0.01"),WZ=Y0.toNano("0.05"),MH=Y0.SendMode.PAY_GAS_SEPARATELY+Y0.SendMode.IGNORE_ERRORS,zZ=Y0.SendMode.CARRY_ALL_REMAINING_BALANCE+Y0.SendMode.IGNORE_ERRORS});var Mf={};P0(Mf,{validateTonAddress:()=>CH,getTONToolbox:()=>_Z});module.exports=S0(Mf);var _f=h(()=>{OH()});function s0(y,T){if(!Number.isInteger(T)||T<0)throw RangeError(`${y} must be a non-negative integer, got: ${T}`)}function Ry({accountIndex:y,chain:T,derivationPath:H}){if(y!==void 0)s0("accountIndex",y);let f=[...H?.slice(0,3)??$H.NetworkDerivationPath[T].slice(0,3)];if(y!==void 0)f[2]=y;return f}function Z1({accountIndex:y,change:T=!1,chain:H,derivationPath:f,index:X}){return s0("index",X),[...Ry({accountIndex:y,chain:H,derivationPath:f}),Number(T),X]}function py(y){return y[2]??0}function NH({deriveAddress:y,getBalance:T,getUtxos:H}){async function f(q){let{accountIndex:U,count:W,startIndex:G=0,change:N=!1}=q;if(s0("count",W),W<1)throw RangeError("count must be at least 1");s0("startIndex",G);let _=[];for(let M=0;M<W;M++){let C=await y({accountIndex:U,change:N,index:G+M});if(C)_.push(C)}return _}async function X(q){let{gapLimit:U=20,change:W=!1}=q??{},G=[],N=0,_=0;while(N<U){let M=await y({change:W,index:_});if(!M)break;if((await T(M.address)).some((B)=>B.getValue("number")>0))G.push(M),N=0;else N++;_++}return G}async function Q(q=20){let[U,W]=await Promise.all([X({change:!1,gapLimit:q}),X({change:!0,gapLimit:q})]),G=[...U,...W],N=await Promise.all(G.map(async(M)=>{let O=(await T(M.address)).reduce((B,R)=>B+R.getValue("number"),0);return{...M,balance:O}})),_=N.reduce((M,C)=>M+C.balance,0);return{addresses:N,total:_}}async function Z(q=20){let[U,W]=await Promise.all([X({change:!1,gapLimit:q}),X({change:!0,gapLimit:q})]),G=[...U,...W];return(await Promise.all(G.map(async(_)=>{return(await H(_.address)).map((C)=>({...C,address:_.address,derivationIndex:_.index,isChange:_.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:Q,getAggregatedUtxos:Z,scanForAddresses:X}}var $H;var i1=h(()=>{$H=require("@swapkit/helpers")});async function CZ({chain:y,txHash:T}){let H=`${t1(y)}/push/transaction`,f=JSON.stringify({data:T});try{let X=await T0.RequestClient.post(H,{body:f,headers:{"Content-Type":"application/json"}});if(X.context.code!==200)throw new T0.SwapKitError("toolbox_utxo_broadcast_failed",{error:X.context.error||"Transaction broadcast failed"});return X.data?.transaction_hash||T}catch(X){let Q=await T0.getRPCUrl(y);if(Q){let Z=JSON.stringify({id:xT(),jsonrpc:"2.0",method:"sendrawtransaction",params:[T]}),q=await T0.RequestClient.post(Q,{body:Z,headers:{"Content-Type":"application/json"}});if(q.error)throw new T0.SwapKitError("toolbox_utxo_broadcast_failed",{error:q.error?.message});if(q.result.includes('"code":-26'))throw new T0.SwapKitError("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return q.result}throw X}}function t1(y){return`https://api.blockchair.com/${OZ(y)}`}function kH(y){switch(y){case T0.Chain.Bitcoin:return 5;case T0.Chain.Dogecoin:return 1e4;case T0.Chain.Litecoin:return 1;case T0.Chain.Zcash:return 1;default:return 2}}function OZ(y){switch(y){case T0.Chain.BitcoinCash:return"bitcoin-cash";case T0.Chain.Litecoin:return"litecoin";case T0.Chain.Dash:return"dash";case T0.Chain.Dogecoin:return"dogecoin";case T0.Chain.Zcash:return"zcash";case T0.Chain.Polkadot:return"polkadot";default:return"bitcoin"}}async function $Z(y){try{let{feePerKb:T}=await T0.RequestClient.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),H=T/1000;return Math.max(H,kH(y))}catch{return kH(y)}}async function Cf(y,T){let H=await T0.RequestClient.get(`${y}${T?`${y.includes("?")?"&":"?"}key=${T}`:""}`);if(!H||H.context.code!==200)throw new T0.SwapKitError("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return H.data}async function DH({address:y,chain:T,apiKey:H}){if(!y)throw new T0.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Cf(`${t1(T)}/dashboards/address/${y}?transaction_details=true`,H))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function NZ({address:y,chain:T,apiKey:H}){return(await DH({address:y,apiKey:H,chain:T}))?.address.balance||0}async function FH({chain:y,apiKey:T,txHash:H}){if(!H)throw new T0.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Cf(`${t1(y)}/raw/transaction/${H}`,T))?.[H]?.raw_transaction||""}catch(f){let X=f instanceof Error?f.message:String(f);return console.error(`Failed to fetch raw transaction: ${X}`),""}}async function BZ({chain:y,apiKey:T,txHash:H}){if(!H)throw new T0.SwapKitError("toolbox_utxo_invalid_params",{error:"TxHash is required"});let X=(await Cf(`${t1(y)}/dashboards/transaction/${H}`,T))?.[H];if(!X)throw new T0.SwapKitError("toolbox_utxo_tx_not_found",{txHash:H});let{transaction:Q,inputs:Z,outputs:q}=X,U=Z.map((G)=>G.spending_sequence),W=Q.is_rbf===!0||U.some((G)=>G<kZ);return{blockId:Q.block_id,confirmed:Q.block_id!==-1,fee:Q.fee,inputs:Z,isRBF:W,outputs:q,sequences:U,size:Q.size,txid:Q.hash,weight:Q.weight}}async function DZ({chain:y,address:T,apiKey:H,offset:f=0,limit:X=30}){return(await Cf(`${t1(y)}/outputs?q=recipient(${T}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${X}&offset=${f}`,H)).map(({is_spent:U,script_hex:W,block_id:G,transaction_hash:N,index:_,value:M,spending_signature_hex:C})=>({hash:N,index:_,is_confirmed:G!==-1,is_spent:U,script_hex:W,txHex:C,value:M}))}function FZ(y){return y.reduce((T,H)=>T+H.value,0)}function BH(y,T){let H=[...y].sort((f,X)=>X.value-f.value);if(T){let f=[],X=0;for(let Q of H)if(f.push(Q),X+=Q.value,X>=T)break;return f}return H}async function RH({chain:y,address:T,apiKey:H,targetValue:f,accumulativeValue:X=0,offset:Q=0,limit:Z=30}){if(!T)throw new T0.SwapKitError("toolbox_utxo_invalid_params",{error:"Address is required"});try{let q=await DZ({address:T,apiKey:H,chain:y,limit:Z,offset:Q,targetValue:f}),W=q.length<Z,G=q.filter(({is_spent:B})=>!B),N=FZ(G),_=X+N,M=f&&_>=f;if(W||M)return BH(G,f);let C=await RH({accumulativeValue:_,address:T,apiKey:H,chain:y,limit:Z,offset:Q+Z,targetValue:f}),O=[...G,...C];return BH(O,f)}catch(q){let U=q instanceof Error?q.message:String(q);return console.error(`Failed to fetch unspent UTXOs: ${U}`),[]}}async function RZ({address:y,chain:T,apiKey:H,fetchTxHex:f=!0,targetValue:X}){let Q=await RH({address:y,apiKey:H,chain:T,targetValue:X}),Z=[];for(let{hash:q,index:U,script_hex:W,value:G}of Q){let N;if(f)N=await FH({apiKey:H,chain:T,txHash:q});Z.push({address:y,hash:q,index:U,txHex:N,value:G,witnessUtxo:{script:Buffer.from(W,"hex"),value:G}})}return Z}function K0(y){let T=T0.SKConfig.get("apiKeys").blockchair||"";return T0.warnOnce({condition:!T,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(H)=>CZ({chain:y,txHash:H}),getAddressData:(H)=>DH({address:H,apiKey:T,chain:y}),getBalance:(H)=>NZ({address:H,apiKey:T,chain:y}),getRawTx:(H)=>FH({apiKey:T,chain:y,txHash:H}),getSuggestedTxFee:()=>$Z(y),getTransactionDetails:(H)=>BZ({apiKey:T,chain:y,txHash:H}),getUtxos:(H)=>RZ({...H,apiKey:T,chain:y})}}function xZ(y){return y}function IZ(){return function(T){switch(T){case T0.Chain.Bitcoin:return my.NETWORKS.bitcoin;case T0.Chain.BitcoinCash:return my.NETWORKS.bitcoinCash;case T0.Chain.Dash:return my.NETWORKS.dash;case T0.Chain.Litecoin:return my.NETWORKS.litecoin;case T0.Chain.Dogecoin:return my.NETWORKS.dogecoin;case T0.Chain.Zcash:return my.NETWORKS.zcash;default:throw new T0.SwapKitError("toolbox_utxo_not_supported",{chain:T})}}}var T0,my,kZ=4294967294;var xH=h(()=>{Hy();T0=require("@swapkit/helpers"),my=require("@swapkit/utxo-signer")});function VZ(y,T,H){return Wy.encodeCashAddr({hash:H,prefix:y,type:PZ[T]})}function KZ(y){let T=Wy.decodeCashAddr(y),H=jZ[T.type];if(!H)throw Error(`Unknown CashAddr type: ${T.type}`);return{hash:T.hash,prefix:T.prefix,type:H}}var Wy,PZ,jZ,Y2;var IH=h(()=>{Wy=require("@swapkit/utxo-signer"),PZ={P2PKH:Wy.CashAddrType.P2PKH,P2SH:Wy.CashAddrType.P2SH},jZ={[Wy.CashAddrType.P2PKH]:"P2PKH",[Wy.CashAddrType.P2SH]:"P2SH"};Y2={decode:KZ,encode:VZ}});function z2(y){try{return Of(y),!0}catch{return!1}}function G2(y){return Of(y)?.network}function zy(y){let T=Of(y);if(T?.format==="legacy")return y;return wZ(T)}function r1(y){let T=Of(y);return EZ(T)}function Of(y){try{let T=SZ(y);if(T)return T}catch{}try{let T=AZ(y);if(T)return T}catch{}throw new J2.SwapKitError("toolbox_utxo_invalid_address",{address:y})}function SZ(y){try{let T=KH.decode(y);if(T.length!==21)throw new J2.SwapKitError("toolbox_utxo_invalid_address",{address:y});let H=T[0],f=Array.prototype.slice.call(T,1);switch(H){case gy.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case gy.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case gy.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case gy.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case gy.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case gy.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function AZ(y){if(y.indexOf(":")!==-1)try{return PH(y)}catch{}else{let T=["bitcoincash","bchtest","bchreg"];for(let H of T)try{return PH(`${H}:${y}`)}catch{}}return}function PH(y){try{let{hash:T,prefix:H,type:f}=Y2.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(T,0),network:H==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function wZ(y){let T=gy.legacy[y.network][y.type],H=Buffer.alloc(1+y.hash.length);return H[0]=T,H.set(y.hash,1),KH.encode(H)}function EZ(y){let T=y.network==="mainnet"?"bitcoincash":"bchtest",H=y.type==="p2pkh"?"P2PKH":"P2SH",f=new Uint8Array(y.hash);return Y2.encode(T,H,f)}var jH,VH,J2,KH,W2,gy;var SH=h(()=>{IH();jH=require("@noble/hashes/sha2.js"),VH=require("@scure/base"),J2=require("@swapkit/helpers"),KH=VH.createBase58check(jH.sha256);((H)=>{H.Mainnet="mainnet";H.Testnet="testnet"})(W2||={});gy={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});function o0(y){let T=new Uint8Array(Buffer.from(y,"utf8"));return wH.Script.encode(["RETURN",T])}var AH,wH,vZ=1000,Nf=10,kf=2,EH=10,bZ=41,hZ=107,Bf,$f,a1,q1=(y)=>{if(y.startsWith("bc1")||y.startsWith("tb1")||y.startsWith("ltc1")||y.startsWith("tltc1"))return"P2WPKH";if(y.startsWith("1")||y.startsWith("m")||y.startsWith("n")||y.startsWith("bitcoincash:q")||y.startsWith("bitcoincash:p")||y.startsWith("q")||y.startsWith("p")||y.startsWith("L")||y.startsWith("M")||y.startsWith("3")||y.startsWith("D")||y.startsWith("A")||y.startsWith("9")||y.startsWith("X")||y.startsWith("7")||y.startsWith("y")||y.startsWith("t1")||y.startsWith("t3")||y.startsWith("tm"))return"P2PKH";throw new AH.SwapKitError("toolbox_utxo_invalid_address",{address:y})},oy=({inputs:y,outputs:T,feeRate:H})=>{let f=y[0]&&"address"in y[0]&&y[0].address?q1(y[0].address):"P2PKH",Q=(H?y.filter((W)=>W.value>=$f["type"in W&&W.type?W.type:"P2PKH"]*Math.ceil(H)):y).reduce((W,G)=>W+xy(G),0),Z=T?.reduce((W,G)=>W+s1(G),0)||a1[f],q=Nf+Q+Z;return f==="P2WPKH"?Math.ceil(q+kf/4):q},xy=(y)=>{if("type"in y&&y.type)return $f[y.type];if("address"in y&&y.address)return $f[q1(y.address)];return bZ+hZ},s1=(y,T)=>{if(y?.script)return EH+y.script.length+(y.script.length>=74?2:1);if(T)return a1[T];if("address"in y&&y.address)return a1[q1(y.address)];return a1.P2PKH};var L2=h(()=>{AH=require("@swapkit/helpers"),wH=require("@swapkit/utxo-signer");((H)=>{H.P2PKH="P2PKH";H.P2WPKH="P2WPKH"})(Bf||={});$f={["P2PKH"]:148,["P2WPKH"]:68},a1={["P2PKH"]:34,["P2WPKH"]:31}});function U1(y){switch(y){case d0.Chain.Bitcoin:case d0.Chain.BitcoinCash:return 550;case d0.Chain.Dash:case d0.Chain.Litecoin:return 5500;case d0.Chain.Dogecoin:return 1e5;case d0.Chain.Zcash:return 546;default:throw new d0.SwapKitError("toolbox_utxo_not_supported",{chain:y})}}function i0({inputs:y,outputs:T,feeRate:H=1,chain:f=d0.Chain.Bitcoin,changeAddress:X="",sweep:Q=!1}){let Z=U1(f),q=y.filter((B)=>{let R=xy(B)*H;return Q?B.value>Math.max(R,Z):R<=B.value});if(Q){let B=Math.ceil(H*oy({inputs:q,outputs:T})),R=q.reduce((V,S)=>V+S.value,0),I=R-B;if(I<=Z)throw new d0.SwapKitError("toolbox_sweep_amount_too_low",{available:R,dustThreshold:Z,fee:B});let j=T.findIndex((V)=>("address"in V)&&V.address);if(j===-1)throw new d0.SwapKitError("toolbox_utxo_invalid_params",{error:"Sweep requires a recipient output"});return{fee:B,inputs:q,outputs:T.map((V,S)=>S===j?{...V,value:I}:V)}}let G=(y[0]&&"address"in y[0]&&y[0].address?q1(y[0].address):"P2PKH")==="P2WPKH"?Math.ceil(kf/4):0,N=Nf+G+T.reduce((B,R)=>B+s1(R),0),_=T.reduce((B,R)=>B+R.value,0),M=N*H,C=0,O=[];for(let B of q){let R=xy(B),I=H*R;M+=I,C+=B.value,O.push(B);let j=M+_;if(C<j)continue;let V=C-j,S=H*s1({address:X,value:0});if(V>S){let $=S+M,k=C-(_+Math.ceil($));if(k>Math.max(xy({value:0})*H,U1(f)))return{fee:Math.ceil($),inputs:O,outputs:T.concat({address:X,value:k})}}return{fee:Math.ceil(M),inputs:O,outputs:T}}return{fee:Math.ceil(H*oy({inputs:y,outputs:T}))}}var d0;var vH=h(()=>{L2();d0=require("@swapkit/helpers")});var Y1=h(()=>{xH();SH();vH();L2()});function ny(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function Iy(y){let T=ny(y);return z2(T)&&G2(T)==="mainnet"}var cy;var e1=h(()=>{Y1();cy=require("@swapkit/utxo-signer")});function C2({address:y,chain:T}){return _2.match(T).with(v.Chain.BitcoinCash,()=>Iy(y)).with(v.Chain.Zcash,()=>cy.validateZcashAddress(y)).otherwise(()=>{try{return Q0.Address(h0(T)).decode(y),!0}catch{return!1}})}function h0(y){return _2.match(y).with(v.Chain.Bitcoin,()=>Q0.NETWORKS.bitcoin).with(v.Chain.BitcoinCash,()=>Q0.NETWORKS.bitcoinCash).with(v.Chain.Dash,()=>Q0.NETWORKS.dash).with(v.Chain.Dogecoin,()=>Q0.NETWORKS.dogecoin).with(v.Chain.Litecoin,()=>Q0.NETWORKS.litecoin).with(v.Chain.Zcash,()=>Q0.NETWORKS.zcash).exhaustive()}function lZ({phrase:y,derivationPath:T,network:H,seed:f}){let X=f??Ff.mnemonicToSeedSync(y),Z=M2.HDKey.fromMasterSeed(X,H.bip32).derive(T);if(!Z.privateKey)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return Z.privateKey}function bH(y){return hH.secp256k1.getPublicKey(y,!0)}function f5({publicKey:y,chain:T,network:H}){if(T===v.Chain.BitcoinCash){let Q=Q0.p2pkh(y,H);if(!Q.hash)throw new v.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return Q0.encodeCashAddr({hash:Q.hash,prefix:Q0.CashAddrPrefix.MAINNET,type:Q0.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}let X=!y5.includes(T)?Q0.p2wpkh(y,H):Q0.p2pkh(y,H);if(!X.address)throw new v.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive address"});return X.address}function J1({phrase:y,derivationPath:T,chain:H,wif:f,seed:X}){let Q=h0(H);if(f){let W=Q0.WIF(Q).decode(f),G=bH(W);return{privateKey:W,publicKey:G}}if(!y)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let Z=T||v.derivationPathToString(v.NetworkDerivationPath[H]),q=lZ({derivationPath:Z,network:Q,phrase:y,seed:X}),U=bH(q);return{privateKey:q,publicKey:U}}function uZ(y,T){return Q0.WIF(h0(T)).encode(y)}function pZ({phrase:y,derivationPath:T,chain:H,seed:f}){let X=T.split("/");if(X.length<4)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${X.length}): ${T}`});let Q=h0(H),Z=f??Ff.mnemonicToSeedSync(y),q=M2.HDKey.fromMasterSeed(Z,Q.bip32),U=X.slice(0,4).join("/");return q.derive(U)}function jy({inputs:y,outputs:T,chain:H,tx:f,sender:X,compiledMemo:Q,enableRBF:Z=!1}){let q=h0(H),U=!y5.includes(H),W=Z?Q0.RBF_SEQUENCE:void 0,G=new Set;for(let N of y){let _=`${N.hash}:${N.index}`;if(G.has(_))throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});G.add(_);let M=typeof N.hash==="string"?Py.hex.decode(N.hash):N.hash;if(U&&N.witnessUtxo)f.addInput({index:N.index,sequence:W,txid:M,witnessUtxo:{amount:BigInt(N.witnessUtxo.value),script:N.witnessUtxo.script}});else if(N.txHex)f.addInput({index:N.index,nonWitnessUtxo:Py.hex.decode(N.txHex),sequence:W,txid:M,...H===v.Chain.BitcoinCash?{sighashType:Q0.BCHSigHash.ALL}:{}});else throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let N of T){let _="address"in N&&N.address?N.address:X;if(H===v.Chain.BitcoinCash)_=zy(_);if(N.script){if(Q)f.addOutput({amount:0n,script:Q})}else f.addOutputAddress(_,BigInt(N.value),q)}return{inputs:y,tx:f}}async function W1(y){let T=await K0(y).getSuggestedTxFee();return{[v.FeeOption.Average]:T,[v.FeeOption.Fast]:v.applyFeeMultiplier(T,v.FeeOption.Fast),[v.FeeOption.Fastest]:v.applyFeeMultiplier(T,v.FeeOption.Fastest)}}async function lH({assetValue:y,recipient:T,memo:H,sender:f,sweep:X,fetchTxHex:Q=!1}){let Z=y.chain,q=Q||y5.includes(Z),U=y.getBaseValue("number"),W=X?void 0:Math.ceil(U+(await W1(Z))[v.FeeOption.Fastest]*5000);return{inputs:await K0(Z).getUtxos({address:f,fetchTxHex:q,targetValue:W}),outputs:[{address:T,value:X?0:U},...H?[{address:"",script:o0(H),value:0}]:[]]}}async function uH({assetValue:y,recipient:T,memo:H,feeRate:f,sender:X,fetchTxHex:Q=!1,enableRBF:Z=!1,sweep:q}){let U=y.chain,W=H?o0(H):null,G=await lH({assetValue:y,fetchTxHex:Q,memo:H,recipient:T,sender:X,sweep:q}),{inputs:N,outputs:_}=i0({...G,chain:U,feeRate:f,sweep:q});if(!(N&&_))throw new v.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let M=new Q0.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!W,version:1}),{inputs:C,tx:O}=jy({chain:U,compiledMemo:W,enableRBF:Z,inputs:N,outputs:_,sender:X,tx:M});return{inputs:C,tx:O,utxos:G.inputs}}async function pH({assetValue:y,feeOptionKey:T=v.FeeOption.Fast,feeRate:H,memo:f,sender:X,recipient:Q,sweep:Z}){let q=y.chain,U=await lH({assetValue:y,memo:f,recipient:Q,sender:X,sweep:Z}),W=H?Math.floor(H):(await W1(q))[T];return i0({...U,chain:q,feeRate:W,sweep:Z})}function mZ(y){return async function({from:H,memo:f,feeRate:X,feeOptionKey:Q=v.FeeOption.Fast,recipient:Z=H,recipients:q=1}){let U=X??(await W1(y))[Q],G=(await K0(y).getUtxos({address:H,fetchTxHex:!1})).filter((O)=>O.value>Math.max(U1(y),xy(O)*U));if(!G.length)return v.AssetValue.from({chain:y});let N=typeof q==="number"?Math.max(q,1):q.length,_=typeof q==="number"||N===0?Array.from({length:N||1},()=>({address:Z,value:0})):[...q];if(f)_.push({address:H,script:o0(f),value:0});let{outputs:M}=i0({chain:y,feeRate:U,inputs:G,outputs:_,sweep:!0}),C=M?.[0]?.value??0;return v.AssetValue.from({chain:y,value:BigInt(C)})}}function gZ(y){return async function(H){let{fee:f}=await pH(H);return v.AssetValue.from({chain:y,value:v.SwapKitNumber.fromBigInt(BigInt(f),8).getValue("string")})}}function oZ({chain:y,phrase:T,derivationPath:H,seed:f}){let X=h0(y),{privateKey:Q,publicKey:Z}=J1({chain:y,derivationPath:H,phrase:T,seed:f}),q=y===v.Chain.BitcoinCash?[Q0.BCHSigHash.ALL]:[Q0.SigHash.ALL];return{getAddress:()=>f5({chain:y,network:X,publicKey:Z}),privateKey:Q,publicKey:Z,signTransaction:(U)=>{return U.sign(Q,q),U}}}function nZ(y,T){return async function({memo:f,recipient:X,feeOptionKey:Q,feeRate:Z,assetValue:q,enableRBF:U=!1,sweep:W}){let G=await T?.getAddress();if(!(T&&G))throw new v.SwapKitError("toolbox_utxo_no_signer");if(!X)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});v.warnOnce({condition:U&&!Df.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let N=U&&Df.includes(y),_=Z||(await W1(y))[Q||v.FeeOption.Fast],{tx:M}=await uH({assetValue:q,enableRBF:N,feeRate:_,memo:f,recipient:X,sender:G,sweep:W}),C=await T.signTransaction(M);return C.finalize(),K0(y).broadcastTx(Py.hex.encode(C.extract()))}}function O2(y){return(T)=>C2({address:T,chain:y})}function $2(y){let T=h0(y);return function(f){if(!f)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return f5({chain:y,network:T,publicKey:f.publicKey})}}function Vy({chain:y,...T}){let H="phrase"in T?T.phrase:void 0,f="index"in T?T.index||0:0,X=H?Ff.mnemonicToSeedSync(H):void 0,Q="derivationPath"in T&&T.derivationPath?T.derivationPath:v.updateDerivationPath(v.NetworkDerivationPath[y],{index:f}),Z=v.derivationPathToString(Q),q=H?oZ({chain:y,derivationPath:Z,phrase:H,seed:X}):void 0,U="signer"in T?T.signer:void 0,W=q||U,G=H?J1({chain:y,derivationPath:Z,phrase:H,seed:X}):void 0;function N(){if(W)return W.getAddress();return Promise.resolve(void 0)}function _(Y){if(!H)return;let L=Ry({accountIndex:Y,chain:y,derivationPath:Q});return pZ({chain:y,derivationPath:v.derivationPathToString(L),phrase:H,seed:X})}let M=_();function C(){if(!M)return;return M.publicExtendedKey}function O({accountIndex:Y}={}){let L=Y===void 0?M:_(Y);if(!L)return;let D=Ry({accountIndex:Y,chain:y,derivationPath:Q});return{accountIndex:py(D),path:v.derivationPathToString(D),xpub:L.publicExtendedKey}}function B({accountIndex:Y,index:L,change:D=!1}){let F=Y===void 0?M:_(Y);if(!F)return;let P=Z1({accountIndex:Y,chain:y,change:D,derivationPath:Q,index:L}),A=h0(y),E=F.deriveChild(Number(D)).deriveChild(L);if(!E.publicKey)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let u=f5({chain:y,network:A,publicKey:E.publicKey}),s=Py.hex.encode(E.publicKey);return{accountIndex:py(P),address:u,change:D,index:L,path:v.derivationPathToString(P),pubkey:s}}async function R(Y){if(!Df.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let L=await K0(y).getTransactionDetails(Y);return{canReplace:L.isRBF&&!L.confirmed,confirmed:L.confirmed,enabled:L.isRBF,fee:L.fee,sequences:L.sequences,supported:!0}}async function I({txid:Y,newFeeRate:L,recipient:D,memo:F}){if(!Df.includes(y))throw new v.SwapKitError("toolbox_utxo_rbf_not_supported",{chain:y});let P=await K0(y).getTransactionDetails(Y);if(!P.isRBF)throw new v.SwapKitError("toolbox_utxo_tx_not_replaceable",{txid:Y});if(P.confirmed)throw new v.SwapKitError("toolbox_utxo_tx_already_confirmed",{blockId:P.blockId,txid:Y});let A=P.inputs.reduce((Z0,_0)=>Z0+_0.value,0),u=P.outputs.find((Z0)=>Z0.recipient===D)?.value||0;if(u===0)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let s=await Promise.all(P.inputs.map(async(Z0)=>{let _0=await K0(y).getRawTx(Z0.transaction_hash);return{hash:Z0.transaction_hash,index:Z0.index,txHex:_0,value:Z0.value,witnessUtxo:void 0}})),H0=F?o0(F):null,R0=oy({feeRate:L,inputs:s.map((Z0)=>({...Z0,type:"P2WPKH"})),outputs:[{address:D,value:u}]}),x=Math.ceil(R0*L);if(x<=P.fee)throw new v.SwapKitError("toolbox_utxo_rbf_fee_too_low",{newFee:x,originalFee:P.fee});let w=x-P.fee,b=u-w;if(b<=0)throw new v.SwapKitError("toolbox_utxo_rbf_insufficient_change");let c=new Q0.Transaction({allowLegacyWitnessUtxo:!0,version:1}),d=[{address:D,value:b},...F?[{address:"",script:o0(F),value:0}]:[]],f0=A-b-x,G0=await N();if(f0>U1(y)&&G0)d.push({address:G0,value:f0});return jy({chain:y,compiledMemo:H0,inputs:s,outputs:d,sender:G0||D,tx:c}),{feeDelta:w,newFee:x,originalFee:P.fee,tx:c}}async function j({txid:Y,newFeeRate:L,recipient:D,memo:F}){let{tx:P,originalFee:A,newFee:E}=await I({memo:F,newFeeRate:L,recipient:D,txid:Y}),u=await z(P);u.finalize();let s=await K0(y).broadcastTx(Py.hex.encode(u.extract()));return{newFee:E,originalFee:A,txid:s}}function V({accountIndex:Y,index:L,change:D=!1}){s0("index",L);let F=Y===void 0?M:_(Y);if(!F)return;return F.deriveChild(Number(D)).deriveChild(L).privateKey||void 0}function S({tx:Y,inputDerivations:L}){if(!M)throw new v.SwapKitError("toolbox_utxo_no_signer");let D=y===v.Chain.BitcoinCash?[Q0.BCHSigHash.ALL]:[Q0.SigHash.ALL];for(let F=0;F<L.length;F++){let P=L[F];if(!P)continue;let{derivationIndex:A,isChange:E}=P,u=V({change:E,index:A});if(!u)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${F} at index ${A}`});Y.signIdx(u,F,D)}return Y}async function $({utxos:Y,recipient:L,assetValue:D,memo:F,feeRate:P,feeOptionKey:A,changeAddress:E,sweep:u}){if(u)throw new v.SwapKitError("toolbox_utxo_invalid_params",{error:"Sweep is not supported for transfers from multiple addresses"});if(!M)throw new v.SwapKitError("toolbox_utxo_no_signer");let s=P||(await W1(y))[A||v.FeeOption.Fast],H0=F?o0(F):null,R0=[{address:L,value:D.getBaseValue("number")}];if(H0)R0.push({address:"",script:H0,value:0});let x=Y.map(({hash:Z0,index:_0,value:A0,txHex:fy,witnessUtxo:Ty})=>({hash:Z0,index:_0,txHex:fy,value:A0,witnessUtxo:Ty?{script:Ty.script,value:Ty.value}:void 0})),{inputs:w,outputs:b}=i0({chain:y,feeRate:s,inputs:x,outputs:R0});if(!(w&&b))throw new v.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:D,sender:"multiple addresses"});let c=new Q0.Transaction({allowLegacyWitnessUtxo:!0,version:1}),d=Y[0]?.address,f0=E||await N()||d||L;jy({chain:y,compiledMemo:H0,inputs:w,outputs:b,sender:f0,tx:c});let G0=w.map((Z0)=>{let _0=Y.find((A0)=>A0.hash===Z0.hash&&A0.index===Z0.index);return _0?{derivationIndex:_0.derivationIndex,isChange:_0.isChange}:{derivationIndex:0,isChange:!1}});return S({inputDerivations:G0,tx:c}),c.finalize(),K0(y).broadcastTx(Py.hex.encode(c.extract()))}function k({address:Y,gapLimit:L=20}){if(!M)return;for(let D=0;D<L;D++){let F=B({change:!1,index:D}),P=B({change:!0,index:D}),A=F?.address===Y?!1:P?.address===Y;if(F?.address===Y||P?.address===Y)return{change:A,index:D}}return}function z(Y){if(!W)throw new v.SwapKitError("toolbox_utxo_no_signer");return W.signTransaction(Y)}async function J(Y){let L=await z(Y);return L.finalize(),await K0(y).broadcastTx(Py.hex.encode(L.extract()))}return{accumulative:i0,broadcastTx:(Y)=>K0(y).broadcastTx(Y),bumpFee:j,calculateTxSize:oy,createKeysForPath:(Y)=>J1({...Y,chain:y}),createReplacementTransaction:I,createTransaction:uH,deriveAddressAtIndex:B,derivePrivateKeyAtIndex:V,estimateMaxSendableAmount:mZ(y),estimateTransactionFee:gZ(y),getAddress:N,getAddressFromKeys:$2(y),getBalance:w0(y),getExtendedPublicKey:C,getExtendedPublicKeyInfo:O,getFeeRates:()=>W1(y),getInputsOutputsFee:pH,getNetworkForChain:()=>h0(y),getPrivateKeyFromMnemonic:(Y)=>uZ(J1({...Y,chain:y}).privateKey,y),isRBFEnabled:R,keys:G,resolveDerivationIndex:k,signAndBroadcastTransaction:J,signTransaction:z,signTransactionWithMultipleKeys:S,transfer:nZ(y,W),transferFromMultipleAddresses:$,validateAddress:O2(y)}}var hH,Py,M2,Ff,v,Q0,_2,y5,Df;var z1=h(()=>{Hy();i1();Y1();e1();hH=require("@noble/curves/secp256k1.js"),Py=require("@scure/base"),M2=require("@scure/bip32"),Ff=require("@scure/bip39"),v=require("@swapkit/helpers"),Q0=require("@swapkit/utxo-signer"),_2=require("ts-pattern"),y5=[v.Chain.Dash,v.Chain.Dogecoin,v.Chain.Zcash,v.Chain.BitcoinCash],Df=[v.Chain.Bitcoin]});function T5(y){return ny(r1(y))}function cZ(y){let T=h0(Uy);function H(X){return X.sign(y.privateKey,[j0.BCHSigHash.ALL]),X}function f(){let X=j0.p2pkh(y.publicKey,T);if(!X.hash)throw new I0.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let Q=j0.encodeCashAddr({hash:X.hash,prefix:j0.CashAddrPrefix.MAINNET,type:j0.CashAddrType.P2PKH});return Promise.resolve(Q.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:H}}function k2(y){let T="phrase"in y?y.phrase:void 0,H="index"in y?y.index||0:0,f=I0.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:I0.updateDerivationPath(I0.NetworkDerivationPath[Uy],{index:H})),X=T?J1({chain:Uy,derivationPath:f,phrase:T}):void 0,Q=X?cZ(X):("signer"in y)?y.signer:void 0;function Z(){return Promise.resolve(Q?.getAddress())}let{getBalance:q,getFeeRates:U,broadcastTx:W,...G}=Vy({chain:Uy});function N(C,O=!0){return q(ny(r1(C)))}function _(C){if(!Q)throw new I0.SwapKitError("toolbox_utxo_no_signer");return Q.signTransaction(C)}async function M(C){let O=await _(C);return O.finalize(),await W(N2.hex.encode(O.extract()))}return{...G,broadcastTx:W,buildTx:iZ,createTransaction:mH,getAddress:Z,getAddressFromKeys:tZ,getBalance:N,getFeeRates:U,signAndBroadcastTransaction:M,signTransaction:_,stripPrefix:ny,stripToCashAddress:T5,transfer:dZ({broadcastTx:W,getFeeRates:U,signer:Q}),validateAddress:Iy}}async function mH({assetValue:y,recipient:T,memo:H,feeRate:f,sender:X,sweep:Q}){if(!Iy(T))throw new I0.SwapKitError("toolbox_utxo_invalid_address",{address:T});let Z=Math.ceil(y.getBaseValue("number")+f*7500),q=await K0(Uy).getUtxos({address:T5(X),fetchTxHex:!0,targetValue:Q?void 0:Z}),U=H?o0(H):null,W=[],G=zy(T);if(W.push({address:G,value:Q?0:y.getBaseValue("number")}),U)W.push({script:U,value:0});let{inputs:N,outputs:_}=i0({chain:Uy,feeRate:f,inputs:q,outputs:W,sweep:Q});if(!(N&&_))throw new I0.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let M=new j0.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!U,version:1}),C=zy(X),{inputs:O,tx:B}=jy({chain:Uy,compiledMemo:U,inputs:N,outputs:_.map((R)=>("address"in R)&&R.address?{...R,address:zy(R.address)}:R),sender:C,tx:M});return{inputs:O,tx:B,utxos:N}}function dZ({broadcastTx:y,getFeeRates:T,signer:H}){return async function({recipient:X,assetValue:Q,feeOptionKey:Z=I0.FeeOption.Fast,sweep:q,...U}){let W=await H?.getAddress();if(!(H&&W))throw new I0.SwapKitError("toolbox_utxo_no_signer");if(!X)throw new I0.SwapKitError("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let G=U.feeRate||(await T())[Z],{tx:N}=await mH({...U,assetValue:Q,feeRate:G,recipient:X,sender:W,sweep:q}),_=await H.signTransaction(N);return _.finalize(),y(N2.hex.encode(_.extract()))}}async function iZ({assetValue:y,recipient:T,memo:H,feeRate:f,sender:X}){let Q=r1(T);if(!Iy(Q))throw new I0.SwapKitError("toolbox_utxo_invalid_address",{address:Q});let Z=Math.ceil(y.getBaseValue("number")+f*7500),q=await K0(Uy).getUtxos({address:T5(X),fetchTxHex:!0,targetValue:Z}),U=Number(f.toFixed(0)),W=H?o0(H):null,G=[];if(G.push({address:zy(T),value:y.getBaseValue("number")}),W)G.push({script:W,value:0});let{inputs:N,outputs:_}=i0({chain:Uy,feeRate:U,inputs:q,outputs:G});if(!(N&&_))throw new I0.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let M=new j0.Transaction({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!W,version:1}),{inputs:C,tx:O}=jy({chain:Uy,compiledMemo:W,inputs:N,outputs:_,sender:zy(X),tx:M});return{inputs:C,tx:O,utxos:q}}function tZ(y){let T=j0.NETWORKS.bitcoinCash,H=j0.p2pkh(y.publicKey,T);if(!H.hash)throw new I0.SwapKitError("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return j0.encodeCashAddr({hash:H.hash,prefix:j0.CashAddrPrefix.MAINNET,type:j0.CashAddrType.P2PKH}).replace(/^bitcoincash:/,"")}var N2,I0,j0,Uy;var Rf=h(()=>{Y1();z1();e1();N2=require("@scure/base"),I0=require("@swapkit/helpers"),j0=require("@swapkit/utxo-signer"),Uy=I0.Chain.BitcoinCash});function F2(){let{isStagenet:y}=B0.SKConfig.get("envs");return y?z0.ZCASH_TEST_NETWORK:z0.ZCASH_NETWORK}function aZ(y){return rZ.encode(y)}function sZ({phrase:y,derivationPath:T}){let H=D2.mnemonicToSeedSync(y),X=B2.HDKey.fromMasterSeed(H).derive(T);if(!X.privateKey||!X.publicKey)throw new B0.SwapKitError("toolbox_utxo_invalid_params");let{privateKey:Q,publicKey:Z}=X,q=z0.utils.hash160(Z),{isStagenet:U}=B0.SKConfig.get("envs"),W=U?new Uint8Array([29,37]):new Uint8Array([28,184]),G=new Uint8Array(W.length+q.length);G.set(W,0),G.set(q,W.length);let N=aZ(G);return{getAddress:()=>Promise.resolve(N),signTransaction:(_)=>{if(_ instanceof z0.ZcashPSBT){let M=_.toPCZT();return M.signAllInputs(Q,Z,z0.ZcashSigHash.ALL),M.finalizeAllInputs(),Promise.resolve(M.extract())}if(_ instanceof z0.PCZT)return _.signAllInputs(Q,Z,z0.ZcashSigHash.ALL),_.finalizeAllInputs(),Promise.resolve(_.extract());return _.signAllInputs(Q,Z,z0.ZcashSigHash.ALL),Promise.resolve(_)}}}function eZ({inputs:y,outputs:T,tx:H,sender:f,compiledMemo:X}){let Q=F2();for(let Z of y){let q=z0.Address(Q).decode(f),U=z0.OutScript.encode(q);H.addInput({index:Z.index,script:U,sequence:4294967295,txid:xf.hex.decode(Z.hash),value:BigInt(Z.value)})}for(let Z of T){let q="address"in Z&&Z.address?Z.address:f,U=Z.script;if(U&&!X)continue;if(U&&X)H.addOutput({amount:0n,script:X});else H.addOutputAddress(q,BigInt(Z.value),Q)}return{inputs:y,tx:H}}async function gH(y){let{assetValue:T,recipient:H,memo:f,feeRate:X,sender:Q,fetchTxHex:Z,sweep:q}=y,U=F2();if(!z0.isTransparentZcashAddress(Q,U))throw new B0.SwapKitError("toolbox_utxo_invalid_address",{address:Q});if(!z0.isTransparentZcashAddress(H,U))throw new B0.SwapKitError("toolbox_utxo_invalid_address",{address:H,error:"Zcash transaction creation currently supports transparent addresses only"});let W=f?o0(f):null,G=await K0(B0.Chain.Zcash).getUtxos({address:Q,fetchTxHex:Z!==!1}),N=[{address:H,value:q?0:Number(T.getBaseValue("string"))},...W?[{script:W,value:0}]:[]],{inputs:_,outputs:M}=i0({chain:B0.Chain.Zcash,changeAddress:Q,feeRate:X,inputs:G,outputs:N,sweep:q});if(!(_&&M))throw new B0.SwapKitError("toolbox_utxo_insufficient_balance",{assetValue:T,sender:Q});let C=z0.createZcashTransaction({consensusBranchId:z0.ZcashConsensusBranchId.NU6_2,expiryHeight:0,lockTime:0,version:4,versionGroupId:z0.ZcashVersionGroupId.SAPLING}),{tx:O,inputs:B}=eZ({compiledMemo:W,inputs:_,outputs:M,sender:Q,tx:C});return{inputs:B,outputs:M,tx:O}}function R2(y){let T=G1.match(y).with({signer:G1.P.not(G1.P.nullish)},({signer:U})=>U).with({phrase:G1.P.string},({phrase:U,derivationPath:W,index:G=0})=>{let N=W||B0.NetworkDerivationPath[B0.Chain.Zcash]||[44,133,0,0,0],_=B0.updateDerivationPath(N,{index:G}),M=B0.derivationPathToString(_);return sZ({derivationPath:M,phrase:U})}).otherwise(()=>{return}),H=Vy({chain:B0.Chain.Zcash,signer:T});async function f(U){if(!T)throw new B0.SwapKitError("toolbox_utxo_no_signer");return await T.signTransaction(U)}async function X(U){let W=await f(U);return H.broadcastTx(W.toHex())}async function Q({recipient:U,assetValue:W,feeOptionKey:G=B0.FeeOption.Fast,sweep:N,..._}){let M=await T?.getAddress();if(!(T&&M))throw new B0.SwapKitError("toolbox_utxo_no_signer");let C=_.feeRate||(await H.getFeeRates())[G],{tx:O}=await gH({..._,assetValue:W,feeRate:C,recipient:U,sender:M,sweep:N}),R=(await T.signTransaction(O)).toHex();return H.broadcastTx(R)}function Z({phrase:U,derivationPath:W="m/44'/133'/0'/0/0"}){let G=D2.mnemonicToSeedSync(U),_=B2.HDKey.fromMasterSeed(G).derive(W);if(!_.privateKey||!_.publicKey)throw new B0.SwapKitError("toolbox_utxo_invalid_params");return{privateKey:_.privateKey,publicKey:_.publicKey}}function q({phrase:U,derivationPath:W="m/44'/133'/0'/0/0"}){let G=Z({derivationPath:W,phrase:U}),N=F2();return z0.WIF(N).encode(G.privateKey)}return{...H,createKeysForPath:Z,createTransaction:gH,getPrivateKeyFromMnemonic:q,signAndBroadcastTransaction:X,signTransaction:f,transfer:Q,validateAddress:cy.validateZcashAddress}}var xf,B2,D2,B0,z0,G1,rZ;var x2=h(()=>{Y1();z1();e1();xf=require("@scure/base"),B2=require("@scure/bip32"),D2=require("@scure/bip39"),B0=require("@swapkit/helpers"),z0=require("@swapkit/utxo-signer"),G1=require("ts-pattern");rZ=xf.createBase58check(z0.utils.sha256)});function dH({xpub:y,chain:T,count:H,startIndex:f=0,accountIndex:X}){if(s0("count",H),H<1)throw RangeError("count must be at least 1");s0("startIndex",f);let Q=h0(T),Z=nH.HDKey.fromExtendedKey(y,Q.bip32),q=Ry({accountIndex:X,chain:T}),U=py(q),W=[];for(let G of[!1,!0]){let N=Z.deriveChild(Number(G));for(let _=0;_<H;_++){let M=f+_,C=N.deriveChild(M);if(!C.publicKey)continue;let O=Z1({accountIndex:X,chain:T,change:G,index:M});W.push({accountIndex:U,address:f5({chain:T,network:Q,publicKey:C.publicKey}),change:G,index:M,path:cH.derivationPathToString(O),pubkey:oH.hex.encode(C.publicKey)})}}return W}var oH,nH,cH;var iH=h(()=>{i1();z1();oH=require("@scure/base"),nH=require("@scure/bip32"),cH=require("@swapkit/helpers")});function yq(y,T){switch(y){case Gy.Chain.BitcoinCash:return k2(T||{});case Gy.Chain.Zcash:return R2(T);case Gy.Chain.Bitcoin:case Gy.Chain.Dogecoin:case Gy.Chain.Litecoin:case Gy.Chain.Dash:return Vy({chain:y,...T});default:throw new Gy.SwapKitError("toolbox_utxo_not_supported",{chain:y})}}var Gy;var tH=h(()=>{Rf();z1();x2();i1();iH();Rf();e1();Gy=require("@swapkit/helpers")});var I2={};P0(I2,{validateZcashAddress:()=>cy.validateZcashAddress,validateUtxoAddress:()=>C2,validateBchAddress:()=>Iy,toLegacyAddress:()=>zy,toCashAddress:()=>r1,stripToCashAddress:()=>T5,stripPrefix:()=>ny,nonSegwitChains:()=>y5,isValidAddress:()=>z2,getUtxoToolbox:()=>yq,getUtxoNetwork:()=>IZ,getUtxoApi:()=>K0,getUTXOAddressValidator:()=>O2,getUTXOAddressPath:()=>Z1,getUTXOAccountPath:()=>Ry,getUTXOAccountIndexFromPath:()=>py,getScriptTypeForAddress:()=>q1,getOutputSize:()=>s1,getNetworkForChain:()=>h0,getInputSize:()=>xy,getDustThreshold:()=>U1,detectAddressNetwork:()=>G2,deriveAddressesFromXpub:()=>dH,createZcashToolbox:()=>R2,createUTXOToolbox:()=>Vy,createHDWalletHelpers:()=>NH,createCustomUtxoApi:()=>xZ,createBCHToolbox:()=>k2,compileMemo:()=>o0,calculateTxSize:()=>oy,assertDerivationIndex:()=>s0,addressFromKeysGetter:()=>$2,addInputsAndOutputs:()=>jy,accumulative:()=>i0,UtxoNetwork:()=>W2,UTXOScriptType:()=>Bf,TX_OVERHEAD:()=>Nf,SEGWIT_MARKER_FLAG_WEIGHT:()=>kf,OutputSizes:()=>a1,OP_RETURN_OVERHEAD:()=>EH,MIN_TX_FEE:()=>vZ,InputSizes:()=>$f});module.exports=S0(I2);var P2=h(()=>{z1();i1();Y1();tH();Rf();x2()});function H5(y){return y.length>=2&&y.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(y)}async function Pf(y){let{KeyPair:T}=await import("@near-js/crypto"),H=y.index||0,f=y.derivationPath?If.derivationPathToString(y.derivationPath.slice(0,3)):`m/44'/397'/${H}'`,{parseSeedPhrase:X}=await import("near-seed-phrase"),{secretKey:Q}=X(y.phrase,f),Z=T.fromString(Q);return rH(Z)}async function j2(y){let{KeyPair:T}=await import("@near-js/crypto"),H=T.fromString(y);return rH(H)}async function rH(y){let{KeyPairSigner:T}=await import("@near-js/signers");class H extends T{#y;constructor(f){super(f);this.#y=f}getAddress(){let f=this.#y.getPublicKey(),X=Buffer.from(f.data).toString("hex");return Promise.resolve(X)}}return new H(y)}async function jf(y,T){let f=(await y.query({account_id:T,finality:"final",request_type:"view_access_key_list"})).keys.find((q)=>q.access_key.permission==="FullAccess");if(!f)throw new If.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:X}=await import("@near-js/crypto"),Q=X.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:Q}}var If;var V2=h(()=>{If=require("@swapkit/helpers")});function K2(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function S2(y){return"contractId"in y&&"methodName"in y}function A2(y){return"actions"in y}function w2(y){return"newAccountId"in y}function E2(y){return"contractCode"in y}function v2(y){return"customEstimator"in y}function b2(y){let T=0;for(let H of y)switch(H.enum){case"transfer":T+=Number(v0.SIMPLE_TRANSFER);break;case"functionCall":T+=Number(v0.CONTRACT_CALL);break;case"createAccount":T+=Number(v0.ACCOUNT_CREATION);break;case"deployContract":T+=Number(v0.CONTRACT_DEPLOYMENT);break;case"addKey":T+=Number(v0.ACCESS_KEY_ADDITION);break;case"deleteKey":T+=Number(v0.ACCESS_KEY_DELETION);break;case"stake":T+=Number(v0.STAKE);break;default:T+=Number(v0.CONTRACT_CALL)}return T.toString()}function h2(y){if(y==="ft_transfer"||y==="ft_transfer_call")return v0.TOKEN_TRANSFER;if(y==="storage_deposit")return v0.STORAGE_DEPOSIT;return v0.CONTRACT_CALL}function fq(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function Tq(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var v0;var l2=h(()=>{v0={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 u2({account:y,contractId:T,viewMethods:H,changeMethods:f}){let{Contract:X}=await import("@near-js/accounts");return new X(y,T,{changeMethods:f,useLocalViewExecution:!0,viewMethods:H})}function qq(y){let T;async function H(){if(T)return T;return T=await L1.match(y).with({phrase:L1.P.string},async(x)=>{return await Pf(x)}).with({signer:L1.P.any},({signer:x})=>x).otherwise(()=>{return}),T}async function f(){let{JsonRpcProvider:x}=await import("@near-js/providers"),w=await J0.getRPCUrl(J0.Chain.Near);return new x({url:w})}async function X(x){let{Account:w}=await import("@near-js/accounts"),b=await f(),c=await H(),d=x||await Q();return new w(d,b,c)}async function Q(){let x=await H();if(!x)throw new J0.SwapKitError("toolbox_near_no_signer");return await x.getAddress()}async function Z(x,w){return(w||await f()).callFunction(x.contractId,"storage_balance_of",{account_id:x.accountId},{finality:"final"})}async function q(x,w){try{let b=await w.callFunction(x,"storage_balance_bounds",{},{finality:"final"});return b?.min?BigInt(b.min):aH}catch{return aH}}function U(x){return(x*(p2+Zq)+p2-1n)/p2}function W(x,w){return BigInt(x)*BigInt(w.runtime_config.storage_amount_per_byte)}function G(x,w){if(x<=0n)throw new J0.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:w});return x}async function N(x){return await(x||await f()).experimental_protocolConfig({finality:"final"})}async function _(x,w,b){let d=await(b||await f()).callFunction(x,"ft_balance_of",{account_id:w},{finality:"final"});return BigInt(d||"0")}async function M(x){if(!await H())throw new J0.SwapKitError("toolbox_near_no_signer");let{assetValue:b,recipient:c,memo:d,sweep:f0}=x,G0=await Q(),Z0=await B({assetValue:b,memo:d,recipient:c,sender:G0,sweep:f0});return Y(Z0)}async function C({assetValue:x,attachedDeposit:w,memo:b,provider:c,recipient:d,sender:f0,sweep:G0}){let Z0=x.address;if(!Z0)throw new J0.SwapKitError("toolbox_near_missing_contract_address");let _0=await Z({accountId:d,contractId:Z0},c),A0=_0?0n:await q(Z0,c),fy=_0?Xq:Hq,Ty=BigInt(w||"1"),ry=x.getBaseValue("bigint");if(G0){let[ay,sy,k1,Y5]=await Promise.all([_(Z0,f0,c),c.viewAccount(f0,{finality:"final"}),N(c),D(c)]);ry=G(ay,{asset:x.toString(),balance:ay.toString()});let J5=W(sy.storage_usage,k1),B1=sy.amount-J5,W5=A0,JT=(fy+(_0?0n:sH))*U(Y5)+W5+Ty;if(B1<JT)throw new J0.SwapKitError("toolbox_sweep_amount_too_low",{asset:x.toString(),availableNear:B1.toString(),reason:"Insufficient NEAR to cover token transfer gas and storage deposit",requiredNear:JT.toString()})}let Ly=[];if(!_0)Ly.push(await V({args:{account_id:d},attachedDeposit:A0.toString(),gas:sH.toString(),methodName:"storage_deposit"}));return Ly.push(await V({args:{amount:ry.toString(),memo:b||null,receiver_id:d},attachedDeposit:Ty.toString(),gas:fy.toString(),methodName:"ft_transfer"})),j({actions:Ly,receiverId:Z0,sender:f0})}async function O({assetValue:x,attachedDeposit:w,memo:b,provider:c,recipient:d,sender:f0,sweep:G0}){let{publicKey:Z0,nonce:_0}=await jf(c,f0),A0=x.getBaseValue("bigint");if(G0){let[k1,Y5]=await Promise.all([c.viewAccount(f0,{finality:"final"}),N(c)]),J5=await L({assetValue:x,memo:b,recipient:d,sweep:G0},Y5),B1=W(k1.storage_usage,Y5),W5=0n;if(b&&w){let YT=await D(c);W5=Qq*U(YT)+BigInt(w)}A0=G(k1.amount-J5.getBaseValue("bigint")-B1-W5,{asset:x.toString(),balance:k1.amount.toString(),fee:J5.getBaseValue("bigint").toString(),storageStakeReserve:B1.toString()})}let{actionCreators:fy,createTransaction:Ty}=await import("@near-js/transactions"),{baseDecode:ry}=await import("@near-js/utils"),Ly=[fy.transfer(A0)];if(b&&w)Ly.push(fy.functionCall("memo",{memo:b},BigInt("250000000000000"),BigInt(w)));let ay=await c.block({finality:"final"}),sy=ry(ay.header.hash);return Ty(f0,Z0,d,_0+1,Ly,sy)}async function B({recipient:x,assetValue:w,memo:b,attachedDeposit:c,sender:d,functionCall:f0,sweep:G0}){if(!H5(x))throw new J0.SwapKitError("toolbox_near_invalid_address",{recipient:x});if(!H5(d))throw new J0.SwapKitError("toolbox_near_invalid_address",{sender:d});if(f0)return I({...f0,sender:d});if(G0&&!await H())throw new J0.SwapKitError("toolbox_near_no_signer");let Z0=await f(),_0={assetValue:w,attachedDeposit:c,memo:b,provider:Z0,recipient:x,sender:d,sweep:G0};return w.isGasAsset?O(_0):C(_0)}function R(x){let w=x.encode();return Buffer.from(w).toString("base64")}async function I({args:x,attachedDeposit:w,contractId:b,gas:c,methodName:d,sender:f0}){let G0=await V({args:x,attachedDeposit:w,gas:c,methodName:d});return j({actions:[G0],receiverId:b,sender:f0})}async function j({actions:x,receiverId:w,sender:b}){let c=await f(),{publicKey:d,nonce:f0}=await jf(c,b),{createTransaction:G0}=await import("@near-js/transactions"),{baseDecode:Z0}=await import("@near-js/utils"),_0=await c.block({finality:"final"}),A0=Z0(_0.header.hash);return G0(b,d,w,f0+1,x,A0)}async function V(x){let{actionCreators:w}=await import("@near-js/transactions");return w.functionCall(x.methodName,Buffer.from(JSON.stringify(x.args)),BigInt(x.gas),BigInt(x.attachedDeposit))}async function S(x){let w=await H();if(!w)throw new J0.SwapKitError("toolbox_near_no_signer");await $(x);let[b,c]=await w.signTransaction(x);return c}async function $(x){let w=x.publicKey;if(w.toString?.().startsWith("ed25519:")||w.toString?.().startsWith("secp256k1:"))return;let{KeyType:b,PublicKey:c}=await import("@near-js/crypto"),d=w.data||w.ed25519Key?.data,f0=w.secp256k1Key?.data;if(d){x.publicKey=new c({data:Uint8Array.from(d),keyType:b.ED25519});return}if(f0)x.publicKey=new c({data:Uint8Array.from(f0),keyType:b.SECP256K1})}function k(x){if(typeof x==="string")return x;if(Array.isArray(x))return x.map(k).find(Boolean);if(!(x&&typeof x==="object"))return;let w=x;return w.transaction?.hash||w.transaction_outcome?.id}function z(x){return x instanceof Error?x.message:String(x)}async function J(x){let b=await(await f()).sendTransaction(x),c=k(b);if(!c)throw new J0.SwapKitError("toolbox_near_transfer_failed",{result:b});return c}async function Y(x){let w=await H();if(!w)throw new J0.SwapKitError("toolbox_near_no_signer");let b;try{b=await S(x)}catch(c){let d;try{d=w.signAndSendTransaction?await w.signAndSendTransaction({actions:x.actions,receiverId:x.receiverId,signerId:x.signerId}):await w.signAndSendTransactions?.({transactions:[x]})}catch(G0){throw new J0.SwapKitError({errorKey:"toolbox_near_sign_transaction_failed",info:{directSignError:z(c),signAndSendError:z(G0)}},G0)}let f0=k(d);if(f0)return f0;throw c}return J(b)}async function L(x,w){let b=await H();if("assetValue"in x){if(x.sweep&&!b)throw new J0.SwapKitError("toolbox_near_no_signer");try{let[d,f0]=await Promise.all([D(),w?Promise.resolve(w):N()]),{runtime_config:G0}=f0,{execution:Z0,send_sir:_0}=G0.transaction_costs.action_receipt_creation_config,{execution:A0,send_sir:fy}=G0.transaction_costs.action_creation_config.transfer_cost,Ty=BigInt(fy)+BigInt(A0),ry=BigInt(_0)+BigInt(Z0),Ly=Ty+ry,ay=x.sweep?U(d):d,sy=Ly*ay;return J0.AssetValue.from({chain:J0.Chain.Near,value:sy})}catch(d){throw new J0.SwapKitError({errorKey:"toolbox_fee_estimation_failed",info:{chain:J0.Chain.Near,message:z(d)}},d)}}let c=b?await X():void 0;return u(x,c)}async function D(x){let b=await(x||await f()).gasPrice(null);return BigInt(b.gas_price)}async function F(x,w,b){if(!await H())throw new J0.SwapKitError("toolbox_near_no_signer");let d=await X(),{formatNearAmount:f0}=await import("@near-js/utils"),{PublicKey:G0}=await import("@near-js/crypto"),Z0=f0(b)||"0";return(await d.createAccount(x,G0.fromString(w),BigInt(Z0))).transaction.hash}async function P(x){let w=await H();try{if(!w)throw new J0.SwapKitError("toolbox_near_no_signer");let{actionCreators:b}=await import("@near-js/transactions"),{contractId:c,methodName:d,args:f0,deposit:G0}=x,Z0=await X(),_0=await u({args:f0||{},contractId:c,methodName:d}),A0=b.functionCall(d,f0||{},_0.getBaseValue("bigint"),BigInt(G0||"1"));return(await Z0.signAndSendTransaction({actions:[A0],receiverId:c})).transaction_outcome.id}catch(b){throw new J0.SwapKitError("toolbox_near_transfer_failed",{error:b})}}async function A(x){let w=await X();return u2({account:w,changeMethods:x.changeMethods,contractId:x.contractId,viewMethods:x.viewMethods})}async function E(x){if(!await H())throw new J0.SwapKitError("toolbox_near_no_signer");if(x.actions.length===0)throw new J0.SwapKitError("toolbox_near_empty_batch");return(await(await X()).signAndSendTransaction({actions:x.actions,receiverId:x.receiverId})).transaction.hash}async function u(x,w){let b=await L1.match(x).when(K2,()=>v0.SIMPLE_TRANSFER).when(S2,(d)=>h2(d.methodName)).when(A2,(d)=>b2(d.actions)).when(w2,()=>v0.ACCOUNT_CREATION).when(E2,()=>v0.CONTRACT_DEPLOYMENT).when(v2,(d)=>{if(!w)throw new J0.SwapKitError("toolbox_near_no_account");return d.customEstimator(w)}).otherwise(()=>{throw new J0.SwapKitError("toolbox_near_invalid_gas_params")}),c=BigInt(b)*BigInt(1000000000000);return J0.AssetValue.from({chain:J0.Chain.Near,value:c})}function s(x,w){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),u(x,w)}async function H0(){let x=await f();try{return(await x.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function R0(){let x=await H();return x?(await x.getPublicKey()).toString():""}return{broadcastTransaction:J,callFunction:P,createAction:V,createContract:A,createContractFunctionCall:I,createSubAccount:F,createTransaction:B,estimateGas:s,estimateGasLimit:u,estimateTransactionFee:L,executeBatchTransaction:E,getAddress:Q,getBalance:w0(J0.Chain.Near),getGasPrice:H0,getNearProvider:f,getPublicKey:R0,getSignerFromPhrase:Pf,getSignerFromPrivateKey:j2,serializeTransaction:R,signAndBroadcastTransaction:Y,signTransaction:S,transfer:M,validateAddress:H5}}var J0,L1,aH=1250000000000000000000n,sH=150000000000000n,Hq=150000000000000n,Xq=250000000000000n,Qq=250000000000000n,Zq=500n,p2=10000n;var m2=h(()=>{Hy();V2();l2();J0=require("@swapkit/helpers"),L1=require("ts-pattern")});var eH=h(()=>{m2()});var g2={};P0(g2,{validateNearAddress:()=>H5,tgasToGas:()=>fq,isSimpleTransfer:()=>K2,isCustomEstimator:()=>v2,isContractDeployment:()=>E2,isContractCall:()=>S2,isBatchTransaction:()=>A2,isAccountCreation:()=>w2,getNearToolbox:()=>qq,getNearSignerFromPrivateKey:()=>j2,getNearSignerFromPhrase:()=>Pf,getFullAccessPublicKey:()=>jf,getContractMethodGas:()=>h2,gasToTGas:()=>Tq,estimateBatchGas:()=>b2,createNearContract:()=>u2,GAS_COSTS:()=>v0});module.exports=S0(g2);var o2=h(()=>{V2();l2();m2();eH()});var n2={};P0(n2,{validateRadixAddress:()=>yX,getRadixToolbox:()=>Wq});module.exports=S0(n2);function yX(y){return y.startsWith("account_rdx1")&&y.length===66}async function Uq({address:y,networkApi:T}){let H=!0,f,X=[],Q=await Jq(T);while(H){let Z={address:y,at_ledger_state:{state_version:Q},cursor:f,limit_per_page:100},q=await T.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:Z});if(X=X.concat(q.items),q.next_cursor)f=q.next_cursor;else H=!1}return X}async function Yq({resources:y,networkApi:T}){let H=[],f=50,X=[];for(let Q=0;Q<y.length;Q+=50)X.push(y.slice(Q,Q+50));for(let Q of X){let Z=Q.map((W)=>W.resource_address),q=await T.state.getEntityDetailsVaultAggregated(Z),U=new Map;for(let W of q)if(W.details!==void 0){let G=W.metadata?.items.find((_)=>_.key==="symbol"),N=G?.value.typed.type==="String"?G.value.typed.value:"?";if(W.details.type==="FungibleResource")U.set(W.address,{decimals:W.details.divisibility,symbol:N})}for(let W of Q)if(W.aggregation_level==="Global"){let G=U.get(W.resource_address)||{decimals:0,symbol:"?"},N=e0.AssetValue.from({asset:G.symbol!==e0.Chain.Radix?`${e0.Chain.Radix}.${G.symbol}-${W.resource_address}`:"XRD.XRD",value:W.amount});H.push(N)}}return H}async function Jq(y){return(await y.status.getCurrent()).ledger_state.state_version}function Wq({dappConfig:y}={}){let T=y||e0.SKConfig.get("integrations").radix,H;async function f(){if(H)return H;let{GatewayApiClient:Q}=await import("@radixdlt/babylon-gateway-api-sdk"),{RadixDappToolkit:Z}=await import("@radixdlt/radix-dapp-toolkit"),q=Z({...T,networkId:T.network?.networkId||1});return H=Q.initialize(q.gatewayApi.clientConfig),H}async function X(Q){let Z=await f(),q=await Uq({address:Q,networkApi:Z}),U=await Yq({networkApi:Z,resources:q});if(!U.some((G)=>G.isGasAsset))return[e0.AssetValue.from({chain:e0.Chain.Radix}),...U];return U}return{getAddress:()=>"",getBalance:X,getNetworkApi:f,signAndBroadcast:()=>{throw new e0.SwapKitError("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:yX}}var e0;var c2=h(()=>{e0=require("@swapkit/helpers")});function Vf(y){return/^[0-9A-Fa-f]{40}$/.test(y)}function dy(y){if(Vf(y))return y.toUpperCase();if(y.length<=3){let H=Buffer.from(y.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${H}${"0".repeat(10)}`.toUpperCase()}let T=Buffer.from(y).toString("hex").toUpperCase();if(T.length>40)throw new fX.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return T.padEnd(40,"0")}function zq(y){if(!Vf(y))return y;if(y.toUpperCase().startsWith("00")){let T=y.slice(24,30);try{let H=Buffer.from(T,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(H)&&H.length>0)return H}catch{}return y.toUpperCase()}try{let T=y.replace(/0+$/,""),H=T.length%2===0?T:`${T}0`,f=Buffer.from(H,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function M1(y){if(Vf(y))return y.toUpperCase();if(y.length<=3)return y;return dy(y)}var fX;var Kf=h(()=>{fX=require("@swapkit/helpers")});async function Gq(y,T){let H=M1(y),f=Af.find((X)=>M1(X.currency)===H&&X.issuer===T);if(f)return f;try{let X=await Sf.RequestClient.get(`https://api.xrplmeta.org/token/${y}:${T}`);if(X)return{currency:y,decimals:15,description:X.desc,domain:X.domain,icon:X.icon,issuer:T,name:X.name,verified:X.self_assessment?.is_regulated||X.self_assessment?.is_licensed}}catch(X){Sf.warnOnce({condition:!0,id:`xrpl_token_lookup_${y}_${T}`,warning:`Failed to fetch XRPL token info for ${y}:${T}: ${X}`})}return{currency:y,decimals:15,issuer:T,verified:!1}}function Lq(y){return Af.filter((T)=>T.issuer===y)}function Mq(y,T){let H=M1(y);return Af.some((f)=>M1(f.currency)===H&&f.issuer===T)}var Sf,Af;var TX=h(()=>{Kf();Sf=require("@swapkit/helpers"),Af=[{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 i2={};P0(i2,{validateRippleAddress:()=>X5,parseXrplTokenIdentifier:()=>d2,normalizeCurrency:()=>M1,isKnownToken:()=>Mq,isHexCurrency:()=>Vf,hexToCurrency:()=>zq,getXrplTokenInfo:()=>Gq,getRippleToolbox:()=>Cq,getKnownTokensByIssuer:()=>Lq,formatXrplTokenIdentifier:()=>ZX,currencyToHex:()=>dy,XRPL_TOKEN_ERROR_CODES:()=>wf,XRPL_KNOWN_TOKENS:()=>Af});module.exports=S0(i2);function HX(y){if(typeof y!=="object"||y===null||!("data"in y))return!1;let{data:T}=y;return typeof T==="object"&&T!==null&&"error_code"in T&&T.error_code===_q.ACCOUNT_NOT_FOUND}function d2(y){let T=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!T?.[1]||!T?.[2])return null;if(!X5(T[2]))return null;return{currency:T[1],issuer:T[2]}}function ZX(y,T){return`${a.Chain.Ripple}.${y}-${T}`}async function XX(y){if(y.isGasAsset){let{xrpToDrops:H}=await import("xrpl");return H(y.getValue("string"))}let T=d2(y.toString());if(!T)throw new a.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:T.currency,issuer:T.issuer,value:y.getValue("string")}}function QX(y){let T,H=()=>{return T??=import("xrpl").then(({Wallet:f})=>f.fromMnemonic(y)),T};return{getAddress:async()=>(await H()).address,signTransaction:async(f)=>(await H()).sign(f)}}function X5(y){return Ef.isValidClassicAddress(y)||Ef.isValidXAddress(y)}function Cq(y={}){let T;async function H(){if(T)return T;return T=await _1.match(y).with({phrase:_1.P.string},({phrase:$})=>QX($)).with({signer:_1.P.any},({signer:$})=>$).otherwise(()=>{return}),T}let f;async function X(){let $=await a.getRPCUrl(a.Chain.Ripple);if(!$)throw new a.SwapKitError({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:a.Chain.Ripple}});let{Client:k}=await import("xrpl"),z=new k($);return await z.connect(),z}async function Q(){if(f){let $=await f.catch(()=>null);if($?.isConnected())return $}return f=X(),f}async function Z($){let k=await $.request({command:"server_state"}),z=k.result.state.validated_ledger??k.result.state.closed_ledger;if(!z||!Number.isSafeInteger(z.reserve_base)||z.reserve_base<0||!Number.isSafeInteger(z.reserve_inc)||z.reserve_inc<0)throw new a.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{reason:"XRPL reserve data is unavailable or invalid"}});return{baseReserveDrops:BigInt(z.reserve_base),ownerReserveDrops:BigInt(z.reserve_inc)}}let q=async()=>{let $=await H();if(!$)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return $.getAddress()},U=async($)=>{let k=$||await q(),{baseDecimal:z}=a.getChainConfig(a.Chain.Ripple),J=await Q();try{let[Y,L]=await Promise.all([J.request({account:k,command:"account_info"}),J.request({account:k,command:"account_lines"})]),D=Y.result.account_data.Balance,F=[a.AssetValue.from({chain:a.Chain.Ripple,fromBaseDecimal:z,value:D})];for(let P of L.result.lines){let A=ZX(P.currency,P.account);if(Number.parseFloat(P.balance)!==0)F.push(a.AssetValue.from({asset:A,asyncTokenLookup:!1,value:P.balance}))}return F}catch(Y){if(HX(Y))return[a.AssetValue.from({chain:a.Chain.Ripple,value:0})];throw new a.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{address:k,error:Y}})}},W=async()=>{let{baseDecimal:$}=a.getChainConfig(a.Chain.Ripple),J=(await(await Q()).request({command:"fee"})).result.drops.open_ledger_fee;return a.AssetValue.from({chain:a.Chain.Ripple,fromBaseDecimal:$,value:J})};async function G($){let k=$||await q(),z=await Q();try{return(await z.request({account:k,command:"account_lines"})).result.lines.map((Y)=>({account:Y.account,authorized:Y.authorized??!1,balance:Y.balance,currency:Y.currency,freeze:Y.freeze??!1,freezePeer:Y.freeze_peer??!1,limit:Y.limit,limitPeer:Y.limit_peer,noRipple:Y.no_ripple??!1,noRipplePeer:Y.no_ripple_peer??!1,peerAuthorized:Y.peer_authorized??!1,qualityIn:Y.quality_in??0,qualityOut:Y.quality_out??0}))}catch(J){if(HX(J))return[];throw new a.SwapKitError({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:k,error:J}})}}async function N({address:$,currency:k,issuer:z}){let J=await G($),Y=dy(k);return J.some((L)=>{return dy(L.currency)===Y&&L.account===z})}async function _({currency:$,issuer:k,limit:z,sender:J}){let Y=J||await q();if(!X5(k))throw new a.SwapKitError({errorKey:"core_transaction_invalid_recipient_address",info:{address:k}});let L=Number.parseFloat(z);if(Number.isNaN(L)||L<0)throw new a.SwapKitError({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:z}});let D=await Q(),F={Account:Y,LimitAmount:{currency:$,issuer:k,value:z},TransactionType:"TrustSet"};return D.autofill(F)}async function M($,k){let[z,J,Y]=await Promise.all([$.request({account:k,command:"account_info"}),Z($),W()]),{Balance:L,OwnerCount:D}=z.result.account_data,F=Y.getBaseValue("bigint"),P=BigInt(L)-J.baseReserveDrops-BigInt(D)*J.ownerReserveDrops-F;if(P<=0n)throw new a.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:a.Chain.Ripple,balance:L,baseReserve:J.baseReserveDrops.toString(),fee:F.toString(),ownerCount:D,ownerReserve:J.ownerReserveDrops.toString()}});let{baseDecimal:A}=a.getChainConfig(a.Chain.Ripple),E=a.AssetValue.from({chain:a.Chain.Ripple,fromBaseDecimal:A,value:P.toString()});return{amount:await XX(E),fee:F.toString()}}async function C($,k){let z=d2($.toString());if(!z)throw new a.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:$.toString()}});let J=await Q(),Y="0",L;while(!0){let D=await J.request({account:k,command:"account_lines",peer:z.issuer,...L!==void 0&&{marker:L}}),F=D.result.lines.find((A)=>A.account===z.issuer&&dy(A.currency)===dy(z.currency));if(F){Y=F.balance;break}let P=D.result.marker;if(P===void 0||P===null)break;L=P}if(!Number.isFinite(Number(Y))||Number(Y)<=0)throw new a.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:$.toString(),balance:Y}});return{currency:z.currency,issuer:z.issuer,value:Y}}async function O({assetValue:$,recipient:k,memo:z,sender:J,sweep:Y,destinationTag:L,extendBySeconds:D=150}){if(!X5(k))throw new a.SwapKitError({errorKey:"core_transaction_invalid_recipient_address"});let F=J||await q();if($.chain!==a.Chain.Ripple)throw new a.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:$.toString()}});let P=Y&&$.isGasAsset?await M(await Q(),F):void 0,A=P?P.amount:Y?await C($,F):await XX($),E={Account:F,Amount:A,Destination:k,TransactionType:"Payment",...P&&{Fee:P.fee},...L!==void 0&&{DestinationTag:L}};if(z)E.Memos=[{Memo:{MemoData:Buffer.from(z).toString("hex")}}];let s=await(await Q()).autofill(E);if(s.LastLedgerSequence&&D>0)s.LastLedgerSequence+=Math.ceil(D/4);return s}async function B($){let k=await H();if(!k)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return k.signTransaction($)}async function R($){let z=await(await Q()).submitAndWait($),{result:J}=z;if(J.validated)return J.hash;let Y=J.meta?.TransactionResult,L=_1.match(Y).with(wf.tecNO_LINE,()=>"No trust line exists for this token").with(wf.tecPATH_DRY,()=>"Payment path could not deliver funds").with(wf.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new a.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:a.Chain.Ripple,...L?{reason:L}:{txResult:Y}}})}let I=async($)=>{try{let k=await B($);return R(k.tx_blob)}catch(k){if(k instanceof a.SwapKitError)throw k;throw new a.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:a.Chain.Ripple,error:k}})}};async function j({assetValue:$,memo:k,recipient:z,sweep:J}){let Y=await H();if(!Y)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let L=await Y.getAddress(),D=await O({assetValue:$,memo:k,recipient:z,sender:L,sweep:J}),F=await B(D);return R(F.tx_blob)}async function V($){let k=await H();if(!k)throw new a.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let z=await k.getAddress(),J=await _({...$,sender:z}),Y=await B(J);return R(Y.tx_blob)}function S(){let $=f;if(f=null,$)$.then((k)=>{if(k?.isConnected())return k.disconnect();return}).catch((k)=>{console.warn("XRPL Cleanup failed silently:",k)})}return{broadcastTransaction:R,createSigner:QX,createTransaction:O,disconnect:S,estimateTransactionFee:W,getAddress:q,getBalance:U,getTrustLines:G,hasTrustLine:N,setTrustLine:_,setTrustLineAndBroadcast:V,signAndBroadcastTransaction:I,signTransaction:B,transfer:j,validateAddress:X5}}var a,Ef,_1,_q,wf;var t2=h(()=>{Kf();a=require("@swapkit/helpers"),Ef=require("ripple-address-codec"),_1=require("ts-pattern");Kf();TX();_q={ACCOUNT_NOT_FOUND:19};wf={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});function r2(y,T){let H=0n,f=0n,X=T;while(X<y.length&&X-T<10){let Q=y[X++];if(Q===void 0)break;if(H|=BigInt(Q&127)<<f,f+=7n,(Q&128)===0)return[H,X]}throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed")}function Q5(y){let T=[],H=y<0n?y+2n**64n:y;while(H>=128n)T.push(Number(H&0x7fn)|128),H>>=7n;return T.push(Number(H)),T}function vf(y,T,H){let f=y.get(T);if(f)f.push(H);else y.set(T,[H])}function kq(y){let T=new Map,H=0;while(H<y.length){let[f,X]=r2(y,H);H=X;let Q=Number(f>>3n),Z=Number(f&7n);if(Z===bf){let[q,U]=r2(y,H);H=U,vf(T,Q,{data:new Uint8Array(Q5(q)),wireType:bf})}else if(Z===hf){let[q,U]=r2(y,H);H=U;let W=Number(q);if(W<0||H+W>y.length)throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed");let G=y.slice(H,H+W);H+=W,vf(T,Q,{data:G,wireType:hf})}else if(Z===qX){if(H+8>y.length)throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed");let q=y.slice(H,H+8);H+=8,vf(T,Q,{data:q,wireType:qX})}else if(Z===UX){if(H+4>y.length)throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed");let q=y.slice(H,H+4);H+=4,vf(T,Q,{data:q,wireType:UX})}else throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed")}return T}function Bq(y){let T=[];for(let[Q,Z]of[...y.entries()].sort(([q],[U])=>q-U))for(let{wireType:q,data:U}of Z){let W=BigInt(Q<<3|q);if(T.push(new Uint8Array(Q5(W))),q===hf)T.push(new Uint8Array(Q5(BigInt(U.length))));T.push(U)}let H=T.reduce((Q,Z)=>Q+Z.length,0),f=new Uint8Array(H),X=0;for(let Q of T)f.set(Q,X),X+=Q.length;return f}function JX(y,T){if(!y||y.length%2!==0)throw new iy.SwapKitError("toolbox_tron_transaction_creation_failed");let H=C1.hexToBytes(y),f=kq(H);if(T.expiration!==void 0)f.set(Oq,[{data:new Uint8Array(Q5(BigInt(T.expiration))),wireType:bf}]);if(T.data!==void 0)f.set($q,[{data:C1.hexToBytes(T.data),wireType:hf}]);if(T.fee_limit!==void 0)f.set(Nq,[{data:new Uint8Array(Q5(BigInt(T.fee_limit))),wireType:bf}]);let X=Bq(f),Q=C1.bytesToHex(X),Z=C1.bytesToHex(YX.sha256(X));return{raw_data_hex:Q,txID:Z}}var YX,C1,iy,bf=0,qX=1,hf=2,UX=5,Oq=8,$q=10,Nq=18;var WX=h(()=>{YX=require("@noble/hashes/sha2.js"),C1=require("@noble/hashes/utils.js"),iy=require("@swapkit/helpers")});function yy(y){if(typeof y!=="string")return!1;try{let T=lf.decode(y);return T.length===21&&T[0]===LX}catch{return!1}}function MX(y){return t0.bytesToHex(lf.decode(y))}function Fq(y){return lf.decode(y).slice(1)}function _X(y){let T=a2.secp256k1.getPublicKey(t0.hexToBytes(y),!1),H=zX.keccak_256(T.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=LX,f.set(H,1),lf.encode(f)}function CX({txID:y,privateKey:T}){let H=a2.secp256k1.sign(t0.hexToBytes(y),t0.hexToBytes(T),{format:"recovered",prehash:!1}),f=H[0]??0,X=t0.bytesToHex(H.slice(1,33)),Q=t0.bytesToHex(H.slice(33,65)),Z=(f+27).toString(16).padStart(2,"0");return X+Q+Z}function O1({txID:y,raw_data_hex:T}){let H=t0.bytesToHex(s2.sha256(t0.hexToBytes(T)));if(y!==H)throw new e2.SwapKitError("toolbox_tron_invalid_transaction_integrity",{expected:H,txID:y})}function Rq(y){return`000000000000000000000000${t0.bytesToHex(Fq(y))}`}function xq(y){let T=typeof y==="bigint"?y:BigInt(y);if(T<0n||T>=Dq)throw new e2.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:T.toString()});return T.toString(16).padStart(64,"0")}function $1(y){return y.map(({type:T,value:H})=>T==="address"?Rq(H):xq(BigInt(H))).join("")}function OX(y){return t0.bytesToHex(new TextEncoder().encode(y))}var a2,s2,zX,t0,GX,e2,lf,LX=65,Dq;var yT=h(()=>{a2=require("@noble/curves/secp256k1.js"),s2=require("@noble/hashes/sha2.js"),zX=require("@noble/hashes/sha3.js"),t0=require("@noble/hashes/utils.js"),GX=require("@scure/base"),e2=require("@swapkit/helpers"),lf=GX.createBase58check(s2.sha256),Dq=2n**256n});function kX(){try{return N0.getRPCUrlSync(N0.Chain.Tron)}catch{return NX}}function BX(){let y=new AbortController,T=setTimeout(()=>y.abort(),Kq);return{cleanup:()=>clearTimeout(T),signal:y.signal}}async function ty(y,T){let{signal:H,cleanup:f}=BX();try{let X=await fetch(`${kX()}${y}`,{body:JSON.stringify(T),headers:{"Content-Type":"application/json"},method:"POST",signal:H});if(!X.ok)throw new N0.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${X.status} ${X.statusText} on ${y}`});return await X.json()}finally{f()}}async function DX(y,T){let{signal:H,cleanup:f}=BX();try{let X=await fetch(`${T??kX()}${y}`,{headers:{"Content-Type":"application/json"},signal:H});if(!X.ok)throw new N0.SwapKitError("toolbox_tron_trongrid_api_error",{message:`${X.status} ${X.statusText} on ${y}`});return await X.json()}finally{f()}}async function uf(y){if(!yy(y))throw new N0.SwapKitError("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let T=await DX(`/v1/accounts/${y}`,NX);if(!(T.success&&T.data)||T.data.length===0)return;let H;try{H=MX(y).toLowerCase()}catch{H=y.toLowerCase()}let f=T.data.find((X)=>X.address.toLowerCase()===H);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(T){if(T instanceof N0.SwapKitError)throw T;throw new N0.SwapKitError("toolbox_tron_trongrid_api_error",{address:y,message:T instanceof Error?T.message:"Unknown error"})}}async function FX({from:y,to:T,amount:H}){let X=await ty("/wallet/createtransaction",{amount:H,owner_address:y,to_address:T,visible:!0});if(!X.txID||!X.raw_data_hex||!X.raw_data)throw new N0.SwapKitError("toolbox_tron_transaction_creation_failed");let Z=X.raw_data?.contract?.[0]?.parameter?.value;if(Z?.to_address!==T||Z?.owner_address!==y||Z?.amount!==H)throw new N0.SwapKitError("toolbox_tron_transaction_creation_failed");return O1(X),X}async function RX({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f,feeLimit:X,callValue:Q=0}){let Z=await ty("/wallet/triggersmartcontract",{call_value:Q,contract_address:T,fee_limit:X,function_selector:H,owner_address:y,parameter:f,visible:!0});if(!Z.result.result||!Z.transaction?.txID||!Z.transaction?.raw_data_hex)throw new N0.SwapKitError("toolbox_tron_transaction_creation_failed");let U=Z.transaction.raw_data?.contract?.[0]?.parameter?.value;if(U?.contract_address!==T||U?.owner_address!==y)throw new N0.SwapKitError("toolbox_tron_transaction_creation_failed");return O1(Z.transaction),Z.transaction}function xX({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return ty("/wallet/triggerconstantcontract",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}function Sq({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return ty("/wallet/estimateenergy",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}function $X(y){let T=typeof y==="number"?y:typeof y==="string"?Number(y):Number.NaN;return Number.isFinite(T)&&T>0?T:void 0}async function Z5(y){try{let{result:T,txid:H}=await ty("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!T||!H)throw new N0.SwapKitError("toolbox_tron_token_transfer_failed");return H}catch(T){throw new N0.SwapKitError("toolbox_tron_broadcast_failed",{error:T})}}async function q5(){let y={};try{let{chainParameter:T}=await DX("/wallet/getchainparameters");for(let H of T)y[H.key]=H.value}catch(T){N0.warnOnce({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${T instanceof Error?T.message:T}`})}return{bandwidthFee:y.getTransactionFee??Iq,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??Pq,energyFee:y.getEnergyFee??jq,memoFee:y.getMemoFee??Vq}}async function fT(y){try{let T=await ty("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(T.freeNetLimit??600)-(T.freeNetUsed??0),total:T.NetLimit??0,used:T.NetUsed??0},energy:{total:T.EnergyLimit??0,used:T.EnergyUsed??0}}}catch(T){return N0.warnOnce({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${T instanceof Error?T.message:T}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function U5(y){try{let T=await ty("/wallet/getaccount",{address:y,visible:!0});return T&&Object.keys(T).length>0}catch{return!1}}async function TT(y){try{let T=await Sq({...y,ownerAddress:y.sender}),H=T.energy_required??T.energyRequired;if(T.result&&!T.result.result)throw new N0.SwapKitError("toolbox_tron_trongrid_api_error",{message:T.result.message||"estimateenergy failed"});if(H!==void 0){let f=$X(H);if(f!==void 0)return f;throw new N0.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(T){N0.warnOnce({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${T instanceof Error?T.message:T}`})}try{let{energy_used:T}=await xX({...y,ownerAddress:y.sender}),H=$X(T);if(H!==void 0)return H;throw new N0.SwapKitError("toolbox_tron_trongrid_api_error",{message:"Invalid triggerconstantcontract energy response"})}catch(T){throw N0.warnOnce({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy: ${T instanceof Error?T.message:T}`}),new N0.SwapKitError("toolbox_tron_trongrid_api_error",{message:`Unable to estimate contract energy: ${T instanceof Error?T.message:T}`})}}async function IX({assetAddress:y,owner:T,spender:H}){let f=$1([{type:"address",value:T},{type:"address",value:H}]),Q=(await xX({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:H,parameter:f})).constant_result?.[0];if(!Q)return 0n;try{return BigInt(`0x${Q}`)}catch{return 0n}}var N0,NX="https://api.trongrid.io",Iq=1000,Pq=1e6,jq=420,Vq=1e6,Kq=30000;var PX=h(()=>{yT();N0=require("@swapkit/helpers")});function bX({phrase:y,derivationPath:T}){let H=wX.HDKey.fromMasterSeed(EX.mnemonicToSeedSync(y)).derive(T);if(!H.privateKey)throw new m.SwapKitError("toolbox_tron_no_signer");return AX.bytesToHex(H.privateKey)}function hX(y,T){return{...y,value:String(T)}}function lX(y,T){if(!T)return y;return{...y,data:T.startsWith("0x")?T:`0x${T}`}}function uX({phrase:y,derivationPath:T,index:H}){let f=T||m.derivationPathToString(m.updateDerivationPath(m.NetworkDerivationPath[m.Chain.Tron],{index:H||0}));return bX({derivationPath:f,phrase:y})}function wq({phrase:y,derivationPath:T}){let H=bX({derivationPath:T,phrase:y}),f=_X(H);return{getAddress:()=>Promise.resolve(f),signTransaction:(X)=>{O1(X);let Q=CX({privateKey:H,txID:X.txID});return Promise.resolve({...X,signature:[Q]})}}}function SX({transaction:y,memo:T,expiration:H,feeLimit:f}){let X={},Q={};if(f!==void 0&&y.raw_data)X.fee_limit=f,Q.fee_limit=f;if(T){let U=T.startsWith("0x")?T.replace(/^0x/,""):OX(T);X.data=U,Q.data=U}if(H){let U=y.raw_data.expiration+H*1000;X.expiration=U,Q.expiration=U}if(Object.keys(X).length===0)return y;let{raw_data_hex:Z,txID:q}=JX(y.raw_data_hex,X);return{...y,raw_data:{...y.raw_data,...Q},raw_data_hex:Z,txID:q}}function pX(y={}){let T="index"in y?y.index||0:0,H=m.derivationPathToString("derivationPath"in y&&y.derivationPath?y.derivationPath:m.updateDerivationPath(m.NetworkDerivationPath[m.Chain.Tron],{index:T})),f,X=!1;function Q(){if(X)return Promise.resolve(f);return f=N1.match(y).with({phrase:N1.P.string},({phrase:z})=>wq({derivationPath:H,phrase:z})).with({signer:N1.P.not(N1.P.nullish)},({signer:z})=>z).otherwise(()=>{return}),X=!0,Promise.resolve(f)}async function Z(){let z=await Q();if(!z)throw new m.SwapKitError("toolbox_tron_no_signer");return z.getAddress()}async function q(z,J){let Y=z||VX,L=J??(await q5()).energyFee,D=Y*L,F=Math.ceil(D*1.5);return Math.min(Math.max(F,1e7),150000000)}async function U({contractAddress:z,functionSelector:J,parameter:Y,sender:L,memo:D,expiration:F,extraEnergy:P=0}){let A=await TT({contractAddress:z,functionSelector:J,parameter:Y,sender:L}),E=await q(A+P),u=await RX({contractAddress:z,feeLimit:E,functionSelector:J,ownerAddress:L,parameter:Y});return SX({expiration:F,feeLimit:E,memo:D,transaction:u})}async function W(z){if(!yy(z))return[m.AssetValue.from({chain:m.Chain.Tron})];try{let J=await uf(z);if(!J)return[m.AssetValue.from({chain:m.Chain.Tron})];let Y=[m.AssetValue.from({chain:m.Chain.Tron,fromBaseDecimal:6,value:String(J.balance)})],L=J.trc20?.find((D)=>(XT in D));if(L){let D=L[XT];Y.push(m.AssetValue.from({asset:`TRON.USDT-${XT}`,fromBaseDecimal:6,value:D}))}return Y}catch(J){return m.warnOnce({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${J instanceof Error?J.message:J}`}),[m.AssetValue.from({chain:m.Chain.Tron})]}}async function G({recipient:z,assetValue:J,memo:Y,expiration:L,sweep:D}){if(!yy(z))throw new m.SwapKitError("toolbox_tron_token_transfer_failed",{message:"invalid address"});let F=await Q();if(!F)throw new m.SwapKitError("toolbox_tron_no_signer");try{let P=await Z(),A=await I({assetValue:J,expiration:L,memo:Y,recipient:z,sender:P,sweep:D}),E=await F.signTransaction(A),u=await Z5(E);if(!u)throw new m.SwapKitError("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return u}catch(P){if(P instanceof m.SwapKitError&&P.errorKey==="toolbox_sweep_amount_too_low")throw P;throw new m.SwapKitError("toolbox_tron_token_transfer_failed",{message:P instanceof Error?P.message:String(P)})}}function N({requiredBandwidth:z,resources:J,feePerUnit:Y}){let L=Math.max(0,J.free+J.total-J.used);return z>L?(z-L)*Y:0}async function _({memo:z,recipient:J,senderAddress:Y}){let[L,D,F]=await Promise.all([q5(),U5(J),fT(Y)]),P=D?0:L.createAccountFee,A=N({feePerUnit:L.bandwidthFee,requiredBandwidth:jX,resources:F.bandwidth}),E=z?L.memoFee:0;return m.AssetValue.from({chain:m.Chain.Tron,fromBaseDecimal:m.BaseDecimal.TRON,value:P+A+E})}async function M({assetValue:z,amountInBaseUnits:J=z.getBaseValue("string"),memo:Y,recipient:L,senderAddress:D}){let F=z.address;if(!F)throw new m.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:z.toString()});let[P,A,E,u]=await Promise.all([q5(),U5(L),fT(D),TT({contractAddress:F,functionSelector:"transfer(address,uint256)",parameter:$1([{type:"address",value:L},{type:"uint256",value:J}]),sender:D})]),H0=u+(A?0:HT),R0=N({feePerUnit:P.bandwidthFee,requiredBandwidth:KX,resources:E.bandwidth}),x=Math.max(0,E.energy.total-E.energy.used),w=H0>x?(H0-x)*P.energyFee:0,b=Y?P.memoFee:0;return m.AssetValue.from({chain:m.Chain.Tron,fromBaseDecimal:m.BaseDecimal.TRON,value:R0+w+b})}async function C({assetValue:z,memo:J,recipient:Y}){let[L,D]=await Promise.all([q5(),U5(Y)]);if(z.isGasAsset){let E=D?0:L.createAccountFee,u=J?L.memoFee:0;return m.AssetValue.from({chain:m.Chain.Tron,fromBaseDecimal:m.BaseDecimal.TRON,value:E+jX*L.bandwidthFee+u})}let P=await q(VX+(D?0:HT),L.energyFee),A=J?L.memoFee:0;return m.AssetValue.from({chain:m.Chain.Tron,fromBaseDecimal:m.BaseDecimal.TRON,value:P+KX*L.bandwidthFee+A})}async function O({assetValue:z,memo:J,recipient:Y,sender:L}){let D=await Q();try{let F=L?L:D?await Z():void 0;if(!F)return C({assetValue:z,memo:J,recipient:Y});return z.isGasAsset?_({memo:J,recipient:Y,senderAddress:F}):M({assetValue:z,memo:J,recipient:Y,senderAddress:F})}catch(F){throw m.warnOnce({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${F instanceof Error?F.message:F}`}),new m.SwapKitError("toolbox_fee_estimation_failed",{chain:m.Chain.Tron,error:F})}}async function B({assetValue:z,memo:J,recipient:Y,sender:L,sweep:D}){if(!D)return z.getBaseValue("bigint");let[F,P]=await Promise.all([uf(L),_({memo:J,recipient:Y,senderAddress:L})]),A=BigInt(F?.balance??0)-P.getBaseValue("bigint");if(A<=0n)throw new m.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amount:A.toString(),asset:z.toString()}});return A}async function R({assetValue:z,memo:J,recipient:Y,sender:L,sweep:D}){if(!D)return z.getBaseValue("string");let F=z.address;if(!F)throw new m.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:z.toString()});let P=await uf(L),E=P?.trc20.find((R0)=>(F in R0))?.[F]??"0";if(BigInt(E)<=0n)throw new m.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:z.toString(),balance:E}});let u=await M({amountInBaseUnits:E,assetValue:z,memo:J,recipient:Y,senderAddress:L}),s=BigInt(P?.balance??0),H0=u.getBaseValue("bigint");if(s<H0)throw new m.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:z.toString(),nativeBalance:s.toString(),requiredNativeFee:H0.toString()}});return E}async function I({recipient:z,assetValue:J,memo:Y,sender:L,expiration:D,sweep:F}){if(!yy(z)||!yy(L))throw new m.SwapKitError("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(J.isGasAsset){let u=await B({assetValue:J,expiration:D,memo:Y,recipient:z,sender:L,sweep:F});if(u>BigInt(Number.MAX_SAFE_INTEGER))throw new m.SwapKitError({errorKey:"toolbox_tron_transaction_creation_failed",info:{amount:u.toString(),reason:`Native transfer amount exceeds the safe integer limit of ${Number.MAX_SAFE_INTEGER} SUN`}});let s=await FX({amount:Number(u),from:L,to:z});return SX({expiration:D,memo:Y,transaction:s})}let P=J.address;if(!P)throw new m.SwapKitError("toolbox_tron_invalid_token_identifier",{identifier:J.toString()});let A=await R({assetValue:J,expiration:D,memo:Y,recipient:z,sender:L,sweep:F}),E=await U5(z);return U({contractAddress:P,expiration:D,extraEnergy:E?0:HT,functionSelector:"transfer(address,uint256)",memo:Y,parameter:$1([{type:"address",value:z},{type:"uint256",value:A}]),sender:L})}async function j(z){O1(z);let J=await Q();if(!J)throw new m.SwapKitError("toolbox_tron_no_signer");return J.signTransaction(z)}async function V(z){let J=await j(z);return Z5(J)}function S({assetAddress:z,spenderAddress:J,from:Y}){return IX({assetAddress:z,owner:Y,spender:J})}async function $({assetAddress:z,spenderAddress:J,from:Y,amount:L}){let D=await S({assetAddress:z,from:Y,spenderAddress:J});if(!L)return D>0n;return D>=BigInt(L)}async function k({assetAddress:z,spenderAddress:J,amount:Y,from:L}){if(!yy(z)||!yy(J))throw new m.SwapKitError("toolbox_tron_approve_failed");let D=await Q();if(!D)throw new m.SwapKitError("toolbox_tron_no_signer");let F=L||await Z(),P=Y!==void 0?BigInt(Y).toString():Aq;try{let A=await U({contractAddress:z,functionSelector:"approve(address,uint256)",parameter:$1([{type:"address",value:J},{type:"uint256",value:P}]),sender:F}),E=await D.signTransaction(A),u=await Z5(E);if(!u)throw new m.SwapKitError("toolbox_tron_approve_failed");return u}catch(A){if(A instanceof m.SwapKitError)throw A;throw new m.SwapKitError("toolbox_tron_approve_failed",{error:A})}}return{approve:k,broadcastTransaction:Z5,createTransaction:I,estimateTransactionFee:O,getAddress:Z,getApprovedAmount:S,getBalance:W,getRpcUrl:()=>m.getRPCUrl(m.Chain.Tron),isApproved:$,signAndBroadcastTransaction:V,signTransaction:j,transfer:G,validateAddress:yy}}var AX,wX,EX,m,N1,vX,jX=268,VX=65000,HT=25000,KX=345,XT="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",Aq="115792089237316195423570985008687907853269984665640564039457584007913129639935";var mX=h(()=>{WX();PX();yT();AX=require("@noble/hashes/utils.js"),wX=require("@scure/bip32"),EX=require("@scure/bip39"),m=require("@swapkit/helpers"),N1=require("ts-pattern"),vX=yy});var QT={};P0(QT,{withTronTransactionValue:()=>hX,withTronTransactionData:()=>lX,validateTronAddress:()=>vX,getTronToolbox:()=>pX,getTronPrivateKeyFromMnemonic:()=>uX});module.exports=S0(QT);var ZT=h(()=>{mX()});async function gX(y){if(pf&&Date.now()-pf.timestamp<bq)return pf.value;let H=(await y.ledgers().order("desc").limit(1).call()).records[0]?.base_reserve_in_stroops;if(H===void 0)throw new i.SwapKitError({errorKey:"toolbox_stellar_balance_error",info:{reason:"base_reserve_unavailable"}});return pf={timestamp:Date.now(),value:H},H}function qT(y){return i.AssetValue.from({chain:i.Chain.Stellar,value:y}).getBaseValue("bigint")}function hq(y){let{baseDecimal:T}=i.getChainConfig(i.Chain.Stellar);return i.AssetValue.from({chain:i.Chain.Stellar,fromBaseDecimal:T,value:y}).getValue("string")}function cX({balance:y,baseReserveInStroops:T,numSponsored:H,numSponsoring:f,sellingLiabilities:X,subentryCount:Q}){let Z=qT(y),q=qT(X),U=nX+Q+f-H,W=BigInt(U)*BigInt(T),G=Z-W-q;return G>0n?G:0n}function lq({account:y,assetValue:T,baseReserveInStroops:H,fee:f}){let X=y.balances.find((q)=>q.asset_type==="native"),Z=(X?cX({balance:X.balance,baseReserveInStroops:H,numSponsored:y.num_sponsored,numSponsoring:y.num_sponsoring,sellingLiabilities:X.selling_liabilities,subentryCount:y.subentry_count}):0n)-BigInt(f);if(Z<=0n)throw new i.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:T.toString(),reason:"spendable balance does not cover the transaction fee"}});return Z}function uq({baseReserveInStroops:y,sweepAmountInStroops:T}){if(T===void 0||y===void 0)return;let H=BigInt(nX)*BigInt(y);if(T<H)throw new i.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amountInStroops:T,minimumStartingBalanceInStroops:H,reason:"starting balance is below the Stellar account minimum"}})}function pq({account:y,assetCode:T,assetValue:H,issuer:f,sweep:X}){if(!X)return H.getValue("string");let Q=y.balances.find((Z)=>("asset_code"in Z)&&Z.asset_code===T&&Z.asset_issuer===f)?.balance??"0";if(qT(Q)<=0n)throw new i.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:H.toString(),balance:Q,reason:"trust-line balance is not positive"}});return Q}function mq(y){if(!y)return;if(new TextEncoder().encode(y).length>28)throw new i.SwapKitError("helpers_invalid_memo_type")}function gf(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return Eq.test(y)}function dX(y){if(typeof y!=="object"||y===null)return;let T="response"in y?y.response:void 0;return typeof T?.status==="number"?T.status:void 0}function gq(y){return dX(y)===504}function oq(y){return y.hash?.().toString("hex")}function nq(y){return[...new Set([y,...i.SKConfig.get("rpcUrls")[i.Chain.Stellar]])].filter(Boolean)}async function iX(y){if(!gf(y))return!1;try{let{StrKey:T}=await import("@stellar/stellar-sdk");return T.isValidEd25519PublicKey(y)}catch{return!1}}async function oX(y){let{address:T,ticker:H}=y,f=T?await iX(T):!1;if(y.chain!==i.Chain.Stellar||y.isGasAsset||!vq.test(H)||!T||!f)throw new i.SwapKitError({errorKey:"helpers_invalid_asset_identifier",info:{identifier:y.toString()}});return{assetCode:H,issuer:T}}function tX(y={}){let T,H=y.derivationPath||i.NetworkDerivationPath[i.Chain.Stellar],f=i.derivationPathToString(H.slice(0,3));async function X({phrase:j,path:V}){let{HDKey:S}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:$}=await import("@scure/bip39"),{Keypair:k}=await import("@stellar/stellar-sdk"),z=$(j),Y=S.fromMasterSeed(z).derive(V,!0);return k.fromRawEd25519Seed(Buffer.from(Y.privateKey))}async function Q(){if(T)return T;let j=mf.match(y).with({phrase:mf.P.string},({phrase:V})=>V).otherwise(()=>{return});if(!j)throw new i.SwapKitError("toolbox_stellar_no_signer");return T=await X({path:f,phrase:j}),T}async function Z(j){let{Horizon:V}=await import("@stellar/stellar-sdk"),S=j||await i.getRPCUrl(i.Chain.Stellar);return new V.Server(S)}async function q(j,V){for(let S of V)try{return(await(await Z(S)).transactions().transaction(j).call()).hash||j}catch{}return}async function U(j,V){let S=await i.getRPCUrl(i.Chain.Stellar),$=nq(S),k=oq(j),z;for(let J of $)try{let Y=await Z(J),{hash:L}=await Y.submitTransaction(j);return L}catch(Y){if(z=Y,!gq(Y))break;let L=k?await q(k,$):void 0;if(L)return L}throw new i.SwapKitError(V,z)}async function W(){try{return(await Q()).publicKey()}catch{return""}}async function G(j){let V=j||await W();if(!V)throw new i.SwapKitError("toolbox_stellar_account_not_found");let S=await Z(),[$,k]=await Promise.allSettled([S.loadAccount(V),gX(S)]);if($.status==="rejected"){let z=$.reason;if(dX(z)===404)return[i.AssetValue.from({chain:i.Chain.Stellar,value:0})];throw z}if(k.status==="rejected")throw k.reason;return $.value.balances.map((z)=>{if(z.asset_type==="native"){let L=cX({balance:z.balance,baseReserveInStroops:k.value,numSponsored:$.value.num_sponsored,numSponsoring:$.value.num_sponsoring,sellingLiabilities:z.selling_liabilities,subentryCount:$.value.subentry_count}),{baseDecimal:D}=i.getChainConfig(i.Chain.Stellar);return i.AssetValue.from({chain:i.Chain.Stellar,fromBaseDecimal:D,value:L})}let J="asset_code"in z?z.asset_code:"",Y="asset_issuer"in z?z.asset_issuer:"";return i.AssetValue.from({asset:`${i.Chain.Stellar}.${J}-${Y}`,asyncTokenLookup:!1,value:z.balance})})}async function N({recipient:j,assetValue:V,memo:S,sender:$,sweep:k}){if(mq(S),!await iX(j))throw new i.SwapKitError("core_transaction_invalid_recipient_address");let J=$||await W();if(!J)throw new i.SwapKitError("toolbox_stellar_no_signer");let{Asset:Y,Memo:L,Networks:D,Operation:F,TransactionBuilder:P}=await import("@stellar/stellar-sdk"),A=await Z(),E=await A.fetchBaseFee(),u=await A.loadAccount(J),s=k&&V.isGasAsset?await gX(A):void 0,H0=new P(u,{fee:String(E),networkPassphrase:D.PUBLIC});if(V.isGasAsset){let x=k&&s!==void 0?lq({account:u,assetValue:V,baseReserveInStroops:s,fee:E}):void 0,w=x===void 0?V.getValue("string"):hq(x);try{await A.loadAccount(j),H0.addOperation(F.payment({amount:w,asset:Y.native(),destination:j}))}catch{uq({baseReserveInStroops:s,sweepAmountInStroops:x}),H0.addOperation(F.createAccount({destination:j,startingBalance:w}))}}else{let{assetCode:x,issuer:w}=await oX(V),b=pq({account:u,assetCode:x,assetValue:V,issuer:w,sweep:k});H0.addOperation(F.payment({amount:b,asset:new Y(x,w),destination:j}))}if(S)H0.addMemo(L.text(S));return H0.setTimeout(30).build()}async function _({assetValue:j,limit:V,sender:S}){let $=S||await W();if(!$)throw new i.SwapKitError("toolbox_stellar_no_signer");let{Asset:k,Networks:z,Operation:J,TransactionBuilder:Y}=await import("@stellar/stellar-sdk"),{assetCode:L,issuer:D}=await oX(j),F=await Z(),[P,A]=await Promise.all([F.fetchBaseFee(),F.loadAccount($)]),E=new k(L,D),u=V!==void 0?J.changeTrust({asset:E,limit:V}):J.changeTrust({asset:E});return new Y(A,{fee:String(P),networkPassphrase:z.PUBLIC}).addOperation(u).setTimeout(30).build()}async function M(j){let{TransactionBuilder:V,Networks:S}=await import("@stellar/stellar-sdk"),$=await Q(),k=V.fromXDR(j.toXDR(),S.PUBLIC);return k.sign($),k}function C(j){return U(j,"toolbox_stellar_broadcast_error")}async function O({recipient:j,assetValue:V,memo:S,sweep:$}){let k=await Q(),z=k.publicKey(),J=await N({assetValue:V,memo:S,recipient:j,sender:z,sweep:$});return J.sign(k),U(J,"toolbox_stellar_transaction_failed")}async function B({assetValue:j,limit:V}){let S=await Q(),$=await _({assetValue:j,limit:V,sender:S.publicKey()});return $.sign(S),U($,"toolbox_stellar_transaction_failed")}async function R(j){let V=await M(j);return C(V)}async function I(){let{baseDecimal:j}=i.getChainConfig(i.Chain.Stellar);try{let $=(await(await Z()).feeStats()).fee_charged.p50;return i.AssetValue.from({chain:i.Chain.Stellar,fromBaseDecimal:j,value:$})}catch{return i.AssetValue.from({chain:i.Chain.Stellar,fromBaseDecimal:j,value:"100"})}}return{broadcastTransaction:C,createTransaction:N,createTrustline:B,createTrustlineTransaction:_,estimateTransactionFee:I,getAddress:W,getBalance:G,signAndBroadcastTransaction:R,signTransaction:M,transfer:O,validateAddress:gf}}var i,mf,Eq,vq,nX=2,bq=600000,pf;var rX=h(()=>{i=require("@swapkit/helpers"),mf=require("ts-pattern"),Eq=/^G[A-Z2-7]{55}$/,vq=/^[A-Za-z0-9]{1,12}$/});var of={};P0(of,{validateStellarAddress:()=>gf,getStellarToolbox:()=>tX});module.exports=S0(of);var nf=h(()=>{rX()});var iq={};P0(iq,{getToolbox:()=>UT,getFeeEstimator:()=>dq,getAddressValidator:()=>cq});module.exports=S0(iq);var g=require("@swapkit/helpers");async function cq(){let{match:y}=await import("ts-pattern"),{validateAleoAddress:T}=await Promise.resolve().then(() => (O5(),C5)),{validateAptosAddress:H}=await Promise.resolve().then(() => (N5(),$5)),{validateEVMAddress:f}=await Promise.resolve().then(() => (x8(),Q4)),{validateCardanoAddress:X}=await Promise.resolve().then(() => (V8(),j8)),{getCosmosAddressValidator:Q}=await Promise.resolve().then(() => (ff(),yf)),{validateHyperCoreAddress:Z}=await Promise.resolve().then(() => (e8(),s8)),{validateSolanaAddress:q}=await Promise.resolve().then(() => (X2(),H2)),{validateStarknetAddress:U}=await Promise.resolve().then(() => (Yf(),Uf)),{validateSuiAddress:W}=await Promise.resolve().then(() => (Gf(),zf)),{validateTonAddress:G}=await Promise.resolve().then(() => (_f(),Mf)),{getUTXOAddressValidator:N}=await Promise.resolve().then(() => (P2(),I2)),{validateNearAddress:_}=await Promise.resolve().then(() => (o2(),g2)),{validateRadixAddress:M}=await Promise.resolve().then(() => (c2(),n2)),{validateRippleAddress:C}=await Promise.resolve().then(() => (t2(),i2)),{validateTronAddress:O}=await Promise.resolve().then(() => (ZT(),QT)),{validateStellarAddress:B}=await Promise.resolve().then(() => (nf(),of));return function({address:I,chain:j}){return y(j).with(...g.EVMChains,()=>f(I)).with(...g.UTXOChains,(S)=>{return N(S)(I)}).with(...g.CosmosChains,(S)=>{return Q(S)(I)}).with(g.Chain.Aleo,()=>T(I)).with(g.Chain.Aptos,()=>H(I)).with(g.Chain.Radix,()=>M(I)).with(g.Chain.Hype,()=>Z(I)).with(g.Chain.Near,()=>_(I)).with(g.Chain.Ripple,()=>C(I)).with(g.Chain.Solana,()=>q(I)).with(g.Chain.Stellar,()=>B(I)).with(g.Chain.Starknet,()=>U(I)).with(g.Chain.Sui,()=>W(I)).with(g.Chain.Ton,()=>G(I)).with(g.Chain.Tron,()=>O(I)).with(g.Chain.Cardano,()=>X(I)).otherwise(()=>!1)}}function dq(y){return async function(H){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...g.EVMChains,async(X)=>{let Q=await UT(X),Z=await Q.createTransaction(H),q="feeOptionKey"in H?H.feeOptionKey:g.FeeOption.Fast;return Q.estimateTransactionFee({...Z,feeOption:q})}).with(g.Chain.Bitcoin,g.Chain.BitcoinCash,g.Chain.Dogecoin,g.Chain.Dash,g.Chain.Litecoin,g.Chain.Solana,g.Chain.Ripple,g.Chain.Tron,g.Chain.Near,g.Chain.Cardano,g.Chain.Hype,async(X)=>{return(await UT(X)).estimateTransactionFee(H)}).with(g.Chain.Aptos,async()=>{let{getAptosToolbox:X}=await Promise.resolve().then(() => (N5(),$5));return X().estimateTransactionFee(H)}).with(g.Chain.Aleo,async()=>{let{getAleoToolbox:X}=await Promise.resolve().then(() => (O5(),C5));return X().estimateTransactionFee(H)}).with(g.Chain.Starknet,async()=>{let{getStarknetToolbox:X}=await Promise.resolve().then(() => (Yf(),Uf));return(await X()).estimateTransactionFee(H)}).with(g.Chain.Stellar,async()=>{let{getStellarToolbox:X}=await Promise.resolve().then(() => (nf(),of));return X().estimateTransactionFee()}).with(g.Chain.Sui,async()=>{let{getSuiToolbox:X}=await Promise.resolve().then(() => (Gf(),zf));return X().estimateTransactionFee(H)}).with(g.Chain.Ton,async()=>{let{getTONToolbox:X}=await Promise.resolve().then(() => (_f(),Mf));return X().estimateTransactionFee(H)}).with(...g.CosmosChains,async()=>{let{estimateTransactionFee:X}=await Promise.resolve().then(() => (ff(),yf));return X(H)}).otherwise(async()=>g.AssetValue.from({chain:y}))}}async function UT(y,T){let{match:H}=await import("ts-pattern");return H(y).returnType().with(...g.EVMChains,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (R8(),T4));return await f(y,T)}).with(...g.UTXOChains,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (P2(),I2));return f(y,T)}).with(...g.CosmosChains,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (ff(),yf));return f(y,T)}).with(g.Chain.Aleo,async()=>{let{getAleoToolbox:f}=await Promise.resolve().then(() => (O5(),C5));return f(T)}).with(g.Chain.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (N5(),$5));return f(T)}).with(g.Chain.Hype,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (e8(),s8));return f(T)}).with(g.Chain.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (c2(),n2));return f(T)}).with(g.Chain.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (t2(),i2));return f(T)}).with(g.Chain.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => (X2(),H2));return f(T)}).with(g.Chain.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (nf(),of));return f(T)}).with(g.Chain.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (Yf(),Uf));return f(T)}).with(g.Chain.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (Gf(),zf));return f(T)}).with(g.Chain.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (ZT(),QT));return f(T)}).with(g.Chain.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (o2(),g2));return f(T)}).with(g.Chain.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (V8(),j8));return f(T)}).with(g.Chain.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (_f(),Mf));return f(T)}).otherwise(()=>{throw new g.SwapKitError("toolbox_not_supported",{chain:y})})}