@docknetwork/wallet-sdk-core 1.5.6 → 1.5.8
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/lib/biometric-provider.d.ts +46 -19
- package/lib/biometric-provider.d.ts.map +1 -1
- package/lib/biometric-provider.js +71 -41
- package/lib/biometric-provider.js.map +1 -1
- package/lib/cloud-wallet.d.ts +102 -3
- package/lib/cloud-wallet.d.ts.map +1 -1
- package/lib/cloud-wallet.js +211 -17
- package/lib/cloud-wallet.js.map +1 -1
- package/lib/credential-provider.d.ts +10 -0
- package/lib/credential-provider.d.ts.map +1 -1
- package/lib/credential-provider.js +21 -1
- package/lib/credential-provider.js.map +1 -1
- package/package.json +5 -4
- package/src/biometric-provider.ts +139 -57
- package/src/cloud-wallet.ts +312 -16
- package/src/credential-provider.ts +31 -0
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -1,29 +1,56 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { WalletDocument } from '@docknetwork/wallet-sdk-wasm/lib/types';
|
|
2
3
|
import { IWallet } from './types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
apiKey: string;
|
|
7
|
-
apiUrl: string;
|
|
8
|
-
};
|
|
9
|
-
export type BiometricsPluginConfigs = {
|
|
4
|
+
import { Credential } from './credential-provider';
|
|
5
|
+
import { EventEmitter } from 'events';
|
|
6
|
+
export type BiometricsProviderConfigs<E> = {
|
|
10
7
|
enrollmentCredentialType: string;
|
|
11
8
|
biometricMatchCredentialType: string;
|
|
12
|
-
|
|
13
|
-
issuerConfigs: BiometricsPluginIssuerConfig[];
|
|
9
|
+
idvConfigs: E;
|
|
14
10
|
};
|
|
15
|
-
export
|
|
11
|
+
export interface IDVProcessOptions {
|
|
12
|
+
onDeepLink?: () => void;
|
|
13
|
+
onMessage?: () => void;
|
|
14
|
+
onError?: (error: Error) => void;
|
|
15
|
+
onCancel?: () => void;
|
|
16
|
+
onComplete?: (credential: any) => void;
|
|
17
|
+
}
|
|
18
|
+
export interface BiometricPlugin {
|
|
19
|
+
onEnroll(walletDID: string): Promise<WalletDocument>;
|
|
20
|
+
onMatch(walletDID: string, enrollmentCredential: Credential): Promise<WalletDocument>;
|
|
21
|
+
}
|
|
22
|
+
export declare function setConfigs(configs: BiometricsProviderConfigs<unknown>): void;
|
|
23
|
+
export declare function isBiometricPluginEnabled(): boolean;
|
|
16
24
|
export declare function assertConfigs(): void;
|
|
17
|
-
export declare function getBiometricConfigs():
|
|
18
|
-
export declare function
|
|
19
|
-
export declare
|
|
25
|
+
export declare function getBiometricConfigs(): BiometricsProviderConfigs<unknown>;
|
|
26
|
+
export declare function hasProofOfBiometrics(proofRequest: any): any;
|
|
27
|
+
export declare const IDV_EVENTS: {
|
|
28
|
+
onDeepLink: string;
|
|
29
|
+
onMessage: string;
|
|
30
|
+
onError: string;
|
|
31
|
+
onCancel: string;
|
|
32
|
+
onComplete: string;
|
|
33
|
+
};
|
|
34
|
+
export interface IDVProvider {
|
|
35
|
+
enroll(walletDID: string, proofRequest: any): Promise<{
|
|
36
|
+
enrollmentCredential: Credential;
|
|
37
|
+
matchCredential: Credential;
|
|
38
|
+
}>;
|
|
39
|
+
match(walletDID: string, enrollmentCredential: Credential, proofRequest: any): Promise<{
|
|
40
|
+
matchCredential: Credential;
|
|
41
|
+
}>;
|
|
42
|
+
}
|
|
43
|
+
export interface IDVProviderFactory {
|
|
44
|
+
create(eventEmitter: EventEmitter, wallet: IWallet): IDVProvider;
|
|
45
|
+
}
|
|
46
|
+
export declare function createBiometricProvider({ wallet, idvProviderFactory, }: {
|
|
20
47
|
wallet: IWallet;
|
|
21
|
-
|
|
22
|
-
onMatch: (biometricTemplate: WalletDocument) => Promise<WalletDocument>;
|
|
23
|
-
onCheckBiometryRequired: (request: any) => boolean;
|
|
48
|
+
idvProviderFactory: IDVProviderFactory;
|
|
24
49
|
}): {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
50
|
+
startIDV: (proofRequest: any) => Promise<{
|
|
51
|
+
enrollmentCredential: Credential;
|
|
52
|
+
matchCredential: Credential;
|
|
53
|
+
}>;
|
|
54
|
+
eventEmitter: EventEmitter;
|
|
28
55
|
};
|
|
29
56
|
//# sourceMappingURL=biometric-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"biometric-provider.d.ts","sourceRoot":"","sources":["../src/biometric-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"biometric-provider.d.ts","sourceRoot":"","sources":["../src/biometric-provider.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAChC,OAAO,EAEL,UAAU,EAEX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAC;AAGpC,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI;IAEzC,wBAAwB,EAAE,MAAM,CAAC;IACjC,4BAA4B,EAAE,MAAM,CAAC;IAErC,UAAU,EAAE,CAAC,CAAC;CACf,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACrD,OAAO,CACL,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,UAAU,GAC/B,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B;AAID,wBAAgB,UAAU,CAAC,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC,QAErE;AAED,wBAAgB,wBAAwB,YAEvC;AAED,wBAAgB,aAAa,SAE5B;AAED,wBAAgB,mBAAmB,uCAGlC;AAED,wBAAgB,oBAAoB,CAAC,YAAY,KAAA,OAShD;AAGD,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,GAAG,GAChB,OAAO,CAAC;QAAC,oBAAoB,EAAE,UAAU,CAAC;QAAC,eAAe,EAAE,UAAU,CAAA;KAAC,CAAC,CAAC;IAC5E,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,UAAU,EAChC,YAAY,EAAE,GAAG,GAChB,OAAO,CAAC;QACT,eAAe,EAAE,UAAU,CAAC;KAC7B,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC;CAClE;AAED,wBAAgB,uBAAuB,CAAC,EACtC,MAAM,EACN,kBAAkB,GACnB,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,EAAE,kBAAkB,CAAC;CACxC;6BAOuC,GAAG;8BACjB,UAAU;yBACf,UAAU;;;EAiE9B"}
|
|
@@ -3,61 +3,91 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.createBiometricProvider = exports.IDV_EVENTS = exports.hasProofOfBiometrics = exports.getBiometricConfigs = exports.assertConfigs = exports.isBiometricPluginEnabled = exports.setConfigs = void 0;
|
|
7
7
|
const credential_provider_1 = require("./credential-provider");
|
|
8
8
|
const assert_1 = __importDefault(require("assert"));
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
const events_1 = require("events");
|
|
10
|
+
const did_provider_1 = require("./did-provider");
|
|
11
|
+
let currentConfigs = null;
|
|
12
|
+
function setConfigs(configs) {
|
|
13
|
+
currentConfigs = configs;
|
|
12
14
|
}
|
|
13
|
-
exports.
|
|
14
|
-
|
|
15
|
+
exports.setConfigs = setConfigs;
|
|
16
|
+
function isBiometricPluginEnabled() {
|
|
17
|
+
return !!currentConfigs?.biometricMatchCredentialType;
|
|
18
|
+
}
|
|
19
|
+
exports.isBiometricPluginEnabled = isBiometricPluginEnabled;
|
|
15
20
|
function assertConfigs() {
|
|
16
|
-
(0, assert_1.default)(!!
|
|
21
|
+
(0, assert_1.default)(!!currentConfigs, 'Missing biometric provider configs');
|
|
17
22
|
}
|
|
18
23
|
exports.assertConfigs = assertConfigs;
|
|
19
24
|
function getBiometricConfigs() {
|
|
20
25
|
assertConfigs();
|
|
21
|
-
return
|
|
26
|
+
return currentConfigs;
|
|
22
27
|
}
|
|
23
28
|
exports.getBiometricConfigs = getBiometricConfigs;
|
|
24
|
-
function
|
|
25
|
-
|
|
29
|
+
function hasProofOfBiometrics(proofRequest) {
|
|
30
|
+
const fields = proofRequest.input_descriptors
|
|
31
|
+
?.map(input => input.constraints?.fields)
|
|
32
|
+
.flat();
|
|
33
|
+
const paths = fields.map(field => field.path).flat();
|
|
34
|
+
return (paths?.includes('$.credentialSubject.biometric.id') &&
|
|
35
|
+
paths?.includes('$.credentialSubject.biometric.created'));
|
|
26
36
|
}
|
|
27
|
-
exports.
|
|
28
|
-
|
|
37
|
+
exports.hasProofOfBiometrics = hasProofOfBiometrics;
|
|
38
|
+
// map for events
|
|
39
|
+
exports.IDV_EVENTS = {
|
|
40
|
+
onDeepLink: 'onDeepLink',
|
|
41
|
+
onMessage: 'onMessage',
|
|
42
|
+
onError: 'onError',
|
|
43
|
+
onCancel: 'onCancel',
|
|
44
|
+
onComplete: 'onComplete',
|
|
45
|
+
};
|
|
46
|
+
function createBiometricProvider({ wallet, idvProviderFactory, }) {
|
|
29
47
|
const credentialProvider = (0, credential_provider_1.createCredentialProvider)({ wallet });
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
48
|
+
const didProvider = (0, did_provider_1.createDIDProvider)({ wallet });
|
|
49
|
+
const eventEmitter = new events_1.EventEmitter();
|
|
50
|
+
const idvProvider = idvProviderFactory.create(eventEmitter, wallet);
|
|
51
|
+
async function startIDV(proofRequest) {
|
|
52
|
+
const walletDID = await didProvider.getDefaultDID();
|
|
53
|
+
let [enrollmentCredential] = await credentialProvider.getCredentials(currentConfigs.enrollmentCredentialType);
|
|
54
|
+
// Remove any existing match credentials
|
|
55
|
+
const existingMatchCredentials = await credentialProvider.getCredentials(currentConfigs.biometricMatchCredentialType);
|
|
56
|
+
for (const credential of existingMatchCredentials) {
|
|
57
|
+
await credentialProvider.removeCredential(credential.id);
|
|
58
|
+
}
|
|
59
|
+
let matchCredential;
|
|
60
|
+
if (!enrollmentCredential) {
|
|
61
|
+
// call IDV to start enrollment process and issue the enrollment credential + match credential
|
|
62
|
+
const credentials = await idvProvider.enroll(walletDID, proofRequest);
|
|
63
|
+
// check if credential is already in the credential store
|
|
64
|
+
const receivedViaDistribution = await credentialProvider.getById(credentials.matchCredential.id);
|
|
65
|
+
if (!receivedViaDistribution) {
|
|
66
|
+
await credentialProvider.addCredential(credentials.enrollmentCredential);
|
|
67
|
+
await credentialProvider.addCredential(credentials.matchCredential);
|
|
40
68
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
status: credential_provider_1.CredentialStatus.Verified,
|
|
52
|
-
type: 'CredentialStatus',
|
|
53
|
-
createdAt: new Date().toISOString(),
|
|
54
|
-
updatedAt: new Date().toISOString(),
|
|
55
|
-
});
|
|
69
|
+
matchCredential = credentials.matchCredential;
|
|
70
|
+
enrollmentCredential = credentials.enrollmentCredential;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
// call IDV to match the enrollment credential and issue the match credential
|
|
74
|
+
const credentials = await idvProvider.match(walletDID, enrollmentCredential, proofRequest);
|
|
75
|
+
// check if credential is already in the credential store
|
|
76
|
+
const receivedViaDistribution = await credentialProvider.getById(credentials.matchCredential.id);
|
|
77
|
+
if (!receivedViaDistribution) {
|
|
78
|
+
await credentialProvider.addCredential(credentials.matchCredential);
|
|
56
79
|
}
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
80
|
+
matchCredential = credentials.matchCredential;
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
enrollmentCredential,
|
|
84
|
+
matchCredential,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
startIDV,
|
|
89
|
+
eventEmitter,
|
|
60
90
|
};
|
|
61
91
|
}
|
|
62
|
-
exports.
|
|
92
|
+
exports.createBiometricProvider = createBiometricProvider;
|
|
63
93
|
//# sourceMappingURL=biometric-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"biometric-provider.js","sourceRoot":"","sources":["../src/biometric-provider.ts"],"names":[],"mappings":";;;;;;AAEA,+
|
|
1
|
+
{"version":3,"file":"biometric-provider.js","sourceRoot":"","sources":["../src/biometric-provider.ts"],"names":[],"mappings":"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"}
|
package/lib/cloud-wallet.d.ts
CHANGED
|
@@ -1,15 +1,114 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { DataStore } from '@docknetwork/wallet-sdk-data-store/lib/types';
|
|
3
|
+
import { EDVService } from '@docknetwork/wallet-sdk-wasm/lib/services/edv/service';
|
|
2
4
|
export declare const SYNC_MARKER_TYPE = "SyncMarkerDocument";
|
|
5
|
+
export declare const MNEMONIC_WORD_COUNT = 12;
|
|
6
|
+
export declare const KEY_MAPPING_TYPE = "KeyMappingDocument";
|
|
7
|
+
export declare const HKDF_LENGTH = 32;
|
|
8
|
+
export declare const HKDF_HASH = "SHA-256";
|
|
9
|
+
/**
|
|
10
|
+
* Derives a key from biometric data using HKDF
|
|
11
|
+
* @param biometricData Biometric data from provider
|
|
12
|
+
* @param identifier User's identifier as salt (email, phone number, etc.)
|
|
13
|
+
* @returns Derived key
|
|
14
|
+
*/
|
|
15
|
+
export declare function deriveBiometricKey(biometricData: Buffer, identifier: string): Buffer;
|
|
16
|
+
/**
|
|
17
|
+
* Derives EDV keys from biometric data for the KeyMappingVault
|
|
18
|
+
* @param biometricData Biometric data from the provider
|
|
19
|
+
* @param identifier User's identifier as additional entropy (email, phone number, etc.)
|
|
20
|
+
* @returns Keys for accessing the KeyMappingVault
|
|
21
|
+
*/
|
|
22
|
+
export declare function deriveKeyMappingVaultKeys(biometricData: Buffer, identifier: string): Promise<{
|
|
23
|
+
hmacKey: string;
|
|
24
|
+
agreementKey: string;
|
|
25
|
+
verificationKey: string;
|
|
26
|
+
}>;
|
|
27
|
+
/**
|
|
28
|
+
* Generates a key for encrypting/decrypting the master key
|
|
29
|
+
* @param biometricData Biometric data from provider
|
|
30
|
+
* @param identifier User's identifier as salt (email, phone number, etc.)
|
|
31
|
+
* @returns Encryption key and IV for AES encryption
|
|
32
|
+
*/
|
|
33
|
+
export declare function deriveBiometricEncryptionKey(biometricData: Buffer, identifier: string): Promise<{
|
|
34
|
+
key: Buffer;
|
|
35
|
+
iv: Buffer;
|
|
36
|
+
}>;
|
|
37
|
+
/**
|
|
38
|
+
* Encrypts the master key using a key derived from biometric data
|
|
39
|
+
* @param masterKey The CloudWalletVault master key to encrypt
|
|
40
|
+
* @param encryptionKey Key derived from biometric data
|
|
41
|
+
* @param iv Initialization vector
|
|
42
|
+
* @returns Encrypted master key
|
|
43
|
+
*/
|
|
44
|
+
export declare function encryptMasterKey(masterKey: Uint8Array, encryptionKey: Buffer, iv: Buffer): Promise<Uint8Array>;
|
|
45
|
+
/**
|
|
46
|
+
* Decrypts the master key using biometric-derived key
|
|
47
|
+
* @param encryptedKey The encrypted master key
|
|
48
|
+
* @param decryptionKey Key derived from biometric data
|
|
49
|
+
* @param iv Initialization vector
|
|
50
|
+
* @returns The decrypted master key
|
|
51
|
+
*/
|
|
52
|
+
export declare function decryptMasterKey(encryptedKey: Uint8Array, decryptionKey: Buffer, iv: Buffer): Promise<Uint8Array>;
|
|
53
|
+
/**
|
|
54
|
+
* Initializes the KeyMappingVault using biometric data
|
|
55
|
+
* @param edvUrl URL for the edv
|
|
56
|
+
* @param authKey Auth key for the edv
|
|
57
|
+
* @param biometricData User's biometric data
|
|
58
|
+
* @param identifier User's identifier (email, phone number, etc.)
|
|
59
|
+
* @returns Initialized EDV service
|
|
60
|
+
*/
|
|
61
|
+
export declare function initializeKeyMappingVault(edvUrl: string, authKey: string, biometricData: Buffer, identifier: string): Promise<EDVService>;
|
|
62
|
+
/**
|
|
63
|
+
* Enrolls a user by creating necessary vaults and keys
|
|
64
|
+
* @param edvUrl URL for the edv
|
|
65
|
+
* @param authKey Auth key for the edv
|
|
66
|
+
* @param biometricData Biometric data from provider
|
|
67
|
+
* @param identifier User's identifier (email, phone number, etc.)
|
|
68
|
+
* @returns The master key and mnemonic for backup
|
|
69
|
+
*/
|
|
70
|
+
export declare function enrollUserWithBiometrics(edvUrl: string, authKey: string, biometricData: Buffer, identifier: string): Promise<{
|
|
71
|
+
masterKey: Uint8Array;
|
|
72
|
+
mnemonic: string;
|
|
73
|
+
}>;
|
|
74
|
+
/**
|
|
75
|
+
* Gets the master key from the key mapping vault using provided decryption keys
|
|
76
|
+
* @param keyMappingEdv Initialized key mapping vault service
|
|
77
|
+
* @param identifier User's identifier (email, phone number, etc.)
|
|
78
|
+
* @param decryptionKey Key for decrypting the master key
|
|
79
|
+
* @param iv Initialization vector for decryption
|
|
80
|
+
* @returns The decrypted master key for CloudWalletVault
|
|
81
|
+
*/
|
|
82
|
+
export declare function getKeyMappingMasterKey(keyMappingEdv: EDVService, identifier: string, decryptionKey: Buffer): Promise<Uint8Array>;
|
|
83
|
+
/**
|
|
84
|
+
* Authenticates a user with biometric data and identifier
|
|
85
|
+
* @param edvUrl URL for the edv
|
|
86
|
+
* @param authKey Auth key for the edv
|
|
87
|
+
* @param biometricData Biometric data from the provider
|
|
88
|
+
* @param identifier User's identifier (email, phone number, etc.)
|
|
89
|
+
* @returns The decrypted master key for CloudWalletVault
|
|
90
|
+
*/
|
|
91
|
+
export declare function authenticateWithBiometrics(edvUrl: string, authKey: string, biometricData: Buffer, identifier: string): Promise<Uint8Array>;
|
|
92
|
+
/**
|
|
93
|
+
* Initializes the Cloud Wallet using biometric authentication
|
|
94
|
+
* @param edvUrl Cloud wallet vault URL
|
|
95
|
+
* @param authKey Cloud wallet auth key
|
|
96
|
+
* @param biometricData User's biometric data
|
|
97
|
+
* @param identifier User's identifier (email, phone number, etc.)
|
|
98
|
+
* @param dataStore Optional data store for the wallet
|
|
99
|
+
* @returns Initialized cloud wallet
|
|
100
|
+
*/
|
|
101
|
+
export declare function initializeCloudWalletWithBiometrics(edvUrl: string, authKey: string, biometricData: Buffer, identifier: string, dataStore?: any): Promise<any>;
|
|
3
102
|
export declare function generateCloudWalletMasterKey(): Promise<{
|
|
4
103
|
mnemonic: string;
|
|
5
|
-
masterKey:
|
|
104
|
+
masterKey: Uint8Array;
|
|
6
105
|
}>;
|
|
7
|
-
export declare function recoverCloudWalletMasterKey(mnemonic: string): Promise<
|
|
106
|
+
export declare function recoverCloudWalletMasterKey(mnemonic: string): Promise<Uint8Array>;
|
|
8
107
|
export declare function initializeCloudWallet({ dataStore, edvUrl, authKey, masterKey, }: {
|
|
9
108
|
dataStore?: DataStore;
|
|
10
109
|
edvUrl: string;
|
|
11
110
|
authKey: string;
|
|
12
|
-
masterKey:
|
|
111
|
+
masterKey: Uint8Array;
|
|
13
112
|
}): Promise<{
|
|
14
113
|
clearEdvDocuments: () => Promise<void>;
|
|
15
114
|
pushSyncMarker: () => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-wallet.d.ts","sourceRoot":"","sources":["../src/cloud-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAEV,MAAM,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"cloud-wallet.d.ts","sourceRoot":"","sources":["../src/cloud-wallet.ts"],"names":[],"mappings":"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"}
|