@dynamic-labs/embedded-wallet 4.0.0-alpha.22 → 4.0.0-alpha.24
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 +14 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +9 -9
- package/src/index.cjs +2 -2
- package/src/index.d.ts +1 -1
- package/src/index.js +1 -1
- package/src/lib/AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.cjs +13 -21
- package/src/lib/AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.d.ts +274 -51
- package/src/lib/AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.js +13 -21
- package/src/lib/BaseTurnkeyHandler.cjs +22 -0
- package/src/lib/BaseTurnkeyHandler.d.ts +10 -0
- package/src/lib/BaseTurnkeyHandler.js +18 -0
- package/src/lib/ExportHandler/{ExportHandler.cjs → TurnkeyExportHandler.cjs} +10 -19
- package/src/lib/ExportHandler/{ExportHandler.d.ts → TurnkeyExportHandler.d.ts} +275 -50
- package/src/lib/ExportHandler/{ExportHandler.js → TurnkeyExportHandler.js} +10 -19
- package/src/lib/ExportHandler/index.d.ts +1 -1
- package/src/lib/TurnkeyWalletConnectorBase/TurnkeyWalletConnectorBase.cjs +34 -4
- package/src/lib/TurnkeyWalletConnectorBase/TurnkeyWalletConnectorBase.d.ts +11 -3
- package/src/lib/TurnkeyWalletConnectorBase/TurnkeyWalletConnectorBase.js +34 -4
|
@@ -7,20 +7,11 @@ import { turnkeyAuthenticatorRecoveryHandler } from '../AuthenticatorHandler/Tur
|
|
|
7
7
|
import { PasskeyService } from '../utils/PasskeyService/PasskeyService.js';
|
|
8
8
|
import '../utils/convertAttestationTransports/convertAttestationTransports.js';
|
|
9
9
|
import { logger } from '../utils/logger/logger.js';
|
|
10
|
+
import { BaseTurnkeyHandler } from '../BaseTurnkeyHandler.js';
|
|
11
|
+
import { TURNKEY_API_BASE_URL } from '../constants.js';
|
|
10
12
|
|
|
11
|
-
const turnkeyBaseUrl = 'https://api.turnkey.com';
|
|
12
13
|
const turnkeyExportUrl = 'https://export.turnkey.com';
|
|
13
|
-
class
|
|
14
|
-
get publicKey() {
|
|
15
|
-
return this.__publicKey;
|
|
16
|
-
}
|
|
17
|
-
clear() {
|
|
18
|
-
var _a;
|
|
19
|
-
(_a = this.__iframeStamper) === null || _a === void 0 ? void 0 : _a.clear();
|
|
20
|
-
this.__iframeStamper = undefined;
|
|
21
|
-
this.__publicKey = undefined;
|
|
22
|
-
this.__turnkeyClient = undefined;
|
|
23
|
-
}
|
|
14
|
+
class TurnkeyExportHandler extends BaseTurnkeyHandler {
|
|
24
15
|
initExport(iframeContainer, iframeElementId) {
|
|
25
16
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
17
|
this.__iframeStamper = new IframeStamper({
|
|
@@ -41,10 +32,10 @@ class ExportHandler {
|
|
|
41
32
|
const passkeyStamper = PasskeyService.createWebauthnStamper({
|
|
42
33
|
rpId,
|
|
43
34
|
});
|
|
44
|
-
const apiKeyStamper =
|
|
35
|
+
const apiKeyStamper = TurnkeyExportHandler === null || TurnkeyExportHandler === void 0 ? void 0 : TurnkeyExportHandler.apiKeyStamper;
|
|
45
36
|
const stamper = apiKeyStamper !== null && apiKeyStamper !== void 0 ? apiKeyStamper : passkeyStamper;
|
|
46
37
|
this.__turnkeyClient = new TurnkeyClient({
|
|
47
|
-
baseUrl:
|
|
38
|
+
baseUrl: TURNKEY_API_BASE_URL,
|
|
48
39
|
}, stamper);
|
|
49
40
|
}
|
|
50
41
|
return this.__publicKey;
|
|
@@ -83,10 +74,10 @@ class ExportHandler {
|
|
|
83
74
|
}
|
|
84
75
|
exportPrivateKey(_a) {
|
|
85
76
|
return __awaiter(this, arguments, void 0, function* ({ privateKeyId, organizationId, }) {
|
|
86
|
-
const apiKeyStamper =
|
|
77
|
+
const apiKeyStamper = TurnkeyExportHandler === null || TurnkeyExportHandler === void 0 ? void 0 : TurnkeyExportHandler.apiKeyStamper;
|
|
87
78
|
if (apiKeyStamper) {
|
|
88
79
|
this.__turnkeyClient = new TurnkeyClient({
|
|
89
|
-
baseUrl:
|
|
80
|
+
baseUrl: TURNKEY_API_BASE_URL,
|
|
90
81
|
}, apiKeyStamper);
|
|
91
82
|
}
|
|
92
83
|
if (!this.__iframeStamper ||
|
|
@@ -112,10 +103,10 @@ class ExportHandler {
|
|
|
112
103
|
}
|
|
113
104
|
exportWallet(_a) {
|
|
114
105
|
return __awaiter(this, arguments, void 0, function* ({ walletId, organizationId, address, }) {
|
|
115
|
-
const apiKeyStamper =
|
|
106
|
+
const apiKeyStamper = TurnkeyExportHandler === null || TurnkeyExportHandler === void 0 ? void 0 : TurnkeyExportHandler.apiKeyStamper;
|
|
116
107
|
if (apiKeyStamper) {
|
|
117
108
|
this.__turnkeyClient = new TurnkeyClient({
|
|
118
|
-
baseUrl:
|
|
109
|
+
baseUrl: TURNKEY_API_BASE_URL,
|
|
119
110
|
}, apiKeyStamper);
|
|
120
111
|
}
|
|
121
112
|
if (!this.__iframeStamper ||
|
|
@@ -150,4 +141,4 @@ class ExportHandler {
|
|
|
150
141
|
}
|
|
151
142
|
}
|
|
152
143
|
|
|
153
|
-
export {
|
|
144
|
+
export { TurnkeyExportHandler };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { TurnkeyExportHandler } from './TurnkeyExportHandler';
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var _tslib = require('../../../_virtual/_tslib.cjs');
|
|
7
7
|
var apiKeyStamper = require('@turnkey/api-key-stamper');
|
|
8
|
+
var http = require('@turnkey/http');
|
|
8
9
|
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
9
10
|
var utils = require('@dynamic-labs/utils');
|
|
10
11
|
var base64UrlEncode = require('../utils/base64UrlEncode/base64UrlEncode.cjs');
|
|
@@ -12,8 +13,9 @@ var generateRandomBuffer = require('../utils/generateRandomBuffer/generateRandom
|
|
|
12
13
|
var convertAttestationTransports = require('../utils/convertAttestationTransports/convertAttestationTransports.cjs');
|
|
13
14
|
var logger = require('../utils/logger/logger.cjs');
|
|
14
15
|
var TurnkeyAuthenticatorRecoveryHandler = require('../AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.cjs');
|
|
15
|
-
var
|
|
16
|
+
var TurnkeyExportHandler = require('../ExportHandler/TurnkeyExportHandler.cjs');
|
|
16
17
|
var PasskeyService = require('../utils/PasskeyService/PasskeyService.cjs');
|
|
18
|
+
var constants = require('../constants.cjs');
|
|
17
19
|
|
|
18
20
|
class TurnkeyWalletConnectorBase extends walletConnectorCore.WalletConnectorBase {
|
|
19
21
|
constructor(nameAndKey, props) {
|
|
@@ -24,7 +26,17 @@ class TurnkeyWalletConnectorBase extends walletConnectorCore.WalletConnectorBase
|
|
|
24
26
|
this.removeSessionKeys = () => _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
25
27
|
TurnkeyWalletConnectorBase.sessionKeys = undefined;
|
|
26
28
|
TurnkeyWalletConnectorBase.apiKeyStamper = undefined;
|
|
27
|
-
|
|
29
|
+
TurnkeyExportHandler.TurnkeyExportHandler.apiKeyStamper = undefined;
|
|
30
|
+
});
|
|
31
|
+
this.stampCreateWalletAccountRequest = (_a) => _tslib.__awaiter(this, [_a], void 0, function* ({ request, }) {
|
|
32
|
+
yield this.createOrRestoreSession();
|
|
33
|
+
const turnkeyClient = this.getTurnkeyClient();
|
|
34
|
+
return turnkeyClient.stampCreateWalletAccounts(request);
|
|
35
|
+
});
|
|
36
|
+
this.stampDeleteSubOrganizationRequest = (_b) => _tslib.__awaiter(this, [_b], void 0, function* ({ request, }) {
|
|
37
|
+
yield this.createOrRestoreSession();
|
|
38
|
+
const turnkeyClient = this.getTurnkeyClient();
|
|
39
|
+
return turnkeyClient.stampDeleteSubOrganization(request);
|
|
28
40
|
});
|
|
29
41
|
if (!props.appName) {
|
|
30
42
|
throw new Error('appName not set');
|
|
@@ -33,7 +45,7 @@ class TurnkeyWalletConnectorBase extends walletConnectorCore.WalletConnectorBase
|
|
|
33
45
|
this.overrideKey = nameAndKey.key;
|
|
34
46
|
this.appName = props.appName;
|
|
35
47
|
this.__authenticatorMethodHandler = TurnkeyAuthenticatorRecoveryHandler.turnkeyAuthenticatorRecoveryHandler;
|
|
36
|
-
this.__exportHandler = new
|
|
48
|
+
this.__exportHandler = new TurnkeyExportHandler.TurnkeyExportHandler();
|
|
37
49
|
}
|
|
38
50
|
getWebAuthnAttestation() {
|
|
39
51
|
return _tslib.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -188,7 +200,8 @@ class TurnkeyWalletConnectorBase extends walletConnectorCore.WalletConnectorBase
|
|
|
188
200
|
apiPrivateKey: sessionKeys.privateKey,
|
|
189
201
|
apiPublicKey: sessionKeys.publicKey,
|
|
190
202
|
});
|
|
191
|
-
|
|
203
|
+
TurnkeyExportHandler.TurnkeyExportHandler.apiKeyStamper =
|
|
204
|
+
TurnkeyWalletConnectorBase.apiKeyStamper;
|
|
192
205
|
logger.logger.metaData.set('sessionApiPublicKey', sessionKeys.publicKey);
|
|
193
206
|
return sessionKeys.publicKey;
|
|
194
207
|
}
|
|
@@ -217,6 +230,23 @@ class TurnkeyWalletConnectorBase extends walletConnectorCore.WalletConnectorBase
|
|
|
217
230
|
get sessionKeys() {
|
|
218
231
|
return TurnkeyWalletConnectorBase.sessionKeys;
|
|
219
232
|
}
|
|
233
|
+
getTurnkeyClient() {
|
|
234
|
+
var _a;
|
|
235
|
+
let rpId = utils.getTLD();
|
|
236
|
+
if (!rpId) {
|
|
237
|
+
rpId = utils.PlatformService.getHostname();
|
|
238
|
+
}
|
|
239
|
+
const passkeyStamper = PasskeyService.PasskeyService.createWebauthnStamper({
|
|
240
|
+
rpId,
|
|
241
|
+
});
|
|
242
|
+
const apiKeyStamper = TurnkeyWalletConnectorBase === null || TurnkeyWalletConnectorBase === void 0 ? void 0 : TurnkeyWalletConnectorBase.apiKeyStamper;
|
|
243
|
+
const stamper = apiKeyStamper !== null && apiKeyStamper !== void 0 ? apiKeyStamper : passkeyStamper;
|
|
244
|
+
this.__turnkeyClient =
|
|
245
|
+
(_a = this.getAuthenticatorHandler().client) !== null && _a !== void 0 ? _a : new http.TurnkeyClient({
|
|
246
|
+
baseUrl: constants.TURNKEY_API_BASE_URL,
|
|
247
|
+
}, stamper);
|
|
248
|
+
return this.__turnkeyClient;
|
|
249
|
+
}
|
|
220
250
|
setLoggerMetadata() {
|
|
221
251
|
var _a, _b, _c;
|
|
222
252
|
logger.logger.metaData.set('turnkeySubOrganizationId', (_b = (_a = this._verifiedCredential) === null || _a === void 0 ? void 0 : _a.walletProperties) === null || _b === void 0 ? void 0 : _b.turnkeySubOrganizationId);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ApiKeyStamper } from '@turnkey/api-key-stamper';
|
|
2
|
+
import { TSignedRequest, TurnkeyClient } from '@turnkey/http';
|
|
2
3
|
import { TurnkeyWalletProperties } from '@dynamic-labs/sdk-api-core';
|
|
3
4
|
import { WalletBookSchema } from '@dynamic-labs/wallet-book';
|
|
4
|
-
import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
5
|
+
import { ExportHandler, ITurnkeyWalletConnectorStamper, WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
5
6
|
import type { AuthenticatorRecoveryHandler, IEmailWalletConnector, IPasskeyWalletConnector, ISMSWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
6
7
|
import { JwtVerifiedCredentialWithSmartWalletRef } from '../utils';
|
|
7
8
|
import { TurnkeyWalletConnectorNameAndKey } from '../../types';
|
|
8
|
-
import { ExportHandler } from '../ExportHandler';
|
|
9
9
|
export type TurnkeyConnectorBaseProps = {
|
|
10
10
|
walletBook: WalletBookSchema;
|
|
11
11
|
appName?: string;
|
|
@@ -15,12 +15,13 @@ export type SessionKeys = {
|
|
|
15
15
|
privateKey: string;
|
|
16
16
|
expirationDate: string;
|
|
17
17
|
};
|
|
18
|
-
type ITurnkeyWalletConnector = IEmailWalletConnector & IPasskeyWalletConnector & ISMSWalletConnector;
|
|
18
|
+
type ITurnkeyWalletConnector = IEmailWalletConnector & IPasskeyWalletConnector & ISMSWalletConnector & ITurnkeyWalletConnectorStamper;
|
|
19
19
|
export declare abstract class TurnkeyWalletConnectorBase extends WalletConnectorBase implements ITurnkeyWalletConnector {
|
|
20
20
|
requiresNonDynamicEmailOtp: boolean;
|
|
21
21
|
name: string;
|
|
22
22
|
isEmbeddedWallet: boolean;
|
|
23
23
|
static isLoadingSession: boolean;
|
|
24
|
+
protected __turnkeyClient: TurnkeyClient | undefined;
|
|
24
25
|
private appName;
|
|
25
26
|
private _email;
|
|
26
27
|
private _phone;
|
|
@@ -72,6 +73,13 @@ export declare abstract class TurnkeyWalletConnectorBase extends WalletConnector
|
|
|
72
73
|
isSessionKeyCompatible(): boolean;
|
|
73
74
|
isSessionActive(): Promise<boolean>;
|
|
74
75
|
get sessionKeys(): SessionKeys | undefined;
|
|
76
|
+
stampCreateWalletAccountRequest: ({ request, }: {
|
|
77
|
+
request: any;
|
|
78
|
+
}) => Promise<TSignedRequest>;
|
|
79
|
+
stampDeleteSubOrganizationRequest: ({ request, }: {
|
|
80
|
+
request: any;
|
|
81
|
+
}) => Promise<TSignedRequest>;
|
|
82
|
+
getTurnkeyClient(): TurnkeyClient;
|
|
75
83
|
protected setLoggerMetadata(): void;
|
|
76
84
|
}
|
|
77
85
|
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { __awaiter } from '../../../_virtual/_tslib.js';
|
|
3
3
|
import { ApiKeyStamper } from '@turnkey/api-key-stamper';
|
|
4
|
+
import { TurnkeyClient } from '@turnkey/http';
|
|
4
5
|
import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
5
6
|
import { getTLD, PlatformService, DynamicError } from '@dynamic-labs/utils';
|
|
6
7
|
import { base64UrlEncode } from '../utils/base64UrlEncode/base64UrlEncode.js';
|
|
@@ -8,8 +9,9 @@ import { generateRandomBuffer } from '../utils/generateRandomBuffer/generateRand
|
|
|
8
9
|
import { convertAttestationTransports } from '../utils/convertAttestationTransports/convertAttestationTransports.js';
|
|
9
10
|
import { logger } from '../utils/logger/logger.js';
|
|
10
11
|
import { turnkeyAuthenticatorRecoveryHandler } from '../AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.js';
|
|
11
|
-
import {
|
|
12
|
+
import { TurnkeyExportHandler } from '../ExportHandler/TurnkeyExportHandler.js';
|
|
12
13
|
import { PasskeyService } from '../utils/PasskeyService/PasskeyService.js';
|
|
14
|
+
import { TURNKEY_API_BASE_URL } from '../constants.js';
|
|
13
15
|
|
|
14
16
|
class TurnkeyWalletConnectorBase extends WalletConnectorBase {
|
|
15
17
|
constructor(nameAndKey, props) {
|
|
@@ -20,7 +22,17 @@ class TurnkeyWalletConnectorBase extends WalletConnectorBase {
|
|
|
20
22
|
this.removeSessionKeys = () => __awaiter(this, void 0, void 0, function* () {
|
|
21
23
|
TurnkeyWalletConnectorBase.sessionKeys = undefined;
|
|
22
24
|
TurnkeyWalletConnectorBase.apiKeyStamper = undefined;
|
|
23
|
-
|
|
25
|
+
TurnkeyExportHandler.apiKeyStamper = undefined;
|
|
26
|
+
});
|
|
27
|
+
this.stampCreateWalletAccountRequest = (_a) => __awaiter(this, [_a], void 0, function* ({ request, }) {
|
|
28
|
+
yield this.createOrRestoreSession();
|
|
29
|
+
const turnkeyClient = this.getTurnkeyClient();
|
|
30
|
+
return turnkeyClient.stampCreateWalletAccounts(request);
|
|
31
|
+
});
|
|
32
|
+
this.stampDeleteSubOrganizationRequest = (_b) => __awaiter(this, [_b], void 0, function* ({ request, }) {
|
|
33
|
+
yield this.createOrRestoreSession();
|
|
34
|
+
const turnkeyClient = this.getTurnkeyClient();
|
|
35
|
+
return turnkeyClient.stampDeleteSubOrganization(request);
|
|
24
36
|
});
|
|
25
37
|
if (!props.appName) {
|
|
26
38
|
throw new Error('appName not set');
|
|
@@ -29,7 +41,7 @@ class TurnkeyWalletConnectorBase extends WalletConnectorBase {
|
|
|
29
41
|
this.overrideKey = nameAndKey.key;
|
|
30
42
|
this.appName = props.appName;
|
|
31
43
|
this.__authenticatorMethodHandler = turnkeyAuthenticatorRecoveryHandler;
|
|
32
|
-
this.__exportHandler = new
|
|
44
|
+
this.__exportHandler = new TurnkeyExportHandler();
|
|
33
45
|
}
|
|
34
46
|
getWebAuthnAttestation() {
|
|
35
47
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -184,7 +196,8 @@ class TurnkeyWalletConnectorBase extends WalletConnectorBase {
|
|
|
184
196
|
apiPrivateKey: sessionKeys.privateKey,
|
|
185
197
|
apiPublicKey: sessionKeys.publicKey,
|
|
186
198
|
});
|
|
187
|
-
|
|
199
|
+
TurnkeyExportHandler.apiKeyStamper =
|
|
200
|
+
TurnkeyWalletConnectorBase.apiKeyStamper;
|
|
188
201
|
logger.metaData.set('sessionApiPublicKey', sessionKeys.publicKey);
|
|
189
202
|
return sessionKeys.publicKey;
|
|
190
203
|
}
|
|
@@ -213,6 +226,23 @@ class TurnkeyWalletConnectorBase extends WalletConnectorBase {
|
|
|
213
226
|
get sessionKeys() {
|
|
214
227
|
return TurnkeyWalletConnectorBase.sessionKeys;
|
|
215
228
|
}
|
|
229
|
+
getTurnkeyClient() {
|
|
230
|
+
var _a;
|
|
231
|
+
let rpId = getTLD();
|
|
232
|
+
if (!rpId) {
|
|
233
|
+
rpId = PlatformService.getHostname();
|
|
234
|
+
}
|
|
235
|
+
const passkeyStamper = PasskeyService.createWebauthnStamper({
|
|
236
|
+
rpId,
|
|
237
|
+
});
|
|
238
|
+
const apiKeyStamper = TurnkeyWalletConnectorBase === null || TurnkeyWalletConnectorBase === void 0 ? void 0 : TurnkeyWalletConnectorBase.apiKeyStamper;
|
|
239
|
+
const stamper = apiKeyStamper !== null && apiKeyStamper !== void 0 ? apiKeyStamper : passkeyStamper;
|
|
240
|
+
this.__turnkeyClient =
|
|
241
|
+
(_a = this.getAuthenticatorHandler().client) !== null && _a !== void 0 ? _a : new TurnkeyClient({
|
|
242
|
+
baseUrl: TURNKEY_API_BASE_URL,
|
|
243
|
+
}, stamper);
|
|
244
|
+
return this.__turnkeyClient;
|
|
245
|
+
}
|
|
216
246
|
setLoggerMetadata() {
|
|
217
247
|
var _a, _b, _c;
|
|
218
248
|
logger.metaData.set('turnkeySubOrganizationId', (_b = (_a = this._verifiedCredential) === null || _a === void 0 ? void 0 : _a.walletProperties) === null || _b === void 0 ? void 0 : _b.turnkeySubOrganizationId);
|