@phantom/browser-injected-sdk 1.0.0-beta.2 → 1.0.0-beta.3

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,4 +1,4 @@
1
- import { P as Plugin } from '../index-ecfd5526.js';
1
+ import { P as Plugin } from '../index-04827df9.js';
2
2
  import { NetworkId } from '@phantom/constants';
3
3
 
4
4
  type AutoConfirmEnableParams = {
@@ -1 +1 @@
1
- export { E as Ethereum, e as EthereumEventType, d as EthereumSignInData, b as EthereumTransaction, a as PhantomEthereumProvider, c as createEthereumPlugin } from '../index-ecfd5526.js';
1
+ export { E as Ethereum, e as EthereumEventType, d as EthereumSignInData, b as EthereumTransaction, a as PhantomEthereumProvider, c as createEthereumPlugin } from '../index-04827df9.js';
@@ -128,8 +128,7 @@ declare function getChainId(): Promise<string>;
128
128
  declare function switchChain(chainId: string): Promise<void>;
129
129
 
130
130
  declare enum ProviderStrategy {
131
- INJECTED = "injected",
132
- DEEPLINK = "deeplink"
131
+ INJECTED = "injected"
133
132
  }
134
133
 
135
134
  interface EthereumStrategy {
package/dist/index.d.ts CHANGED
@@ -1 +1 @@
1
- export { C as CreatePhantomConfig, i as Extension, f as Phantom, P as Plugin, c as createEthereumPlugin, h as createExtensionPlugin, g as createPhantom, j as isPhantomExtensionInstalled } from './index-ecfd5526.js';
1
+ export { C as CreatePhantomConfig, i as Extension, f as Phantom, P as Plugin, c as createEthereumPlugin, h as createExtensionPlugin, g as createPhantom, j as isPhantomExtensionInstalled } from './index-04827df9.js';
@@ -1,4 +1,4 @@
1
- import { P as Plugin } from '../index-ecfd5526.js';
1
+ import { P as Plugin } from '../index-04827df9.js';
2
2
  import { VersionedTransaction, Transaction } from '@solana/web3.js';
3
3
 
4
4
  declare function connect(): Promise<string | undefined>;
@@ -54,6 +54,10 @@ interface PhantomSolanaProvider {
54
54
  signature: string;
55
55
  publicKey?: string;
56
56
  }>;
57
+ signAndSendAllTransactions: (transactions: any[], options?: SendOptions) => Promise<{
58
+ signatures: string[];
59
+ publicKey?: string;
60
+ }>;
57
61
  signAllTransactions: (transactions: any[]) => Promise<any[]>;
58
62
  signTransaction: (transaction: any) => Promise<any>;
59
63
  on: (event: "connect" | "disconnect" | "accountChanged", handler: (publicKey?: PublicKey) => void) => void;
@@ -78,6 +82,17 @@ declare function signAndSendTransaction(transaction: VersionedTransaction | Tran
78
82
  address?: string;
79
83
  }>;
80
84
 
85
+ /**
86
+ * Signs and sends all transactions using the Phantom provider.
87
+ * @param transactions An array of transactions to sign and send (Web3.js format).
88
+ * @returns A promise that resolves with an array of transaction signatures and optionally the public key.
89
+ * @throws Error if Phantom provider is not found or if the operation fails.
90
+ */
91
+ declare function signAndSendAllTransactions(transactions: (VersionedTransaction | Transaction)[]): Promise<{
92
+ signatures: string[];
93
+ address?: string;
94
+ }>;
95
+
81
96
  /**
82
97
  * Signs a transaction using the Phantom provider without sending it.
83
98
  * @param transaction The transaction to sign (Web3.js format).
@@ -86,6 +101,14 @@ declare function signAndSendTransaction(transaction: VersionedTransaction | Tran
86
101
  */
87
102
  declare function signTransaction(transaction: VersionedTransaction | Transaction): Promise<VersionedTransaction | Transaction>;
88
103
 
104
+ /**
105
+ * Signs all transactions using the Phantom provider.
106
+ * @param transactions An array of transactions to sign (Web3.js format).
107
+ * @returns A promise that resolves with an array of signed transactions.
108
+ * @throws Error if Phantom provider is not found or if the operation fails.
109
+ */
110
+ declare function signAllTransactions(transactions: (VersionedTransaction | Transaction)[]): Promise<(VersionedTransaction | Transaction)[]>;
111
+
89
112
  /**
90
113
  * Signs in with Solana using the Phantom provider.
91
114
  * @param signInData The sign-in data.
@@ -117,7 +140,9 @@ type Solana = {
117
140
  signMessage: typeof signMessage;
118
141
  signIn: typeof signIn;
119
142
  signTransaction: typeof signTransaction;
143
+ signAllTransactions: typeof signAllTransactions;
120
144
  signAndSendTransaction: typeof signAndSendTransaction;
145
+ signAndSendAllTransactions: typeof signAndSendAllTransactions;
121
146
  addEventListener: (event: PhantomEventType, callback: PhantomEventCallback) => () => void;
122
147
  removeEventListener: (event: PhantomEventType, callback: PhantomEventCallback) => void;
123
148
  };
@@ -140,6 +140,23 @@ var InjectedSolanaStrategy = class {
140
140
  address: result.publicKey
141
141
  };
142
142
  }
143
+ async signAndSendAllTransactions(transactions) {
144
+ const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
145
+ if (!provider) {
146
+ throw new Error("Provider not found.");
147
+ }
148
+ if (!provider.isConnected) {
149
+ throw new Error("Provider is not connected.");
150
+ }
151
+ if (!provider.signAndSendAllTransactions) {
152
+ throw new Error("Provider does not support signAndSendAllTransactions.");
153
+ }
154
+ const results = await provider.signAndSendAllTransactions(transactions);
155
+ return {
156
+ signatures: results.signatures,
157
+ address: results.publicKey
158
+ };
159
+ }
143
160
  async signTransaction(transaction) {
144
161
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
145
162
  if (!provider) {
@@ -168,93 +185,6 @@ getProvider_fn = function() {
168
185
  return window?.phantom?.solana;
169
186
  };
170
187
 
171
- // src/solana/strategies/deeplinks.ts
172
- var DeepLinkSolanaStrategy = class {
173
- constructor() {
174
- this.type = "deeplink" /* DEEPLINK */;
175
- }
176
- load() {
177
- return Promise.resolve(this);
178
- }
179
- get isConnected() {
180
- return true;
181
- }
182
- async connect({ onlyIfTrusted }) {
183
- const deeplink = `phantom://connect?onlyIfTrusted=${onlyIfTrusted}`;
184
- window.location.href = deeplink;
185
- return Promise.resolve(void 0);
186
- }
187
- async disconnect() {
188
- const deeplink = `phantom://disconnect`;
189
- window.location.href = deeplink;
190
- return Promise.resolve();
191
- }
192
- async getAccount() {
193
- const deeplink = `phantom://account`;
194
- window.location.href = deeplink;
195
- return Promise.resolve(void 0);
196
- }
197
- async signMessage(message, display) {
198
- const messageEncoded = Buffer.from(message).toString("base64");
199
- const deeplink = `phantom://sign-message?message=${messageEncoded}&display=${display}`;
200
- window.location.href = deeplink;
201
- return Promise.resolve({
202
- signature: new Uint8Array(),
203
- address: ""
204
- });
205
- }
206
- async signIn(signInData) {
207
- const deeplink = `phantom://sign-in?signInData=${encodeURIComponent(JSON.stringify(signInData))}`;
208
- window.location.href = deeplink;
209
- return Promise.resolve({
210
- address: "",
211
- signature: new Uint8Array(),
212
- signedMessage: new Uint8Array()
213
- });
214
- }
215
- async signAndSendTransaction(transaction) {
216
- let serialized;
217
- if ("serialize" in transaction && typeof transaction.serialize === "function") {
218
- serialized = transaction.serialize();
219
- } else {
220
- serialized = transaction.serializeMessage?.() || new Uint8Array();
221
- }
222
- const encoded = Buffer.from(serialized).toString("base64");
223
- const deeplink = `phantom://sign-and-send-transaction?transaction=${encoded}`;
224
- window.location.href = deeplink;
225
- return Promise.resolve({
226
- signature: "",
227
- address: ""
228
- });
229
- }
230
- async signTransaction(transaction) {
231
- let serialized;
232
- if ("serialize" in transaction && typeof transaction.serialize === "function") {
233
- serialized = transaction.serialize();
234
- } else {
235
- serialized = transaction.serializeMessage?.() || new Uint8Array();
236
- }
237
- const encoded = Buffer.from(serialized).toString("base64");
238
- const deeplink = `phantom://sign-transaction?transaction=${encoded}`;
239
- window.location.href = deeplink;
240
- return Promise.resolve(transaction);
241
- }
242
- async signAllTransactions(transactions) {
243
- const serializedTxs = transactions.map((tx) => {
244
- let serialized;
245
- if ("serialize" in tx && typeof tx.serialize === "function") {
246
- serialized = tx.serialize();
247
- } else {
248
- serialized = tx.serializeMessage?.() || new Uint8Array();
249
- }
250
- return Buffer.from(serialized).toString("base64");
251
- });
252
- const deeplink = `phantom://sign-all-transactions?transactions=${JSON.stringify(serializedTxs)}`;
253
- window.location.href = deeplink;
254
- return Promise.resolve(transactions);
255
- }
256
- };
257
-
258
188
  // src/solana/getProvider.ts
259
189
  async function getProvider(strategy = "injected" /* INJECTED */) {
260
190
  if (strategy === "injected") {
@@ -265,8 +195,6 @@ async function getProvider(strategy = "injected" /* INJECTED */) {
265
195
  } catch (error) {
266
196
  throw new Error("Provider not found.");
267
197
  }
268
- } else if (strategy === "deeplink") {
269
- return new DeepLinkSolanaStrategy();
270
198
  } else {
271
199
  throw new Error("Invalid provider type.");
272
200
  }
@@ -361,6 +289,18 @@ async function signAndSendTransaction(transaction) {
361
289
  return provider.signAndSendTransaction(transaction);
362
290
  }
363
291
 
292
+ // src/solana/signAndSendAllTransactions.ts
293
+ async function signAndSendAllTransactions(transactions) {
294
+ const provider = await getProvider();
295
+ if (!provider) {
296
+ throw new Error("Provider not found.");
297
+ }
298
+ if (!provider.isConnected) {
299
+ await provider.connect({ onlyIfTrusted: false });
300
+ }
301
+ return provider.signAndSendAllTransactions(transactions);
302
+ }
303
+
364
304
  // src/solana/signTransaction.ts
365
305
  async function signTransaction(transaction) {
366
306
  const provider = await getProvider();
@@ -373,6 +313,18 @@ async function signTransaction(transaction) {
373
313
  return provider.signTransaction(transaction);
374
314
  }
375
315
 
316
+ // src/solana/signAllTransactions.ts
317
+ async function signAllTransactions(transactions) {
318
+ const provider = await getProvider();
319
+ if (!provider) {
320
+ throw new Error("Provider not found.");
321
+ }
322
+ if (!provider.isConnected) {
323
+ await provider.connect({ onlyIfTrusted: false });
324
+ }
325
+ return provider.signAllTransactions(transactions);
326
+ }
327
+
376
328
  // src/solana/signIn.ts
377
329
  async function signIn(signInData) {
378
330
  const provider = await getProvider();
@@ -406,7 +358,9 @@ var solana = {
406
358
  signMessage,
407
359
  signIn,
408
360
  signTransaction,
361
+ signAllTransactions,
409
362
  signAndSendTransaction,
363
+ signAndSendAllTransactions,
410
364
  addEventListener,
411
365
  removeEventListener
412
366
  };
@@ -107,6 +107,23 @@ var InjectedSolanaStrategy = class {
107
107
  address: result.publicKey
108
108
  };
109
109
  }
110
+ async signAndSendAllTransactions(transactions) {
111
+ const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
112
+ if (!provider) {
113
+ throw new Error("Provider not found.");
114
+ }
115
+ if (!provider.isConnected) {
116
+ throw new Error("Provider is not connected.");
117
+ }
118
+ if (!provider.signAndSendAllTransactions) {
119
+ throw new Error("Provider does not support signAndSendAllTransactions.");
120
+ }
121
+ const results = await provider.signAndSendAllTransactions(transactions);
122
+ return {
123
+ signatures: results.signatures,
124
+ address: results.publicKey
125
+ };
126
+ }
110
127
  async signTransaction(transaction) {
111
128
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
112
129
  if (!provider) {
@@ -135,93 +152,6 @@ getProvider_fn = function() {
135
152
  return window?.phantom?.solana;
136
153
  };
137
154
 
138
- // src/solana/strategies/deeplinks.ts
139
- var DeepLinkSolanaStrategy = class {
140
- constructor() {
141
- this.type = "deeplink" /* DEEPLINK */;
142
- }
143
- load() {
144
- return Promise.resolve(this);
145
- }
146
- get isConnected() {
147
- return true;
148
- }
149
- async connect({ onlyIfTrusted }) {
150
- const deeplink = `phantom://connect?onlyIfTrusted=${onlyIfTrusted}`;
151
- window.location.href = deeplink;
152
- return Promise.resolve(void 0);
153
- }
154
- async disconnect() {
155
- const deeplink = `phantom://disconnect`;
156
- window.location.href = deeplink;
157
- return Promise.resolve();
158
- }
159
- async getAccount() {
160
- const deeplink = `phantom://account`;
161
- window.location.href = deeplink;
162
- return Promise.resolve(void 0);
163
- }
164
- async signMessage(message, display) {
165
- const messageEncoded = Buffer.from(message).toString("base64");
166
- const deeplink = `phantom://sign-message?message=${messageEncoded}&display=${display}`;
167
- window.location.href = deeplink;
168
- return Promise.resolve({
169
- signature: new Uint8Array(),
170
- address: ""
171
- });
172
- }
173
- async signIn(signInData) {
174
- const deeplink = `phantom://sign-in?signInData=${encodeURIComponent(JSON.stringify(signInData))}`;
175
- window.location.href = deeplink;
176
- return Promise.resolve({
177
- address: "",
178
- signature: new Uint8Array(),
179
- signedMessage: new Uint8Array()
180
- });
181
- }
182
- async signAndSendTransaction(transaction) {
183
- let serialized;
184
- if ("serialize" in transaction && typeof transaction.serialize === "function") {
185
- serialized = transaction.serialize();
186
- } else {
187
- serialized = transaction.serializeMessage?.() || new Uint8Array();
188
- }
189
- const encoded = Buffer.from(serialized).toString("base64");
190
- const deeplink = `phantom://sign-and-send-transaction?transaction=${encoded}`;
191
- window.location.href = deeplink;
192
- return Promise.resolve({
193
- signature: "",
194
- address: ""
195
- });
196
- }
197
- async signTransaction(transaction) {
198
- let serialized;
199
- if ("serialize" in transaction && typeof transaction.serialize === "function") {
200
- serialized = transaction.serialize();
201
- } else {
202
- serialized = transaction.serializeMessage?.() || new Uint8Array();
203
- }
204
- const encoded = Buffer.from(serialized).toString("base64");
205
- const deeplink = `phantom://sign-transaction?transaction=${encoded}`;
206
- window.location.href = deeplink;
207
- return Promise.resolve(transaction);
208
- }
209
- async signAllTransactions(transactions) {
210
- const serializedTxs = transactions.map((tx) => {
211
- let serialized;
212
- if ("serialize" in tx && typeof tx.serialize === "function") {
213
- serialized = tx.serialize();
214
- } else {
215
- serialized = tx.serializeMessage?.() || new Uint8Array();
216
- }
217
- return Buffer.from(serialized).toString("base64");
218
- });
219
- const deeplink = `phantom://sign-all-transactions?transactions=${JSON.stringify(serializedTxs)}`;
220
- window.location.href = deeplink;
221
- return Promise.resolve(transactions);
222
- }
223
- };
224
-
225
155
  // src/solana/getProvider.ts
226
156
  async function getProvider(strategy = "injected" /* INJECTED */) {
227
157
  if (strategy === "injected") {
@@ -232,8 +162,6 @@ async function getProvider(strategy = "injected" /* INJECTED */) {
232
162
  } catch (error) {
233
163
  throw new Error("Provider not found.");
234
164
  }
235
- } else if (strategy === "deeplink") {
236
- return new DeepLinkSolanaStrategy();
237
165
  } else {
238
166
  throw new Error("Invalid provider type.");
239
167
  }
@@ -328,6 +256,18 @@ async function signAndSendTransaction(transaction) {
328
256
  return provider.signAndSendTransaction(transaction);
329
257
  }
330
258
 
259
+ // src/solana/signAndSendAllTransactions.ts
260
+ async function signAndSendAllTransactions(transactions) {
261
+ const provider = await getProvider();
262
+ if (!provider) {
263
+ throw new Error("Provider not found.");
264
+ }
265
+ if (!provider.isConnected) {
266
+ await provider.connect({ onlyIfTrusted: false });
267
+ }
268
+ return provider.signAndSendAllTransactions(transactions);
269
+ }
270
+
331
271
  // src/solana/signTransaction.ts
332
272
  async function signTransaction(transaction) {
333
273
  const provider = await getProvider();
@@ -340,6 +280,18 @@ async function signTransaction(transaction) {
340
280
  return provider.signTransaction(transaction);
341
281
  }
342
282
 
283
+ // src/solana/signAllTransactions.ts
284
+ async function signAllTransactions(transactions) {
285
+ const provider = await getProvider();
286
+ if (!provider) {
287
+ throw new Error("Provider not found.");
288
+ }
289
+ if (!provider.isConnected) {
290
+ await provider.connect({ onlyIfTrusted: false });
291
+ }
292
+ return provider.signAllTransactions(transactions);
293
+ }
294
+
343
295
  // src/solana/signIn.ts
344
296
  async function signIn(signInData) {
345
297
  const provider = await getProvider();
@@ -373,7 +325,9 @@ var solana = {
373
325
  signMessage,
374
326
  signIn,
375
327
  signTransaction,
328
+ signAllTransactions,
376
329
  signAndSendTransaction,
330
+ signAndSendAllTransactions,
377
331
  addEventListener,
378
332
  removeEventListener
379
333
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phantom/browser-injected-sdk",
3
- "version": "1.0.0-beta.2",
3
+ "version": "1.0.0-beta.3",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",
@@ -42,7 +42,7 @@
42
42
  "prettier": "prettier --write \"src/**/*.{ts,tsx}\""
43
43
  },
44
44
  "dependencies": {
45
- "@phantom/constants": "^1.0.0-beta.2",
45
+ "@phantom/constants": "^1.0.0-beta.3",
46
46
  "@solana/web3.js": "^1.98.2"
47
47
  },
48
48
  "devDependencies": {