@dynamic-labs/embedded-wallet-solana 3.6.0 → 3.6.2
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 +17 -0
- package/package.cjs +5 -5
- package/package.js +5 -5
- package/package.json +12 -12
- package/src/TurnkeySolanaWalletConnectors.cjs +5 -1
- package/src/TurnkeySolanaWalletConnectors.js +5 -1
- package/src/lib/TurnkeySolanaWalletConnector/TurnkeySolanaWalletConnector.cjs +7 -12
- package/src/lib/TurnkeySolanaWalletConnector/TurnkeySolanaWalletConnector.js +8 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
|
|
2
|
+
### [3.6.2](https://github.com/dynamic-labs/DynamicAuth/compare/v3.6.1...v3.6.2) (2024-11-13)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* **client:** convert the wallet when using wallets.embedded.getWallet ([#7434](https://github.com/dynamic-labs/DynamicAuth/issues/7434)) ([4f77a2a](https://github.com/dynamic-labs/DynamicAuth/commit/4f77a2ae0eb615a3fe2281ce43bc03d3e8bdbab1))
|
|
8
|
+
* issue with SollanaWalletConnectorWithConfig embedded wallets ([#7406](https://github.com/dynamic-labs/DynamicAuth/issues/7406)) ([d2008f6](https://github.com/dynamic-labs/DynamicAuth/commit/d2008f6052f9b53b009ed86fad83f1278429f762))
|
|
9
|
+
* refresh blockhash for solana embedded and use confirmed commitment ([#7429](https://github.com/dynamic-labs/DynamicAuth/issues/7429)) ([7d1674d](https://github.com/dynamic-labs/DynamicAuth/commit/7d1674dd4a2ea6c79e7d552353f0fd1b45375e37))
|
|
10
|
+
|
|
11
|
+
### [3.6.1](https://github.com/dynamic-labs/DynamicAuth/compare/v3.6.0...v3.6.1) (2024-11-08)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* when confirmation ui disabled for solana signall and signTransaction, it was returning a string instead of a transaction ([#7404](https://github.com/dynamic-labs/DynamicAuth/issues/7404)) ([9c17d83](https://github.com/dynamic-labs/DynamicAuth/commit/9c17d83e808f576bd319892b9726e5692534b31d))
|
|
17
|
+
* solana sign transaction was throwing with destination not found for embedded wallets ([#7394](https://github.com/dynamic-labs/DynamicAuth/issues/7394)) ([5bc21cd](https://github.com/dynamic-labs/DynamicAuth/commit/5bc21cdc2aee3dd70fc455e54e586d695392702b))
|
|
18
|
+
|
|
2
19
|
## [3.6.0](https://github.com/dynamic-labs/DynamicAuth/compare/v3.5.1...v3.6.0) (2024-11-07)
|
|
3
20
|
|
|
4
21
|
|
package/package.cjs
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
|
-
var version = "3.6.
|
|
6
|
+
var version = "3.6.2";
|
|
7
7
|
var dependencies = {
|
|
8
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
9
|
-
"@dynamic-labs/utils": "3.6.
|
|
10
|
-
"@dynamic-labs/logger": "3.6.
|
|
11
|
-
"@dynamic-labs/types": "3.6.
|
|
8
|
+
"@dynamic-labs/sdk-api-core": "0.0.563",
|
|
9
|
+
"@dynamic-labs/utils": "3.6.2",
|
|
10
|
+
"@dynamic-labs/logger": "3.6.2",
|
|
11
|
+
"@dynamic-labs/types": "3.6.2",
|
|
12
12
|
eventemitter3: "5.0.1",
|
|
13
13
|
"@solana/web3.js": "1.92.1",
|
|
14
14
|
"@turnkey/http": "2.12.2",
|
package/package.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
var version = "3.6.
|
|
2
|
+
var version = "3.6.2";
|
|
3
3
|
var dependencies = {
|
|
4
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
5
|
-
"@dynamic-labs/utils": "3.6.
|
|
6
|
-
"@dynamic-labs/logger": "3.6.
|
|
7
|
-
"@dynamic-labs/types": "3.6.
|
|
4
|
+
"@dynamic-labs/sdk-api-core": "0.0.563",
|
|
5
|
+
"@dynamic-labs/utils": "3.6.2",
|
|
6
|
+
"@dynamic-labs/logger": "3.6.2",
|
|
7
|
+
"@dynamic-labs/types": "3.6.2",
|
|
8
8
|
eventemitter3: "5.0.1",
|
|
9
9
|
"@solana/web3.js": "1.92.1",
|
|
10
10
|
"@turnkey/http": "2.12.2",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/embedded-wallet-solana",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.2",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
|
|
@@ -26,23 +26,23 @@
|
|
|
26
26
|
"./package.json": "./package.json"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
30
|
-
"@dynamic-labs/utils": "3.6.
|
|
31
|
-
"@dynamic-labs/logger": "3.6.
|
|
32
|
-
"@dynamic-labs/types": "3.6.
|
|
29
|
+
"@dynamic-labs/sdk-api-core": "0.0.563",
|
|
30
|
+
"@dynamic-labs/utils": "3.6.2",
|
|
31
|
+
"@dynamic-labs/logger": "3.6.2",
|
|
32
|
+
"@dynamic-labs/types": "3.6.2",
|
|
33
33
|
"eventemitter3": "5.0.1",
|
|
34
34
|
"@solana/web3.js": "1.92.1",
|
|
35
35
|
"@turnkey/http": "2.12.2",
|
|
36
36
|
"@turnkey/iframe-stamper": "2.0.0",
|
|
37
37
|
"@turnkey/solana": "0.3.9",
|
|
38
38
|
"@turnkey/webauthn-stamper": "0.5.0",
|
|
39
|
-
"@dynamic-labs/assert-package-version": "3.6.
|
|
40
|
-
"@dynamic-labs/embedded-wallet": "3.6.
|
|
41
|
-
"@dynamic-labs/rpc-providers": "3.6.
|
|
42
|
-
"@dynamic-labs/solana-core": "3.6.
|
|
43
|
-
"@dynamic-labs/wallet-book": "3.6.
|
|
44
|
-
"@dynamic-labs/wallet-connector-core": "3.6.
|
|
45
|
-
"@dynamic-labs/webauthn": "3.6.
|
|
39
|
+
"@dynamic-labs/assert-package-version": "3.6.2",
|
|
40
|
+
"@dynamic-labs/embedded-wallet": "3.6.2",
|
|
41
|
+
"@dynamic-labs/rpc-providers": "3.6.2",
|
|
42
|
+
"@dynamic-labs/solana-core": "3.6.2",
|
|
43
|
+
"@dynamic-labs/wallet-book": "3.6.2",
|
|
44
|
+
"@dynamic-labs/wallet-connector-core": "3.6.2",
|
|
45
|
+
"@dynamic-labs/webauthn": "3.6.2",
|
|
46
46
|
"react-dom": "18.2.0",
|
|
47
47
|
"viem": "2.9.25"
|
|
48
48
|
},
|
|
@@ -10,7 +10,11 @@ const TurnkeySolanaWalletConnectors = (props) => {
|
|
|
10
10
|
var _a;
|
|
11
11
|
if ((_a = props.apiProviders) === null || _a === void 0 ? void 0 : _a.turnkey) {
|
|
12
12
|
return [
|
|
13
|
-
TurnkeySolanaWalletConnector.TurnkeySolanaWalletConnector
|
|
13
|
+
class extends TurnkeySolanaWalletConnector.TurnkeySolanaWalletConnector {
|
|
14
|
+
constructor(innerProps) {
|
|
15
|
+
super(embeddedWallet.TurnkeyWalletConnectorInfo.TurnkeyHD, Object.assign(Object.assign({}, props), innerProps));
|
|
16
|
+
}
|
|
17
|
+
},
|
|
14
18
|
];
|
|
15
19
|
}
|
|
16
20
|
return [];
|
|
@@ -6,7 +6,11 @@ const TurnkeySolanaWalletConnectors = (props) => {
|
|
|
6
6
|
var _a;
|
|
7
7
|
if ((_a = props.apiProviders) === null || _a === void 0 ? void 0 : _a.turnkey) {
|
|
8
8
|
return [
|
|
9
|
-
TurnkeySolanaWalletConnector
|
|
9
|
+
class extends TurnkeySolanaWalletConnector {
|
|
10
|
+
constructor(innerProps) {
|
|
11
|
+
super(TurnkeyWalletConnectorInfo.TurnkeyHD, Object.assign(Object.assign({}, props), innerProps));
|
|
12
|
+
}
|
|
13
|
+
},
|
|
10
14
|
];
|
|
11
15
|
}
|
|
12
16
|
return [];
|
|
@@ -295,8 +295,9 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
295
295
|
if (!this.turnkeyAddress)
|
|
296
296
|
throw new utils.DynamicError('No turnkey account');
|
|
297
297
|
const uiTransaction = new solanaCore.SolanaUiTransaction({
|
|
298
|
-
connection: this.getConnection(),
|
|
298
|
+
connection: this.getConnection('confirmed'),
|
|
299
299
|
from: this.turnkeyAddress,
|
|
300
|
+
multipleTransactions: [transaction],
|
|
300
301
|
onSubmit: () => _tslib.__awaiter(this, void 0, void 0, function* () { return this.internalSignTransaction(transaction); }),
|
|
301
302
|
});
|
|
302
303
|
return this.walletUiUtils.signTransaction(this, uiTransaction);
|
|
@@ -306,7 +307,7 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
306
307
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
307
308
|
yield this.validateActiveWallet(from);
|
|
308
309
|
const transaction = new solanaCore.SolanaUiTransaction({
|
|
309
|
-
connection: this.getConnection(),
|
|
310
|
+
connection: this.getConnection('confirmed'),
|
|
310
311
|
from,
|
|
311
312
|
onSubmit: (transaction) => _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
312
313
|
if (!transaction)
|
|
@@ -351,7 +352,7 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
351
352
|
if (!this.turnkeyAddress)
|
|
352
353
|
throw new utils.DynamicError('No turnkey account');
|
|
353
354
|
const uiTransaction = new solanaCore.SolanaUiTransaction({
|
|
354
|
-
connection: this.getConnection(),
|
|
355
|
+
connection: this.getConnection('confirmed'),
|
|
355
356
|
from: this.turnkeyAddress,
|
|
356
357
|
multipleTransactions: transactions,
|
|
357
358
|
onSubmit: () => _tslib.__awaiter(this, void 0, void 0, function* () { return this.internalSignAllTransactions(transactions); }),
|
|
@@ -390,7 +391,7 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
390
391
|
throw new utils.DynamicError('Solana wallet not found');
|
|
391
392
|
const optimizedTransaction = yield this.optimizeTransaction(transaction);
|
|
392
393
|
const uiTransaction = new solanaCore.SolanaUiTransaction({
|
|
393
|
-
connection: this.getConnection(),
|
|
394
|
+
connection: this.getConnection('confirmed'),
|
|
394
395
|
from: this.turnkeyAddress,
|
|
395
396
|
multipleTransactions: [optimizedTransaction],
|
|
396
397
|
onSubmit: () => _tslib.__awaiter(this, void 0, void 0, function* () { return this.internalSignAndSendTransaction(optimizedTransaction, options); }),
|
|
@@ -441,16 +442,10 @@ class TurnkeySolanaWalletConnector extends embeddedWallet.TurnkeyWalletConnector
|
|
|
441
442
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
442
443
|
var _a;
|
|
443
444
|
let optimizedTransaction = transaction;
|
|
444
|
-
let alreadySigned = false;
|
|
445
|
-
if ('version' in transaction) {
|
|
446
|
-
alreadySigned = transaction.signatures.some((sig) => !sig.every((byte) => byte === 0));
|
|
447
|
-
}
|
|
448
|
-
else {
|
|
449
|
-
alreadySigned = transaction.signatures.some((sig) => sig.signature);
|
|
450
|
-
}
|
|
451
445
|
try {
|
|
452
446
|
// we cannot optimize partially signed transactions as once a tx is modified the signatures are no longer valid
|
|
453
|
-
if ((yield this.getNetwork()) === 'mainnet' &&
|
|
447
|
+
if ((yield this.getNetwork()) === 'mainnet' &&
|
|
448
|
+
!solanaCore.isTxAlreadySigned(transaction)) {
|
|
454
449
|
optimizedTransaction = (yield api.optimizeSolanaTransaction(this.getEnvId(), transaction, (_a = this.turnkeyAddress) !== null && _a !== void 0 ? _a : ''));
|
|
455
450
|
}
|
|
456
451
|
}
|
|
@@ -6,7 +6,7 @@ import { IframeStamper } from '@turnkey/iframe-stamper';
|
|
|
6
6
|
import { TurnkeySigner } from '@turnkey/solana';
|
|
7
7
|
import { WebauthnStamper } from '@turnkey/webauthn-stamper';
|
|
8
8
|
import { TurnkeyWalletConnectorBase, findTurnkeyVerifiedCredentials, PasskeyService, TURNKEY_API_BASE_URL, TURNKEY_SDK_SESSION_KEY_RETRYABLE_ERRORS, logger } from '@dynamic-labs/embedded-wallet';
|
|
9
|
-
import { SolanaWallet, ProviderChain, getGenesisHashLSKey, SolanaUiTransaction } from '@dynamic-labs/solana-core';
|
|
9
|
+
import { SolanaWallet, ProviderChain, getGenesisHashLSKey, SolanaUiTransaction, isTxAlreadySigned } from '@dynamic-labs/solana-core';
|
|
10
10
|
import { DynamicError, getTLD, PlatformService, bufferToBase64 } from '@dynamic-labs/utils';
|
|
11
11
|
import { isSameAddress } from '@dynamic-labs/wallet-connector-core';
|
|
12
12
|
import { createSolanaConnection } from '../utils/createSolanaConnection/createSolanaConnection.js';
|
|
@@ -291,8 +291,9 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
291
291
|
if (!this.turnkeyAddress)
|
|
292
292
|
throw new DynamicError('No turnkey account');
|
|
293
293
|
const uiTransaction = new SolanaUiTransaction({
|
|
294
|
-
connection: this.getConnection(),
|
|
294
|
+
connection: this.getConnection('confirmed'),
|
|
295
295
|
from: this.turnkeyAddress,
|
|
296
|
+
multipleTransactions: [transaction],
|
|
296
297
|
onSubmit: () => __awaiter(this, void 0, void 0, function* () { return this.internalSignTransaction(transaction); }),
|
|
297
298
|
});
|
|
298
299
|
return this.walletUiUtils.signTransaction(this, uiTransaction);
|
|
@@ -302,7 +303,7 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
302
303
|
return __awaiter(this, void 0, void 0, function* () {
|
|
303
304
|
yield this.validateActiveWallet(from);
|
|
304
305
|
const transaction = new SolanaUiTransaction({
|
|
305
|
-
connection: this.getConnection(),
|
|
306
|
+
connection: this.getConnection('confirmed'),
|
|
306
307
|
from,
|
|
307
308
|
onSubmit: (transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
308
309
|
if (!transaction)
|
|
@@ -347,7 +348,7 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
347
348
|
if (!this.turnkeyAddress)
|
|
348
349
|
throw new DynamicError('No turnkey account');
|
|
349
350
|
const uiTransaction = new SolanaUiTransaction({
|
|
350
|
-
connection: this.getConnection(),
|
|
351
|
+
connection: this.getConnection('confirmed'),
|
|
351
352
|
from: this.turnkeyAddress,
|
|
352
353
|
multipleTransactions: transactions,
|
|
353
354
|
onSubmit: () => __awaiter(this, void 0, void 0, function* () { return this.internalSignAllTransactions(transactions); }),
|
|
@@ -386,7 +387,7 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
386
387
|
throw new DynamicError('Solana wallet not found');
|
|
387
388
|
const optimizedTransaction = yield this.optimizeTransaction(transaction);
|
|
388
389
|
const uiTransaction = new SolanaUiTransaction({
|
|
389
|
-
connection: this.getConnection(),
|
|
390
|
+
connection: this.getConnection('confirmed'),
|
|
390
391
|
from: this.turnkeyAddress,
|
|
391
392
|
multipleTransactions: [optimizedTransaction],
|
|
392
393
|
onSubmit: () => __awaiter(this, void 0, void 0, function* () { return this.internalSignAndSendTransaction(optimizedTransaction, options); }),
|
|
@@ -437,16 +438,10 @@ class TurnkeySolanaWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
437
438
|
return __awaiter(this, void 0, void 0, function* () {
|
|
438
439
|
var _a;
|
|
439
440
|
let optimizedTransaction = transaction;
|
|
440
|
-
let alreadySigned = false;
|
|
441
|
-
if ('version' in transaction) {
|
|
442
|
-
alreadySigned = transaction.signatures.some((sig) => !sig.every((byte) => byte === 0));
|
|
443
|
-
}
|
|
444
|
-
else {
|
|
445
|
-
alreadySigned = transaction.signatures.some((sig) => sig.signature);
|
|
446
|
-
}
|
|
447
441
|
try {
|
|
448
442
|
// we cannot optimize partially signed transactions as once a tx is modified the signatures are no longer valid
|
|
449
|
-
if ((yield this.getNetwork()) === 'mainnet' &&
|
|
443
|
+
if ((yield this.getNetwork()) === 'mainnet' &&
|
|
444
|
+
!isTxAlreadySigned(transaction)) {
|
|
450
445
|
optimizedTransaction = (yield optimizeSolanaTransaction(this.getEnvId(), transaction, (_a = this.turnkeyAddress) !== null && _a !== void 0 ? _a : ''));
|
|
451
446
|
}
|
|
452
447
|
}
|