@sodax/wallet-sdk-react 1.3.1-beta → 1.4.1-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { ChainId, ChainType, XToken, IBitcoinWalletProvider, BtcWalletAddressType, IEvmWalletProvider, ISuiWalletProvider, IIconWalletProvider, IInjectiveWalletProvider, IStellarWalletProvider, ISolanaWalletProvider, INearWalletProvider, RpcConfig } from '@sodax/types';
1
+ import { ChainId, ChainType, XToken, IBitcoinWalletProvider, BtcWalletAddressType, IEvmWalletProvider, ISuiWalletProvider, IIconWalletProvider, IInjectiveWalletProvider, IStellarWalletProvider, ISolanaWalletProvider, INearWalletProvider, IStacksWalletProvider, RpcConfig } from '@sodax/types';
2
2
  export { BtcWalletAddressType } from '@sodax/types';
3
3
  import { AddressPurpose } from 'sats-connect';
4
4
  import { Config, Connector } from 'wagmi';
@@ -11,6 +11,8 @@ import { WalletContextState } from '@solana/wallet-adapter-react';
11
11
  import { StellarWalletsKit } from '@creit.tech/stellar-wallets-kit';
12
12
  import * as StellarSdk from '@stellar/stellar-sdk';
13
13
  import { SorobanRpc, Transaction, Memo, MemoType, Operation, FeeBumpTransaction } from '@stellar/stellar-sdk';
14
+ import { StacksNetwork } from '@stacks/network';
15
+ import { StacksProvider } from '@stacks/connect';
14
16
  import { UseMutationResult, UseQueryResult } from '@tanstack/react-query';
15
17
  import * as immer from 'immer';
16
18
  import * as zustand_middleware from 'zustand/middleware';
@@ -379,9 +381,37 @@ declare class SuiXConnector extends XConnector {
379
381
  get icon(): any;
380
382
  }
381
383
 
384
+ declare class StacksXService extends XService {
385
+ private static instance;
386
+ network: StacksNetwork | undefined;
387
+ private constructor();
388
+ static getInstance(): StacksXService;
389
+ getBalance(address: string | undefined, xToken: XToken): Promise<bigint>;
390
+ }
391
+
392
+ interface StacksProviderConfig {
393
+ /** The provider ID matching the window path, e.g. 'LeatherProvider' or 'XverseProviders.BitcoinProvider' */
394
+ id: string;
395
+ name: string;
396
+ icon: string;
397
+ installUrl?: string;
398
+ }
399
+ declare class StacksXConnector extends XConnector {
400
+ private readonly config;
401
+ constructor(config: StacksProviderConfig);
402
+ connect(): Promise<XAccount | undefined>;
403
+ disconnect(): Promise<void>;
404
+ get icon(): string;
405
+ getProvider(): StacksProvider | undefined;
406
+ }
407
+
408
+ declare const STACKS_PROVIDERS: StacksProviderConfig[];
409
+
410
+ declare function useStacksXConnectors(): StacksXConnector[];
411
+
382
412
  declare function useXAccount(chainIdentifier?: ChainType | ChainId): XAccount;
383
413
 
384
- declare function useXAccounts(): Partial<Record<"ICON" | "EVM" | "INJECTIVE" | "SUI" | "STELLAR" | "SOLANA" | "NEAR" | "BITCOIN", XAccount>>;
414
+ declare function useXAccounts(): Partial<Record<"ICON" | "EVM" | "INJECTIVE" | "SUI" | "STELLAR" | "SOLANA" | "STACKS" | "NEAR" | "BITCOIN", XAccount>>;
385
415
 
386
416
  /**
387
417
  * Hook for connecting to various blockchain wallets across different chains
@@ -441,7 +471,7 @@ declare function useXConnection(xChainType: ChainType | undefined): XConnection
441
471
  * - Stellar: Uses custom Stellar connectors
442
472
  * - Solana: Uses Solana wallet adapters (filtered to installed wallets only)
443
473
  *
444
- * @param xChainType - The blockchain type to get connectors for ('EVM' | 'SUI' | 'STELLAR' | 'SOLANA' | 'NEAR')
474
+ * @param xChainType - The blockchain type to get connectors for ('EVM' | 'SUI' | 'STELLAR' | 'SOLANA' | 'NEAR' | 'STACKS')
445
475
  * @returns An array of XConnector instances compatible with the specified chain type
446
476
  */
447
477
  declare function useXConnectors(xChainType: ChainType | undefined): XConnector[];
@@ -535,7 +565,7 @@ declare const useEvmSwitchChain: (expectedXChainId: ChainId) => UseEvmSwitchChai
535
565
  * const walletProvider = useWalletProvider('sui');
536
566
  * ```
537
567
  */
538
- declare function useWalletProvider(spokeChainId: ChainId | undefined): IEvmWalletProvider | ISuiWalletProvider | IIconWalletProvider | IInjectiveWalletProvider | IStellarWalletProvider | ISolanaWalletProvider | IBitcoinWalletProvider | INearWalletProvider | undefined;
568
+ declare function useWalletProvider(spokeChainId: ChainId | undefined): IEvmWalletProvider | ISuiWalletProvider | IIconWalletProvider | IInjectiveWalletProvider | IStellarWalletProvider | ISolanaWalletProvider | IBitcoinWalletProvider | INearWalletProvider | IStacksWalletProvider | undefined;
539
569
 
540
570
  type SignMessageReturnType = `0x${string}` | Uint8Array | string | undefined;
541
571
  declare function useXSignMessage(): UseMutationResult<SignMessageReturnType, Error, {
@@ -574,4 +604,4 @@ declare const SodaxWalletProvider: ({ children, rpcConfig }: {
574
604
  rpcConfig: RpcConfig;
575
605
  }) => React.JSX.Element;
576
606
 
577
- export { BitcoinXConnector, BitcoinXService, type CurrencyKey, EvmXConnector, EvmXService, IconHanaXConnector, IconXService, InjectiveKelprXConnector, InjectiveMetamaskXConnector, InjectiveXService, OKXXConnector, SodaxWalletProvider, SolanaXConnector, SolanaXService, StellarWalletsKitXConnector, StellarXService, SuiXConnector, SuiXService, UnisatXConnector, WalletId, type XAccount, type XConnection, XConnector, XService, XverseXConnector, getWagmiChainId, getXChainType, getXService, isNativeToken, switchEthereumChain, useBitcoinXConnectors, useEvmSwitchChain, useWalletProvider, useXAccount, useXAccounts, useXBalances, useXConnect, useXConnection, useXConnectors, useXDisconnect, useXService, useXSignMessage, useXWagmiStore };
607
+ export { BitcoinXConnector, BitcoinXService, type CurrencyKey, EvmXConnector, EvmXService, IconHanaXConnector, IconXService, InjectiveKelprXConnector, InjectiveMetamaskXConnector, InjectiveXService, OKXXConnector, STACKS_PROVIDERS, SodaxWalletProvider, SolanaXConnector, SolanaXService, type StacksProviderConfig, StacksXConnector, StacksXService, StellarWalletsKitXConnector, StellarXService, SuiXConnector, SuiXService, UnisatXConnector, WalletId, type XAccount, type XConnection, XConnector, XService, XverseXConnector, getWagmiChainId, getXChainType, getXService, isNativeToken, switchEthereumChain, useBitcoinXConnectors, useEvmSwitchChain, useStacksXConnectors, useWalletProvider, useXAccount, useXAccounts, useXBalances, useXConnect, useXConnection, useXConnectors, useXDisconnect, useXService, useXSignMessage, useXWagmiStore };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ChainId, ChainType, XToken, IBitcoinWalletProvider, BtcWalletAddressType, IEvmWalletProvider, ISuiWalletProvider, IIconWalletProvider, IInjectiveWalletProvider, IStellarWalletProvider, ISolanaWalletProvider, INearWalletProvider, RpcConfig } from '@sodax/types';
1
+ import { ChainId, ChainType, XToken, IBitcoinWalletProvider, BtcWalletAddressType, IEvmWalletProvider, ISuiWalletProvider, IIconWalletProvider, IInjectiveWalletProvider, IStellarWalletProvider, ISolanaWalletProvider, INearWalletProvider, IStacksWalletProvider, RpcConfig } from '@sodax/types';
2
2
  export { BtcWalletAddressType } from '@sodax/types';
3
3
  import { AddressPurpose } from 'sats-connect';
4
4
  import { Config, Connector } from 'wagmi';
@@ -11,6 +11,8 @@ import { WalletContextState } from '@solana/wallet-adapter-react';
11
11
  import { StellarWalletsKit } from '@creit.tech/stellar-wallets-kit';
12
12
  import * as StellarSdk from '@stellar/stellar-sdk';
13
13
  import { SorobanRpc, Transaction, Memo, MemoType, Operation, FeeBumpTransaction } from '@stellar/stellar-sdk';
14
+ import { StacksNetwork } from '@stacks/network';
15
+ import { StacksProvider } from '@stacks/connect';
14
16
  import { UseMutationResult, UseQueryResult } from '@tanstack/react-query';
15
17
  import * as immer from 'immer';
16
18
  import * as zustand_middleware from 'zustand/middleware';
@@ -379,9 +381,37 @@ declare class SuiXConnector extends XConnector {
379
381
  get icon(): any;
380
382
  }
381
383
 
384
+ declare class StacksXService extends XService {
385
+ private static instance;
386
+ network: StacksNetwork | undefined;
387
+ private constructor();
388
+ static getInstance(): StacksXService;
389
+ getBalance(address: string | undefined, xToken: XToken): Promise<bigint>;
390
+ }
391
+
392
+ interface StacksProviderConfig {
393
+ /** The provider ID matching the window path, e.g. 'LeatherProvider' or 'XverseProviders.BitcoinProvider' */
394
+ id: string;
395
+ name: string;
396
+ icon: string;
397
+ installUrl?: string;
398
+ }
399
+ declare class StacksXConnector extends XConnector {
400
+ private readonly config;
401
+ constructor(config: StacksProviderConfig);
402
+ connect(): Promise<XAccount | undefined>;
403
+ disconnect(): Promise<void>;
404
+ get icon(): string;
405
+ getProvider(): StacksProvider | undefined;
406
+ }
407
+
408
+ declare const STACKS_PROVIDERS: StacksProviderConfig[];
409
+
410
+ declare function useStacksXConnectors(): StacksXConnector[];
411
+
382
412
  declare function useXAccount(chainIdentifier?: ChainType | ChainId): XAccount;
383
413
 
384
- declare function useXAccounts(): Partial<Record<"ICON" | "EVM" | "INJECTIVE" | "SUI" | "STELLAR" | "SOLANA" | "NEAR" | "BITCOIN", XAccount>>;
414
+ declare function useXAccounts(): Partial<Record<"ICON" | "EVM" | "INJECTIVE" | "SUI" | "STELLAR" | "SOLANA" | "STACKS" | "NEAR" | "BITCOIN", XAccount>>;
385
415
 
386
416
  /**
387
417
  * Hook for connecting to various blockchain wallets across different chains
@@ -441,7 +471,7 @@ declare function useXConnection(xChainType: ChainType | undefined): XConnection
441
471
  * - Stellar: Uses custom Stellar connectors
442
472
  * - Solana: Uses Solana wallet adapters (filtered to installed wallets only)
443
473
  *
444
- * @param xChainType - The blockchain type to get connectors for ('EVM' | 'SUI' | 'STELLAR' | 'SOLANA' | 'NEAR')
474
+ * @param xChainType - The blockchain type to get connectors for ('EVM' | 'SUI' | 'STELLAR' | 'SOLANA' | 'NEAR' | 'STACKS')
445
475
  * @returns An array of XConnector instances compatible with the specified chain type
446
476
  */
447
477
  declare function useXConnectors(xChainType: ChainType | undefined): XConnector[];
@@ -535,7 +565,7 @@ declare const useEvmSwitchChain: (expectedXChainId: ChainId) => UseEvmSwitchChai
535
565
  * const walletProvider = useWalletProvider('sui');
536
566
  * ```
537
567
  */
538
- declare function useWalletProvider(spokeChainId: ChainId | undefined): IEvmWalletProvider | ISuiWalletProvider | IIconWalletProvider | IInjectiveWalletProvider | IStellarWalletProvider | ISolanaWalletProvider | IBitcoinWalletProvider | INearWalletProvider | undefined;
568
+ declare function useWalletProvider(spokeChainId: ChainId | undefined): IEvmWalletProvider | ISuiWalletProvider | IIconWalletProvider | IInjectiveWalletProvider | IStellarWalletProvider | ISolanaWalletProvider | IBitcoinWalletProvider | INearWalletProvider | IStacksWalletProvider | undefined;
539
569
 
540
570
  type SignMessageReturnType = `0x${string}` | Uint8Array | string | undefined;
541
571
  declare function useXSignMessage(): UseMutationResult<SignMessageReturnType, Error, {
@@ -574,4 +604,4 @@ declare const SodaxWalletProvider: ({ children, rpcConfig }: {
574
604
  rpcConfig: RpcConfig;
575
605
  }) => React.JSX.Element;
576
606
 
577
- export { BitcoinXConnector, BitcoinXService, type CurrencyKey, EvmXConnector, EvmXService, IconHanaXConnector, IconXService, InjectiveKelprXConnector, InjectiveMetamaskXConnector, InjectiveXService, OKXXConnector, SodaxWalletProvider, SolanaXConnector, SolanaXService, StellarWalletsKitXConnector, StellarXService, SuiXConnector, SuiXService, UnisatXConnector, WalletId, type XAccount, type XConnection, XConnector, XService, XverseXConnector, getWagmiChainId, getXChainType, getXService, isNativeToken, switchEthereumChain, useBitcoinXConnectors, useEvmSwitchChain, useWalletProvider, useXAccount, useXAccounts, useXBalances, useXConnect, useXConnection, useXConnectors, useXDisconnect, useXService, useXSignMessage, useXWagmiStore };
607
+ export { BitcoinXConnector, BitcoinXService, type CurrencyKey, EvmXConnector, EvmXService, IconHanaXConnector, IconXService, InjectiveKelprXConnector, InjectiveMetamaskXConnector, InjectiveXService, OKXXConnector, STACKS_PROVIDERS, SodaxWalletProvider, SolanaXConnector, SolanaXService, type StacksProviderConfig, StacksXConnector, StacksXService, StellarWalletsKitXConnector, StellarXService, SuiXConnector, SuiXService, UnisatXConnector, WalletId, type XAccount, type XConnection, XConnector, XService, XverseXConnector, getWagmiChainId, getXChainType, getXService, isNativeToken, switchEthereumChain, useBitcoinXConnectors, useEvmSwitchChain, useStacksXConnectors, useWalletProvider, useXAccount, useXAccounts, useXBalances, useXConnect, useXConnection, useXConnectors, useXDisconnect, useXService, useXSignMessage, useXWagmiStore };
package/dist/index.mjs CHANGED
@@ -1,6 +1,8 @@
1
1
  import { detectBitcoinAddressType, baseChainInfo, ChainTypeArr, KAIA_MAINNET_CHAIN_ID, REDBELLY_MAINNET_CHAIN_ID, LIGHTLINK_MAINNET_CHAIN_ID, HYPEREVM_MAINNET_CHAIN_ID, POLYGON_MAINNET_CHAIN_ID, OPTIMISM_MAINNET_CHAIN_ID, SONIC_MAINNET_CHAIN_ID, BSC_MAINNET_CHAIN_ID, BASE_MAINNET_CHAIN_ID, ARBITRUM_MAINNET_CHAIN_ID, AVALANCHE_MAINNET_CHAIN_ID, ETHEREUM_MAINNET_CHAIN_ID } from '@sodax/types';
2
2
  import { NearConnector } from '@hot-labs/near-connect';
3
3
  import { JsonRpcProvider } from 'near-api-js';
4
+ import { fetchCallReadOnlyFunction, Cl } from '@stacks/transactions';
5
+ import { networkFrom, createNetwork } from '@stacks/network';
4
6
  import { AddressPurpose, MessageSigningProtocols } from 'sats-connect';
5
7
  import React2, { useMemo, useCallback, useEffect } from 'react';
6
8
  import { useCurrentAccount, useCurrentWallet, useConnectWallet, useWallets, useDisconnectWallet, useSignPersonalMessage, SuiClientProvider, WalletProvider, useSuiClient } from '@mysten/dapp-kit';
@@ -25,9 +27,10 @@ import { StellarWalletsKit, allowAllModules, WalletNetwork } from '@creit.tech/s
25
27
  import * as StellarSdk from '@stellar/stellar-sdk';
26
28
  import { SorobanRpc, Address, Contract, TimeoutInfinite, scValToBigInt, xdr } from '@stellar/stellar-sdk';
27
29
  import * as IconSdkRaw from 'icon-sdk-js';
30
+ import { request as request$1, disconnect } from '@stacks/connect';
28
31
  import { QueryClient, useMutation, useQuery, QueryClientProvider } from '@tanstack/react-query';
29
32
  import { mainnet as mainnet$1 } from 'viem/chains';
30
- import { NearWalletProvider, SolanaWalletProvider, StellarWalletProvider, InjectiveWalletProvider, IconWalletProvider, SuiWalletProvider, EvmWalletProvider } from '@sodax/wallet-sdk-core';
33
+ import { StacksWalletProvider, NearWalletProvider, SolanaWalletProvider, StellarWalletProvider, InjectiveWalletProvider, IconWalletProvider, SuiWalletProvider, EvmWalletProvider } from '@sodax/wallet-sdk-core';
31
34
  import { getFullnodeUrl } from '@mysten/sui/client';
32
35
  import { UnsafeBurnerWalletAdapter } from '@solana/wallet-adapter-wallets';
33
36
 
@@ -121,6 +124,50 @@ var NearXService = class _NearXService extends XService {
121
124
  return BigInt(res ?? 0);
122
125
  }
123
126
  };
127
+ var StacksXService = class _StacksXService extends XService {
128
+ constructor() {
129
+ super("STACKS");
130
+ this.network = networkFrom("mainnet");
131
+ }
132
+ static getInstance() {
133
+ if (!_StacksXService.instance) {
134
+ _StacksXService.instance = new _StacksXService();
135
+ }
136
+ return _StacksXService.instance;
137
+ }
138
+ async getBalance(address, xToken) {
139
+ if (!address) return 0n;
140
+ if (xToken.symbol === "STX") {
141
+ const url = `${this.network?.client.baseUrl}/extended/v1/address/${address}/balances`;
142
+ try {
143
+ const response = await fetch(url);
144
+ if (!response.ok) {
145
+ throw new Error(`Error fetching data: ${response.statusText}`);
146
+ }
147
+ const data = await response.json();
148
+ return BigInt(data.stx.balance);
149
+ } catch (error) {
150
+ console.error("Error fetching STX balance:", error);
151
+ return 0n;
152
+ }
153
+ }
154
+ const [contractAddress, contractName] = xToken.address.split(".");
155
+ try {
156
+ const result = await fetchCallReadOnlyFunction({
157
+ contractAddress,
158
+ contractName,
159
+ functionName: "get-balance",
160
+ functionArgs: [Cl.principal(address)],
161
+ network: this.network,
162
+ senderAddress: address
163
+ });
164
+ return result.value.value;
165
+ } catch (error) {
166
+ console.error("Error fetching token balance:", error);
167
+ return 0n;
168
+ }
169
+ }
170
+ };
124
171
 
125
172
  // src/actions/getXService.ts
126
173
  function getXService(xChainType) {
@@ -141,6 +188,8 @@ function getXService(xChainType) {
141
188
  return StellarXService.getInstance();
142
189
  case "NEAR":
143
190
  return NearXService.getInstance();
191
+ case "STACKS":
192
+ return StacksXService.getInstance();
144
193
  default:
145
194
  throw new Error(`Unsupported chain type: ${xChainType}`);
146
195
  }
@@ -173,6 +222,8 @@ var isNativeToken = (xToken) => {
173
222
  // solana
174
223
  "CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA",
175
224
  // stellar
225
+ "ST000000000000000000002AMW42H.nativetoken",
226
+ // stacks
176
227
  "0:0"
177
228
  // bitcoin
178
229
  ];
@@ -329,10 +380,10 @@ var XverseWalletProvider = class {
329
380
  return 1;
330
381
  }
331
382
  async signTransaction(psbtBase64, finalize = false) {
332
- const { request: request2 } = await import('sats-connect');
383
+ const { request: request3 } = await import('sats-connect');
333
384
  const inputCount = this.countPsbtInputs(psbtBase64);
334
385
  const signingIndexes = Array.from({ length: inputCount }, (_, i) => i);
335
- const response = await request2("signPsbt", {
386
+ const response = await request3("signPsbt", {
336
387
  psbt: psbtBase64,
337
388
  broadcast: false,
338
389
  signInputs: {
@@ -349,8 +400,8 @@ var XverseWalletProvider = class {
349
400
  return result.psbt;
350
401
  }
351
402
  async signEcdsaMessage(message) {
352
- const { request: request2 } = await import('sats-connect');
353
- const response = await request2("signMessage", {
403
+ const { request: request3 } = await import('sats-connect');
404
+ const response = await request3("signMessage", {
354
405
  address: this.address,
355
406
  message,
356
407
  protocol: MessageSigningProtocols.ECDSA
@@ -361,8 +412,8 @@ var XverseWalletProvider = class {
361
412
  return response.result.signature;
362
413
  }
363
414
  async signBip322Message(message) {
364
- const { request: request2 } = await import('sats-connect');
365
- const response = await request2("signMessage", {
415
+ const { request: request3 } = await import('sats-connect');
416
+ const response = await request3("signMessage", {
366
417
  address: this.address,
367
418
  message,
368
419
  protocol: MessageSigningProtocols.BIP322
@@ -373,8 +424,8 @@ var XverseWalletProvider = class {
373
424
  return response.result.signature;
374
425
  }
375
426
  async sendBitcoin(toAddress, satoshis) {
376
- const { request: request2 } = await import('sats-connect');
377
- const response = await request2("sendTransfer", {
427
+ const { request: request3 } = await import('sats-connect');
428
+ const response = await request3("sendTransfer", {
378
429
  recipients: [
379
430
  {
380
431
  address: toAddress,
@@ -412,8 +463,8 @@ var XverseXConnector = class _XverseXConnector extends BitcoinXConnector {
412
463
  if (!_XverseXConnector.isAvailable()) {
413
464
  throw new Error("Xverse wallet is not installed");
414
465
  }
415
- const { request: request2 } = await import('sats-connect');
416
- const response = await request2("getAccounts", {
466
+ const { request: request3 } = await import('sats-connect');
467
+ const response = await request3("getAccounts", {
417
468
  purposes: [this.addressPurpose],
418
469
  message: "Connect to Sodax"
419
470
  });
@@ -1163,11 +1214,82 @@ var IconHanaXConnector = class extends XConnector {
1163
1214
  return "https://raw.githubusercontent.com/balancednetwork/icons/master/wallets/hana.svg";
1164
1215
  }
1165
1216
  };
1217
+ function getProviderFromId(id) {
1218
+ return id.split(".").reduce((acc, part) => acc?.[part], window);
1219
+ }
1220
+ var StacksXConnector = class extends XConnector {
1221
+ constructor(config) {
1222
+ super("STACKS", config.name, config.id);
1223
+ this.config = config;
1224
+ }
1225
+ async connect() {
1226
+ const provider = this.getProvider();
1227
+ if (!provider) {
1228
+ if (this.config.installUrl) {
1229
+ window.open(this.config.installUrl, "_blank");
1230
+ }
1231
+ return void 0;
1232
+ }
1233
+ const response = await request$1({ provider }, "stx_getAddresses");
1234
+ const stxAddress = response.addresses.find((a) => a.purpose === "stacks");
1235
+ if (!stxAddress) {
1236
+ return void 0;
1237
+ }
1238
+ return {
1239
+ address: stxAddress.address,
1240
+ xChainType: this.xChainType
1241
+ };
1242
+ }
1243
+ async disconnect() {
1244
+ disconnect();
1245
+ }
1246
+ get icon() {
1247
+ return this.config.icon;
1248
+ }
1249
+ getProvider() {
1250
+ return getProviderFromId(this.config.id);
1251
+ }
1252
+ };
1253
+
1254
+ // src/xchains/stacks/constants.ts
1255
+ var LEATHER_ICON = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgdmlld0JveD0iMCAwIDEyOCAxMjgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4IiByeD0iMjYuODM4NyIgZmlsbD0iIzEyMTAwRiIvPgo8cGF0aCBkPSJNNzQuOTE3MSA1Mi43MTE0QzgyLjQ3NjYgNTEuNTQwOCA5My40MDg3IDQzLjU4MDQgOTMuNDA4NyAzNy4zNzYxQzkzLjQwODcgMzUuNTAzMSA5MS44OTY4IDM0LjIxNTQgODkuNjg3MSAzNC4yMTU0Qzg1LjUwMDQgMzQuMjE1NCA3OC40MDYxIDQwLjUzNjggNzQuOTE3MSA1Mi43MTE0Wk0zOS45MTEgODMuNDk5MUMzMC4wMjU2IDgzLjQ5OTEgMjkuMjExNSA5My4zMzI0IDM5LjA5NjkgOTMuMzMyNEM0My41MTYzIDkzLjMzMjQgNDguODY2MSA5MS41NzY0IDUxLjY1NzMgODguNDE1N0M0Ny41ODY4IDg0LjkwMzggNDQuMjE0MSA4My40OTkxIDM5LjkxMSA4My40OTkxWk0xMDIuODI5IDc5LjI4NDhDMTAzLjQxIDk1Ljc5MDcgOTUuMDM2OSAxMDUuMDM5IDgwLjg0ODQgMTA1LjAzOUM3Mi40NzQ4IDEwNS4wMzkgNjguMjg4MSAxMDEuODc4IDU5LjMzMyA5Ni4wMjQ5QzU0LjY4MSAxMDEuMTc2IDQ1Ljg0MjMgMTA1LjAzOSAzOC41MTU0IDEwNS4wMzlDMTMuMjc4NSAxMDUuMDM5IDE0LjMyNTIgNzIuODQ2MyA0MC4wMjczIDcyLjg0NjNDNDUuMzc3MSA3Mi44NDYzIDQ5LjkxMjggNzQuMjUxMSA1NS43Mjc3IDc3Ljg4TDU5LjU2NTYgNjQuNDE3N0M0My43NDg5IDYwLjA4NjQgMzUuODQwNSA0Ny45MTE4IDQzLjYzMjYgMzAuNDY5M0g1Ni4xOTI5QzQ5LjIxNSA0Mi4wNTg2IDUzLjk4MzIgNTEuNjU3OCA2Mi44MjIgNTIuNzExNEM2Ny41OTAzIDM1LjczNzIgNzcuODI0NiAyMi41MDkgOTEuNDMxNiAyMi41MDlDOTkuMTA3NCAyMi41MDkgMTA1LjE1NSAyNy41NDI4IDEwNS4xNTUgMzYuNjczN0MxMDUuMTU1IDUxLjMwNjYgODYuMDgxOSA2My4yNDcxIDcxLjY2MDcgNjQuNDE3N0w2NS43Mjk1IDg1LjM3MjFDNzIuNDc0OCA5My4yMTUzIDkxLjE5OSAxMDAuODI0IDkxLjE5OSA3OS4yODQ4SDEwMi44MjlaIiBmaWxsPSIjRjVGMUVEIi8+Cjwvc3ZnPgo=";
1256
+ var XVERSE_ICON = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MDAiIGhlaWdodD0iNjAwIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGZpbGw9IiMxNzE3MTciIGQ9Ik0wIDBoNjAwdjYwMEgweiIvPjxwYXRoIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTQ0MCA0MzUuNHYtNTFjMC0yLS44LTMuOS0yLjItNS4zTDIyMCAxNjIuMmE3LjYgNy42IDAgMCAwLTUuNC0yLjJoLTUxLjFjLTIuNSAwLTQuNiAyLTQuNiA0LjZ2NDcuM2MwIDIgLjggNCAyLjIgNS40bDc4LjIgNzcuOGE0LjYgNC42IDAgMCAxIDAgNi41bC03OSA3OC43Yy0xIC45LTEuNCAyLTEuNCAzLjJ2NTJjMCAyLjQgMiA0LjUgNC42IDQuNUgyNDljMi42IDAgNC42LTIgNC42LTQuNlY0MDVjMC0xLjIuNS0yLjQgMS40LTMuM2w0Mi40LTQyLjJhNC42IDQuNiAwIDAgMSA2LjQgMGw3OC43IDc4LjRhNy42IDcuNiAwIDAgMCA1LjQgMi4yaDQ3LjVjMi41IDAgNC42LTIgNC42LTQuNloiLz48cGF0aCBmaWxsPSIjRUU3QTMwIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0zMjUuNiAyMjcuMmg0Mi44YzIuNiAwIDQuNiAyLjEgNC42IDQuNnY0Mi42YzAgNCA1IDYuMSA4IDMuMmw1OC43LTU4LjVjLjgtLjggMS4zLTIgMS4zLTMuMnYtNTEuMmMwLTIuNi0yLTQuNi00LjYtNC42TDM4NCAxNjBjLTEuMiAwLTIuNC41LTMuMyAxLjNsLTU4LjQgNTguMWE0LjYgNC42IDAgMCAwIDMuMiA3LjhaIi8+PC9nPjwvc3ZnPg==";
1257
+ var ASIGNA_ICON = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwMDEwMCIgZD0iTTAgMGgzMnYzMkgweiIvPjxwYXRoIGZpbGw9InVybCgjYSkiIGQ9Ik0xNS4xMSA1LjU1YTMgMyAwIDAgMC0xLjgyIDEuM2wtLjA1LjA4LS40My43Mi0uMDcuMTEtLjUuODUtLjA1LjA5LTEuMjkgMi4xOC0uMDQuMDctLjQ3LjgtLjA2LjEtLjQ2Ljc4LS4wNy4xMS0xLjYzIDIuNzYtLjA3LjExLS4zOC42Ni0uMDUuMDgtLjczIDEuMjQtLjM1LjYtLjQuNjctLjA1LjA5TDUuMSAyMC43bC0uMTEuMTgtLjE0LjIzLS4wNy4xMy0uMzMuNTUtLjA0LjA3di4wMWExLjI2IDEuMjYgMCAwIDAtLjE0LjQ3IDEuMzEgMS4zMSAwIDAgMCAxLjI0IDEuNGgxLjVsLjA1LS4wNi4wNC0uMDYuODctMS4yMS4wNS0uMDguNzctMS4wNy4wNS0uMDcuNC0uNTcuMDUtLjA2LjI0LS4zNGExLjUyIDEuNTIgMCAwIDEgMS4zOS0uNjIgMS41IDEuNSAwIDAgMSAuNjQuMiAxLjQ3IDEuNDcgMCAwIDEgLjczIDEuMjcgMS40NCAxLjQ0IDAgMCAxLS4yNy44NGwtLjYzLjg4LS4wNS4wNy0uMzIuNDUtLjA2LjA4LS4wOC4xMi0uMTIuMTYtLjA1LjA4aDIuMTNhMi4zMiAyLjMyIDAgMCAwIDEuNzctLjk2bDEuMTgtMS42My43Ny0xLjA4IDEuMy0xLjhhMS4yNCAxLjI0IDAgMCAxIC41NS0uNDNsLjA4LS4wM2ExLjMgMS4zIDAgMCAxIC4zLS4wNiAxLjI4IDEuMjggMCAwIDEgMS4xNS41NGwuMTEuMmExLjEzIDEuMTMgMCAwIDEgLjEuNDEgMS4xOSAxLjE5IDAgMCAxLS4yMy43N2wtLjAzLjA1LS41Ny44LS43Ljk4LS4yNy4zN2ExLjIyIDEuMjIgMCAwIDAtLjIuNSAxLjA1IDEuMDUgMCAwIDAtLjAyLjIzdi4wNmExLjE3IDEuMTcgMCAwIDAgLjE0LjQzbC4wMi4wNS4wNy4xYTEuNDQgMS40NCAwIDAgMCAuMS4xMWwuMDUuMDYuMDEuMDFhMS44IDEuOCAwIDAgMCAuMTQuMWMwIC4wMi4wMi4wMy4wNC4wM2ExIDEgMCAwIDAgLjA4LjA1bC4wNy4wNGExLjI1IDEuMjUgMCAwIDAgLjUuMWg2LjljLjEgMCAuMi0uMDEuMjktLjAzbC4wNi0uMDJhMS4yNyAxLjI3IDAgMCAwIC4yNy0uMS41Ny41NyAwIDAgMCAuMDctLjAzIDEuMjEgMS4yMSAwIDAgMCAuMjYtLjE5bC4wOC0uMDdhLjkyLjkyIDAgMCAwIC4xNS0uMTkgMS41NSAxLjU1IDAgMCAwIC4wOS0uMTdsLjAyLS4wNWExLjIyIDEuMjIgMCAwIDAgLjA4LS4yNnYtLjA0bC4wMi0uMDh2LS4wOGExLjMyIDEuMzIgMCAwIDAtLjItLjc0bC0xLjYtMi42NC0uMDYtLjEtLjItLjMyLS4zMy0uNTR2LS4wMWwtLjA1LS4wOC0xLjMtMi4xNS0uMDctLjEtLjA0LS4wNi0uOC0xLjMyLS4wNC0uMDctLjItLjM0LS4xLS4xNC0uMS0uMTYtLjUzLS45LS4xMy0uMi0uMDktLjE0LTIuMTctMy41Ny0uMDQtLjA3LS43Mi0xLjE5LS4wNS0uMDctLjQtLjY1YTIuNjUgMi42NSAwIDAgMC0uMy0uNCAyLjk2IDIuOTYgMCAwIDAtLjk3LS43NCAzLjA0IDMuMDQgMCAwIDAtMS4zLS4zYy0uMjUgMC0uNS4wNC0uNzQuMVoiLz48cGF0aCBmaWxsPSJ1cmwoI2IpIiBkPSJNMTkgMTYuM2E1LjQ1IDUuNDUgMCAwIDAtLjgzIDEuNTZsLS4wNC4xNWExLjM2IDEuMzYgMCAwIDEgLjI4LS4xNiAxLjI0IDEuMjQgMCAwIDEgLjM4LS4wOGguMWExLjI4IDEuMjggMCAwIDEgMS4wNS41NGMuMDQuMDYuMDguMTMuMS4yYTEuMjQgMS4yNCAwIDAgMSAuMDkuMjcgMS4xOSAxLjE5IDAgMCAxLS4yLjkxbC0uMDQuMDUtLjU3Ljc5LS43Ljk5LS4yNy4zN2ExLjIzIDEuMjMgMCAwIDAtLjIuNDIgMS4wNiAxLjA2IDAgMCAwLS4wMi4zMXYuMDZhMS4xNyAxLjE3IDAgMCAwIC4xNi40Ny45My45MyAwIDAgMCAuMDcuMSAxLjUgMS41IDAgMCAwIC4xLjEybC4wNS4wNmguMDFhMS45NCAxLjk0IDAgMCAwIC4wOS4wOCAxIDEgMCAwIDAgLjE3LjFsLjA3LjA0YTEuMjUgMS4yNSAwIDAgMCAuNS4xaDYuOWMuMSAwIC4yIDAgLjI4LS4wMmwuMDctLjAyYTEuMzIgMS4zMiAwIDAgMCAuMzQtLjEzbC4xNi0uMS4wMy0uMDNhMS4yOSAxLjI5IDAgMCAwIC4yLS4yIDIuNDMgMi40MyAwIDAgMCAuMTItLjE3Yy4wMy0uMDMuMDUtLjA4LjA3LS4xMmwuMDItLjA1YTEuMjEgMS4yMSAwIDAgMCAuMDktLjN2LS4wOGwuMDEtLjA5YTEuMzIgMS4zMiAwIDAgMC0uMi0uNzNsLTEuNi0yLjY0LS4wNi0uMS0uMi0uMzItLjMzLS41NHYtLjAybC0uMDUtLjA3LTEuMy0yLjE1LS4xMi0uMDctLjA3LS4wNGE0Ljk0IDQuOTQgMCAwIDAtMi40Ni0uNjdjLTEuMDMgMC0xLjc2LjU3LTIuMjYgMS4yWiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0xMi4yOSAyMS4wOGMwIC4yOS0uMDkuNTgtLjI3Ljg0bC0xLjMxIDEuODRIN2wyLjUyLTMuNTNhMS41NCAxLjU0IDAgMCAxIDIuMS0uMzZjLjQzLjI4LjY2Ljc0LjY2IDEuMloiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMTEuMTYgMjEuMjVhLjU2LjU2IDAgMCAxLS41Ny41NS41Ni41NiAwIDAgMS0uNTctLjU2LjU2LjU2IDAgMCAxIC41Ny0uNTUuNTYuNTYgMCAwIDEgLjU3LjU2WiIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9IjE1LjIzIiB4Mj0iMTkuMyIgeTE9IjI1Ljc4IiB5Mj0iNi4xMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiM2NTIyRjQiLz48c3RvcCBvZmZzZXQ9Ii41NSIgc3RvcC1jb2xvcj0iIzlCNkJGRiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0E1ODVGRiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiB4MT0iMjIuNTkiIHgyPSIyNC44IiB5MT0iMjQuNzEiIHkyPSIxNS41MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiM0MjFGOEIiLz48c3RvcCBvZmZzZXQ9Ii41NSIgc3RvcC1jb2xvcj0iIzcyMzBGRiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzk3NzNGRiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjwvc3ZnPg==";
1258
+ var FORDEFI_ICON = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDIiIGhlaWdodD0iNDIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZmlsbD0iIzEwMTExNCIgZD0iTTAgMGg0MnY0MkgweiIvPgogIDxwYXRoIGQ9Ik0xOS40NyAyNi44OUg1djMuNTdhNC41NyA0LjU3IDAgMCAwIDQuNTggNC41N2g1LjgzbDQuMDYtOC4xNFoiIGZpbGw9IiM3OTk0RkYiLz4KICA8cGF0aCBkPSJNNSAxNy40aDI3LjU4bC0zLjIgNi43OEg1VjE3LjRaIiBmaWxsPSIjNDg2REZGIi8+CiAgPHBhdGggZD0iTTE0LjY3IDdINXY3LjY4aDMzVjdoLTkuNjd2NS43NGgtMlY3aC05LjY3djUuNzRoLTEuOTlWN1oiIGZpbGw9IiM1Q0QxRkEiLz4KPC9zdmc+Cg==";
1259
+ var STACKS_PROVIDERS = [
1260
+ {
1261
+ id: "LeatherProvider",
1262
+ name: "Leather",
1263
+ icon: LEATHER_ICON,
1264
+ installUrl: "https://chrome.google.com/webstore/detail/hiro-wallet/ldinpeekobnhjjdofggfgjlcehhmanlj"
1265
+ },
1266
+ {
1267
+ id: "XverseProviders.BitcoinProvider",
1268
+ name: "Xverse Wallet",
1269
+ icon: XVERSE_ICON,
1270
+ installUrl: "https://chrome.google.com/webstore/detail/xverse-wallet/idnnbdplmphpflfnlkomgpfbpcgelopg"
1271
+ },
1272
+ {
1273
+ id: "AsignaProvider",
1274
+ name: "Asigna Multisig",
1275
+ icon: ASIGNA_ICON,
1276
+ installUrl: "https://stx.asigna.io/"
1277
+ },
1278
+ {
1279
+ id: "FordefiProviders.UtxoProvider",
1280
+ name: "Fordefi",
1281
+ icon: FORDEFI_ICON,
1282
+ installUrl: "https://chromewebstore.google.com/detail/fordefi/hcmehenccjdmfbojapcbcofkgdpbnlle"
1283
+ }
1284
+ ];
1285
+ function useStacksXConnectors() {
1286
+ return useMemo(() => STACKS_PROVIDERS.map((config) => new StacksXConnector(config)), []);
1287
+ }
1166
1288
 
1167
1289
  // src/useXWagmiStore.ts
1168
1290
  var initXServices = () => {
1169
1291
  const xServices = {};
1170
- ["EVM", "BITCOIN", "INJECTIVE", "STELLAR", "SUI", "SOLANA", "ICON", "NEAR"].forEach((key) => {
1292
+ ["EVM", "BITCOIN", "INJECTIVE", "STELLAR", "SUI", "SOLANA", "ICON", "NEAR", "STACKS"].forEach((key) => {
1171
1293
  const xChainType = key;
1172
1294
  switch (xChainType) {
1173
1295
  // EVM, SUI, Solana wallet connectors are supported by their own sdks. wagmi, @mysten/dapp-kit, @solana/wallet-adapter-react.
@@ -1208,6 +1330,10 @@ var initXServices = () => {
1208
1330
  xServices[xChainType] = NearXService.getInstance();
1209
1331
  xServices[xChainType].setXConnectors([]);
1210
1332
  break;
1333
+ case "STACKS":
1334
+ xServices[xChainType] = StacksXService.getInstance();
1335
+ xServices[xChainType].setXConnectors(STACKS_PROVIDERS.map((config) => new StacksXConnector(config)));
1336
+ break;
1211
1337
  }
1212
1338
  });
1213
1339
  return xServices;
@@ -1495,6 +1621,7 @@ function useXConnectors(xChainType) {
1495
1621
  const suiWallets = useWallets();
1496
1622
  const { data: stellarXConnectors } = useStellarXConnectors();
1497
1623
  const { data: nearXConnectors } = useNearXConnectors();
1624
+ const stacksXConnectors = useStacksXConnectors();
1498
1625
  const { wallets: solanaWallets } = useWallet();
1499
1626
  const xConnectors = useMemo(() => {
1500
1627
  if (!xChainType || !xService) {
@@ -1511,10 +1638,21 @@ function useXConnectors(xChainType) {
1511
1638
  return solanaWallets.filter((wallet) => wallet.readyState === "Installed").map((wallet) => new SolanaXConnector(wallet));
1512
1639
  case "NEAR":
1513
1640
  return nearXConnectors || [];
1641
+ case "STACKS":
1642
+ return stacksXConnectors;
1514
1643
  default:
1515
1644
  return xService.getXConnectors();
1516
1645
  }
1517
- }, [xService, xChainType, evmConnectors, suiWallets, stellarXConnectors, solanaWallets, nearXConnectors]);
1646
+ }, [
1647
+ xService,
1648
+ xChainType,
1649
+ evmConnectors,
1650
+ suiWallets,
1651
+ stellarXConnectors,
1652
+ solanaWallets,
1653
+ nearXConnectors,
1654
+ stacksXConnectors
1655
+ ]);
1518
1656
  return xConnectors;
1519
1657
  }
1520
1658
  function useXDisconnect() {
@@ -1635,6 +1773,8 @@ function useWalletProvider(spokeChainId) {
1635
1773
  const { data: evmWalletClient } = useWalletClient();
1636
1774
  const xService = useXService(getXChainType(spokeChainId));
1637
1775
  const xAccount = useXAccount(spokeChainId);
1776
+ const stacksConnection = useXConnection("STACKS");
1777
+ const stacksConnectors = useXConnectors("STACKS");
1638
1778
  const xConnection = useXConnection(xChainType);
1639
1779
  return useMemo(() => {
1640
1780
  switch (xChainType) {
@@ -1715,10 +1855,27 @@ function useWalletProvider(spokeChainId) {
1715
1855
  }
1716
1856
  return new NearWalletProvider({ wallet: nearXService.walletSelector });
1717
1857
  }
1858
+ case "STACKS": {
1859
+ const address = xAccount.address;
1860
+ if (!address) {
1861
+ return void 0;
1862
+ }
1863
+ const activeStacksConnector = stacksConnectors.find((c) => c.id === stacksConnection?.xConnectorId);
1864
+ return new StacksWalletProvider({ address, provider: activeStacksConnector?.getProvider() });
1865
+ }
1718
1866
  default:
1719
1867
  return void 0;
1720
1868
  }
1721
- }, [xChainType, evmPublicClient, evmWalletClient, xService, xAccount, xConnection]);
1869
+ }, [
1870
+ xChainType,
1871
+ evmPublicClient,
1872
+ evmWalletClient,
1873
+ xService,
1874
+ xAccount,
1875
+ stacksConnection,
1876
+ stacksConnectors,
1877
+ xConnection
1878
+ ]);
1722
1879
  }
1723
1880
  function useXSignMessage() {
1724
1881
  const { signMessage } = useWallet();
@@ -1782,7 +1939,7 @@ function useBitcoinXConnectors() {
1782
1939
  return xService?.getXConnectors() || [];
1783
1940
  }, [xService]);
1784
1941
  }
1785
- var Hydrate = () => {
1942
+ var Hydrate = ({ rpcConfig }) => {
1786
1943
  const suiClient = useSuiClient();
1787
1944
  useEffect(() => {
1788
1945
  if (suiClient) {
@@ -1819,6 +1976,12 @@ var Hydrate = () => {
1819
1976
  EvmXService.getInstance().wagmiConfig = wagmiConfig;
1820
1977
  }
1821
1978
  }, [wagmiConfig]);
1979
+ useEffect(() => {
1980
+ StacksXService.getInstance().network = createNetwork({
1981
+ network: "mainnet",
1982
+ client: { baseUrl: rpcConfig.stacks ?? "https://api.mainnet.hiro.so" }
1983
+ });
1984
+ }, [rpcConfig.stacks]);
1822
1985
  return null;
1823
1986
  };
1824
1987
 
@@ -1873,7 +2036,7 @@ var SodaxWalletProvider = ({ children, rpcConfig }) => {
1873
2036
  return createWagmiConfig(rpcConfig);
1874
2037
  }, [rpcConfig]);
1875
2038
  const wallets = useMemo(() => [new UnsafeBurnerWalletAdapter()], []);
1876
- return /* @__PURE__ */ React2.createElement(QueryClientProvider, { client: queryClient }, /* @__PURE__ */ React2.createElement(WagmiProvider, { reconnectOnMount: false, config: wagmiConfig }, /* @__PURE__ */ React2.createElement(SuiClientProvider, { networks: { mainnet: { url: getFullnodeUrl("mainnet") } }, defaultNetwork: "mainnet" }, /* @__PURE__ */ React2.createElement(WalletProvider, { autoConnect: true }, /* @__PURE__ */ React2.createElement(ConnectionProvider, { endpoint: rpcConfig["solana"] ?? "https://api.mainnet-beta.solana.com" }, /* @__PURE__ */ React2.createElement(WalletProvider$1, { wallets, autoConnect: true }, /* @__PURE__ */ React2.createElement(Hydrate, null), children))))));
2039
+ return /* @__PURE__ */ React2.createElement(QueryClientProvider, { client: queryClient }, /* @__PURE__ */ React2.createElement(WagmiProvider, { reconnectOnMount: false, config: wagmiConfig }, /* @__PURE__ */ React2.createElement(SuiClientProvider, { networks: { mainnet: { url: getFullnodeUrl("mainnet") } }, defaultNetwork: "mainnet" }, /* @__PURE__ */ React2.createElement(WalletProvider, { autoConnect: true }, /* @__PURE__ */ React2.createElement(ConnectionProvider, { endpoint: rpcConfig["solana"] ?? "https://api.mainnet-beta.solana.com" }, /* @__PURE__ */ React2.createElement(WalletProvider$1, { wallets, autoConnect: true }, /* @__PURE__ */ React2.createElement(Hydrate, { rpcConfig }), children))))));
1877
2040
  };
1878
2041
  reconnectIcon();
1879
2042
  reconnectStellar();
@@ -1888,6 +2051,6 @@ var WalletId = /* @__PURE__ */ ((WalletId2) => {
1888
2051
  return WalletId2;
1889
2052
  })(WalletId || {});
1890
2053
 
1891
- export { BitcoinXConnector, BitcoinXService, EvmXConnector, EvmXService, IconHanaXConnector, IconXService, InjectiveKelprXConnector, InjectiveMetamaskXConnector, InjectiveXService, OKXXConnector, SodaxWalletProvider, SolanaXConnector, SolanaXService, StellarWalletsKitXConnector, StellarXService, SuiXConnector, SuiXService, UnisatXConnector, WalletId, XConnector, XService, XverseXConnector, getWagmiChainId, getXChainType, getXService, isNativeToken, switchEthereumChain, useBitcoinXConnectors, useEvmSwitchChain, useWalletProvider, useXAccount, useXAccounts, useXBalances, useXConnect, useXConnection, useXConnectors, useXDisconnect, useXService, useXSignMessage, useXWagmiStore };
2054
+ export { BitcoinXConnector, BitcoinXService, EvmXConnector, EvmXService, IconHanaXConnector, IconXService, InjectiveKelprXConnector, InjectiveMetamaskXConnector, InjectiveXService, OKXXConnector, STACKS_PROVIDERS, SodaxWalletProvider, SolanaXConnector, SolanaXService, StacksXConnector, StacksXService, StellarWalletsKitXConnector, StellarXService, SuiXConnector, SuiXService, UnisatXConnector, WalletId, XConnector, XService, XverseXConnector, getWagmiChainId, getXChainType, getXService, isNativeToken, switchEthereumChain, useBitcoinXConnectors, useEvmSwitchChain, useStacksXConnectors, useWalletProvider, useXAccount, useXAccounts, useXBalances, useXConnect, useXConnection, useXConnectors, useXDisconnect, useXService, useXSignMessage, useXWagmiStore };
1892
2055
  //# sourceMappingURL=index.mjs.map
1893
2056
  //# sourceMappingURL=index.mjs.map