@phantom/browser-sdk 1.0.0-beta.21 → 1.0.0-beta.24

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.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { EmbeddedProviderConfig, AuthOptions, ConnectResult, WalletAddress, EmbeddedProviderEvent, EventCallback } from '@phantom/embedded-provider-core';
2
- export { AuthOptions, ConnectErrorEventData, ConnectEventData, ConnectResult, ConnectStartEventData, DisconnectEventData, EmbeddedProviderEvent, EmbeddedProviderEventMap, EventCallback, SignAndSendTransactionParams, SignMessageParams, SignMessageResult, SignedTransaction, WalletAddress } from '@phantom/embedded-provider-core';
1
+ import { EmbeddedProviderConfig, EmbeddedProviderAuthType, ConnectResult as ConnectResult$1, WalletAddress, EmbeddedProviderEvent, EventCallback } from '@phantom/embedded-provider-core';
2
+ export { ConnectErrorEventData, ConnectEventData, ConnectStartEventData, DisconnectEventData, EmbeddedProviderEvent, EmbeddedProviderEventMap, EventCallback, SignAndSendTransactionParams, SignMessageParams, SignMessageResult, SignedTransaction, WalletAddress } from '@phantom/embedded-provider-core';
3
3
  import { ISolanaChain, IEthereumChain } from '@phantom/chain-interfaces';
4
4
  export { EthTransactionRequest, IEthereumChain, ISolanaChain } from '@phantom/chain-interfaces';
5
5
  import { AddressType } from '@phantom/client';
@@ -52,9 +52,6 @@ declare const DebugCategory: {
52
52
  readonly SESSION: "Session";
53
53
  };
54
54
 
55
- /**
56
- * Phantom extension app.login API types
57
- */
58
55
  interface PhantomAppLoginOptions {
59
56
  publicKey: string;
60
57
  appId: string;
@@ -95,34 +92,37 @@ interface DebugConfig {
95
92
  level?: DebugLevel;
96
93
  callback?: DebugCallback;
97
94
  }
98
- type BrowserSDKConfig = Prettify<(ExtendedEmbeddedProviderConfig | ExtendedInjectedProviderConfig) & {
99
- autoConnect?: boolean;
100
- }>;
101
- type Prettify<T> = {
102
- [K in keyof T]: T[K];
103
- } & {};
104
- interface ExtendedEmbeddedProviderConfig extends Omit<EmbeddedProviderConfig, "authOptions" | "apiBaseUrl" | "embeddedWalletType"> {
105
- providerType: "embedded";
95
+ type BrowserSDKConfig = Prettify<Omit<EmbeddedProviderConfig, "authOptions" | "apiBaseUrl" | "embeddedWalletType" | "appId"> & InjectedProviderConfig & {
96
+ providers: AuthProviderType[];
97
+ appId?: string;
106
98
  apiBaseUrl?: string;
107
99
  embeddedWalletType?: "app-wallet" | "user-wallet";
108
100
  authOptions?: {
109
101
  authUrl?: string;
110
102
  redirectUrl?: string;
111
103
  };
112
- }
113
- interface ExtendedInjectedProviderConfig extends InjectedProviderConfig {
114
- providerType: "injected";
115
- appId?: never;
116
- authOptions?: never;
117
- embeddedWalletType?: never;
118
- }
104
+ }>;
105
+ type Prettify<T> = {
106
+ [K in keyof T]: T[K];
107
+ } & {};
108
+ type AuthProviderType = EmbeddedProviderAuthType | "injected";
109
+ type AuthOptions = {
110
+ provider: AuthProviderType;
111
+ walletId?: string;
112
+ customAuthData?: Record<string, any>;
113
+ };
114
+ type ConnectResult = Omit<ConnectResult$1, "authProvider"> & {
115
+ authProvider?: AuthProviderType | undefined;
116
+ walletId?: string | undefined;
117
+ };
119
118
 
120
119
  interface Provider {
121
- connect(authOptions?: AuthOptions): Promise<ConnectResult>;
120
+ connect(authOptions: AuthOptions): Promise<ConnectResult>;
122
121
  disconnect(): Promise<void>;
123
122
  getAddresses(): WalletAddress[];
124
123
  isConnected(): boolean;
125
124
  autoConnect(): Promise<void>;
125
+ getEnabledAddressTypes(): AddressType[];
126
126
  solana: ISolanaChain;
127
127
  ethereum: IEthereumChain;
128
128
  }
@@ -132,22 +132,30 @@ interface ProviderPreference {
132
132
  embeddedWalletType?: "app-wallet" | "user-wallet";
133
133
  }
134
134
 
135
- /**
136
- * Browser SDK with chain-specific API
137
- *
138
- * Usage:
139
- * ```typescript
140
- * const sdk = new BrowserSDK({ providerType: 'embedded', appId: 'your-app-id' });
141
- * await sdk.connect();
142
- *
143
- * // Chain-specific operations
144
- * await sdk.solana.signMessage(message);
145
- * await sdk.ethereum.signPersonalMessage(message, address);
146
- * ```
147
- */
135
+ type InjectedWalletId = string;
136
+ interface WalletProviders {
137
+ /** EIP-6963 Ethereum provider (window.ethereum-like) */
138
+ ethereum?: IEthereumChain;
139
+ /** Wallet Standard Solana wallet object */
140
+ solana?: ISolanaChain;
141
+ }
142
+ interface InjectedWalletInfo {
143
+ id: InjectedWalletId;
144
+ name: string;
145
+ icon?: string;
146
+ addressTypes: AddressType[];
147
+ providers?: WalletProviders;
148
+ /** Reverse DNS identifier from EIP-6963 (for potential future matching with Wallet Standard) */
149
+ rdns?: string;
150
+ }
151
+
148
152
  declare class BrowserSDK {
149
153
  private providerManager;
154
+ private walletRegistry;
155
+ private config;
156
+ isLoading: boolean;
150
157
  constructor(config: BrowserSDKConfig);
158
+ discoverWallets(): Promise<void>;
151
159
  /**
152
160
  * Access Solana chain operations
153
161
  */
@@ -177,9 +185,12 @@ declare class BrowserSDK {
177
185
  */
178
186
  getCurrentProviderInfo(): ProviderPreference | null;
179
187
  /**
180
- * Check if Phantom extension is installed
188
+ * Get enabled address types for the current provider
189
+ * - For embedded provider: returns config.addressTypes
190
+ * - For Phantom injected: returns config.addressTypes
191
+ * - For discovered wallets: returns the wallet's addressTypes from registry
181
192
  */
182
- static isPhantomInstalled(timeoutMs?: number): Promise<boolean>;
193
+ getEnabledAddressTypes(): AddressType[];
183
194
  /**
184
195
  * Add event listener for provider events (connect, connect_start, connect_error, disconnect, error)
185
196
  * Works with both embedded and injected providers
@@ -196,29 +207,10 @@ declare class BrowserSDK {
196
207
  * Tries embedded provider first, then injected provider as fallback
197
208
  */
198
209
  autoConnect(): Promise<void>;
199
- /**
200
- * Debug configuration methods
201
- * These allow dynamic debug configuration without SDK reinstantiation
202
- */
203
- /**
204
- * Enable debug logging
205
- */
206
210
  enableDebug(): void;
207
- /**
208
- * Disable debug logging
209
- */
210
211
  disableDebug(): void;
211
- /**
212
- * Set debug level
213
- */
214
212
  setDebugLevel(level: DebugLevel): void;
215
- /**
216
- * Set debug callback function
217
- */
218
213
  setDebugCallback(callback: DebugCallback): void;
219
- /**
220
- * Configure debug settings all at once
221
- */
222
214
  configureDebug(config: {
223
215
  enabled?: boolean;
224
216
  level?: DebugLevel;
@@ -244,6 +236,7 @@ declare class BrowserSDK {
244
236
  * Only available for injected providers
245
237
  */
246
238
  getSupportedAutoConfirmChains(): Promise<AutoConfirmSupportedChainsResult>;
239
+ getDiscoveredWallets(): InjectedWalletInfo[];
247
240
  }
248
241
 
249
242
  /**
@@ -317,13 +310,8 @@ declare function waitForPhantomExtension(timeoutMs?: number): Promise<boolean>;
317
310
  * Usage:
318
311
  * ```typescript
319
312
  * const isAvailable = await isPhantomLoginAvailable();
320
- * if (isAvailable) {
321
- * console.log("Phantom Login is available!");
322
- * } else {
323
- * console.log("Phantom Login is not available");
324
- * }
325
313
  * ```
326
314
  */
327
315
  declare function isPhantomLoginAvailable(timeoutMs?: number): Promise<boolean>;
328
316
 
329
- export { BrowserInfo, BrowserSDK, BrowserSDKConfig, DebugCallback, DebugCategory, DebugConfig, DebugLevel, DebugMessage, Provider, debug, detectBrowser, getBrowserDisplayName, getDeeplinkToPhantom, getPlatformName, isMobileDevice, isPhantomLoginAvailable, parseBrowserFromUserAgent, waitForPhantomExtension };
317
+ export { AuthOptions, AuthProviderType, BrowserInfo, BrowserSDK, BrowserSDKConfig, ConnectResult, DebugCallback, DebugCategory, DebugConfig, DebugLevel, DebugMessage, InjectedWalletId, InjectedWalletInfo, Provider, debug, detectBrowser, getBrowserDisplayName, getDeeplinkToPhantom, getPlatformName, isMobileDevice, isPhantomLoginAvailable, parseBrowserFromUserAgent, waitForPhantomExtension };