@dynamic-labs/embedded-wallet 0.0.0-exp20240808.0

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.
Files changed (57) hide show
  1. package/CHANGELOG.md +3746 -0
  2. package/LICENSE +21 -0
  3. package/README.md +7 -0
  4. package/_virtual/_tslib.cjs +51 -0
  5. package/_virtual/_tslib.js +45 -0
  6. package/package.json +40 -0
  7. package/src/index.cjs +32 -0
  8. package/src/index.d.ts +7 -0
  9. package/src/index.js +10 -0
  10. package/src/lib/AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.cjs +227 -0
  11. package/src/lib/AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.d.ts +1640 -0
  12. package/src/lib/AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.js +223 -0
  13. package/src/lib/AuthenticatorHandler/index.d.ts +1 -0
  14. package/src/lib/ExportHandler/ExportHandler.cjs +154 -0
  15. package/src/lib/ExportHandler/ExportHandler.d.ts +1630 -0
  16. package/src/lib/ExportHandler/ExportHandler.js +150 -0
  17. package/src/lib/ExportHandler/index.d.ts +1 -0
  18. package/src/lib/TurnkeyWalletConnectorBase/TurnkeyWalletConnectorBase.cjs +238 -0
  19. package/src/lib/TurnkeyWalletConnectorBase/TurnkeyWalletConnectorBase.d.ts +73 -0
  20. package/src/lib/TurnkeyWalletConnectorBase/TurnkeyWalletConnectorBase.js +234 -0
  21. package/src/lib/TurnkeyWalletConnectorBase/index.d.ts +1 -0
  22. package/src/lib/constants.cjs +29 -0
  23. package/src/lib/constants.d.ts +8 -0
  24. package/src/lib/constants.js +18 -0
  25. package/src/lib/utils/PasskeyService/PasskeyService.cjs +45 -0
  26. package/src/lib/utils/PasskeyService/PasskeyService.d.ts +23 -0
  27. package/src/lib/utils/PasskeyService/PasskeyService.js +41 -0
  28. package/src/lib/utils/PasskeyService/index.d.ts +2 -0
  29. package/src/lib/utils/PasskeyService/types.d.ts +6 -0
  30. package/src/lib/utils/PasskeyService/utils/createTurnkeyPasskeyService/createTurnkeyPasskeyService.cjs +14 -0
  31. package/src/lib/utils/PasskeyService/utils/createTurnkeyPasskeyService/createTurnkeyPasskeyService.d.ts +2 -0
  32. package/src/lib/utils/PasskeyService/utils/createTurnkeyPasskeyService/createTurnkeyPasskeyService.js +10 -0
  33. package/src/lib/utils/PasskeyService/utils/createTurnkeyPasskeyService/index.d.ts +1 -0
  34. package/src/lib/utils/base64UrlEncode/base64UrlEncode.cjs +12 -0
  35. package/src/lib/utils/base64UrlEncode/base64UrlEncode.d.ts +1 -0
  36. package/src/lib/utils/base64UrlEncode/base64UrlEncode.js +8 -0
  37. package/src/lib/utils/base64UrlEncode/index.d.ts +1 -0
  38. package/src/lib/utils/convertAttestationTransports/convertAttestationTransports.cjs +17 -0
  39. package/src/lib/utils/convertAttestationTransports/convertAttestationTransports.d.ts +4 -0
  40. package/src/lib/utils/convertAttestationTransports/convertAttestationTransports.js +13 -0
  41. package/src/lib/utils/convertAttestationTransports/index.d.ts +1 -0
  42. package/src/lib/utils/findTurnkeyVerifiedCredential/findTurnkeyVerifiedCredential.cjs +8 -0
  43. package/src/lib/utils/findTurnkeyVerifiedCredential/findTurnkeyVerifiedCredential.d.ts +2 -0
  44. package/src/lib/utils/findTurnkeyVerifiedCredential/findTurnkeyVerifiedCredential.js +4 -0
  45. package/src/lib/utils/findTurnkeyVerifiedCredential/index.d.ts +1 -0
  46. package/src/lib/utils/generateRandomBuffer/generateRandomBuffer.cjs +12 -0
  47. package/src/lib/utils/generateRandomBuffer/generateRandomBuffer.d.ts +1 -0
  48. package/src/lib/utils/generateRandomBuffer/generateRandomBuffer.js +8 -0
  49. package/src/lib/utils/generateRandomBuffer/index.d.ts +1 -0
  50. package/src/lib/utils/index.d.ts +5 -0
  51. package/src/lib/utils/logger/index.d.ts +1 -0
  52. package/src/lib/utils/logger/logger.cjs +29 -0
  53. package/src/lib/utils/logger/logger.d.ts +6 -0
  54. package/src/lib/utils/logger/logger.js +24 -0
  55. package/src/types.cjs +17 -0
  56. package/src/types.d.ts +16 -0
  57. package/src/types.js +13 -0
@@ -0,0 +1,150 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../_virtual/_tslib.js';
3
+ import { IframeStamper, KeyFormat } from '@turnkey/iframe-stamper';
4
+ import { TurnkeyClient } from '@turnkey/http';
5
+ import { getTLD, PlatformService, DynamicError } from '@dynamic-labs/utils';
6
+ import { turnkeyAuthenticatorRecoveryHandler } from '../AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.js';
7
+ import { PasskeyService } from '../utils/PasskeyService/PasskeyService.js';
8
+ import '../utils/convertAttestationTransports/convertAttestationTransports.js';
9
+ import { logger } from '../utils/logger/logger.js';
10
+
11
+ const turnkeyBaseUrl = 'https://api.turnkey.com';
12
+ 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
+ }
24
+ initExport(iframeContainer, iframeElementId) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ this.__iframeStamper = new IframeStamper({
27
+ iframeContainer,
28
+ iframeElementId,
29
+ iframeUrl: turnkeyExportUrl,
30
+ });
31
+ yield this.__iframeStamper.init();
32
+ this.__publicKey = this.__iframeStamper.publicKey();
33
+ if (turnkeyAuthenticatorRecoveryHandler.isSessionActive()) {
34
+ this.__turnkeyClient = turnkeyAuthenticatorRecoveryHandler.client;
35
+ }
36
+ else {
37
+ let rpId = getTLD();
38
+ if (!rpId) {
39
+ rpId = PlatformService.getHostname();
40
+ }
41
+ const passkeyStamper = PasskeyService.createWebauthnStamper({
42
+ rpId,
43
+ });
44
+ const apiKeyStamper = ExportHandler === null || ExportHandler === void 0 ? void 0 : ExportHandler.apiKeyStamper;
45
+ const stamper = apiKeyStamper !== null && apiKeyStamper !== void 0 ? apiKeyStamper : passkeyStamper;
46
+ this.__turnkeyClient = new TurnkeyClient({
47
+ baseUrl: turnkeyBaseUrl,
48
+ }, stamper);
49
+ }
50
+ return this.__publicKey;
51
+ });
52
+ }
53
+ verifyExportWallet(_a) {
54
+ return __awaiter(this, arguments, void 0, function* ({ exportBundle, organizationId, }) {
55
+ if (!this.__iframeStamper) {
56
+ throw new DynamicError('Cannot proceed with your request');
57
+ }
58
+ try {
59
+ return yield this.__iframeStamper.injectWalletExportBundle(exportBundle, organizationId);
60
+ }
61
+ catch (err) {
62
+ logger.error('Error while verifying export wallet', err);
63
+ throw err;
64
+ }
65
+ });
66
+ }
67
+ verifyExportPrivateKey(_a) {
68
+ return __awaiter(this, arguments, void 0, function* ({ exportBundle, organizationId, chain, }) {
69
+ if (!this.__iframeStamper) {
70
+ throw new DynamicError('Cannot proceed with your request');
71
+ }
72
+ try {
73
+ return yield this.__iframeStamper.injectKeyExportBundle(exportBundle, organizationId, chain === 'solana' ? KeyFormat.Solana : KeyFormat.Hexadecimal);
74
+ }
75
+ catch (err) {
76
+ logger.error('Error while verifying export private key', err);
77
+ throw err;
78
+ }
79
+ });
80
+ }
81
+ exportPrivateKey(_a) {
82
+ return __awaiter(this, arguments, void 0, function* ({ privateKeyId, organizationId, }) {
83
+ const apiKeyStamper = ExportHandler === null || ExportHandler === void 0 ? void 0 : ExportHandler.apiKeyStamper;
84
+ if (apiKeyStamper) {
85
+ this.__turnkeyClient = new TurnkeyClient({
86
+ baseUrl: turnkeyBaseUrl,
87
+ }, apiKeyStamper);
88
+ }
89
+ if (!this.__iframeStamper ||
90
+ !this.__publicKey ||
91
+ !this.__turnkeyClient ||
92
+ !privateKeyId) {
93
+ throw new DynamicError('Cannot proceed with your request');
94
+ }
95
+ try {
96
+ const newActivity = yield this.__turnkeyClient.exportPrivateKey({
97
+ organizationId,
98
+ parameters: { privateKeyId, targetPublicKey: this.__publicKey },
99
+ timestampMs: String(Date.now()),
100
+ type: 'ACTIVITY_TYPE_EXPORT_PRIVATE_KEY',
101
+ });
102
+ return newActivity.activity;
103
+ }
104
+ catch (err) {
105
+ logger.error('[TK] Error while completing export private key process', err);
106
+ throw err;
107
+ }
108
+ });
109
+ }
110
+ exportWallet(_a) {
111
+ return __awaiter(this, arguments, void 0, function* ({ walletId, organizationId, address, }) {
112
+ const apiKeyStamper = ExportHandler === null || ExportHandler === void 0 ? void 0 : ExportHandler.apiKeyStamper;
113
+ if (apiKeyStamper) {
114
+ this.__turnkeyClient = new TurnkeyClient({
115
+ baseUrl: turnkeyBaseUrl,
116
+ }, apiKeyStamper);
117
+ }
118
+ if (!this.__iframeStamper ||
119
+ !this.__publicKey ||
120
+ !this.__turnkeyClient ||
121
+ !walletId) {
122
+ throw new DynamicError('Cannot proceed with your request');
123
+ }
124
+ try {
125
+ if (address) {
126
+ const newActivity = yield this.__turnkeyClient.exportWalletAccount({
127
+ organizationId,
128
+ parameters: { address, targetPublicKey: this.__publicKey },
129
+ timestampMs: String(Date.now()),
130
+ type: 'ACTIVITY_TYPE_EXPORT_WALLET_ACCOUNT',
131
+ });
132
+ return newActivity.activity;
133
+ }
134
+ const newActivity = yield this.__turnkeyClient.exportWallet({
135
+ organizationId,
136
+ parameters: { targetPublicKey: this.__publicKey, walletId },
137
+ timestampMs: String(Date.now()),
138
+ type: 'ACTIVITY_TYPE_EXPORT_WALLET',
139
+ });
140
+ return newActivity.activity;
141
+ }
142
+ catch (err) {
143
+ logger.error('[TK] Error while completing export wallet process', err);
144
+ throw err;
145
+ }
146
+ });
147
+ }
148
+ }
149
+
150
+ export { ExportHandler };
@@ -0,0 +1 @@
1
+ export { ExportHandler } from './ExportHandler';
@@ -0,0 +1,238 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../_virtual/_tslib.cjs');
7
+ var apiKeyStamper = require('@turnkey/api-key-stamper');
8
+ var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
9
+ var utils = require('@dynamic-labs/utils');
10
+ var base64UrlEncode = require('../utils/base64UrlEncode/base64UrlEncode.cjs');
11
+ var generateRandomBuffer = require('../utils/generateRandomBuffer/generateRandomBuffer.cjs');
12
+ var convertAttestationTransports = require('../utils/convertAttestationTransports/convertAttestationTransports.cjs');
13
+ var logger = require('../utils/logger/logger.cjs');
14
+ var TurnkeyAuthenticatorRecoveryHandler = require('../AuthenticatorHandler/TurnkeyAuthenticatorRecoveryHandler.cjs');
15
+ var ExportHandler = require('../ExportHandler/ExportHandler.cjs');
16
+ var PasskeyService = require('../utils/PasskeyService/PasskeyService.cjs');
17
+
18
+ class TurnkeyWalletConnectorBase extends walletConnectorCore.WalletConnectorBase {
19
+ constructor(nameAndKey, props) {
20
+ super(props);
21
+ // Public fields
22
+ this.requiresNonDynamicEmailOtp = false;
23
+ this.isEmbeddedWallet = true;
24
+ this.removeSessionKeys = () => _tslib.__awaiter(this, void 0, void 0, function* () {
25
+ TurnkeyWalletConnectorBase.sessionKeys = undefined;
26
+ TurnkeyWalletConnectorBase.apiKeyStamper = undefined;
27
+ ExportHandler.ExportHandler.apiKeyStamper = undefined;
28
+ if (typeof (this === null || this === void 0 ? void 0 : this.removeSessionKeysFunction) === 'function') {
29
+ this.removeSessionKeysFunction();
30
+ }
31
+ });
32
+ if (!props.appName) {
33
+ throw new Error('appName not set');
34
+ }
35
+ this.name = nameAndKey.name;
36
+ this.overrideKey = nameAndKey.key;
37
+ this.appName = props.appName;
38
+ this.__authenticatorMethodHandler = TurnkeyAuthenticatorRecoveryHandler.turnkeyAuthenticatorRecoveryHandler;
39
+ this.__exportHandler = new ExportHandler.ExportHandler();
40
+ }
41
+ getWebAuthnAttestation() {
42
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
43
+ const challenge = generateRandomBuffer.generateRandomBuffer();
44
+ const authenticatorUserId = generateRandomBuffer.generateRandomBuffer();
45
+ const { email, passkeyIdentifier } = this;
46
+ if (!email && !passkeyIdentifier) {
47
+ throw new Error('Email or passkeyIdentifier must be set to register a webauthn credential.');
48
+ }
49
+ const displayName = email || `${this.appName} - ${passkeyIdentifier}`;
50
+ const webAuthnCreateParams = {
51
+ publicKey: {
52
+ authenticatorSelection: {
53
+ authenticatorAttachment: undefined,
54
+ requireResidentKey: false,
55
+ residentKey: 'preferred',
56
+ userVerification: 'discouraged',
57
+ },
58
+ challenge,
59
+ pubKeyCredParams: [
60
+ {
61
+ alg: -7,
62
+ type: 'public-key',
63
+ },
64
+ ],
65
+ rp: {
66
+ id: utils.getTLD(),
67
+ name: this.appName,
68
+ },
69
+ user: {
70
+ displayName,
71
+ id: authenticatorUserId,
72
+ name: email || `${this.appName} - ${passkeyIdentifier}`,
73
+ },
74
+ },
75
+ };
76
+ let attestation;
77
+ try {
78
+ attestation = yield PasskeyService.PasskeyService.getWebAuthnAttestation(webAuthnCreateParams);
79
+ }
80
+ catch (error) {
81
+ logger.logger.warn(`Unable to register webauthn credential on the current page's TLD ${utils.getTLD()}. Falling back to using hostname. ${utils.PlatformService.getHostname()}`, error);
82
+ // Create the passkey on the hostname instead.
83
+ webAuthnCreateParams.publicKey.rp.id = utils.PlatformService.getHostname();
84
+ attestation = yield PasskeyService.PasskeyService.getWebAuthnAttestation(webAuthnCreateParams);
85
+ }
86
+ return {
87
+ attestation: {
88
+ attestationObject: attestation.attestationObject,
89
+ clientDataJson: attestation.clientDataJson,
90
+ credentialId: attestation.credentialId,
91
+ transports: convertAttestationTransports.convertAttestationTransports(attestation.transports),
92
+ },
93
+ challenge: base64UrlEncode.base64UrlEncode(challenge),
94
+ displayName,
95
+ };
96
+ });
97
+ }
98
+ getAuthenticatorHandler() {
99
+ return this.__authenticatorMethodHandler;
100
+ }
101
+ getExportHandler() {
102
+ return this.__exportHandler;
103
+ }
104
+ // Public methods
105
+ get email() {
106
+ return this._email;
107
+ }
108
+ setEmail(email) {
109
+ this._email = email;
110
+ }
111
+ get phone() {
112
+ return this._phone;
113
+ }
114
+ setPhone(phone) {
115
+ this._phone = phone;
116
+ }
117
+ get passkeyIdentifier() {
118
+ return this._passkeyIdentifier;
119
+ }
120
+ setPasskeyIdentifier(passkeyIdentifier) {
121
+ this._passkeyIdentifier = passkeyIdentifier;
122
+ }
123
+ clearEmail() {
124
+ this._email = null;
125
+ }
126
+ getAddress() {
127
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
128
+ var _a;
129
+ return (_a = this.verifiedCredential) === null || _a === void 0 ? void 0 : _a.address;
130
+ });
131
+ }
132
+ getConnectedAccounts() {
133
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
134
+ var _a;
135
+ const address = (_a = this.verifiedCredential) === null || _a === void 0 ? void 0 : _a.address;
136
+ if (!address) {
137
+ return [];
138
+ }
139
+ return [address];
140
+ });
141
+ }
142
+ getMobileOrInstalledWallet() {
143
+ return this;
144
+ }
145
+ get turnkeyAddress() {
146
+ var _a;
147
+ const { address } = (_a = this.verifiedCredential) !== null && _a !== void 0 ? _a : {};
148
+ return address;
149
+ }
150
+ get walletProperties() {
151
+ const { walletProperties } = this.verifiedCredential || {};
152
+ return walletProperties;
153
+ }
154
+ // Private methods
155
+ set verifiedCredential(verifiedCredential) {
156
+ this._verifiedCredential = verifiedCredential;
157
+ }
158
+ get verifiedCredential() {
159
+ return this._verifiedCredential;
160
+ }
161
+ setSessionKeyFetcher(func) {
162
+ this.createOrRestoreSessionFetcherFunction = func;
163
+ }
164
+ setSessionKeyRemoveFunction(func) {
165
+ this.removeSessionKeysFunction = func;
166
+ }
167
+ createOrRestoreSession() {
168
+ return _tslib.__awaiter(this, arguments, void 0, function* ({ ignoreRestore, } = {}) {
169
+ var _a;
170
+ if (!this.isSessionKeyCompatible() ||
171
+ TurnkeyWalletConnectorBase.isLoadingSession) {
172
+ return;
173
+ }
174
+ if (!this.createOrRestoreSessionFetcherFunction) {
175
+ throw new utils.DynamicError('Cannot register session key to init provider');
176
+ }
177
+ if ((_a = TurnkeyWalletConnectorBase.sessionKeys) === null || _a === void 0 ? void 0 : _a.publicKey) {
178
+ return TurnkeyWalletConnectorBase.sessionKeys.publicKey;
179
+ }
180
+ try {
181
+ TurnkeyWalletConnectorBase.isLoadingSession = true;
182
+ const sessionKeys = yield this.createOrRestoreSessionFetcherFunction({
183
+ ignoreRestore,
184
+ });
185
+ TurnkeyWalletConnectorBase.sessionKeys = sessionKeys;
186
+ TurnkeyWalletConnectorBase.apiKeyStamper = new apiKeyStamper.ApiKeyStamper({
187
+ apiPrivateKey: sessionKeys.privateKey,
188
+ apiPublicKey: sessionKeys.publicKey,
189
+ });
190
+ ExportHandler.ExportHandler.apiKeyStamper = TurnkeyWalletConnectorBase.apiKeyStamper;
191
+ logger.logger.setMetaData('sessionApiPublicKey', sessionKeys.publicKey);
192
+ return sessionKeys.publicKey;
193
+ }
194
+ catch (error) {
195
+ throw new utils.DynamicError('Failed to create or restore session');
196
+ }
197
+ finally {
198
+ TurnkeyWalletConnectorBase.isLoadingSession = false;
199
+ }
200
+ });
201
+ }
202
+ isSessionKeyCompatible() {
203
+ var _a;
204
+ const walletProperties = (_a = this.verifiedCredential) === null || _a === void 0 ? void 0 : _a.walletProperties;
205
+ const isSessionKeyCompatible = walletProperties === null || walletProperties === void 0 ? void 0 : walletProperties.isSessionKeyCompatible;
206
+ return Boolean(isSessionKeyCompatible);
207
+ }
208
+ isSessionActive() {
209
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
210
+ const hasWallet = yield this.getAddress();
211
+ return Boolean(hasWallet &&
212
+ TurnkeyWalletConnectorBase.sessionKeys &&
213
+ TurnkeyWalletConnectorBase.apiKeyStamper);
214
+ });
215
+ }
216
+ get sessionKeys() {
217
+ return TurnkeyWalletConnectorBase.sessionKeys;
218
+ }
219
+ setLoggerMetadata() {
220
+ var _a, _b, _c;
221
+ logger.logger.setMetaData('turnkeySubOrganizationId', (_b = (_a = this._verifiedCredential) === null || _a === void 0 ? void 0 : _a.walletProperties) === null || _b === void 0 ? void 0 : _b.turnkeySubOrganizationId);
222
+ logger.logger.setMetaData('walletId', (_c = this._verifiedCredential) === null || _c === void 0 ? void 0 : _c.id);
223
+ let authMethod = 'Unknown';
224
+ if (this.isSessionKeyCompatible()) {
225
+ authMethod = 'SessionKeys';
226
+ }
227
+ else if (this.__authenticatorMethodHandler.recoveryType === 'passkey') {
228
+ authMethod = 'Passkey';
229
+ }
230
+ else if (this.__authenticatorMethodHandler.recoveryType === 'email') {
231
+ authMethod = 'EmailAuth';
232
+ }
233
+ logger.logger.setMetaData('authMethod', authMethod);
234
+ }
235
+ }
236
+ TurnkeyWalletConnectorBase.isLoadingSession = false;
237
+
238
+ exports.TurnkeyWalletConnectorBase = TurnkeyWalletConnectorBase;
@@ -0,0 +1,73 @@
1
+ import { ApiKeyStamper } from '@turnkey/api-key-stamper';
2
+ import { JwtVerifiedCredential, TurnkeyWalletProperties } from '@dynamic-labs/sdk-api-core';
3
+ import { WalletBookSchema } from '@dynamic-labs/wallet-book';
4
+ import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
5
+ import type { AuthenticatorRecoveryHandler, IEmailWalletConnector, IPasskeyWalletConnector, ISMSWalletConnector, WalletConnector } from '@dynamic-labs/wallet-connector-core';
6
+ import { TurnkeyWalletConnectorNameAndKey } from '../../types';
7
+ import { ExportHandler } from '../ExportHandler';
8
+ export type TurnkeyConnectorBaseProps = {
9
+ walletBook: WalletBookSchema;
10
+ appName?: string;
11
+ };
12
+ export type SessionKeys = {
13
+ publicKey: string;
14
+ privateKey: string;
15
+ };
16
+ type ITurnkeyWalletConnector = IEmailWalletConnector & IPasskeyWalletConnector & ISMSWalletConnector;
17
+ export declare abstract class TurnkeyWalletConnectorBase extends WalletConnectorBase implements ITurnkeyWalletConnector {
18
+ requiresNonDynamicEmailOtp: boolean;
19
+ name: string;
20
+ isEmbeddedWallet: boolean;
21
+ static isLoadingSession: boolean;
22
+ private appName;
23
+ private _email;
24
+ private _phone;
25
+ private _passkeyIdentifier;
26
+ private _verifiedCredential;
27
+ private __authenticatorMethodHandler;
28
+ private __exportHandler;
29
+ static sessionKeys: SessionKeys | undefined;
30
+ static apiKeyStamper: ApiKeyStamper | undefined;
31
+ createOrRestoreSessionFetcherFunction: (({ ignoreRestore }: {
32
+ ignoreRestore?: boolean;
33
+ }) => Promise<SessionKeys>) | undefined;
34
+ removeSessionKeysFunction: (() => Promise<void>) | undefined;
35
+ constructor(nameAndKey: TurnkeyWalletConnectorNameAndKey, props: TurnkeyConnectorBaseProps);
36
+ getWebAuthnAttestation(): Promise<{
37
+ attestation: {
38
+ attestationObject: string;
39
+ clientDataJson: string;
40
+ credentialId: string;
41
+ transports: import("@dynamic-labs/sdk-api-core").AuthenticatorTransportProtocol[];
42
+ };
43
+ challenge: string;
44
+ displayName: string;
45
+ }>;
46
+ getAuthenticatorHandler(): AuthenticatorRecoveryHandler;
47
+ getExportHandler(): ExportHandler;
48
+ get email(): string | null | undefined;
49
+ setEmail(email: string | null | undefined): void;
50
+ get phone(): string | null | undefined;
51
+ setPhone(phone: string | null | undefined): void;
52
+ get passkeyIdentifier(): string | null | undefined;
53
+ setPasskeyIdentifier(passkeyIdentifier: string | null | undefined): void;
54
+ clearEmail(): void;
55
+ getAddress(): Promise<string | undefined>;
56
+ getConnectedAccounts(): Promise<string[]>;
57
+ getMobileOrInstalledWallet(): WalletConnector;
58
+ get turnkeyAddress(): string | undefined;
59
+ get walletProperties(): TurnkeyWalletProperties | undefined;
60
+ set verifiedCredential(verifiedCredential: JwtVerifiedCredential | undefined);
61
+ get verifiedCredential(): JwtVerifiedCredential | undefined;
62
+ setSessionKeyFetcher(func: () => Promise<SessionKeys>): void;
63
+ setSessionKeyRemoveFunction(func: () => Promise<void>): void;
64
+ removeSessionKeys: () => Promise<void>;
65
+ createOrRestoreSession({ ignoreRestore, }?: {
66
+ ignoreRestore?: boolean;
67
+ }): Promise<string | undefined>;
68
+ isSessionKeyCompatible(): boolean;
69
+ isSessionActive(): Promise<boolean>;
70
+ get sessionKeys(): SessionKeys | undefined;
71
+ protected setLoggerMetadata(): void;
72
+ }
73
+ export {};