@phantom/embedded-provider-core 1.0.0-beta.2 → 1.0.0-beta.21
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/README.md +0 -4
- package/dist/index.d.mts +82 -32
- package/dist/index.d.ts +82 -32
- package/dist/index.js +399 -244
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +402 -248
- package/dist/index.mjs.map +1 -1
- package/package.json +9 -8
package/README.md
CHANGED
|
@@ -60,7 +60,6 @@ const config: EmbeddedProviderConfig = {
|
|
|
60
60
|
appId: "your-app-id",
|
|
61
61
|
embeddedWalletType: "user-wallet", // or 'app-wallet'
|
|
62
62
|
addressTypes: ["solana", "ethereum"],
|
|
63
|
-
solanaProvider: "web3js",
|
|
64
63
|
authOptions: {
|
|
65
64
|
authUrl: "https://auth.phantom.app",
|
|
66
65
|
redirectUrl: "https://your-app.com/callback",
|
|
@@ -180,7 +179,6 @@ For server-side authenticated users:
|
|
|
180
179
|
const authOptions = {
|
|
181
180
|
provider: "jwt",
|
|
182
181
|
jwtToken: "your-jwt-token",
|
|
183
|
-
customAuthData: { userId: "user123" },
|
|
184
182
|
};
|
|
185
183
|
|
|
186
184
|
const result = await provider.connect(authOptions);
|
|
@@ -194,7 +192,6 @@ For social login flows:
|
|
|
194
192
|
// Google OAuth
|
|
195
193
|
const authOptions = {
|
|
196
194
|
provider: "google",
|
|
197
|
-
customAuthData: { referrer: "landing-page" },
|
|
198
195
|
};
|
|
199
196
|
|
|
200
197
|
await provider.connect(authOptions); // Will redirect/deep link
|
|
@@ -276,7 +273,6 @@ interface EmbeddedProviderConfig {
|
|
|
276
273
|
addressTypes: [AddressType, ...AddressType[]]; // Supported blockchain addresses
|
|
277
274
|
|
|
278
275
|
// Optional
|
|
279
|
-
solanaProvider?: "web3js" | "kit"; // Solana library preference
|
|
280
276
|
authOptions?: {
|
|
281
277
|
authUrl?: string; // Custom auth URL
|
|
282
278
|
redirectUrl?: string; // OAuth redirect URL
|
package/dist/index.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { StamperWithKeyManagement } from '@phantom/sdk-types';
|
|
1
|
+
import { StamperWithKeyManagement, Transaction, VersionedTransaction } from '@phantom/sdk-types';
|
|
2
|
+
import { ClientSideSdkHeaders, NetworkId } from '@phantom/constants';
|
|
2
3
|
import { AddressType } from '@phantom/client';
|
|
3
|
-
import { NetworkId } from '@phantom/constants';
|
|
4
4
|
import { ParsedSignatureResult, ParsedTransactionResult } from '@phantom/parsers';
|
|
5
|
-
import { ISolanaChain, IEthereumChain, EthTransactionRequest } from '@phantom/
|
|
5
|
+
import { ISolanaChain, IEthereumChain, EthTransactionRequest } from '@phantom/chain-interfaces';
|
|
6
6
|
|
|
7
7
|
interface Keypair {
|
|
8
8
|
publicKey: string;
|
|
@@ -22,20 +22,21 @@ interface Session {
|
|
|
22
22
|
stamperInfo: StamperInfo;
|
|
23
23
|
keypair?: Keypair;
|
|
24
24
|
authProvider?: string;
|
|
25
|
-
userInfo?: Record<string, any>;
|
|
26
25
|
status: "pending" | "completed" | "failed";
|
|
27
26
|
createdAt: number;
|
|
28
27
|
lastUsed: number;
|
|
29
28
|
authenticatorCreatedAt: number;
|
|
30
29
|
authenticatorExpiresAt: number;
|
|
31
30
|
lastRenewalAttempt?: number;
|
|
32
|
-
username: string;
|
|
33
31
|
accountDerivationIndex?: number;
|
|
32
|
+
authUserId?: string;
|
|
34
33
|
}
|
|
35
34
|
interface EmbeddedStorage {
|
|
36
35
|
getSession(): Promise<Session | null>;
|
|
37
36
|
saveSession(session: Session): Promise<void>;
|
|
38
37
|
clearSession(): Promise<void>;
|
|
38
|
+
getShouldClearPreviousSession(): Promise<boolean>;
|
|
39
|
+
setShouldClearPreviousSession(should: boolean): Promise<void>;
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
/**
|
|
@@ -60,38 +61,49 @@ interface URLParamsAccessor {
|
|
|
60
61
|
|
|
61
62
|
interface AuthResult {
|
|
62
63
|
walletId: string;
|
|
64
|
+
organizationId: string;
|
|
63
65
|
provider?: string;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
+
accountDerivationIndex: number;
|
|
67
|
+
expiresInMs: number;
|
|
68
|
+
authUserId?: string;
|
|
66
69
|
}
|
|
67
70
|
interface PhantomConnectOptions {
|
|
68
|
-
|
|
69
|
-
parentOrganizationId: string;
|
|
71
|
+
publicKey: string;
|
|
70
72
|
appId: string;
|
|
71
73
|
provider?: "google" | "apple";
|
|
72
74
|
redirectUrl?: string;
|
|
73
|
-
customAuthData?: Record<string, any>;
|
|
74
75
|
authUrl?: string;
|
|
75
76
|
sessionId: string;
|
|
77
|
+
clearPreviousSession?: boolean;
|
|
78
|
+
allowRefresh?: boolean;
|
|
76
79
|
}
|
|
77
80
|
interface JWTAuthOptions {
|
|
78
81
|
appId: string;
|
|
79
|
-
|
|
80
|
-
parentOrganizationId: string;
|
|
82
|
+
publicKey: string;
|
|
81
83
|
jwtToken: string;
|
|
82
|
-
customAuthData?: Record<string, any>;
|
|
83
84
|
}
|
|
84
85
|
interface AuthProvider {
|
|
85
86
|
authenticate(options: PhantomConnectOptions | JWTAuthOptions): Promise<void | AuthResult>;
|
|
86
87
|
resumeAuthFromRedirect?(): AuthResult | null;
|
|
87
88
|
}
|
|
89
|
+
interface PhantomAppAuthOptions {
|
|
90
|
+
publicKey: string;
|
|
91
|
+
appId: string;
|
|
92
|
+
sessionId: string;
|
|
93
|
+
}
|
|
94
|
+
interface PhantomAppProvider {
|
|
95
|
+
authenticate(options: PhantomAppAuthOptions): Promise<AuthResult>;
|
|
96
|
+
isAvailable(): boolean;
|
|
97
|
+
}
|
|
88
98
|
|
|
89
99
|
interface PlatformAdapter {
|
|
90
100
|
name: string;
|
|
91
101
|
storage: EmbeddedStorage;
|
|
92
102
|
authProvider: AuthProvider;
|
|
103
|
+
phantomAppProvider: PhantomAppProvider;
|
|
93
104
|
urlParamsAccessor: URLParamsAccessor;
|
|
94
105
|
stamper: StamperWithKeyManagement;
|
|
106
|
+
analyticsHeaders?: Partial<ClientSideSdkHeaders>;
|
|
95
107
|
}
|
|
96
108
|
interface DebugLogger {
|
|
97
109
|
info(category: string, message: string, data?: any): void;
|
|
@@ -108,11 +120,17 @@ interface ConnectResult {
|
|
|
108
120
|
walletId?: string;
|
|
109
121
|
addresses: WalletAddress[];
|
|
110
122
|
status?: "pending" | "completed";
|
|
123
|
+
providerType?: "embedded" | "injected";
|
|
124
|
+
authUserId?: string;
|
|
111
125
|
}
|
|
112
126
|
interface SignMessageParams {
|
|
113
127
|
message: string;
|
|
114
128
|
networkId: NetworkId;
|
|
115
129
|
}
|
|
130
|
+
interface SignTypedDataV4Params {
|
|
131
|
+
typedData: any;
|
|
132
|
+
networkId: NetworkId;
|
|
133
|
+
}
|
|
116
134
|
interface SignMessageResult extends ParsedSignatureResult {
|
|
117
135
|
}
|
|
118
136
|
interface SignTransactionParams {
|
|
@@ -126,30 +144,52 @@ interface SignAndSendTransactionParams {
|
|
|
126
144
|
interface SignedTransaction extends ParsedTransactionResult {
|
|
127
145
|
}
|
|
128
146
|
interface AuthOptions {
|
|
129
|
-
provider
|
|
147
|
+
provider: "google" | "apple" | "jwt" | "phantom" | "injected";
|
|
130
148
|
jwtToken?: string;
|
|
131
149
|
customAuthData?: Record<string, any>;
|
|
132
150
|
}
|
|
133
151
|
interface EmbeddedProviderConfig {
|
|
134
152
|
apiBaseUrl: string;
|
|
135
153
|
appId: string;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
redirectUrl?: string;
|
|
154
|
+
authOptions: {
|
|
155
|
+
authUrl: string;
|
|
156
|
+
redirectUrl: string;
|
|
140
157
|
};
|
|
141
158
|
embeddedWalletType: "app-wallet" | "user-wallet" | (string & Record<never, never>);
|
|
142
|
-
addressTypes:
|
|
143
|
-
solanaProvider: "web3js" | "kit" | (string & Record<never, never>);
|
|
159
|
+
addressTypes: AddressType[];
|
|
144
160
|
}
|
|
145
161
|
|
|
146
162
|
type EmbeddedProviderEvent = "connect" | "connect_start" | "connect_error" | "disconnect" | "error";
|
|
147
|
-
|
|
163
|
+
interface ConnectEventData extends ConnectResult {
|
|
164
|
+
source: "auto-connect" | "manual-connect" | "manual-existing" | "existing-session" | "manual";
|
|
165
|
+
}
|
|
166
|
+
interface ConnectStartEventData {
|
|
167
|
+
source: "auto-connect" | "manual-connect";
|
|
168
|
+
authOptions?: {
|
|
169
|
+
provider?: string;
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
interface ConnectErrorEventData {
|
|
173
|
+
error: string;
|
|
174
|
+
source: "auto-connect" | "manual-connect";
|
|
175
|
+
}
|
|
176
|
+
interface DisconnectEventData {
|
|
177
|
+
source: "manual";
|
|
178
|
+
}
|
|
179
|
+
interface EmbeddedProviderEventMap {
|
|
180
|
+
connect: ConnectEventData;
|
|
181
|
+
connect_start: ConnectStartEventData;
|
|
182
|
+
connect_error: ConnectErrorEventData;
|
|
183
|
+
disconnect: DisconnectEventData;
|
|
184
|
+
error: any;
|
|
185
|
+
}
|
|
186
|
+
type EventCallback<T = any> = (data: T) => void;
|
|
148
187
|
declare class EmbeddedProvider {
|
|
149
188
|
private config;
|
|
150
189
|
private platform;
|
|
151
190
|
private storage;
|
|
152
191
|
private authProvider;
|
|
192
|
+
private phantomAppProvider;
|
|
153
193
|
private urlParamsAccessor;
|
|
154
194
|
private stamper;
|
|
155
195
|
private logger;
|
|
@@ -161,29 +201,36 @@ declare class EmbeddedProvider {
|
|
|
161
201
|
readonly ethereum: IEthereumChain;
|
|
162
202
|
private eventListeners;
|
|
163
203
|
constructor(config: EmbeddedProviderConfig, platform: PlatformAdapter, logger: DebugLogger);
|
|
164
|
-
on(event:
|
|
165
|
-
off(event:
|
|
204
|
+
on<K extends EmbeddedProviderEvent>(event: K, callback: EventCallback<EmbeddedProviderEventMap[K]>): void;
|
|
205
|
+
off<K extends EmbeddedProviderEvent>(event: K, callback: EventCallback<EmbeddedProviderEventMap[K]>): void;
|
|
166
206
|
private emit;
|
|
207
|
+
/**
|
|
208
|
+
* Get the appropriate address for a given network ID from available addresses
|
|
209
|
+
*/
|
|
210
|
+
private getAddressForNetwork;
|
|
167
211
|
private getAndFilterWalletAddresses;
|
|
168
212
|
private validateAndCleanSession;
|
|
169
213
|
private tryExistingConnection;
|
|
170
214
|
private validateAuthOptions;
|
|
171
215
|
private isSessionValid;
|
|
172
216
|
autoConnect(): Promise<void>;
|
|
173
|
-
private
|
|
174
|
-
|
|
175
|
-
|
|
217
|
+
private initializeStamper;
|
|
218
|
+
private createOrganizationForAppWallet;
|
|
219
|
+
connect(authOptions: AuthOptions): Promise<ConnectResult>;
|
|
220
|
+
disconnect(shouldClearPreviousSession?: boolean): Promise<void>;
|
|
176
221
|
signMessage(params: SignMessageParams): Promise<ParsedSignatureResult>;
|
|
222
|
+
signEthereumMessage(params: SignMessageParams): Promise<ParsedSignatureResult>;
|
|
223
|
+
signTypedDataV4(params: SignTypedDataV4Params): Promise<ParsedSignatureResult>;
|
|
177
224
|
signTransaction(params: SignTransactionParams): Promise<ParsedTransactionResult>;
|
|
178
225
|
signAndSendTransaction(params: SignAndSendTransactionParams): Promise<ParsedTransactionResult>;
|
|
179
226
|
getAddresses(): WalletAddress[];
|
|
180
227
|
isConnected(): boolean;
|
|
181
228
|
private handleAuthFlow;
|
|
182
229
|
private handleJWTAuth;
|
|
230
|
+
private handlePhantomAuth;
|
|
183
231
|
private handleRedirectAuth;
|
|
184
232
|
private completeAuthConnection;
|
|
185
233
|
private ensureValidAuthenticator;
|
|
186
|
-
private renewAuthenticator;
|
|
187
234
|
private initializeClientFromSession;
|
|
188
235
|
}
|
|
189
236
|
|
|
@@ -212,11 +259,14 @@ declare class EmbeddedSolanaChain implements ISolanaChain {
|
|
|
212
259
|
signature: Uint8Array;
|
|
213
260
|
publicKey: string;
|
|
214
261
|
}>;
|
|
215
|
-
signTransaction
|
|
216
|
-
signAndSendTransaction
|
|
262
|
+
signTransaction(transaction: Transaction | VersionedTransaction): Promise<Transaction | VersionedTransaction>;
|
|
263
|
+
signAndSendTransaction(transaction: Transaction | VersionedTransaction): Promise<{
|
|
217
264
|
signature: string;
|
|
218
265
|
}>;
|
|
219
|
-
signAllTransactions
|
|
266
|
+
signAllTransactions(transactions: (Transaction | VersionedTransaction)[]): Promise<(Transaction | VersionedTransaction)[]>;
|
|
267
|
+
signAndSendAllTransactions(transactions: (Transaction | VersionedTransaction)[]): Promise<{
|
|
268
|
+
signatures: string[];
|
|
269
|
+
}>;
|
|
220
270
|
connect(_options?: {
|
|
221
271
|
onlyIfTrusted?: boolean;
|
|
222
272
|
}): Promise<{
|
|
@@ -257,7 +307,7 @@ declare class EmbeddedEthereumChain implements IEthereumChain {
|
|
|
257
307
|
signTypedData(typedData: any, address: string): Promise<string>;
|
|
258
308
|
signTransaction(transaction: EthTransactionRequest): Promise<string>;
|
|
259
309
|
sendTransaction(transaction: EthTransactionRequest): Promise<string>;
|
|
260
|
-
switchChain(chainId: number): Promise<void>;
|
|
310
|
+
switchChain(chainId: number | string): Promise<void>;
|
|
261
311
|
getChainId(): Promise<number>;
|
|
262
312
|
getAccounts(): Promise<string[]>;
|
|
263
313
|
isConnected(): boolean;
|
|
@@ -285,4 +335,4 @@ declare const AUTHENTICATOR_EXPIRATION_TIME_MS: number;
|
|
|
285
335
|
*/
|
|
286
336
|
declare const AUTHENTICATOR_RENEWAL_WINDOW_MS: number;
|
|
287
337
|
|
|
288
|
-
export { AUTHENTICATOR_EXPIRATION_TIME_MS, AUTHENTICATOR_RENEWAL_WINDOW_MS, AuthOptions, AuthProvider, AuthResult, ConnectResult, DebugLogger, EmbeddedEthereumChain, EmbeddedProvider, EmbeddedProviderConfig, EmbeddedProviderEvent, EmbeddedSolanaChain, EmbeddedStorage, EventCallback, JWTAuth, JWTAuthOptions, Keypair, PhantomConnectOptions, PlatformAdapter, Session, SignAndSendTransactionParams, SignMessageParams, SignMessageResult, SignTransactionParams, SignedTransaction, StamperInfo, URLParamsAccessor, WalletAddress, generateSessionId, retryWithBackoff };
|
|
338
|
+
export { AUTHENTICATOR_EXPIRATION_TIME_MS, AUTHENTICATOR_RENEWAL_WINDOW_MS, AuthOptions, AuthProvider, AuthResult, ConnectErrorEventData, ConnectEventData, ConnectResult, ConnectStartEventData, DebugLogger, DisconnectEventData, EmbeddedEthereumChain, EmbeddedProvider, EmbeddedProviderConfig, EmbeddedProviderEvent, EmbeddedProviderEventMap, EmbeddedSolanaChain, EmbeddedStorage, EventCallback, JWTAuth, JWTAuthOptions, Keypair, PhantomAppAuthOptions, PhantomAppProvider, PhantomConnectOptions, PlatformAdapter, Session, SignAndSendTransactionParams, SignMessageParams, SignMessageResult, SignTransactionParams, SignTypedDataV4Params, SignedTransaction, StamperInfo, URLParamsAccessor, WalletAddress, generateSessionId, retryWithBackoff };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { StamperWithKeyManagement } from '@phantom/sdk-types';
|
|
1
|
+
import { StamperWithKeyManagement, Transaction, VersionedTransaction } from '@phantom/sdk-types';
|
|
2
|
+
import { ClientSideSdkHeaders, NetworkId } from '@phantom/constants';
|
|
2
3
|
import { AddressType } from '@phantom/client';
|
|
3
|
-
import { NetworkId } from '@phantom/constants';
|
|
4
4
|
import { ParsedSignatureResult, ParsedTransactionResult } from '@phantom/parsers';
|
|
5
|
-
import { ISolanaChain, IEthereumChain, EthTransactionRequest } from '@phantom/
|
|
5
|
+
import { ISolanaChain, IEthereumChain, EthTransactionRequest } from '@phantom/chain-interfaces';
|
|
6
6
|
|
|
7
7
|
interface Keypair {
|
|
8
8
|
publicKey: string;
|
|
@@ -22,20 +22,21 @@ interface Session {
|
|
|
22
22
|
stamperInfo: StamperInfo;
|
|
23
23
|
keypair?: Keypair;
|
|
24
24
|
authProvider?: string;
|
|
25
|
-
userInfo?: Record<string, any>;
|
|
26
25
|
status: "pending" | "completed" | "failed";
|
|
27
26
|
createdAt: number;
|
|
28
27
|
lastUsed: number;
|
|
29
28
|
authenticatorCreatedAt: number;
|
|
30
29
|
authenticatorExpiresAt: number;
|
|
31
30
|
lastRenewalAttempt?: number;
|
|
32
|
-
username: string;
|
|
33
31
|
accountDerivationIndex?: number;
|
|
32
|
+
authUserId?: string;
|
|
34
33
|
}
|
|
35
34
|
interface EmbeddedStorage {
|
|
36
35
|
getSession(): Promise<Session | null>;
|
|
37
36
|
saveSession(session: Session): Promise<void>;
|
|
38
37
|
clearSession(): Promise<void>;
|
|
38
|
+
getShouldClearPreviousSession(): Promise<boolean>;
|
|
39
|
+
setShouldClearPreviousSession(should: boolean): Promise<void>;
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
/**
|
|
@@ -60,38 +61,49 @@ interface URLParamsAccessor {
|
|
|
60
61
|
|
|
61
62
|
interface AuthResult {
|
|
62
63
|
walletId: string;
|
|
64
|
+
organizationId: string;
|
|
63
65
|
provider?: string;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
+
accountDerivationIndex: number;
|
|
67
|
+
expiresInMs: number;
|
|
68
|
+
authUserId?: string;
|
|
66
69
|
}
|
|
67
70
|
interface PhantomConnectOptions {
|
|
68
|
-
|
|
69
|
-
parentOrganizationId: string;
|
|
71
|
+
publicKey: string;
|
|
70
72
|
appId: string;
|
|
71
73
|
provider?: "google" | "apple";
|
|
72
74
|
redirectUrl?: string;
|
|
73
|
-
customAuthData?: Record<string, any>;
|
|
74
75
|
authUrl?: string;
|
|
75
76
|
sessionId: string;
|
|
77
|
+
clearPreviousSession?: boolean;
|
|
78
|
+
allowRefresh?: boolean;
|
|
76
79
|
}
|
|
77
80
|
interface JWTAuthOptions {
|
|
78
81
|
appId: string;
|
|
79
|
-
|
|
80
|
-
parentOrganizationId: string;
|
|
82
|
+
publicKey: string;
|
|
81
83
|
jwtToken: string;
|
|
82
|
-
customAuthData?: Record<string, any>;
|
|
83
84
|
}
|
|
84
85
|
interface AuthProvider {
|
|
85
86
|
authenticate(options: PhantomConnectOptions | JWTAuthOptions): Promise<void | AuthResult>;
|
|
86
87
|
resumeAuthFromRedirect?(): AuthResult | null;
|
|
87
88
|
}
|
|
89
|
+
interface PhantomAppAuthOptions {
|
|
90
|
+
publicKey: string;
|
|
91
|
+
appId: string;
|
|
92
|
+
sessionId: string;
|
|
93
|
+
}
|
|
94
|
+
interface PhantomAppProvider {
|
|
95
|
+
authenticate(options: PhantomAppAuthOptions): Promise<AuthResult>;
|
|
96
|
+
isAvailable(): boolean;
|
|
97
|
+
}
|
|
88
98
|
|
|
89
99
|
interface PlatformAdapter {
|
|
90
100
|
name: string;
|
|
91
101
|
storage: EmbeddedStorage;
|
|
92
102
|
authProvider: AuthProvider;
|
|
103
|
+
phantomAppProvider: PhantomAppProvider;
|
|
93
104
|
urlParamsAccessor: URLParamsAccessor;
|
|
94
105
|
stamper: StamperWithKeyManagement;
|
|
106
|
+
analyticsHeaders?: Partial<ClientSideSdkHeaders>;
|
|
95
107
|
}
|
|
96
108
|
interface DebugLogger {
|
|
97
109
|
info(category: string, message: string, data?: any): void;
|
|
@@ -108,11 +120,17 @@ interface ConnectResult {
|
|
|
108
120
|
walletId?: string;
|
|
109
121
|
addresses: WalletAddress[];
|
|
110
122
|
status?: "pending" | "completed";
|
|
123
|
+
providerType?: "embedded" | "injected";
|
|
124
|
+
authUserId?: string;
|
|
111
125
|
}
|
|
112
126
|
interface SignMessageParams {
|
|
113
127
|
message: string;
|
|
114
128
|
networkId: NetworkId;
|
|
115
129
|
}
|
|
130
|
+
interface SignTypedDataV4Params {
|
|
131
|
+
typedData: any;
|
|
132
|
+
networkId: NetworkId;
|
|
133
|
+
}
|
|
116
134
|
interface SignMessageResult extends ParsedSignatureResult {
|
|
117
135
|
}
|
|
118
136
|
interface SignTransactionParams {
|
|
@@ -126,30 +144,52 @@ interface SignAndSendTransactionParams {
|
|
|
126
144
|
interface SignedTransaction extends ParsedTransactionResult {
|
|
127
145
|
}
|
|
128
146
|
interface AuthOptions {
|
|
129
|
-
provider
|
|
147
|
+
provider: "google" | "apple" | "jwt" | "phantom" | "injected";
|
|
130
148
|
jwtToken?: string;
|
|
131
149
|
customAuthData?: Record<string, any>;
|
|
132
150
|
}
|
|
133
151
|
interface EmbeddedProviderConfig {
|
|
134
152
|
apiBaseUrl: string;
|
|
135
153
|
appId: string;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
redirectUrl?: string;
|
|
154
|
+
authOptions: {
|
|
155
|
+
authUrl: string;
|
|
156
|
+
redirectUrl: string;
|
|
140
157
|
};
|
|
141
158
|
embeddedWalletType: "app-wallet" | "user-wallet" | (string & Record<never, never>);
|
|
142
|
-
addressTypes:
|
|
143
|
-
solanaProvider: "web3js" | "kit" | (string & Record<never, never>);
|
|
159
|
+
addressTypes: AddressType[];
|
|
144
160
|
}
|
|
145
161
|
|
|
146
162
|
type EmbeddedProviderEvent = "connect" | "connect_start" | "connect_error" | "disconnect" | "error";
|
|
147
|
-
|
|
163
|
+
interface ConnectEventData extends ConnectResult {
|
|
164
|
+
source: "auto-connect" | "manual-connect" | "manual-existing" | "existing-session" | "manual";
|
|
165
|
+
}
|
|
166
|
+
interface ConnectStartEventData {
|
|
167
|
+
source: "auto-connect" | "manual-connect";
|
|
168
|
+
authOptions?: {
|
|
169
|
+
provider?: string;
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
interface ConnectErrorEventData {
|
|
173
|
+
error: string;
|
|
174
|
+
source: "auto-connect" | "manual-connect";
|
|
175
|
+
}
|
|
176
|
+
interface DisconnectEventData {
|
|
177
|
+
source: "manual";
|
|
178
|
+
}
|
|
179
|
+
interface EmbeddedProviderEventMap {
|
|
180
|
+
connect: ConnectEventData;
|
|
181
|
+
connect_start: ConnectStartEventData;
|
|
182
|
+
connect_error: ConnectErrorEventData;
|
|
183
|
+
disconnect: DisconnectEventData;
|
|
184
|
+
error: any;
|
|
185
|
+
}
|
|
186
|
+
type EventCallback<T = any> = (data: T) => void;
|
|
148
187
|
declare class EmbeddedProvider {
|
|
149
188
|
private config;
|
|
150
189
|
private platform;
|
|
151
190
|
private storage;
|
|
152
191
|
private authProvider;
|
|
192
|
+
private phantomAppProvider;
|
|
153
193
|
private urlParamsAccessor;
|
|
154
194
|
private stamper;
|
|
155
195
|
private logger;
|
|
@@ -161,29 +201,36 @@ declare class EmbeddedProvider {
|
|
|
161
201
|
readonly ethereum: IEthereumChain;
|
|
162
202
|
private eventListeners;
|
|
163
203
|
constructor(config: EmbeddedProviderConfig, platform: PlatformAdapter, logger: DebugLogger);
|
|
164
|
-
on(event:
|
|
165
|
-
off(event:
|
|
204
|
+
on<K extends EmbeddedProviderEvent>(event: K, callback: EventCallback<EmbeddedProviderEventMap[K]>): void;
|
|
205
|
+
off<K extends EmbeddedProviderEvent>(event: K, callback: EventCallback<EmbeddedProviderEventMap[K]>): void;
|
|
166
206
|
private emit;
|
|
207
|
+
/**
|
|
208
|
+
* Get the appropriate address for a given network ID from available addresses
|
|
209
|
+
*/
|
|
210
|
+
private getAddressForNetwork;
|
|
167
211
|
private getAndFilterWalletAddresses;
|
|
168
212
|
private validateAndCleanSession;
|
|
169
213
|
private tryExistingConnection;
|
|
170
214
|
private validateAuthOptions;
|
|
171
215
|
private isSessionValid;
|
|
172
216
|
autoConnect(): Promise<void>;
|
|
173
|
-
private
|
|
174
|
-
|
|
175
|
-
|
|
217
|
+
private initializeStamper;
|
|
218
|
+
private createOrganizationForAppWallet;
|
|
219
|
+
connect(authOptions: AuthOptions): Promise<ConnectResult>;
|
|
220
|
+
disconnect(shouldClearPreviousSession?: boolean): Promise<void>;
|
|
176
221
|
signMessage(params: SignMessageParams): Promise<ParsedSignatureResult>;
|
|
222
|
+
signEthereumMessage(params: SignMessageParams): Promise<ParsedSignatureResult>;
|
|
223
|
+
signTypedDataV4(params: SignTypedDataV4Params): Promise<ParsedSignatureResult>;
|
|
177
224
|
signTransaction(params: SignTransactionParams): Promise<ParsedTransactionResult>;
|
|
178
225
|
signAndSendTransaction(params: SignAndSendTransactionParams): Promise<ParsedTransactionResult>;
|
|
179
226
|
getAddresses(): WalletAddress[];
|
|
180
227
|
isConnected(): boolean;
|
|
181
228
|
private handleAuthFlow;
|
|
182
229
|
private handleJWTAuth;
|
|
230
|
+
private handlePhantomAuth;
|
|
183
231
|
private handleRedirectAuth;
|
|
184
232
|
private completeAuthConnection;
|
|
185
233
|
private ensureValidAuthenticator;
|
|
186
|
-
private renewAuthenticator;
|
|
187
234
|
private initializeClientFromSession;
|
|
188
235
|
}
|
|
189
236
|
|
|
@@ -212,11 +259,14 @@ declare class EmbeddedSolanaChain implements ISolanaChain {
|
|
|
212
259
|
signature: Uint8Array;
|
|
213
260
|
publicKey: string;
|
|
214
261
|
}>;
|
|
215
|
-
signTransaction
|
|
216
|
-
signAndSendTransaction
|
|
262
|
+
signTransaction(transaction: Transaction | VersionedTransaction): Promise<Transaction | VersionedTransaction>;
|
|
263
|
+
signAndSendTransaction(transaction: Transaction | VersionedTransaction): Promise<{
|
|
217
264
|
signature: string;
|
|
218
265
|
}>;
|
|
219
|
-
signAllTransactions
|
|
266
|
+
signAllTransactions(transactions: (Transaction | VersionedTransaction)[]): Promise<(Transaction | VersionedTransaction)[]>;
|
|
267
|
+
signAndSendAllTransactions(transactions: (Transaction | VersionedTransaction)[]): Promise<{
|
|
268
|
+
signatures: string[];
|
|
269
|
+
}>;
|
|
220
270
|
connect(_options?: {
|
|
221
271
|
onlyIfTrusted?: boolean;
|
|
222
272
|
}): Promise<{
|
|
@@ -257,7 +307,7 @@ declare class EmbeddedEthereumChain implements IEthereumChain {
|
|
|
257
307
|
signTypedData(typedData: any, address: string): Promise<string>;
|
|
258
308
|
signTransaction(transaction: EthTransactionRequest): Promise<string>;
|
|
259
309
|
sendTransaction(transaction: EthTransactionRequest): Promise<string>;
|
|
260
|
-
switchChain(chainId: number): Promise<void>;
|
|
310
|
+
switchChain(chainId: number | string): Promise<void>;
|
|
261
311
|
getChainId(): Promise<number>;
|
|
262
312
|
getAccounts(): Promise<string[]>;
|
|
263
313
|
isConnected(): boolean;
|
|
@@ -285,4 +335,4 @@ declare const AUTHENTICATOR_EXPIRATION_TIME_MS: number;
|
|
|
285
335
|
*/
|
|
286
336
|
declare const AUTHENTICATOR_RENEWAL_WINDOW_MS: number;
|
|
287
337
|
|
|
288
|
-
export { AUTHENTICATOR_EXPIRATION_TIME_MS, AUTHENTICATOR_RENEWAL_WINDOW_MS, AuthOptions, AuthProvider, AuthResult, ConnectResult, DebugLogger, EmbeddedEthereumChain, EmbeddedProvider, EmbeddedProviderConfig, EmbeddedProviderEvent, EmbeddedSolanaChain, EmbeddedStorage, EventCallback, JWTAuth, JWTAuthOptions, Keypair, PhantomConnectOptions, PlatformAdapter, Session, SignAndSendTransactionParams, SignMessageParams, SignMessageResult, SignTransactionParams, SignedTransaction, StamperInfo, URLParamsAccessor, WalletAddress, generateSessionId, retryWithBackoff };
|
|
338
|
+
export { AUTHENTICATOR_EXPIRATION_TIME_MS, AUTHENTICATOR_RENEWAL_WINDOW_MS, AuthOptions, AuthProvider, AuthResult, ConnectErrorEventData, ConnectEventData, ConnectResult, ConnectStartEventData, DebugLogger, DisconnectEventData, EmbeddedEthereumChain, EmbeddedProvider, EmbeddedProviderConfig, EmbeddedProviderEvent, EmbeddedProviderEventMap, EmbeddedSolanaChain, EmbeddedStorage, EventCallback, JWTAuth, JWTAuthOptions, Keypair, PhantomAppAuthOptions, PhantomAppProvider, PhantomConnectOptions, PlatformAdapter, Session, SignAndSendTransactionParams, SignMessageParams, SignMessageResult, SignTransactionParams, SignTypedDataV4Params, SignedTransaction, StamperInfo, URLParamsAccessor, WalletAddress, generateSessionId, retryWithBackoff };
|