@dynamic-labs/embedded-wallet-solana 4.96.2 → 4.96.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.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,16 @@
1
1
 
2
+ ### [4.96.3](https://github.com/dynamic-labs/dynamic-auth/compare/v4.96.2...v4.96.3) (2026-08-19)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * remediate high-severity dependency vulnerabilities ([#12237](https://github.com/dynamic-labs/dynamic-auth/issues/12237)) ([daab647](https://github.com/dynamic-labs/dynamic-auth/commit/daab6476d30709a3262369ae656fd9b4416ced5f))
8
+
9
+
10
+ ### Performance Improvements
11
+
12
+ * **ethereum-gasless-core:** parallel 7702 auth signing and long-poll sponsored-tx status ([#12226](https://github.com/dynamic-labs/dynamic-auth/issues/12226)) ([0ef5c2c](https://github.com/dynamic-labs/dynamic-auth/commit/0ef5c2cae8a8f9972cedeeff11381cbef9b36e88))
13
+
2
14
  ### [4.96.2](https://github.com/dynamic-labs/dynamic-auth/compare/v4.96.1...v4.96.2) (2026-08-14)
3
15
 
4
16
  ### [4.96.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.96.0...v4.96.1) (2026-08-10)
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.96.2";
6
+ var version = "4.96.3";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.96.2";
2
+ var version = "4.96.3";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/embedded-wallet-solana",
3
- "version": "4.96.2",
3
+ "version": "4.96.3",
4
4
  "description": "A React SDK for implementing wallet web3 authentication and authorization to your website.",
5
5
  "author": "Dynamic Labs, Inc.",
6
6
  "license": "MIT",
@@ -18,21 +18,21 @@
18
18
  },
19
19
  "homepage": "https://www.dynamic.xyz/",
20
20
  "dependencies": {
21
- "@dynamic-labs/utils": "4.96.2",
22
- "@dynamic-labs/types": "4.96.2",
23
- "@dynamic-labs/sdk-api-core": "0.0.1125",
21
+ "@dynamic-labs/utils": "4.96.3",
22
+ "@dynamic-labs/types": "4.96.3",
23
+ "@dynamic-labs/sdk-api-core": "0.12.0",
24
24
  "@dynamic-labs-sdk/client": "1.27.1",
25
25
  "@solana/web3.js": "1.98.1",
26
26
  "@turnkey/iframe-stamper": "2.5.0",
27
27
  "@turnkey/solana": "1.0.42",
28
28
  "@turnkey/webauthn-stamper": "0.5.1",
29
- "@dynamic-labs/assert-package-version": "4.96.2",
30
- "@dynamic-labs/embedded-wallet": "4.96.2",
31
- "@dynamic-labs/rpc-providers": "4.96.2",
32
- "@dynamic-labs/solana-core": "4.96.2",
33
- "@dynamic-labs/wallet-book": "4.96.2",
34
- "@dynamic-labs/wallet-connector-core": "4.96.2",
35
- "@dynamic-labs/webauthn": "4.96.2",
29
+ "@dynamic-labs/assert-package-version": "4.96.3",
30
+ "@dynamic-labs/embedded-wallet": "4.96.3",
31
+ "@dynamic-labs/rpc-providers": "4.96.3",
32
+ "@dynamic-labs/solana-core": "4.96.3",
33
+ "@dynamic-labs/wallet-book": "4.96.3",
34
+ "@dynamic-labs/wallet-connector-core": "4.96.3",
35
+ "@dynamic-labs/webauthn": "4.96.3",
36
36
  "viem": "2.46.3"
37
37
  },
38
38
  "peerDependencies": {}
@@ -46,7 +46,7 @@ const sponsorSolanaTransaction = (environmentId, transaction) => _tslib.__awaite
46
46
  const { legacyToken } = core$1.state.get();
47
47
  const url = `${core$1.apiBaseUrl}/sdk/${environmentId}/solana/sponsorTransaction`;
48
48
  if (!legacyToken) {
49
- throw new Error('No auth token available for sponsoring transaction');
49
+ throw new utils.DynamicError('No auth token available for sponsoring transaction', 'sponsorship_missing_auth_token');
50
50
  }
51
51
  const response = yield utils.FetchService.fetch(url, {
52
52
  body: JSON.stringify({ transaction: serializedTransaction }),
@@ -58,12 +58,15 @@ const sponsorSolanaTransaction = (environmentId, transaction) => _tslib.__awaite
58
58
  method: 'POST',
59
59
  });
60
60
  if (!response.ok) {
61
- const errorBody = yield response.json().catch(() => ({}));
62
- throw new Error(errorBody.error || `Failed to sponsor transaction: ${response.status}`);
61
+ // Encode the HTTP status in the error code so callers can classify
62
+ // permanent rejections (400/403) versus transient ones (429/5xx)
63
+ // without exposing the response URL or server-supplied details in the
64
+ // user-facing message.
65
+ throw new utils.DynamicError('Failed to sponsor transaction', `sponsorship_http_${response.status}`);
63
66
  }
64
67
  const data = yield response.json();
65
68
  if (!data.transaction) {
66
- throw new Error('Invalid API response: missing transaction field');
69
+ throw new utils.DynamicError('Invalid API response: missing transaction field', 'sponsorship_invalid_response');
67
70
  }
68
71
  const sponsoredTransaction = deserializeTransaction(data.transaction);
69
72
  return sponsoredTransaction;
@@ -2,7 +2,7 @@
2
2
  import { __awaiter } from '../../../../_virtual/_tslib.js';
3
3
  import { VersionedTransaction } from '@solana/web3.js';
4
4
  import { getDefaultClient, getCore, createApiClient } from '@dynamic-labs-sdk/client/core';
5
- import { FetchService } from '@dynamic-labs/utils';
5
+ import { DynamicError, FetchService } from '@dynamic-labs/utils';
6
6
 
7
7
  const serializeTransaction = (transaction) => {
8
8
  if (transaction instanceof VersionedTransaction) {
@@ -42,7 +42,7 @@ const sponsorSolanaTransaction = (environmentId, transaction) => __awaiter(void
42
42
  const { legacyToken } = core.state.get();
43
43
  const url = `${core.apiBaseUrl}/sdk/${environmentId}/solana/sponsorTransaction`;
44
44
  if (!legacyToken) {
45
- throw new Error('No auth token available for sponsoring transaction');
45
+ throw new DynamicError('No auth token available for sponsoring transaction', 'sponsorship_missing_auth_token');
46
46
  }
47
47
  const response = yield FetchService.fetch(url, {
48
48
  body: JSON.stringify({ transaction: serializedTransaction }),
@@ -54,12 +54,15 @@ const sponsorSolanaTransaction = (environmentId, transaction) => __awaiter(void
54
54
  method: 'POST',
55
55
  });
56
56
  if (!response.ok) {
57
- const errorBody = yield response.json().catch(() => ({}));
58
- throw new Error(errorBody.error || `Failed to sponsor transaction: ${response.status}`);
57
+ // Encode the HTTP status in the error code so callers can classify
58
+ // permanent rejections (400/403) versus transient ones (429/5xx)
59
+ // without exposing the response URL or server-supplied details in the
60
+ // user-facing message.
61
+ throw new DynamicError('Failed to sponsor transaction', `sponsorship_http_${response.status}`);
59
62
  }
60
63
  const data = yield response.json();
61
64
  if (!data.transaction) {
62
- throw new Error('Invalid API response: missing transaction field');
65
+ throw new DynamicError('Invalid API response: missing transaction field', 'sponsorship_invalid_response');
63
66
  }
64
67
  const sponsoredTransaction = deserializeTransaction(data.transaction);
65
68
  return sponsoredTransaction;