@dynamic-labs/embedded-wallet-evm 3.9.8 → 3.9.10
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 +21 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +10 -10
- package/src/TurnkeyEVMWalletConnectors.cjs +10 -2
- package/src/TurnkeyEVMWalletConnectors.js +10 -2
- package/src/lib/TurnkeyEVMWalletConnector/TurnkeyEVMWalletConnector.cjs +8 -16
- package/src/lib/TurnkeyEVMWalletConnector/TurnkeyEVMWalletConnector.d.ts +2 -2
- package/src/lib/TurnkeyEVMWalletConnector/TurnkeyEVMWalletConnector.js +9 -17
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,25 @@
|
|
|
1
1
|
|
|
2
|
+
### [3.9.10](https://github.com/dynamic-labs/DynamicAuth/compare/v3.9.9...v3.9.10) (2025-01-16)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* add EthereumWalletConnectorsWithConfig ([#7796](https://github.com/dynamic-labs/DynamicAuth/issues/7796)) ([#7819](https://github.com/dynamic-labs/DynamicAuth/issues/7819)) ([510f9ac](https://github.com/dynamic-labs/DynamicAuth/commit/510f9acbd7ffa7fa767d45de22c95e03186d542d))
|
|
8
|
+
* add new super event that aggregates all user wallet events ([#7823](https://github.com/dynamic-labs/DynamicAuth/issues/7823)) ([ffe4fe7](https://github.com/dynamic-labs/DynamicAuth/commit/ffe4fe7c4ff4d0f12dee588fce84983c7b567d5e)), closes [#7797](https://github.com/dynamic-labs/DynamicAuth/issues/7797) [#7798](https://github.com/dynamic-labs/DynamicAuth/issues/7798)
|
|
9
|
+
|
|
10
|
+
### [3.9.9](https://github.com/dynamic-labs/DynamicAuth/compare/v3.9.8...v3.9.9) (2025-01-15)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* add hook for upgrading embedded wallets ([#7785](https://github.com/dynamic-labs/DynamicAuth/issues/7785)) ([5dcf776](https://github.com/dynamic-labs/DynamicAuth/commit/5dcf7769d5bd1c98d4e35427e0a0b34f52b530f6))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* getWalletClient method not returning client with chain for Coinbase ([#7799](https://github.com/dynamic-labs/DynamicAuth/issues/7799)) ([#7800](https://github.com/dynamic-labs/DynamicAuth/issues/7800)) ([4f77045](https://github.com/dynamic-labs/DynamicAuth/commit/4f770456eb986ca16e17c4445b277f9d447b05e4))
|
|
21
|
+
* handle session key expire error code ([#7807](https://github.com/dynamic-labs/DynamicAuth/issues/7807)) ([1700b53](https://github.com/dynamic-labs/DynamicAuth/commit/1700b53496fd6577a6240af3c16ade8bdd8666a1))
|
|
22
|
+
|
|
2
23
|
### [3.9.8](https://github.com/dynamic-labs/DynamicAuth/compare/v3.9.7...v3.9.8) (2025-01-09)
|
|
3
24
|
|
|
4
25
|
|
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-evm",
|
|
3
|
-
"version": "3.9.
|
|
3
|
+
"version": "3.9.10",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
|
|
@@ -26,20 +26,20 @@
|
|
|
26
26
|
"./package.json": "./package.json"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
29
|
+
"@dynamic-labs/sdk-api-core": "0.0.586",
|
|
30
30
|
"@turnkey/api-key-stamper": "0.4.1",
|
|
31
31
|
"@turnkey/http": "2.12.2",
|
|
32
32
|
"@turnkey/iframe-stamper": "2.0.0",
|
|
33
33
|
"@turnkey/viem": "0.4.26",
|
|
34
34
|
"@turnkey/webauthn-stamper": "0.5.0",
|
|
35
|
-
"@dynamic-labs/assert-package-version": "3.9.
|
|
36
|
-
"@dynamic-labs/embedded-wallet": "3.9.
|
|
37
|
-
"@dynamic-labs/ethereum-core": "3.9.
|
|
38
|
-
"@dynamic-labs/types": "3.9.
|
|
39
|
-
"@dynamic-labs/utils": "3.9.
|
|
40
|
-
"@dynamic-labs/wallet-book": "3.9.
|
|
41
|
-
"@dynamic-labs/wallet-connector-core": "3.9.
|
|
42
|
-
"@dynamic-labs/webauthn": "3.9.
|
|
35
|
+
"@dynamic-labs/assert-package-version": "3.9.10",
|
|
36
|
+
"@dynamic-labs/embedded-wallet": "3.9.10",
|
|
37
|
+
"@dynamic-labs/ethereum-core": "3.9.10",
|
|
38
|
+
"@dynamic-labs/types": "3.9.10",
|
|
39
|
+
"@dynamic-labs/utils": "3.9.10",
|
|
40
|
+
"@dynamic-labs/wallet-book": "3.9.10",
|
|
41
|
+
"@dynamic-labs/wallet-connector-core": "3.9.10",
|
|
42
|
+
"@dynamic-labs/webauthn": "3.9.10"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"viem": "^2.7.12"
|
|
@@ -10,8 +10,16 @@ const TurnkeyEVMWalletConnectors = (props) => {
|
|
|
10
10
|
var _a;
|
|
11
11
|
if ((_a = props.apiProviders) === null || _a === void 0 ? void 0 : _a.turnkey) {
|
|
12
12
|
return [
|
|
13
|
-
TurnkeyEVMWalletConnector.TurnkeyEVMWalletConnector
|
|
14
|
-
|
|
13
|
+
class extends TurnkeyEVMWalletConnector.TurnkeyEVMWalletConnector {
|
|
14
|
+
constructor(innerProps) {
|
|
15
|
+
super(embeddedWallet.TurnkeyWalletConnectorInfo.TurnkeyHD, Object.assign(Object.assign({}, props), innerProps));
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
class extends TurnkeyEVMWalletConnector.TurnkeyEVMWalletConnector {
|
|
19
|
+
constructor(innerProps) {
|
|
20
|
+
super(embeddedWallet.TurnkeyWalletConnectorInfo.Turnkey, Object.assign(Object.assign({}, props), innerProps));
|
|
21
|
+
}
|
|
22
|
+
},
|
|
15
23
|
];
|
|
16
24
|
}
|
|
17
25
|
return [];
|
|
@@ -6,8 +6,16 @@ const TurnkeyEVMWalletConnectors = (props) => {
|
|
|
6
6
|
var _a;
|
|
7
7
|
if ((_a = props.apiProviders) === null || _a === void 0 ? void 0 : _a.turnkey) {
|
|
8
8
|
return [
|
|
9
|
-
TurnkeyEVMWalletConnector
|
|
10
|
-
|
|
9
|
+
class extends TurnkeyEVMWalletConnector {
|
|
10
|
+
constructor(innerProps) {
|
|
11
|
+
super(TurnkeyWalletConnectorInfo.TurnkeyHD, Object.assign(Object.assign({}, props), innerProps));
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
class extends TurnkeyEVMWalletConnector {
|
|
15
|
+
constructor(innerProps) {
|
|
16
|
+
super(TurnkeyWalletConnectorInfo.Turnkey, Object.assign(Object.assign({}, props), innerProps));
|
|
17
|
+
}
|
|
18
|
+
},
|
|
11
19
|
];
|
|
12
20
|
}
|
|
13
21
|
return [];
|
|
@@ -18,7 +18,7 @@ var embeddedWallet = require('@dynamic-labs/embedded-wallet');
|
|
|
18
18
|
|
|
19
19
|
class TurnkeyEVMWalletConnector extends embeddedWallet.TurnkeyWalletConnectorBase {
|
|
20
20
|
constructor(nameAndKey, props) {
|
|
21
|
-
var _a;
|
|
21
|
+
var _a, _b;
|
|
22
22
|
super(nameAndKey, props);
|
|
23
23
|
this.walletFallback = {
|
|
24
24
|
brand: {
|
|
@@ -32,7 +32,7 @@ class TurnkeyEVMWalletConnector extends embeddedWallet.TurnkeyWalletConnectorBas
|
|
|
32
32
|
this.connectedChain = 'EVM';
|
|
33
33
|
this.supportedChains = ['ETH', 'EVM'];
|
|
34
34
|
this.verifiedCredentialChain = 'eip155';
|
|
35
|
-
this.stampCreateWalletAccountRequest = (
|
|
35
|
+
this.stampCreateWalletAccountRequest = (_c) => _tslib.__awaiter(this, [_c], void 0, function* ({ request, }) {
|
|
36
36
|
yield this.createOrRestoreSession();
|
|
37
37
|
const turnkeyClient = this.getTurnkeyClient();
|
|
38
38
|
return turnkeyClient.stampCreateWalletAccounts(request);
|
|
@@ -42,7 +42,7 @@ class TurnkeyEVMWalletConnector extends embeddedWallet.TurnkeyWalletConnectorBas
|
|
|
42
42
|
this._turnkeyAccount = undefined;
|
|
43
43
|
this._selectedChainId = this.getLastUsedChainId();
|
|
44
44
|
this.chainRpcProviders = props.chainRpcProviders;
|
|
45
|
-
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerEvmProviders();
|
|
45
|
+
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerEvmProviders((_b = props.providersConfig) !== null && _b !== void 0 ? _b : {});
|
|
46
46
|
this.__turnkeyClient = this.getTurnkeyClient();
|
|
47
47
|
}
|
|
48
48
|
getLastUsedChainId() {
|
|
@@ -108,22 +108,12 @@ class TurnkeyEVMWalletConnector extends embeddedWallet.TurnkeyWalletConnectorBas
|
|
|
108
108
|
}
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
|
-
getRpcUrl() {
|
|
112
|
-
const chain = this._selectedChainId;
|
|
113
|
-
return walletConnectorCore.getRpcUrlForChain({
|
|
114
|
-
chainId: chain,
|
|
115
|
-
networks: this.evmNetworks,
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
111
|
getBalance(address) {
|
|
119
112
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
120
|
-
const
|
|
121
|
-
if (!
|
|
113
|
+
const client = yield this.getPublicClient();
|
|
114
|
+
if (!client) {
|
|
122
115
|
return undefined;
|
|
123
116
|
}
|
|
124
|
-
const client = viem.createPublicClient({
|
|
125
|
-
transport: viem.http(rpcUrl),
|
|
126
|
-
});
|
|
127
117
|
const balance = yield client.getBalance({
|
|
128
118
|
address: address,
|
|
129
119
|
});
|
|
@@ -310,7 +300,9 @@ class TurnkeyEVMWalletConnector extends embeddedWallet.TurnkeyWalletConnectorBas
|
|
|
310
300
|
return yield action(newTurnkeyAccountRaw);
|
|
311
301
|
}
|
|
312
302
|
catch (err) {
|
|
313
|
-
if (embeddedWallet.TURNKEY_SDK_SESSION_KEY_RETRYABLE_ERRORS.some((errorMsg) => err.message
|
|
303
|
+
if (embeddedWallet.TURNKEY_SDK_SESSION_KEY_RETRYABLE_ERRORS.some((errorMsg) => err.message
|
|
304
|
+
.toLowerCase()
|
|
305
|
+
.includes(errorMsg.toLowerCase()))) {
|
|
314
306
|
yield this.removeSessionKeys();
|
|
315
307
|
yield this.createOrRestoreSession({
|
|
316
308
|
ignoreRestore: true,
|
|
@@ -2,7 +2,7 @@ import { TurnkeyClient, TurnkeyApiTypes } from '@turnkey/http';
|
|
|
2
2
|
import { Account, LocalAccount, PublicClient, Transport, Chain as ViemChain, WalletClient } from 'viem';
|
|
3
3
|
import { JwtVerifiedCredential } from '@dynamic-labs/sdk-api-core';
|
|
4
4
|
import { EvmNetwork, GenericNetwork, IUITransaction, WalletUiUtils } from '@dynamic-labs/types';
|
|
5
|
-
import { IChainRpcProviders, EthereumWallet } from '@dynamic-labs/ethereum-core';
|
|
5
|
+
import { IChainRpcProviders, EthereumWallet, RegisterEvmProvidersConfig } from '@dynamic-labs/ethereum-core';
|
|
6
6
|
import { WalletBookSchema } from '@dynamic-labs/wallet-book';
|
|
7
7
|
import type { Chain, ISendBalanceWalletConnector, InternalWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
8
8
|
import { TurnkeyWalletConnectorNameAndKey, TurnkeyWalletConnectorBase } from '@dynamic-labs/embedded-wallet';
|
|
@@ -12,6 +12,7 @@ export type TurnkeyEVMConnectorProps = {
|
|
|
12
12
|
evmNetworks: GenericNetwork[];
|
|
13
13
|
appName?: string;
|
|
14
14
|
chainRpcProviders: IChainRpcProviders;
|
|
15
|
+
providersConfig?: RegisterEvmProvidersConfig;
|
|
15
16
|
};
|
|
16
17
|
export declare class TurnkeyEVMWalletConnector extends TurnkeyWalletConnectorBase implements ISendBalanceWalletConnector {
|
|
17
18
|
walletFallback: {
|
|
@@ -40,7 +41,6 @@ export declare class TurnkeyEVMWalletConnector extends TurnkeyWalletConnectorBas
|
|
|
40
41
|
}): Promise<void>;
|
|
41
42
|
setVerifiedCredentials(verifiedCredentials: JwtVerifiedCredential[]): void;
|
|
42
43
|
validateActiveWallet(expectedAddress: string): Promise<void>;
|
|
43
|
-
getRpcUrl(): string | undefined;
|
|
44
44
|
getBalance(address: string): Promise<string | undefined>;
|
|
45
45
|
signMessage(messageToSign: string): Promise<string | undefined>;
|
|
46
46
|
getPublicClient(): Promise<void | PublicClient<Transport, ViemChain> | undefined>;
|
|
@@ -5,7 +5,7 @@ import { TurnkeyClient } from '@turnkey/http';
|
|
|
5
5
|
import { IframeStamper } from '@turnkey/iframe-stamper';
|
|
6
6
|
import { createAccount } from '@turnkey/viem';
|
|
7
7
|
import { WebauthnStamper } from '@turnkey/webauthn-stamper';
|
|
8
|
-
import { http,
|
|
8
|
+
import { http, formatEther } from 'viem';
|
|
9
9
|
import { toAccount } from 'viem/accounts';
|
|
10
10
|
import { parseEvmNetworks, getTLD, PlatformService, DynamicError } from '@dynamic-labs/utils';
|
|
11
11
|
import { EthereumWallet, createWalletClientWithUiConfirmation, getOrMapViemChain, createViemUiTransaction } from '@dynamic-labs/ethereum-core';
|
|
@@ -14,7 +14,7 @@ import { TurnkeyWalletConnectorBase, findTurnkeyVerifiedCredentialsWithSmartWall
|
|
|
14
14
|
|
|
15
15
|
class TurnkeyEVMWalletConnector extends TurnkeyWalletConnectorBase {
|
|
16
16
|
constructor(nameAndKey, props) {
|
|
17
|
-
var _a;
|
|
17
|
+
var _a, _b;
|
|
18
18
|
super(nameAndKey, props);
|
|
19
19
|
this.walletFallback = {
|
|
20
20
|
brand: {
|
|
@@ -28,7 +28,7 @@ class TurnkeyEVMWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
28
28
|
this.connectedChain = 'EVM';
|
|
29
29
|
this.supportedChains = ['ETH', 'EVM'];
|
|
30
30
|
this.verifiedCredentialChain = 'eip155';
|
|
31
|
-
this.stampCreateWalletAccountRequest = (
|
|
31
|
+
this.stampCreateWalletAccountRequest = (_c) => __awaiter(this, [_c], void 0, function* ({ request, }) {
|
|
32
32
|
yield this.createOrRestoreSession();
|
|
33
33
|
const turnkeyClient = this.getTurnkeyClient();
|
|
34
34
|
return turnkeyClient.stampCreateWalletAccounts(request);
|
|
@@ -38,7 +38,7 @@ class TurnkeyEVMWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
38
38
|
this._turnkeyAccount = undefined;
|
|
39
39
|
this._selectedChainId = this.getLastUsedChainId();
|
|
40
40
|
this.chainRpcProviders = props.chainRpcProviders;
|
|
41
|
-
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerEvmProviders();
|
|
41
|
+
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerEvmProviders((_b = props.providersConfig) !== null && _b !== void 0 ? _b : {});
|
|
42
42
|
this.__turnkeyClient = this.getTurnkeyClient();
|
|
43
43
|
}
|
|
44
44
|
getLastUsedChainId() {
|
|
@@ -104,22 +104,12 @@ class TurnkeyEVMWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
104
104
|
}
|
|
105
105
|
});
|
|
106
106
|
}
|
|
107
|
-
getRpcUrl() {
|
|
108
|
-
const chain = this._selectedChainId;
|
|
109
|
-
return getRpcUrlForChain({
|
|
110
|
-
chainId: chain,
|
|
111
|
-
networks: this.evmNetworks,
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
107
|
getBalance(address) {
|
|
115
108
|
return __awaiter(this, void 0, void 0, function* () {
|
|
116
|
-
const
|
|
117
|
-
if (!
|
|
109
|
+
const client = yield this.getPublicClient();
|
|
110
|
+
if (!client) {
|
|
118
111
|
return undefined;
|
|
119
112
|
}
|
|
120
|
-
const client = createPublicClient({
|
|
121
|
-
transport: http(rpcUrl),
|
|
122
|
-
});
|
|
123
113
|
const balance = yield client.getBalance({
|
|
124
114
|
address: address,
|
|
125
115
|
});
|
|
@@ -306,7 +296,9 @@ class TurnkeyEVMWalletConnector extends TurnkeyWalletConnectorBase {
|
|
|
306
296
|
return yield action(newTurnkeyAccountRaw);
|
|
307
297
|
}
|
|
308
298
|
catch (err) {
|
|
309
|
-
if (TURNKEY_SDK_SESSION_KEY_RETRYABLE_ERRORS.some((errorMsg) => err.message
|
|
299
|
+
if (TURNKEY_SDK_SESSION_KEY_RETRYABLE_ERRORS.some((errorMsg) => err.message
|
|
300
|
+
.toLowerCase()
|
|
301
|
+
.includes(errorMsg.toLowerCase()))) {
|
|
310
302
|
yield this.removeSessionKeys();
|
|
311
303
|
yield this.createOrRestoreSession({
|
|
312
304
|
ignoreRestore: true,
|