@docknetwork/wallet-sdk-core 1.4.0 → 1.5.6
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.map +1 -1
- package/lib/biometric-provider.js +8 -0
- package/lib/biometric-provider.js.map +1 -1
- package/lib/cloud-wallet.d.ts +9 -6
- package/lib/cloud-wallet.d.ts.map +1 -1
- package/lib/cloud-wallet.js +118 -54
- package/lib/cloud-wallet.js.map +1 -1
- package/lib/credential-provider.js +2 -2
- package/lib/credential-provider.js.map +1 -1
- package/lib/credentials/oidvc.d.ts +1 -1
- package/lib/credentials/oidvc.d.ts.map +1 -1
- package/lib/credentials/oidvc.js +3 -0
- package/lib/credentials/oidvc.js.map +1 -1
- package/lib/did-provider.d.ts +0 -9
- package/lib/did-provider.d.ts.map +1 -1
- package/lib/did-provider.js +1 -26
- package/lib/did-provider.js.map +1 -1
- package/lib/ecosystem-tools.d.ts.map +1 -1
- package/lib/ecosystem-tools.js +2 -1
- package/lib/ecosystem-tools.js.map +1 -1
- package/lib/message-provider.d.ts.map +1 -1
- package/lib/message-provider.js +3 -2
- package/lib/message-provider.js.map +1 -1
- package/lib/types.d.ts +2 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/wallet-wasm.d.ts +2 -2
- package/lib/wallet-wasm.d.ts.map +1 -1
- package/lib/wallet-wasm.js +78 -29
- package/lib/wallet-wasm.js.map +1 -1
- package/package.json +4 -4
- package/src/biometric-provider.ts +9 -1
- package/src/cloud-wallet.ts +140 -53
- package/src/credential-provider.ts +2 -2
- package/src/credentials/oidvc.ts +5 -1
- package/src/did-provider.test.ts +0 -60
- package/src/did-provider.ts +0 -33
- package/src/ecosystem-tools.ts +2 -4
- package/src/message-provider.ts +9 -2
- package/src/types.ts +1 -0
- package/src/wallet-wasm.ts +91 -32
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-provider.js","sourceRoot":"","sources":["../src/message-provider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"message-provider.js","sourceRoot":"","sources":["../src/message-provider.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
import { DataStore, DocumentResolverResult, WalletDocument } from '@docknetwork/wallet-sdk-data-store/lib/types';
|
|
3
4
|
import { Accounts } from '@docknetwork/wallet-sdk-wasm/lib/modules/accounts';
|
|
4
5
|
import { EventEmitter } from 'events';
|
|
@@ -58,6 +59,7 @@ export type IWallet = {
|
|
|
58
59
|
getNetworkId: () => string;
|
|
59
60
|
resolveDocumentNetwork: (document: any) => Promise<DocumentResolverResult>;
|
|
60
61
|
dataStore: DataStore;
|
|
62
|
+
networkCheckInterval?: NodeJS.Timeout;
|
|
61
63
|
} & IV1Wallet;
|
|
62
64
|
export type CrateWalletWithDataStore = {};
|
|
63
65
|
export type CreateWalletProps = {
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/wallet-wasm.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { IWallet } from './types';
|
|
|
4
4
|
* Compare connected substrate connection with the current walle network
|
|
5
5
|
* Disconnect and Establish a new connection if the network is different
|
|
6
6
|
*/
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
7
|
+
export declare function handleBlockchainNetworkChange(wallet: IWallet): Promise<void>;
|
|
8
|
+
export declare function setBlockchainNetwork(wallet: IWallet): Promise<void>;
|
|
9
9
|
export declare function initWalletWasm(wallet: IWallet): Promise<void>;
|
|
10
10
|
//# sourceMappingURL=wallet-wasm.d.ts.map
|
package/lib/wallet-wasm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-wasm.d.ts","sourceRoot":"","sources":["../src/wallet-wasm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wallet-wasm.d.ts","sourceRoot":"","sources":["../src/wallet-wasm.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAMlC;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,OAAO,iBAkEzD;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,OAAO,iBA6BnD"}
|
package/lib/wallet-wasm.js
CHANGED
|
@@ -1,60 +1,109 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.initWalletWasm = exports.
|
|
3
|
+
exports.initWalletWasm = exports.setBlockchainNetwork = exports.handleBlockchainNetworkChange = void 0;
|
|
4
|
+
const blockchain_1 = require("@docknetwork/wallet-sdk-wasm/lib/services/blockchain");
|
|
4
5
|
const keyring_1 = require("@docknetwork/wallet-sdk-wasm/lib/services/keyring");
|
|
5
6
|
const util_crypto_1 = require("@docknetwork/wallet-sdk-wasm/lib/services/util-crypto");
|
|
6
|
-
const dock_1 = require("@docknetwork/wallet-sdk-wasm/lib/services/dock");
|
|
7
7
|
const wallet_1 = require("@docknetwork/wallet-sdk-wasm/lib/modules/wallet");
|
|
8
8
|
const helpers_1 = require("./helpers");
|
|
9
|
-
function
|
|
10
|
-
return !!network.configs.substrateUrl;
|
|
9
|
+
function isBlockchainNetwork(network) {
|
|
10
|
+
return !!(network.configs.substrateUrl || network.configs.cheqdApiUrl);
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* Update existing substrate network connection
|
|
14
14
|
* Compare connected substrate connection with the current walle network
|
|
15
15
|
* Disconnect and Establish a new connection if the network is different
|
|
16
16
|
*/
|
|
17
|
-
async function
|
|
18
|
-
const
|
|
19
|
-
const
|
|
17
|
+
async function handleBlockchainNetworkChange(wallet) {
|
|
18
|
+
const currentAddress = await blockchain_1.blockchainService.getAddress();
|
|
19
|
+
const networkId = wallet.dataStore.networks.find(network => network.configs.substrateUrl === currentAddress || network.configs.cheqdApiUrl === currentAddress)?.id;
|
|
20
20
|
const currentNetworkId = wallet.dataStore.network?.id;
|
|
21
|
-
if (
|
|
21
|
+
if (networkId === currentNetworkId) {
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
|
-
await
|
|
25
|
-
await
|
|
24
|
+
await blockchain_1.blockchainService.disconnect();
|
|
25
|
+
await setBlockchainNetwork(wallet);
|
|
26
26
|
}
|
|
27
|
-
exports.
|
|
28
|
-
async function
|
|
27
|
+
exports.handleBlockchainNetworkChange = handleBlockchainNetworkChange;
|
|
28
|
+
async function setBlockchainNetwork(wallet) {
|
|
29
29
|
const network = wallet.dataStore.network;
|
|
30
30
|
const networkConfigs = network.configs;
|
|
31
|
+
let cheqdMnemonicDoc = await wallet.getDocumentById('cheqd-mnemonic');
|
|
32
|
+
if (!cheqdMnemonicDoc) {
|
|
33
|
+
cheqdMnemonicDoc = {
|
|
34
|
+
id: 'cheqd-mnemonic',
|
|
35
|
+
type: 'Mnemonic',
|
|
36
|
+
value: await util_crypto_1.utilCryptoService.mnemonicGenerate(12),
|
|
37
|
+
};
|
|
38
|
+
await wallet.addDocument(cheqdMnemonicDoc);
|
|
39
|
+
}
|
|
31
40
|
await keyring_1.keyringService.initialize({
|
|
32
41
|
ss58Format: networkConfigs.addressPrefix,
|
|
33
42
|
});
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
.
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
let connectionInProgress = false;
|
|
44
|
+
const initializeBlockchain = () => {
|
|
45
|
+
clearInterval(wallet.networkCheckInterval);
|
|
46
|
+
if (connectionInProgress) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
connectionInProgress = true;
|
|
50
|
+
blockchain_1.blockchainService
|
|
51
|
+
.init({
|
|
52
|
+
substrateUrl: networkConfigs.substrateUrl,
|
|
53
|
+
cheqdApiUrl: networkConfigs.cheqdApiUrl,
|
|
54
|
+
networkId: network.id,
|
|
55
|
+
cheqdMnemonic: cheqdMnemonicDoc.value,
|
|
56
|
+
})
|
|
57
|
+
.then(() => {
|
|
58
|
+
wallet.eventManager.emit(wallet_1.WalletEvents.networkConnected);
|
|
59
|
+
})
|
|
60
|
+
.catch(err => {
|
|
61
|
+
const errorMessage = new Error('Unable to connect to blockchain');
|
|
62
|
+
(0, helpers_1.captureException)(errorMessage);
|
|
63
|
+
(0, helpers_1.captureException)(err);
|
|
64
|
+
console.error(err);
|
|
65
|
+
wallet.eventManager.emit(wallet_1.WalletEvents.networkError, err);
|
|
66
|
+
})
|
|
67
|
+
.finally(() => {
|
|
68
|
+
connectionInProgress = false;
|
|
69
|
+
wallet.networkCheckInterval = setInterval(async () => {
|
|
70
|
+
try {
|
|
71
|
+
if (!await blockchain_1.blockchainService.isApiConnected()) {
|
|
72
|
+
wallet.eventManager.emit(wallet_1.WalletEvents.networkError, new Error('Network not connected'));
|
|
73
|
+
initializeBlockchain();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
console.error('Error during connectivity check:', err);
|
|
78
|
+
}
|
|
79
|
+
}, 10000);
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
initializeBlockchain();
|
|
47
83
|
}
|
|
48
|
-
exports.
|
|
84
|
+
exports.setBlockchainNetwork = setBlockchainNetwork;
|
|
49
85
|
async function initWalletWasm(wallet) {
|
|
50
86
|
await util_crypto_1.utilCryptoService.cryptoWaitReady();
|
|
51
87
|
const network = wallet.dataStore.network;
|
|
52
|
-
if (
|
|
53
|
-
await
|
|
88
|
+
if (isBlockchainNetwork(network)) {
|
|
89
|
+
await setBlockchainNetwork(wallet);
|
|
54
90
|
wallet.eventManager.on(wallet_1.WalletEvents.networkUpdated, async () => {
|
|
55
|
-
|
|
91
|
+
handleBlockchainNetworkChange(wallet).catch(err => console.error(err));
|
|
56
92
|
});
|
|
57
93
|
}
|
|
94
|
+
wallet.ensureNetwork = async () => {
|
|
95
|
+
try {
|
|
96
|
+
const isConnected = await blockchain_1.blockchainService.isApiConnected();
|
|
97
|
+
if (!isConnected) {
|
|
98
|
+
await setBlockchainNetwork(wallet);
|
|
99
|
+
wallet.eventManager.emit(wallet_1.WalletEvents.networkConnected);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
console.error('Error checking network connection:', err);
|
|
104
|
+
wallet.eventManager.emit(wallet_1.WalletEvents.networkError, err);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
58
107
|
wallet.setStatus('ready');
|
|
59
108
|
wallet.eventManager.emit(wallet_1.WalletEvents.ready);
|
|
60
109
|
}
|
package/lib/wallet-wasm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-wasm.js","sourceRoot":"","sources":["../src/wallet-wasm.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"wallet-wasm.js","sourceRoot":"","sources":["../src/wallet-wasm.ts"],"names":[],"mappings":";;;AAAA,qFAAyF;AACzF,+EAAmF;AACnF,uFAA0F;AAG1F,4EAA+E;AAC/E,uCAA6C;AAG7C,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,6BAA6B,CACjD,MAAe;IAEf,MAAM,cAAc,GAAG,MAAM,8BAAiB,CAAC,UAAU,EAAE,CAAC;IAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAC9C,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,KAAK,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,KAAK,cAAc,CAC7G,EAAE,EAAE,CAAC;IACN,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;IAEtD,IAAI,SAAS,KAAK,gBAAgB,EAAE;QAClC,OAAO;KACR;IAED,MAAM,8BAAiB,CAAC,UAAU,EAAE,CAAC;IACrC,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAfD,sEAeC;AAEM,KAAK,UAAU,oBAAoB,CAAC,MAAe;IACxD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;IACzC,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAGvC,IAAI,gBAAgB,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAEtE,IAAI,CAAC,gBAAgB,EAAE;QACrB,gBAAgB,GAAG;YACjB,EAAE,EAAE,gBAAgB;YACpB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,MAAM,+BAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC;SACpD,CAAA;QAED,MAAM,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;KAC5C;IAED,MAAM,wBAAc,CAAC,UAAU,CAAC;QAC9B,UAAU,EAAE,cAAc,CAAC,aAAa;KACzC,CAAC,CAAC;IAEH,IAAI,oBAAoB,GAAG,KAAK,CAAC;IAEjC,MAAM,oBAAoB,GAAG,GAAG,EAAE;QAChC,aAAa,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAE3C,IAAI,oBAAoB,EAAE;YACxB,OAAO;SACR;QAED,oBAAoB,GAAG,IAAI,CAAC;QAE5B,8BAAiB;aACd,IAAI,CAAC;YACJ,YAAY,EAAE,cAAc,CAAC,YAAY;YACzC,WAAW,EAAE,cAAc,CAAC,WAAW;YACvC,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,aAAa,EAAE,gBAAgB,CAAC,KAAK;SACtC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;YACT,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAY,CAAC,gBAAgB,CAAC,CAAC;QAC1D,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAClE,IAAA,0BAAgB,EAAC,YAAY,CAAC,CAAC;YAC/B,IAAA,0BAAgB,EAAC,GAAG,CAAC,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAY,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC3D,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,oBAAoB,GAAG,KAAK,CAAC;YAE7B,MAAM,CAAC,oBAAoB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;gBACnD,IAAI;oBACF,IAAI,CAAC,MAAM,8BAAiB,CAAC,cAAc,EAAE,EAAE;wBAC7C,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAY,CAAC,YAAY,EAAE,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;wBACxF,oBAAoB,EAAE,CAAC;qBACxB;iBACF;gBAAC,OAAO,GAAG,EAAE;oBACZ,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;iBACxD;YACH,CAAC,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,oBAAoB,EAAE,CAAC;AACzB,CAAC;AAlED,oDAkEC;AAEM,KAAK,UAAU,cAAc,CAAC,MAAe;IAClD,MAAM,+BAAiB,CAAC,eAAe,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;IAEzC,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;QAChC,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAEnC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,qBAAY,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;YAC7D,6BAA6B,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;KACJ;IAED,MAAM,CAAC,aAAa,GAAG,KAAK,IAAI,EAAE;QAChC,IAAI;YACF,MAAM,WAAW,GAAG,MAAM,8BAAiB,CAAC,cAAc,EAAE,CAAC;YAE7D,IAAI,CAAC,WAAW,EAAE;gBAChB,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBACnC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAY,CAAC,gBAAgB,CAAC,CAAC;aACzD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;YACzD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAY,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;SAC1D;IACH,CAAC,CAAA;IAED,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAE1B,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAY,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AA7BD,wCA6BC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docknetwork/wallet-sdk-core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.6",
|
|
4
4
|
"license": "https://github.com/docknetwork/react-native-sdk/LICENSE",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -16,13 +16,13 @@
|
|
|
16
16
|
"typeorm": "^0.3.15",
|
|
17
17
|
"reflect-metadata": "^0.1.13",
|
|
18
18
|
"sqlite3": "^5.0.2",
|
|
19
|
-
"@docknetwork/wallet-sdk-data-store": "^1.
|
|
19
|
+
"@docknetwork/wallet-sdk-data-store": "^1.5.6"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@docknetwork/wallet-sdk-wasm": "^1.
|
|
22
|
+
"@docknetwork/wallet-sdk-wasm": "^1.5.6"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@docknetwork/wallet-sdk-data-store": "^1.
|
|
25
|
+
"@docknetwork/wallet-sdk-data-store": "^1.5.6",
|
|
26
26
|
"jest": "29.1.0",
|
|
27
27
|
"ts-jest": "29.1.0",
|
|
28
28
|
"ts-node": "^10.9.1",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {WalletDocument} from '@docknetwork/wallet-sdk-wasm/src/types';
|
|
2
2
|
import {IWallet} from './types';
|
|
3
|
-
import {createCredentialProvider} from './credential-provider';
|
|
3
|
+
import {createCredentialProvider, CredentialStatus} from './credential-provider';
|
|
4
4
|
import assert from 'assert';
|
|
5
5
|
|
|
6
6
|
export type BiometricsPluginIssuerConfig = {
|
|
@@ -74,6 +74,14 @@ export function createBiometricBindingProvider({
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
await wallet.addDocument(matchConfirmationCredential);
|
|
77
|
+
// make the biometric credential valid by default
|
|
78
|
+
await wallet.addDocument({
|
|
79
|
+
id: `${matchConfirmationCredential.id}#status`,
|
|
80
|
+
status: CredentialStatus.Verified,
|
|
81
|
+
type: 'CredentialStatus',
|
|
82
|
+
createdAt: new Date().toISOString(),
|
|
83
|
+
updatedAt: new Date().toISOString(),
|
|
84
|
+
})
|
|
77
85
|
}
|
|
78
86
|
|
|
79
87
|
return matchConfirmationCredential;
|
package/src/cloud-wallet.ts
CHANGED
|
@@ -4,28 +4,58 @@ import {
|
|
|
4
4
|
} from '@docknetwork/wallet-sdk-data-store/src/types';
|
|
5
5
|
import {logger} from '@docknetwork/wallet-sdk-data-store/src/logger';
|
|
6
6
|
import {edvService} from '@docknetwork/wallet-sdk-wasm/src/services/edv';
|
|
7
|
+
import base64url from 'base64url-universal';
|
|
8
|
+
|
|
9
|
+
import {utilCryptoService} from '@docknetwork/wallet-sdk-wasm/src/services/util-crypto';
|
|
7
10
|
|
|
8
11
|
export const SYNC_MARKER_TYPE = 'SyncMarkerDocument';
|
|
9
12
|
|
|
10
|
-
|
|
11
|
-
|
|
13
|
+
interface QueuedOperation {
|
|
14
|
+
operation: () => Promise<any>;
|
|
15
|
+
resolve: (value: any) => void;
|
|
16
|
+
reject: (error: any) => void;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface DocumentQueue {
|
|
20
|
+
operations: QueuedOperation[];
|
|
21
|
+
isProcessing: boolean;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export async function generateCloudWalletMasterKey(): Promise<{ mnemonic: string; masterKey: string }> {
|
|
25
|
+
const mnemonic = await utilCryptoService.mnemonicGenerate(12);
|
|
26
|
+
|
|
27
|
+
const seedBytes = await utilCryptoService.mnemonicToMiniSecret(mnemonic);
|
|
28
|
+
const masterKey = base64url.encode(Buffer.from(seedBytes));
|
|
29
|
+
|
|
30
|
+
return {
|
|
31
|
+
mnemonic,
|
|
32
|
+
masterKey,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export async function recoverCloudWalletMasterKey(mnemonic: string): Promise<string> {
|
|
37
|
+
const seedBytes = await utilCryptoService.mnemonicToMiniSecret(mnemonic);
|
|
38
|
+
const masterKey = base64url.encode(Buffer.from(seedBytes));
|
|
39
|
+
|
|
40
|
+
return masterKey;
|
|
12
41
|
}
|
|
13
42
|
|
|
14
43
|
export async function initializeCloudWallet({
|
|
15
44
|
dataStore,
|
|
16
45
|
edvUrl,
|
|
17
|
-
agreementKey,
|
|
18
|
-
verificationKey,
|
|
19
|
-
hmacKey,
|
|
20
46
|
authKey,
|
|
47
|
+
masterKey,
|
|
21
48
|
}: {
|
|
22
49
|
dataStore?: DataStore;
|
|
23
50
|
edvUrl: string;
|
|
24
|
-
agreementKey: any;
|
|
25
|
-
verificationKey: any;
|
|
26
|
-
hmacKey: any;
|
|
27
51
|
authKey: string;
|
|
52
|
+
masterKey: any;
|
|
28
53
|
}) {
|
|
54
|
+
const {
|
|
55
|
+
hmacKey,
|
|
56
|
+
agreementKey,
|
|
57
|
+
verificationKey,
|
|
58
|
+
} = await edvService.deriveKeys(masterKey);
|
|
29
59
|
|
|
30
60
|
await edvService.initialize({
|
|
31
61
|
hmacKey,
|
|
@@ -35,15 +65,73 @@ export async function initializeCloudWallet({
|
|
|
35
65
|
authKey
|
|
36
66
|
});
|
|
37
67
|
|
|
38
|
-
|
|
39
|
-
|
|
68
|
+
const documentQueues = new Map<string, DocumentQueue>();
|
|
69
|
+
const activeOperations = new Set<Promise<any>>();
|
|
70
|
+
|
|
71
|
+
async function processQueue(docId: string) {
|
|
72
|
+
const queue = documentQueues.get(docId);
|
|
73
|
+
if (!queue || queue.isProcessing) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
40
76
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
77
|
+
queue.isProcessing = true;
|
|
78
|
+
|
|
79
|
+
while (queue.operations.length > 0) {
|
|
80
|
+
const item = queue.operations.shift();
|
|
81
|
+
if (!item) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
let operationPromise: Promise<any>;
|
|
86
|
+
try {
|
|
87
|
+
operationPromise = item.operation();
|
|
88
|
+
activeOperations.add(operationPromise);
|
|
89
|
+
|
|
90
|
+
const result = await operationPromise;
|
|
91
|
+
item.resolve(result);
|
|
92
|
+
} catch (error) {
|
|
93
|
+
item.reject(error);
|
|
94
|
+
logger.error(`Operation failed for document ${docId}: ${error.message}`);
|
|
95
|
+
} finally {
|
|
96
|
+
activeOperations.delete(operationPromise);
|
|
97
|
+
}
|
|
44
98
|
}
|
|
45
|
-
|
|
46
|
-
|
|
99
|
+
|
|
100
|
+
queue.isProcessing = false;
|
|
101
|
+
documentQueues.delete(docId);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
async function enqueueOperation(docId: string, operation: () => Promise<any>): Promise<any> {
|
|
105
|
+
return new Promise((resolve, reject) => {
|
|
106
|
+
let queue = documentQueues.get(docId);
|
|
107
|
+
if (!queue) {
|
|
108
|
+
queue = { operations: [], isProcessing: false };
|
|
109
|
+
documentQueues.set(docId, queue);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
queue.operations.push({ operation, resolve, reject });
|
|
113
|
+
|
|
114
|
+
// Ensure processQueue runs (even if it was already running)
|
|
115
|
+
if (!queue.isProcessing) {
|
|
116
|
+
setTimeout(() => processQueue(docId), 0);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function waitForEdvIdle(): Promise<void> {
|
|
122
|
+
return new Promise((resolve) => {
|
|
123
|
+
const checkIdle = () => {
|
|
124
|
+
const hasActiveOperations = activeOperations.size > 0;
|
|
125
|
+
const hasQueuedOperations = Array.from(documentQueues.values()).some(queue => queue.operations.length > 0);
|
|
126
|
+
|
|
127
|
+
if (!hasActiveOperations && !hasQueuedOperations) {
|
|
128
|
+
resolve();
|
|
129
|
+
} else {
|
|
130
|
+
setTimeout(checkIdle, 100); // Re-check until everything is idle
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
checkIdle();
|
|
47
135
|
});
|
|
48
136
|
}
|
|
49
137
|
|
|
@@ -77,59 +165,57 @@ export async function initializeCloudWallet({
|
|
|
77
165
|
}
|
|
78
166
|
|
|
79
167
|
async function addDocumentHandler(content) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
} finally {
|
|
92
|
-
pendingOperations--;
|
|
93
|
-
if (pendingOperations === 0) {
|
|
94
|
-
pendingOperationsResolvers.forEach(resolve => resolve());
|
|
95
|
-
pendingOperationsResolvers = [];
|
|
168
|
+
return enqueueOperation(content.id, async () => {
|
|
169
|
+
try {
|
|
170
|
+
logger.debug(`Adding document to EDV: ${content.id}`);
|
|
171
|
+
await edvService.insert({
|
|
172
|
+
document: {
|
|
173
|
+
content: content,
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
logger.debug(`Document added to EDV: ${content.id}`);
|
|
177
|
+
} catch(error) {
|
|
178
|
+
logger.error(`Unable to add document ${content.id}: ${error.message}`);
|
|
96
179
|
}
|
|
97
|
-
}
|
|
180
|
+
});
|
|
98
181
|
}
|
|
99
182
|
|
|
100
183
|
async function removeDocumentHandler(documentId) {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
pendingOperationsResolvers = [];
|
|
184
|
+
return enqueueOperation(documentId, async () => {
|
|
185
|
+
try {
|
|
186
|
+
logger.debug(`Removing document from EDV: ${documentId}`);
|
|
187
|
+
const edvDocument = await findDocumentByContentId(documentId);
|
|
188
|
+
await edvService.delete({document: edvDocument});
|
|
189
|
+
// TODO: Remove this once we figure out why the data store is empty after deleting a document
|
|
190
|
+
await pullDocuments();
|
|
191
|
+
logger.debug(`Document removed from EDV: ${documentId}`);
|
|
192
|
+
} catch (error) {
|
|
193
|
+
logger.error(`Unable to remove document ${documentId}: ${error.message}`);
|
|
112
194
|
}
|
|
113
|
-
}
|
|
195
|
+
});
|
|
114
196
|
}
|
|
115
197
|
|
|
116
198
|
async function updateDocumentHandler(documentContent) {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
if (pendingOperations === 0) {
|
|
123
|
-
pendingOperationsResolvers.forEach(resolve => resolve());
|
|
124
|
-
pendingOperationsResolvers = [];
|
|
199
|
+
return enqueueOperation(documentContent.id, async () => {
|
|
200
|
+
try {
|
|
201
|
+
await updateDocumentByContentId(documentContent);
|
|
202
|
+
} catch (error) {
|
|
203
|
+
logger.error(`Unable to update document ${documentContent.id}: ${error.message}`);
|
|
125
204
|
}
|
|
126
|
-
}
|
|
205
|
+
});
|
|
127
206
|
}
|
|
128
207
|
|
|
129
208
|
dataStore.events.on(DataStoreEvents.DocumentCreated, addDocumentHandler);
|
|
130
209
|
dataStore.events.on(DataStoreEvents.DocumentDeleted, removeDocumentHandler);
|
|
131
210
|
dataStore.events.on(DataStoreEvents.DocumentUpdated, updateDocumentHandler);
|
|
132
211
|
|
|
212
|
+
|
|
213
|
+
function unsubscribeEventListeners() {
|
|
214
|
+
dataStore.events.off(DataStoreEvents.DocumentCreated, addDocumentHandler);
|
|
215
|
+
dataStore.events.off(DataStoreEvents.DocumentDeleted, removeDocumentHandler);
|
|
216
|
+
dataStore.events.off(DataStoreEvents.DocumentUpdated, updateDocumentHandler);
|
|
217
|
+
}
|
|
218
|
+
|
|
133
219
|
async function getSyncMarkerDiff() {
|
|
134
220
|
const edvSyncMaker = await findDocumentByContentId(SYNC_MARKER_TYPE);
|
|
135
221
|
const localSyncMarker = await dataStore.documents.getDocumentById(
|
|
@@ -185,5 +271,6 @@ export async function initializeCloudWallet({
|
|
|
185
271
|
updateDocumentByContentId,
|
|
186
272
|
waitForEdvIdle,
|
|
187
273
|
pullDocuments,
|
|
274
|
+
unsubscribeEventListeners,
|
|
188
275
|
};
|
|
189
276
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {credentialServiceRPC} from '@docknetwork/wallet-sdk-wasm/src/services/credential';
|
|
2
2
|
import {IWallet} from './types';
|
|
3
3
|
import assert from 'assert';
|
|
4
|
-
import {
|
|
4
|
+
import {blockchainService} from '@docknetwork/wallet-sdk-wasm/src/services/blockchain';
|
|
5
5
|
import {acquireOpenIDCredentialFromURI} from './credentials/oidvc';
|
|
6
6
|
import {IDIDProvider} from './did-provider';
|
|
7
7
|
|
|
@@ -260,7 +260,7 @@ async function syncCredentialStatus({
|
|
|
260
260
|
}
|
|
261
261
|
|
|
262
262
|
if (!isApiConnected) {
|
|
263
|
-
await
|
|
263
|
+
await blockchainService.ensureBlockchainReady();
|
|
264
264
|
isApiConnected = true;
|
|
265
265
|
}
|
|
266
266
|
|
package/src/credentials/oidvc.ts
CHANGED
|
@@ -15,7 +15,7 @@ export async function acquireOpenIDCredentialFromURI({
|
|
|
15
15
|
didProvider: IDIDProvider;
|
|
16
16
|
uri: string;
|
|
17
17
|
getAuthCode?: (authorizationURL: string) => Promise<string>;
|
|
18
|
-
}) {
|
|
18
|
+
}): Promise<any> {
|
|
19
19
|
const [holderKeyDocument] = await didProvider.getDIDKeyPairs();
|
|
20
20
|
|
|
21
21
|
let response = await credentialServiceRPC.acquireOIDCredential({
|
|
@@ -23,6 +23,10 @@ export async function acquireOpenIDCredentialFromURI({
|
|
|
23
23
|
holderKeyDocument,
|
|
24
24
|
});
|
|
25
25
|
|
|
26
|
+
if (!response) {
|
|
27
|
+
throw new Error('Unable to acquire credential. Please check your credential offer and try again.');
|
|
28
|
+
}
|
|
29
|
+
|
|
26
30
|
if (response.authorizationURL) {
|
|
27
31
|
const authorizationCode = await getAuthCode(response.authorizationURL);
|
|
28
32
|
response = await credentialServiceRPC.acquireOIDCredential({
|
package/src/did-provider.test.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {IWallet} from './types';
|
|
2
2
|
import {createWallet} from './wallet';
|
|
3
3
|
import {
|
|
4
|
-
createDIDock,
|
|
5
4
|
createDIDKey,
|
|
6
5
|
createDIDProvider,
|
|
7
6
|
IDIDProvider,
|
|
@@ -96,65 +95,6 @@ describe('DID Provider', () => {
|
|
|
96
95
|
});
|
|
97
96
|
});
|
|
98
97
|
|
|
99
|
-
describe('create DID Dock', () => {
|
|
100
|
-
it('expect to create a DID Dock', async () => {
|
|
101
|
-
const account = await accountProvider.create({
|
|
102
|
-
name: 'test',
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
jest.spyOn(didServiceRPC, 'registerDidDock').mockResolvedValueOnce({
|
|
106
|
-
dockDID: 'did:dock:abcde',
|
|
107
|
-
keyPairWalletId: account.address,
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
jest.spyOn(didServiceRPC, 'generateKeyDoc').mockResolvedValueOnce({
|
|
111
|
-
id: 'did:dock:abcde#key-1',
|
|
112
|
-
type: 'KeyDocument',
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
jest.spyOn(didServiceRPC, 'getDidDockDocument').mockResolvedValueOnce({
|
|
116
|
-
id: 'did:dock:abcde#key-2',
|
|
117
|
-
type: 'DidDocument',
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
await didProvider.createDIDock({
|
|
121
|
-
address: account.address,
|
|
122
|
-
name: 'Test DID',
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
const keyDocuments = await wallet.getDocumentsByType('KeyDocument');
|
|
126
|
-
const didDocument = await wallet.getDocumentsByType(
|
|
127
|
-
'DIDResolutionResponse',
|
|
128
|
-
);
|
|
129
|
-
|
|
130
|
-
expect(keyDocuments.length).toBe(1);
|
|
131
|
-
expect(didDocument.length).toBe(2);
|
|
132
|
-
});
|
|
133
|
-
it('expect to assert parameters', async () => {
|
|
134
|
-
await expect(
|
|
135
|
-
didProvider.createDIDock({
|
|
136
|
-
address: null,
|
|
137
|
-
name: 'Test DID',
|
|
138
|
-
}),
|
|
139
|
-
).rejects.toThrowError('address is required');
|
|
140
|
-
|
|
141
|
-
await expect(
|
|
142
|
-
didProvider.createDIDock({
|
|
143
|
-
address: 'some-address',
|
|
144
|
-
name: '',
|
|
145
|
-
}),
|
|
146
|
-
).rejects.toThrowError('name is required');
|
|
147
|
-
|
|
148
|
-
await expect(
|
|
149
|
-
createDIDock({
|
|
150
|
-
address: 'some-address',
|
|
151
|
-
name: 'Some name',
|
|
152
|
-
wallet: null,
|
|
153
|
-
}),
|
|
154
|
-
).rejects.toThrowError('wallet is required');
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
|
|
158
98
|
describe('create DID Key', () => {
|
|
159
99
|
it('expect to create a DID Key', async () => {
|
|
160
100
|
jest.spyOn(didServiceRPC, 'generateKeyDoc').mockResolvedValueOnce({
|