@dynamic-labs/embedded-wallet-solana 4.91.3 → 4.91.5
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,21 @@
|
|
|
1
1
|
|
|
2
|
+
### [4.91.5](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.4...v4.91.5) (2026-07-02)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* revoke WaaS signed-session callback on client rebuild to stop iOS nonce race ([#11766](https://github.com/dynamic-labs/dynamic-auth/issues/11766)) ([c895b5d](https://github.com/dynamic-labs/dynamic-auth/commit/c895b5d0987d62a9f5597741dbeae0ec7fedfe5b))
|
|
8
|
+
* **sdk-react-core:** allow sendOneTimeCode to target non-primary chain wallets ([#11777](https://github.com/dynamic-labs/dynamic-auth/issues/11777)) ([63f82af](https://github.com/dynamic-labs/dynamic-auth/commit/63f82af7c52be595bc2948ec88ee9c919ac9275a))
|
|
9
|
+
* **webview-controller:** resolve post-login wallet race in Viem and ZeroDev controllers ([#11774](https://github.com/dynamic-labs/dynamic-auth/issues/11774)) ([95ed26e](https://github.com/dynamic-labs/dynamic-auth/commit/95ed26eee09d9aff5a5af6517ab7e1360ef5f337))
|
|
10
|
+
|
|
11
|
+
### [4.91.4](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.3...v4.91.4) (2026-07-01)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* conditionally use /op/ route for AA transactions based on block explorer support ([#11628](https://github.com/dynamic-labs/dynamic-auth/issues/11628)) ([95822dc](https://github.com/dynamic-labs/dynamic-auth/commit/95822dc0edbcd739afe870f0b3881555fdb17eb6))
|
|
17
|
+
* require error codes in all SDK error classes ([#11761](https://github.com/dynamic-labs/dynamic-auth/issues/11761)) ([5744811](https://github.com/dynamic-labs/dynamic-auth/commit/5744811efdd1e415aaf51eec5b3300b323ec1347))
|
|
18
|
+
|
|
2
19
|
### [4.91.3](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.2...v4.91.3) (2026-06-30)
|
|
3
20
|
|
|
4
21
|
|
package/package.cjs
CHANGED
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/embedded-wallet-solana",
|
|
3
|
-
"version": "4.91.
|
|
3
|
+
"version": "4.91.5",
|
|
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.91.
|
|
22
|
-
"@dynamic-labs/types": "4.91.
|
|
21
|
+
"@dynamic-labs/utils": "4.91.5",
|
|
22
|
+
"@dynamic-labs/types": "4.91.5",
|
|
23
23
|
"@dynamic-labs/sdk-api-core": "0.0.1046",
|
|
24
24
|
"@dynamic-labs-sdk/client": "1.12.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.91.
|
|
30
|
-
"@dynamic-labs/embedded-wallet": "4.91.
|
|
31
|
-
"@dynamic-labs/rpc-providers": "4.91.
|
|
32
|
-
"@dynamic-labs/solana-core": "4.91.
|
|
33
|
-
"@dynamic-labs/wallet-book": "4.91.
|
|
34
|
-
"@dynamic-labs/wallet-connector-core": "4.91.
|
|
35
|
-
"@dynamic-labs/webauthn": "4.91.
|
|
29
|
+
"@dynamic-labs/assert-package-version": "4.91.5",
|
|
30
|
+
"@dynamic-labs/embedded-wallet": "4.91.5",
|
|
31
|
+
"@dynamic-labs/rpc-providers": "4.91.5",
|
|
32
|
+
"@dynamic-labs/solana-core": "4.91.5",
|
|
33
|
+
"@dynamic-labs/wallet-book": "4.91.5",
|
|
34
|
+
"@dynamic-labs/wallet-connector-core": "4.91.5",
|
|
35
|
+
"@dynamic-labs/webauthn": "4.91.5",
|
|
36
36
|
"viem": "2.46.3"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {}
|
|
@@ -55,14 +55,14 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
55
55
|
getRpcUrl() {
|
|
56
56
|
const network = this.getSelectedNetwork();
|
|
57
57
|
if (!network) {
|
|
58
|
-
throw new utils.DynamicError('No enabled networks');
|
|
58
|
+
throw new utils.DynamicError('No enabled networks', 'no_enabled_networks');
|
|
59
59
|
}
|
|
60
60
|
return solanaCore.getOverrideRpcUrlForNetwork(this.connectionConfig, network);
|
|
61
61
|
}
|
|
62
62
|
getConnection(commitmentOrConfig) {
|
|
63
63
|
const rpcUrl = this.getRpcUrl();
|
|
64
64
|
if (!rpcUrl)
|
|
65
|
-
throw new utils.DynamicError('No rpcUrl');
|
|
65
|
+
throw new utils.DynamicError('No rpcUrl', 'no_rpc_url');
|
|
66
66
|
const config = typeof commitmentOrConfig === 'string'
|
|
67
67
|
? Object.assign(Object.assign({}, this.connectionConfig), { commitment: commitmentOrConfig }) : Object.assign(Object.assign({}, this.connectionConfig), commitmentOrConfig);
|
|
68
68
|
return createSolanaConnection.createSolanaConnection(rpcUrl, config);
|
|
@@ -173,7 +173,7 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
173
173
|
if (!isWalletActive) {
|
|
174
174
|
const targetActiveAccount = (_b = this.verifiedCredentials) === null || _b === void 0 ? void 0 : _b.find((vc) => (vc === null || vc === void 0 ? void 0 : vc.address) === expectedAddress);
|
|
175
175
|
if (!targetActiveAccount) {
|
|
176
|
-
throw new utils.DynamicError('Account not found');
|
|
176
|
+
throw new utils.DynamicError('Account not found', 'account_not_found');
|
|
177
177
|
}
|
|
178
178
|
this.verifiedCredential = targetActiveAccount;
|
|
179
179
|
this.refreshTurnkeyAccount();
|
|
@@ -241,7 +241,7 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
241
241
|
signUint8ArrayMessage(encodedMessage) {
|
|
242
242
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
243
243
|
if (!this.turnkeyAddress) {
|
|
244
|
-
throw new utils.DynamicError('No turnkey account');
|
|
244
|
+
throw new utils.DynamicError('No turnkey account', 'no_turnkey_account');
|
|
245
245
|
}
|
|
246
246
|
const address = this.turnkeyAddress;
|
|
247
247
|
let signedMessageRaw;
|
|
@@ -330,7 +330,7 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
330
330
|
signTransaction(transaction) {
|
|
331
331
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
332
332
|
if (!this.turnkeyAddress)
|
|
333
|
-
throw new utils.DynamicError('No turnkey account');
|
|
333
|
+
throw new utils.DynamicError('No turnkey account', 'no_turnkey_account');
|
|
334
334
|
const uiTransaction = new solanaCore.SolanaUiTransaction({
|
|
335
335
|
connection: this.getConnection('confirmed'),
|
|
336
336
|
from: this.turnkeyAddress,
|
|
@@ -403,7 +403,7 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
403
403
|
signAllTransactions(transactions) {
|
|
404
404
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
405
405
|
if (!this.turnkeyAddress)
|
|
406
|
-
throw new utils.DynamicError('No turnkey account');
|
|
406
|
+
throw new utils.DynamicError('No turnkey account', 'no_turnkey_account');
|
|
407
407
|
const uiTransaction = new solanaCore.SolanaUiTransaction({
|
|
408
408
|
connection: this.getConnection('confirmed'),
|
|
409
409
|
from: this.turnkeyAddress,
|
|
@@ -417,7 +417,7 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
417
417
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
418
418
|
var _a, _b;
|
|
419
419
|
if (!this.turnkeyAddress)
|
|
420
|
-
throw new utils.DynamicError('Solana wallet not found');
|
|
420
|
+
throw new utils.DynamicError('Solana wallet not found', 'solana_wallet_not_found');
|
|
421
421
|
const currentConnection = this.getConnection((_b = (_a = this.connectionConfig) === null || _a === void 0 ? void 0 : _a.commitment) !== null && _b !== void 0 ? _b : 'confirmed');
|
|
422
422
|
// Refresh the blockhash right before signing so the tx is submitted with
|
|
423
423
|
// a fresh validity window AND so confirmTransaction's expiration check
|
|
@@ -458,7 +458,7 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
458
458
|
signAndSendTransaction(transaction, options) {
|
|
459
459
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
460
460
|
if (!this.turnkeyAddress)
|
|
461
|
-
throw new utils.DynamicError('Solana wallet not found');
|
|
461
|
+
throw new utils.DynamicError('Solana wallet not found', 'solana_wallet_not_found');
|
|
462
462
|
const optimizedTransaction = yield this.optimizeTransaction(transaction);
|
|
463
463
|
const uiTransaction = new solanaCore.SolanaUiTransaction({
|
|
464
464
|
connection: this.getConnection('confirmed'),
|
|
@@ -474,9 +474,9 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
474
474
|
return _tslib.__awaiter(this, arguments, void 0, function* (transaction, connection, options = {}) {
|
|
475
475
|
var _a;
|
|
476
476
|
if (!this.turnkeyAddress)
|
|
477
|
-
throw new utils.DynamicError('Solana wallet not found');
|
|
477
|
+
throw new utils.DynamicError('Solana wallet not found', 'solana_wallet_not_found');
|
|
478
478
|
if (!transaction || !connection) {
|
|
479
|
-
throw new utils.DynamicError('Transaction and connection are required');
|
|
479
|
+
throw new utils.DynamicError('Transaction and connection are required', 'transaction_and_connection_are_required');
|
|
480
480
|
}
|
|
481
481
|
const { signers } = options, sendOptions = _tslib.__rest(options, ["signers"]);
|
|
482
482
|
const blockhash = yield connection.getLatestBlockhash({
|
|
@@ -51,14 +51,14 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
51
51
|
getRpcUrl() {
|
|
52
52
|
const network = this.getSelectedNetwork();
|
|
53
53
|
if (!network) {
|
|
54
|
-
throw new DynamicError('No enabled networks');
|
|
54
|
+
throw new DynamicError('No enabled networks', 'no_enabled_networks');
|
|
55
55
|
}
|
|
56
56
|
return getOverrideRpcUrlForNetwork(this.connectionConfig, network);
|
|
57
57
|
}
|
|
58
58
|
getConnection(commitmentOrConfig) {
|
|
59
59
|
const rpcUrl = this.getRpcUrl();
|
|
60
60
|
if (!rpcUrl)
|
|
61
|
-
throw new DynamicError('No rpcUrl');
|
|
61
|
+
throw new DynamicError('No rpcUrl', 'no_rpc_url');
|
|
62
62
|
const config = typeof commitmentOrConfig === 'string'
|
|
63
63
|
? Object.assign(Object.assign({}, this.connectionConfig), { commitment: commitmentOrConfig }) : Object.assign(Object.assign({}, this.connectionConfig), commitmentOrConfig);
|
|
64
64
|
return createSolanaConnection(rpcUrl, config);
|
|
@@ -169,7 +169,7 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
169
169
|
if (!isWalletActive) {
|
|
170
170
|
const targetActiveAccount = (_b = this.verifiedCredentials) === null || _b === void 0 ? void 0 : _b.find((vc) => (vc === null || vc === void 0 ? void 0 : vc.address) === expectedAddress);
|
|
171
171
|
if (!targetActiveAccount) {
|
|
172
|
-
throw new DynamicError('Account not found');
|
|
172
|
+
throw new DynamicError('Account not found', 'account_not_found');
|
|
173
173
|
}
|
|
174
174
|
this.verifiedCredential = targetActiveAccount;
|
|
175
175
|
this.refreshTurnkeyAccount();
|
|
@@ -237,7 +237,7 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
237
237
|
signUint8ArrayMessage(encodedMessage) {
|
|
238
238
|
return __awaiter(this, void 0, void 0, function* () {
|
|
239
239
|
if (!this.turnkeyAddress) {
|
|
240
|
-
throw new DynamicError('No turnkey account');
|
|
240
|
+
throw new DynamicError('No turnkey account', 'no_turnkey_account');
|
|
241
241
|
}
|
|
242
242
|
const address = this.turnkeyAddress;
|
|
243
243
|
let signedMessageRaw;
|
|
@@ -326,7 +326,7 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
326
326
|
signTransaction(transaction) {
|
|
327
327
|
return __awaiter(this, void 0, void 0, function* () {
|
|
328
328
|
if (!this.turnkeyAddress)
|
|
329
|
-
throw new DynamicError('No turnkey account');
|
|
329
|
+
throw new DynamicError('No turnkey account', 'no_turnkey_account');
|
|
330
330
|
const uiTransaction = new SolanaUiTransaction({
|
|
331
331
|
connection: this.getConnection('confirmed'),
|
|
332
332
|
from: this.turnkeyAddress,
|
|
@@ -399,7 +399,7 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
399
399
|
signAllTransactions(transactions) {
|
|
400
400
|
return __awaiter(this, void 0, void 0, function* () {
|
|
401
401
|
if (!this.turnkeyAddress)
|
|
402
|
-
throw new DynamicError('No turnkey account');
|
|
402
|
+
throw new DynamicError('No turnkey account', 'no_turnkey_account');
|
|
403
403
|
const uiTransaction = new SolanaUiTransaction({
|
|
404
404
|
connection: this.getConnection('confirmed'),
|
|
405
405
|
from: this.turnkeyAddress,
|
|
@@ -413,7 +413,7 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
413
413
|
return __awaiter(this, void 0, void 0, function* () {
|
|
414
414
|
var _a, _b;
|
|
415
415
|
if (!this.turnkeyAddress)
|
|
416
|
-
throw new DynamicError('Solana wallet not found');
|
|
416
|
+
throw new DynamicError('Solana wallet not found', 'solana_wallet_not_found');
|
|
417
417
|
const currentConnection = this.getConnection((_b = (_a = this.connectionConfig) === null || _a === void 0 ? void 0 : _a.commitment) !== null && _b !== void 0 ? _b : 'confirmed');
|
|
418
418
|
// Refresh the blockhash right before signing so the tx is submitted with
|
|
419
419
|
// a fresh validity window AND so confirmTransaction's expiration check
|
|
@@ -454,7 +454,7 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
454
454
|
signAndSendTransaction(transaction, options) {
|
|
455
455
|
return __awaiter(this, void 0, void 0, function* () {
|
|
456
456
|
if (!this.turnkeyAddress)
|
|
457
|
-
throw new DynamicError('Solana wallet not found');
|
|
457
|
+
throw new DynamicError('Solana wallet not found', 'solana_wallet_not_found');
|
|
458
458
|
const optimizedTransaction = yield this.optimizeTransaction(transaction);
|
|
459
459
|
const uiTransaction = new SolanaUiTransaction({
|
|
460
460
|
connection: this.getConnection('confirmed'),
|
|
@@ -470,9 +470,9 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
470
470
|
return __awaiter(this, arguments, void 0, function* (transaction, connection, options = {}) {
|
|
471
471
|
var _a;
|
|
472
472
|
if (!this.turnkeyAddress)
|
|
473
|
-
throw new DynamicError('Solana wallet not found');
|
|
473
|
+
throw new DynamicError('Solana wallet not found', 'solana_wallet_not_found');
|
|
474
474
|
if (!transaction || !connection) {
|
|
475
|
-
throw new DynamicError('Transaction and connection are required');
|
|
475
|
+
throw new DynamicError('Transaction and connection are required', 'transaction_and_connection_are_required');
|
|
476
476
|
}
|
|
477
477
|
const { signers } = options, sendOptions = __rest(options, ["signers"]);
|
|
478
478
|
const blockhash = yield connection.getLatestBlockhash({
|