@sodax/wallet-sdk-react 1.3.1-beta-rc3 → 1.3.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,6 @@
1
- import { ChainId, ChainType, XToken, IBitcoinWalletProvider, 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, RpcConfig } from '@sodax/types';
2
+ export { BtcWalletAddressType } from '@sodax/types';
3
+ import { AddressPurpose } from 'sats-connect';
2
4
  import { Config, Connector } from 'wagmi';
3
5
  import { IconService } from 'icon-sdk-js';
4
6
  import { IndexerGrpcAccountPortfolioApi, ChainGrpcWasmApi } from '@injectivelabs/sdk-ts';
@@ -186,7 +188,11 @@ declare class UnisatXConnector extends BitcoinXConnector {
186
188
 
187
189
  declare class XverseXConnector extends BitcoinXConnector {
188
190
  private walletProvider;
191
+ /** Address purpose used when connecting. Taproot (Ordinals) by default to match Radfi. */
192
+ addressPurpose: AddressPurpose;
189
193
  constructor();
194
+ /** Set address purpose and persist to localStorage. */
195
+ setAddressPurpose(type: BtcWalletAddressType): void;
190
196
  static isAvailable(): boolean;
191
197
  get icon(): string;
192
198
  connect(): Promise<XAccount | undefined>;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- import { ChainId, ChainType, XToken, IBitcoinWalletProvider, 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, RpcConfig } from '@sodax/types';
2
+ export { BtcWalletAddressType } from '@sodax/types';
3
+ import { AddressPurpose } from 'sats-connect';
2
4
  import { Config, Connector } from 'wagmi';
3
5
  import { IconService } from 'icon-sdk-js';
4
6
  import { IndexerGrpcAccountPortfolioApi, ChainGrpcWasmApi } from '@injectivelabs/sdk-ts';
@@ -186,7 +188,11 @@ declare class UnisatXConnector extends BitcoinXConnector {
186
188
 
187
189
  declare class XverseXConnector extends BitcoinXConnector {
188
190
  private walletProvider;
191
+ /** Address purpose used when connecting. Taproot (Ordinals) by default to match Radfi. */
192
+ addressPurpose: AddressPurpose;
189
193
  constructor();
194
+ /** Set address purpose and persist to localStorage. */
195
+ setAddressPurpose(type: BtcWalletAddressType): void;
190
196
  static isAvailable(): boolean;
191
197
  get icon(): string;
192
198
  connect(): Promise<XAccount | undefined>;
package/dist/index.mjs CHANGED
@@ -388,9 +388,19 @@ var XverseWalletProvider = class {
388
388
  return response.result.txid;
389
389
  }
390
390
  };
391
+ var XVERSE_ADDRESS_TYPE_KEY = "xverse-address-type";
391
392
  var XverseXConnector = class _XverseXConnector extends BitcoinXConnector {
392
393
  constructor() {
393
394
  super("Xverse", "xverse");
395
+ const saved = typeof window !== "undefined" ? localStorage.getItem(XVERSE_ADDRESS_TYPE_KEY) : null;
396
+ this.addressPurpose = saved === "segwit" ? AddressPurpose.Payment : AddressPurpose.Ordinals;
397
+ }
398
+ /** Set address purpose and persist to localStorage. */
399
+ setAddressPurpose(type) {
400
+ this.addressPurpose = type === "taproot" ? AddressPurpose.Ordinals : AddressPurpose.Payment;
401
+ if (typeof window !== "undefined") {
402
+ localStorage.setItem(XVERSE_ADDRESS_TYPE_KEY, type);
403
+ }
394
404
  }
395
405
  static isAvailable() {
396
406
  return typeof window !== "undefined" && !!window.BitcoinProvider;
@@ -404,14 +414,14 @@ var XverseXConnector = class _XverseXConnector extends BitcoinXConnector {
404
414
  }
405
415
  const { request: request2 } = await import('sats-connect');
406
416
  const response = await request2("getAccounts", {
407
- purposes: [AddressPurpose.Payment],
417
+ purposes: [this.addressPurpose],
408
418
  message: "Connect to Sodax"
409
419
  });
410
420
  if (response.status === "error") {
411
421
  throw new Error(response.error?.message || "Xverse connection failed");
412
422
  }
413
423
  const accounts = response.result;
414
- const paymentAccount = accounts.find((a) => a.purpose === AddressPurpose.Payment) || accounts[0];
424
+ const paymentAccount = accounts.find((a) => a.purpose === this.addressPurpose) || accounts[0];
415
425
  if (!paymentAccount) return void 0;
416
426
  this.walletProvider = new XverseWalletProvider(
417
427
  paymentAccount.address,