@dynamic-labs/embedded-wallet-solana 5.3.1 → 5.4.0

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,43 @@
1
1
 
2
+ ## [5.4.0](https://github.com/dynamic-labs/dynamic-auth/compare/v5.3.2...v5.4.0) (2026-08-25)
3
+
4
+
5
+ ### Features
6
+
7
+ * **aleo:** wire up signMessage on the WaaS Aleo connector ([#12235](https://github.com/dynamic-labs/dynamic-auth/issues/12235)) ([e56cbf5](https://github.com/dynamic-labs/dynamic-auth/commit/e56cbf5546bdcc21ce916dece43ae36dcea9b808))
8
+ * **waas:** thread isRawScalarImport through importPrivateKey for ed25519 chains ([#12220](https://github.com/dynamic-labs/dynamic-auth/issues/12220)) ([ced9efa](https://github.com/dynamic-labs/dynamic-auth/commit/ced9efac5fa5a4a1280383419f56fe22733722cd))
9
+ * **webview:** add policies message contract and controller ([#12248](https://github.com/dynamic-labs/dynamic-auth/issues/12248)) ([8557c1e](https://github.com/dynamic-labs/dynamic-auth/commit/8557c1ed3861e12f1f06b2bb610184813b577daa))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * **bitcoin:** pass the wallet's address type when signing ([#12265](https://github.com/dynamic-labs/dynamic-auth/issues/12265)) ([b8a8eab](https://github.com/dynamic-labs/dynamic-auth/commit/b8a8eab7e4cc294cc307fb10ea6814e76111a274))
15
+ * remediate high-severity tar vulnerability and prune a dead override ([#12268](https://github.com/dynamic-labs/dynamic-auth/issues/12268)) ([6b1b343](https://github.com/dynamic-labs/dynamic-auth/commit/6b1b343e7947e8da30012446677e342ae9bfe14a))
16
+ * **waas-svm:** fix retry-classification and environmentId gaps in [#12240](https://github.com/dynamic-labs/dynamic-auth/issues/12240) ([#12247](https://github.com/dynamic-labs/dynamic-auth/issues/12247)) ([e79cecc](https://github.com/dynamic-labs/dynamic-auth/commit/e79ceccd424c48c3a7f45fdd6ea288c269ac0171))
17
+ * **wallet-connect:** reopen WalletConnect IndexedDB when the browser closes the connection ([#12262](https://github.com/dynamic-labs/dynamic-auth/issues/12262)) ([1a20dde](https://github.com/dynamic-labs/dynamic-auth/commit/1a20ddeaeec590ae3390c9e47ef3c14738379b83))
18
+
19
+
20
+ ### Performance Improvements
21
+
22
+ * **ethereum-gasless-core:** parallel 7702 auth signing and long-poll sponsored-tx status ([#12225](https://github.com/dynamic-labs/dynamic-auth/issues/12225)) ([53ca916](https://github.com/dynamic-labs/dynamic-auth/commit/53ca91668f8dd839c52d55a0e5d7bb5257f7f415))
23
+
24
+ ### [5.3.2](https://github.com/dynamic-labs/dynamic-auth/compare/v5.3.1...v5.3.2) (2026-08-19)
25
+
26
+
27
+ ### Features
28
+
29
+ * **bitcoin:** add allowedSighash to embedded wallet signPsbt ([#12233](https://github.com/dynamic-labs/dynamic-auth/issues/12233)) ([d0ff829](https://github.com/dynamic-labs/dynamic-auth/commit/d0ff8291a3d1771d5ca356172acc10af94349b15))
30
+ * **bitcoin:** forward signingIndexes to embedded PSBT signing ([#12211](https://github.com/dynamic-labs/dynamic-auth/issues/12211)) ([733da3d](https://github.com/dynamic-labs/dynamic-auth/commit/733da3d32f39a9ae6d813df84fcff6350ba12eb5))
31
+ * expose createOfflineRecoveryShares SDK function in webview and legacy client ([#12239](https://github.com/dynamic-labs/dynamic-auth/issues/12239)) ([c8056e8](https://github.com/dynamic-labs/dynamic-auth/commit/c8056e8d5a1c66ac0146b046bc7cc198de118f0b))
32
+
33
+
34
+ ### Bug Fixes
35
+
36
+ * **bitcoin:** parse PSBTs with the active network's address encoding ([#12219](https://github.com/dynamic-labs/dynamic-auth/issues/12219)) ([8b151e2](https://github.com/dynamic-labs/dynamic-auth/commit/8b151e23440094cfa0d48728e1d0f19de567ca05))
37
+ * **bitcoin:** stop ensureActiveAccount from resetting a switched network ([#12215](https://github.com/dynamic-labs/dynamic-auth/issues/12215)) ([86668b7](https://github.com/dynamic-labs/dynamic-auth/commit/86668b79d23cd89b7e96518551cdaecab7dd5ce3))
38
+ * remediate high-severity dependency vulnerabilities ([#12238](https://github.com/dynamic-labs/dynamic-auth/issues/12238)) ([a4fc78c](https://github.com/dynamic-labs/dynamic-auth/commit/a4fc78ca27ee44ce6a1038c4e0d07f55528b4994))
39
+ * **waas-svm:** retry SVM gas sponsorship before falling back, then throw ([#12240](https://github.com/dynamic-labs/dynamic-auth/issues/12240)) ([f599a7a](https://github.com/dynamic-labs/dynamic-auth/commit/f599a7af55727e06373772acf574ee7c43e56bbb))
40
+
2
41
  ### [5.3.1](https://github.com/dynamic-labs/dynamic-auth/compare/v5.3.0...v5.3.1) (2026-08-14)
3
42
 
4
43
  ## [5.3.0](https://github.com/dynamic-labs/dynamic-auth/compare/v5.2.0...v5.3.0) (2026-08-12)
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "5.3.1";
6
+ var version = "5.4.0";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "5.3.1";
2
+ var version = "5.4.0";
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": "5.3.1",
3
+ "version": "5.4.0",
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": "5.3.1",
22
- "@dynamic-labs/types": "5.3.1",
23
- "@dynamic-labs/sdk-api-core": "0.0.1118",
24
- "@dynamic-labs-sdk/client": "1.27.1",
21
+ "@dynamic-labs/utils": "5.4.0",
22
+ "@dynamic-labs/types": "5.4.0",
23
+ "@dynamic-labs/sdk-api-core": "0.12.0",
24
+ "@dynamic-labs-sdk/client": "1.29.0",
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": "5.3.1",
30
- "@dynamic-labs/embedded-wallet": "5.3.1",
31
- "@dynamic-labs/rpc-providers": "5.3.1",
32
- "@dynamic-labs/solana-core": "5.3.1",
33
- "@dynamic-labs/wallet-book": "5.3.1",
34
- "@dynamic-labs/wallet-connector-core": "5.3.1",
35
- "@dynamic-labs/webauthn": "5.3.1",
29
+ "@dynamic-labs/assert-package-version": "5.4.0",
30
+ "@dynamic-labs/embedded-wallet": "5.4.0",
31
+ "@dynamic-labs/rpc-providers": "5.4.0",
32
+ "@dynamic-labs/solana-core": "5.4.0",
33
+ "@dynamic-labs/wallet-book": "5.4.0",
34
+ "@dynamic-labs/wallet-connector-core": "5.4.0",
35
+ "@dynamic-labs/webauthn": "5.4.0",
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;