@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.
@@ -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 ExportHandler {
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 = ExportHandler === null || ExportHandler === void 0 ? void 0 : ExportHandler.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: turnkeyBaseUrl,
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 = ExportHandler === null || ExportHandler === void 0 ? void 0 : ExportHandler.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: turnkeyBaseUrl,
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 = ExportHandler === null || ExportHandler === void 0 ? void 0 : ExportHandler.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: turnkeyBaseUrl,
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 { ExportHandler };
144
+ export { TurnkeyExportHandler };
@@ -1 +1 @@
1
- export { ExportHandler } from './ExportHandler';
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 ExportHandler = require('../ExportHandler/ExportHandler.cjs');
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
- ExportHandler.ExportHandler.apiKeyStamper = undefined;
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 ExportHandler.ExportHandler();
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
- ExportHandler.ExportHandler.apiKeyStamper = TurnkeyWalletConnectorBase.apiKeyStamper;
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 { ExportHandler } from '../ExportHandler/ExportHandler.js';
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
- ExportHandler.apiKeyStamper = undefined;
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 ExportHandler();
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
- ExportHandler.apiKeyStamper = TurnkeyWalletConnectorBase.apiKeyStamper;
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);