@ledgerhq/live-wallet 0.9.2 → 0.9.3
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/.turbo/turbo-build.log +2 -2
- package/CHANGELOG.md +14 -0
- package/lib/cloudsync/__tests__/cipher.test.js +10 -19
- package/lib/cloudsync/__tests__/cipher.test.js.map +1 -1
- package/lib/cloudsync/__tests__/sdk.test.js +55 -58
- package/lib/cloudsync/__tests__/sdk.test.js.map +1 -1
- package/lib/cloudsync/api.js +46 -63
- package/lib/cloudsync/api.js.map +1 -1
- package/lib/cloudsync/cipher.js +6 -15
- package/lib/cloudsync/cipher.js.map +1 -1
- package/lib/cloudsync/sdk.js +51 -59
- package/lib/cloudsync/sdk.js.map +1 -1
- package/lib/liveqr/cross.test.js +5 -2
- package/lib/liveqr/cross.test.js.map +1 -1
- package/lib/liveqr/importAccounts.js +6 -15
- package/lib/liveqr/importAccounts.js.map +1 -1
- package/lib/ordering.js +1 -1
- package/lib/ordering.js.map +1 -1
- package/lib/store.js +16 -10
- package/lib/store.js.map +1 -1
- package/lib/store.test.js +4 -1
- package/lib/store.test.js.map +1 -1
- package/lib/walletsync/__mocks__/modules/accounts.js +1 -1
- package/lib/walletsync/__mocks__/modules/accounts.js.map +1 -1
- package/lib/walletsync/__mocks__/watchLoop.js +14 -27
- package/lib/walletsync/__mocks__/watchLoop.js.map +1 -1
- package/lib/walletsync/__tests__/compatibility.test.js +45 -24
- package/lib/walletsync/__tests__/compatibility.test.js.map +1 -1
- package/lib/walletsync/__tests__/generic.test.js +9 -18
- package/lib/walletsync/__tests__/generic.test.js.map +1 -1
- package/lib/walletsync/__tests__/modules/accountNames.test.js +9 -18
- package/lib/walletsync/__tests__/modules/accountNames.test.js.map +1 -1
- package/lib/walletsync/__tests__/modules/accounts.test.js +88 -82
- package/lib/walletsync/__tests__/modules/accounts.test.js.map +1 -1
- package/lib/walletsync/__tests__/specific.test.js +10 -4
- package/lib/walletsync/__tests__/specific.test.js.map +1 -1
- package/lib/walletsync/__tests__/trustchainLifecyle.test.js +8 -17
- package/lib/walletsync/__tests__/trustchainLifecyle.test.js.map +1 -1
- package/lib/walletsync/aggregator.js +15 -23
- package/lib/walletsync/aggregator.js.map +1 -1
- package/lib/walletsync/createWalletSyncWatchLoop.js +49 -60
- package/lib/walletsync/createWalletSyncWatchLoop.js.map +1 -1
- package/lib/walletsync/createWalletSyncWatchLoop.test.js +37 -46
- package/lib/walletsync/createWalletSyncWatchLoop.test.js.map +1 -1
- package/lib/walletsync/incrementalUpdates.js +11 -20
- package/lib/walletsync/incrementalUpdates.js.map +1 -1
- package/lib/walletsync/modules/accountNames.js +13 -24
- package/lib/walletsync/modules/accountNames.js.map +1 -1
- package/lib/walletsync/modules/accounts.js +99 -114
- package/lib/walletsync/modules/accounts.js.map +1 -1
- package/lib/walletsync/trustchainLifecyle.js +9 -18
- package/lib/walletsync/trustchainLifecyle.js.map +1 -1
- package/lib-es/cloudsync/__tests__/cipher.test.js +10 -19
- package/lib-es/cloudsync/__tests__/cipher.test.js.map +1 -1
- package/lib-es/cloudsync/__tests__/sdk.test.js +55 -58
- package/lib-es/cloudsync/__tests__/sdk.test.js.map +1 -1
- package/lib-es/cloudsync/api.js +46 -63
- package/lib-es/cloudsync/api.js.map +1 -1
- package/lib-es/cloudsync/cipher.js +6 -15
- package/lib-es/cloudsync/cipher.js.map +1 -1
- package/lib-es/cloudsync/sdk.js +51 -59
- package/lib-es/cloudsync/sdk.js.map +1 -1
- package/lib-es/liveqr/cross.test.js +5 -2
- package/lib-es/liveqr/cross.test.js.map +1 -1
- package/lib-es/liveqr/importAccounts.js +6 -15
- package/lib-es/liveqr/importAccounts.js.map +1 -1
- package/lib-es/ordering.js +1 -1
- package/lib-es/ordering.js.map +1 -1
- package/lib-es/store.js +16 -10
- package/lib-es/store.js.map +1 -1
- package/lib-es/store.test.js +4 -1
- package/lib-es/store.test.js.map +1 -1
- package/lib-es/walletsync/__mocks__/modules/accounts.js +1 -1
- package/lib-es/walletsync/__mocks__/modules/accounts.js.map +1 -1
- package/lib-es/walletsync/__mocks__/watchLoop.js +14 -27
- package/lib-es/walletsync/__mocks__/watchLoop.js.map +1 -1
- package/lib-es/walletsync/__tests__/compatibility.test.js +45 -24
- package/lib-es/walletsync/__tests__/compatibility.test.js.map +1 -1
- package/lib-es/walletsync/__tests__/generic.test.js +9 -18
- package/lib-es/walletsync/__tests__/generic.test.js.map +1 -1
- package/lib-es/walletsync/__tests__/modules/accountNames.test.js +9 -18
- package/lib-es/walletsync/__tests__/modules/accountNames.test.js.map +1 -1
- package/lib-es/walletsync/__tests__/modules/accounts.test.js +88 -82
- package/lib-es/walletsync/__tests__/modules/accounts.test.js.map +1 -1
- package/lib-es/walletsync/__tests__/specific.test.js +10 -4
- package/lib-es/walletsync/__tests__/specific.test.js.map +1 -1
- package/lib-es/walletsync/__tests__/trustchainLifecyle.test.js +8 -17
- package/lib-es/walletsync/__tests__/trustchainLifecyle.test.js.map +1 -1
- package/lib-es/walletsync/aggregator.js +15 -23
- package/lib-es/walletsync/aggregator.js.map +1 -1
- package/lib-es/walletsync/createWalletSyncWatchLoop.js +49 -60
- package/lib-es/walletsync/createWalletSyncWatchLoop.js.map +1 -1
- package/lib-es/walletsync/createWalletSyncWatchLoop.test.js +37 -46
- package/lib-es/walletsync/createWalletSyncWatchLoop.test.js.map +1 -1
- package/lib-es/walletsync/incrementalUpdates.js +11 -20
- package/lib-es/walletsync/incrementalUpdates.js.map +1 -1
- package/lib-es/walletsync/modules/accountNames.js +13 -24
- package/lib-es/walletsync/modules/accountNames.js.map +1 -1
- package/lib-es/walletsync/modules/accounts.js +99 -114
- package/lib-es/walletsync/modules/accounts.js.map +1 -1
- package/lib-es/walletsync/trustchainLifecyle.js +9 -18
- package/lib-es/walletsync/trustchainLifecyle.js.map +1 -1
- package/package.json +4 -4
- package/tsconfig.json +0 -1
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.mapValues = exports.createAggregator = void 0;
|
|
13
4
|
const zod_1 = require("zod");
|
|
@@ -23,7 +14,7 @@ function createAggregator(modules) {
|
|
|
23
14
|
diffLocalToDistant(localData, latestState) {
|
|
24
15
|
let hasChanges = false;
|
|
25
16
|
// to be forward compatible, we must also preserve the fields we don't know yet.
|
|
26
|
-
const unknownRest =
|
|
17
|
+
const unknownRest = { ...latestState };
|
|
27
18
|
// Aggregate all diffs from each module
|
|
28
19
|
const nextState = mapValues(modules, (m, k) => {
|
|
29
20
|
const diff = m.diffLocalToDistant(localData[k], latestState && latestState[k] ? latestState[k] : null);
|
|
@@ -35,21 +26,22 @@ function createAggregator(modules) {
|
|
|
35
26
|
});
|
|
36
27
|
return {
|
|
37
28
|
hasChanges,
|
|
38
|
-
nextState:
|
|
29
|
+
nextState: {
|
|
30
|
+
...nextState,
|
|
31
|
+
...unknownRest,
|
|
32
|
+
},
|
|
39
33
|
};
|
|
40
34
|
},
|
|
41
|
-
resolveIncrementalUpdate(ctx, localData, latestState, incomingState) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return !hasChanges ? { hasChanges: false } : { hasChanges: true, update };
|
|
52
|
-
});
|
|
35
|
+
async resolveIncrementalUpdate(ctx, localData, latestState, incomingState) {
|
|
36
|
+
// Aggregate all promises resulting of each module resolveIncrementalUpdate
|
|
37
|
+
const resolved = mapValues(modules, (m, k) => m.resolveIncrementalUpdate(ctx, localData[k], latestState && latestState[k] ? latestState[k] : null, (incomingState && incomingState[k]) || null));
|
|
38
|
+
// wait for all promises
|
|
39
|
+
const results = await Promise.all(Object.values(resolved));
|
|
40
|
+
const hasChanges = results.some(r => r.hasChanges);
|
|
41
|
+
let index = 0;
|
|
42
|
+
const update = mapValues(modules, () => results[index++]);
|
|
43
|
+
// returns the partial updates
|
|
44
|
+
return !hasChanges ? { hasChanges: false } : { hasChanges: true, update };
|
|
53
45
|
},
|
|
54
46
|
applyUpdate(localData, update) {
|
|
55
47
|
// apply all updates to each module and aggregate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregator.js","sourceRoot":"","sources":["../../src/walletsync/aggregator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aggregator.js","sourceRoot":"","sources":["../../src/walletsync/aggregator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.createWalletSyncWatchLoop = void 0;
|
|
13
4
|
const logs_1 = require("@ledgerhq/logs");
|
|
@@ -17,64 +8,62 @@ const errors_1 = require("@ledgerhq/ledger-key-ring-protocol/errors");
|
|
|
17
8
|
* make sure to unsubscribe if you need to rerun a new watch loop. notably if one of the input changes.
|
|
18
9
|
*/
|
|
19
10
|
function createWalletSyncWatchLoop({ watchConfig, visualConfig, walletsync, walletSyncSdk, trustchain, memberCredentials, setVisualPending, onStartPolling, onTrustchainRefreshNeeded, onError, getState, localStateSelector, latestDistantStateSelector, localIncrementUpdate, }) {
|
|
20
|
-
const visualPendingTimeout =
|
|
11
|
+
const visualPendingTimeout = visualConfig?.visualPendingTimeout || 1000;
|
|
21
12
|
let unsubscribed = false;
|
|
22
13
|
let pending = false;
|
|
23
|
-
function loop() {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
async function loop() {
|
|
15
|
+
// skip if there is something already pending
|
|
16
|
+
if (pending || unsubscribed)
|
|
17
|
+
return;
|
|
18
|
+
pending = true;
|
|
19
|
+
// when it's taking longer than expected, we will visualize the loading
|
|
20
|
+
const visualTimeout = setVisualPending && setTimeout(() => setVisualPending(true), visualPendingTimeout);
|
|
21
|
+
try {
|
|
22
|
+
(0, logs_1.log)("walletsync", "loop");
|
|
23
|
+
if (onStartPolling)
|
|
24
|
+
onStartPolling();
|
|
25
|
+
// check if there is a pull to do
|
|
26
|
+
await walletSyncSdk.pull(trustchain, memberCredentials);
|
|
27
|
+
if (unsubscribed)
|
|
28
|
+
return;
|
|
29
|
+
await localIncrementUpdate();
|
|
30
|
+
if (unsubscribed)
|
|
27
31
|
return;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
(0, logs_1.log)("walletsync", "
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
// check if there is a pull to do
|
|
36
|
-
yield walletSyncSdk.pull(trustchain, memberCredentials);
|
|
37
|
-
if (unsubscribed)
|
|
38
|
-
return;
|
|
39
|
-
yield localIncrementUpdate();
|
|
40
|
-
if (unsubscribed)
|
|
41
|
-
return;
|
|
42
|
-
// is there new changes to push?
|
|
43
|
-
const state = getState();
|
|
44
|
-
const diff = walletsync.diffLocalToDistant(localStateSelector(state), latestDistantStateSelector(state));
|
|
45
|
-
if (diff.hasChanges) {
|
|
46
|
-
(0, logs_1.log)("walletsync", "local->dist diff to push", diff);
|
|
47
|
-
// push the new changes
|
|
48
|
-
yield walletSyncSdk.push(trustchain, memberCredentials, diff.nextState);
|
|
49
|
-
}
|
|
32
|
+
// is there new changes to push?
|
|
33
|
+
const state = getState();
|
|
34
|
+
const diff = walletsync.diffLocalToDistant(localStateSelector(state), latestDistantStateSelector(state));
|
|
35
|
+
if (diff.hasChanges) {
|
|
36
|
+
(0, logs_1.log)("walletsync", "local->dist diff to push", diff);
|
|
37
|
+
// push the new changes
|
|
38
|
+
await walletSyncSdk.push(trustchain, memberCredentials, diff.nextState);
|
|
50
39
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if (unsubscribed)
|
|
58
|
-
return;
|
|
59
|
-
if (onError)
|
|
60
|
-
onError(e);
|
|
61
|
-
else {
|
|
62
|
-
console.error(e);
|
|
63
|
-
}
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
const shouldRefresh = e instanceof errors_1.TrustchainEjected || e instanceof errors_1.TrustchainOutdated;
|
|
43
|
+
if (shouldRefresh) {
|
|
44
|
+
await onTrustchainRefreshNeeded(trustchain);
|
|
45
|
+
return;
|
|
64
46
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
47
|
+
if (unsubscribed)
|
|
48
|
+
return;
|
|
49
|
+
if (onError)
|
|
50
|
+
onError(e);
|
|
51
|
+
else {
|
|
52
|
+
console.error(e);
|
|
71
53
|
}
|
|
72
|
-
}
|
|
54
|
+
}
|
|
55
|
+
finally {
|
|
56
|
+
pending = false;
|
|
57
|
+
if (visualTimeout)
|
|
58
|
+
clearTimeout(visualTimeout);
|
|
59
|
+
if (setVisualPending)
|
|
60
|
+
setVisualPending(false);
|
|
61
|
+
}
|
|
73
62
|
}
|
|
74
|
-
const notificationsEnabled =
|
|
75
|
-
const pollingInterval =
|
|
76
|
-
const initialTimeout =
|
|
77
|
-
const userIntentDebounce =
|
|
63
|
+
const notificationsEnabled = watchConfig?.notificationsEnabled || false;
|
|
64
|
+
const pollingInterval = watchConfig?.pollingInterval || 10000;
|
|
65
|
+
const initialTimeout = watchConfig?.initialTimeout || 1000;
|
|
66
|
+
const userIntentDebounce = watchConfig?.userIntentDebounce || 1000;
|
|
78
67
|
// main loop
|
|
79
68
|
const callback = () => {
|
|
80
69
|
timeout = setTimeout(callback, pollingInterval);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createWalletSyncWatchLoop.js","sourceRoot":"","sources":["../../src/walletsync/createWalletSyncWatchLoop.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createWalletSyncWatchLoop.js","sourceRoot":"","sources":["../../src/walletsync/createWalletSyncWatchLoop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
const createWalletSyncWatchLoop_1 = require("./createWalletSyncWatchLoop");
|
|
13
4
|
const watchLoop_1 = require("./__mocks__/watchLoop");
|
|
@@ -15,15 +6,15 @@ const rxjs_1 = require("rxjs");
|
|
|
15
6
|
const errors_1 = require("@ledgerhq/ledger-key-ring-protocol/errors");
|
|
16
7
|
jest.useFakeTimers();
|
|
17
8
|
describe("createWalletSyncWatchLoop", () => {
|
|
18
|
-
it("should pull but not push when there is no changes", () =>
|
|
9
|
+
it("should pull but not push when there is no changes", async () => {
|
|
19
10
|
const walletSyncWatchLoopConfig = (0, watchLoop_1.getWalletSyncWatchLoopConfig)();
|
|
20
11
|
const watchLoop = (0, createWalletSyncWatchLoop_1.createWalletSyncWatchLoop)(walletSyncWatchLoopConfig);
|
|
21
|
-
|
|
12
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(10);
|
|
22
13
|
watchLoop.unsubscribe();
|
|
23
14
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(1);
|
|
24
15
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.push).toHaveBeenCalledTimes(0);
|
|
25
|
-
})
|
|
26
|
-
it("should pull and push when there are changes", () =>
|
|
16
|
+
});
|
|
17
|
+
it("should pull and push when there are changes", async () => {
|
|
27
18
|
const walletSyncWatchLoopConfig = (0, watchLoop_1.getWalletSyncWatchLoopConfig)();
|
|
28
19
|
walletSyncWatchLoopConfig.latestDistantStateSelector = jest
|
|
29
20
|
.fn()
|
|
@@ -31,14 +22,14 @@ describe("createWalletSyncWatchLoop", () => {
|
|
|
31
22
|
.mockReturnValue(1);
|
|
32
23
|
walletSyncWatchLoopConfig.localStateSelector = jest.fn().mockReturnValue(1);
|
|
33
24
|
const watchLoop = (0, createWalletSyncWatchLoop_1.createWalletSyncWatchLoop)(walletSyncWatchLoopConfig);
|
|
34
|
-
|
|
25
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(20);
|
|
35
26
|
watchLoop.unsubscribe();
|
|
36
27
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(2);
|
|
37
28
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledWith(walletSyncWatchLoopConfig.trustchain, walletSyncWatchLoopConfig.memberCredentials);
|
|
38
29
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.push).toHaveBeenCalledTimes(1);
|
|
39
30
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.push).toHaveBeenCalledWith(walletSyncWatchLoopConfig.trustchain, walletSyncWatchLoopConfig.memberCredentials, 1);
|
|
40
|
-
})
|
|
41
|
-
it("notifications triggers the watch loop", () =>
|
|
31
|
+
});
|
|
32
|
+
it("notifications triggers the watch loop", async () => {
|
|
42
33
|
const walletSyncWatchLoopConfig = (0, watchLoop_1.getWalletSyncWatchLoopConfig)();
|
|
43
34
|
const notifications = new rxjs_1.Subject();
|
|
44
35
|
walletSyncWatchLoopConfig.walletSyncSdk.listenNotifications = (t, m) => {
|
|
@@ -52,14 +43,14 @@ describe("createWalletSyncWatchLoop", () => {
|
|
|
52
43
|
pollingInterval: 10000,
|
|
53
44
|
};
|
|
54
45
|
const watchLoop = (0, createWalletSyncWatchLoop_1.createWalletSyncWatchLoop)(walletSyncWatchLoopConfig);
|
|
55
|
-
|
|
46
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(15);
|
|
56
47
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(2);
|
|
57
48
|
notifications.next(2);
|
|
58
|
-
|
|
49
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(1);
|
|
59
50
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(3);
|
|
60
51
|
watchLoop.unsubscribe();
|
|
61
|
-
})
|
|
62
|
-
it("notifications disabled does not triggers the watch loop", () =>
|
|
52
|
+
});
|
|
53
|
+
it("notifications disabled does not triggers the watch loop", async () => {
|
|
63
54
|
const walletSyncWatchLoopConfig = (0, watchLoop_1.getWalletSyncWatchLoopConfig)();
|
|
64
55
|
const notifications = new rxjs_1.Subject();
|
|
65
56
|
walletSyncWatchLoopConfig.walletSyncSdk.listenNotifications = () => notifications;
|
|
@@ -69,14 +60,14 @@ describe("createWalletSyncWatchLoop", () => {
|
|
|
69
60
|
pollingInterval: 10000,
|
|
70
61
|
};
|
|
71
62
|
const watchLoop = (0, createWalletSyncWatchLoop_1.createWalletSyncWatchLoop)(walletSyncWatchLoopConfig);
|
|
72
|
-
|
|
63
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(15);
|
|
73
64
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(2);
|
|
74
65
|
notifications.next(2);
|
|
75
|
-
|
|
66
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(1);
|
|
76
67
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(2);
|
|
77
68
|
watchLoop.unsubscribe();
|
|
78
|
-
})
|
|
79
|
-
it("should execute the loop on user refresh intent", () =>
|
|
69
|
+
});
|
|
70
|
+
it("should execute the loop on user refresh intent", async () => {
|
|
80
71
|
const walletSyncWatchLoopConfig = (0, watchLoop_1.getWalletSyncWatchLoopConfig)();
|
|
81
72
|
walletSyncWatchLoopConfig.watchConfig = {
|
|
82
73
|
initialTimeout: 5000,
|
|
@@ -84,71 +75,71 @@ describe("createWalletSyncWatchLoop", () => {
|
|
|
84
75
|
userIntentDebounce: 1000,
|
|
85
76
|
};
|
|
86
77
|
const watchLoop = (0, createWalletSyncWatchLoop_1.createWalletSyncWatchLoop)(walletSyncWatchLoopConfig);
|
|
87
|
-
|
|
78
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(15);
|
|
88
79
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(2);
|
|
89
|
-
|
|
80
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(1);
|
|
90
81
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(2);
|
|
91
82
|
watchLoop.onUserRefreshIntent();
|
|
92
83
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(2);
|
|
93
|
-
|
|
84
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(1);
|
|
94
85
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(3);
|
|
95
86
|
watchLoop.unsubscribe();
|
|
96
|
-
})
|
|
97
|
-
it("should stop running the loop when unsubscribed", () =>
|
|
87
|
+
});
|
|
88
|
+
it("should stop running the loop when unsubscribed", async () => {
|
|
98
89
|
const walletSyncWatchLoopConfig = (0, watchLoop_1.getWalletSyncWatchLoopConfig)();
|
|
99
90
|
const watchLoop = (0, createWalletSyncWatchLoop_1.createWalletSyncWatchLoop)(walletSyncWatchLoopConfig);
|
|
100
|
-
|
|
91
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(15);
|
|
101
92
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(2);
|
|
102
93
|
watchLoop.unsubscribe();
|
|
103
|
-
|
|
94
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(30);
|
|
104
95
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(2);
|
|
105
|
-
})
|
|
106
|
-
it("should wait for the initial timeout before running the loop", () =>
|
|
96
|
+
});
|
|
97
|
+
it("should wait for the initial timeout before running the loop", async () => {
|
|
107
98
|
const walletSyncWatchLoopConfig = (0, watchLoop_1.getWalletSyncWatchLoopConfig)();
|
|
108
99
|
walletSyncWatchLoopConfig.watchConfig = {
|
|
109
100
|
initialTimeout: 5000,
|
|
110
101
|
};
|
|
111
102
|
const watchLoop = (0, createWalletSyncWatchLoop_1.createWalletSyncWatchLoop)(walletSyncWatchLoopConfig);
|
|
112
|
-
|
|
103
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(3);
|
|
113
104
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(0);
|
|
114
|
-
|
|
105
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(2);
|
|
115
106
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(1);
|
|
116
107
|
watchLoop.unsubscribe();
|
|
117
|
-
})
|
|
118
|
-
it("should call the onError function on error", () =>
|
|
108
|
+
});
|
|
109
|
+
it("should call the onError function on error", async () => {
|
|
119
110
|
const walletSyncWatchLoopConfig = (0, watchLoop_1.getWalletSyncWatchLoopConfig)();
|
|
120
111
|
walletSyncWatchLoopConfig.onStartPolling = () => {
|
|
121
112
|
throw new Error("error");
|
|
122
113
|
};
|
|
123
114
|
walletSyncWatchLoopConfig.onError = jest.fn();
|
|
124
115
|
const watchLoop = (0, createWalletSyncWatchLoop_1.createWalletSyncWatchLoop)(walletSyncWatchLoopConfig);
|
|
125
|
-
|
|
116
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(5);
|
|
126
117
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(0);
|
|
127
118
|
expect(walletSyncWatchLoopConfig.onError).toHaveBeenCalledTimes(1);
|
|
128
119
|
expect(walletSyncWatchLoopConfig.onError).toHaveBeenCalledWith(new Error("error"));
|
|
129
120
|
expect(walletSyncWatchLoopConfig.onTrustchainRefreshNeeded).toHaveBeenCalledTimes(0);
|
|
130
121
|
watchLoop.unsubscribe();
|
|
131
|
-
})
|
|
132
|
-
it("should log the error if no onError function is given", () =>
|
|
122
|
+
});
|
|
123
|
+
it("should log the error if no onError function is given", async () => {
|
|
133
124
|
const walletSyncWatchLoopConfig = (0, watchLoop_1.getWalletSyncWatchLoopConfig)();
|
|
134
125
|
walletSyncWatchLoopConfig.onStartPolling = () => {
|
|
135
126
|
throw new Error("error");
|
|
136
127
|
};
|
|
137
128
|
jest.spyOn(console, "error");
|
|
138
129
|
const watchLoop = (0, createWalletSyncWatchLoop_1.createWalletSyncWatchLoop)(walletSyncWatchLoopConfig);
|
|
139
|
-
|
|
130
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(5);
|
|
140
131
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(0);
|
|
141
132
|
expect(console.error).toHaveBeenCalledTimes(1);
|
|
142
133
|
expect(console.error).toHaveBeenCalledWith(new Error("error"));
|
|
143
134
|
watchLoop.unsubscribe();
|
|
144
|
-
})
|
|
145
|
-
it("should refresh the trustchain in case of a TrustchainEjectedError or a TrustchainOutdated", () =>
|
|
135
|
+
});
|
|
136
|
+
it("should refresh the trustchain in case of a TrustchainEjectedError or a TrustchainOutdated", async () => {
|
|
146
137
|
const walletSyncWatchLoopConfig = (0, watchLoop_1.getWalletSyncWatchLoopConfig)();
|
|
147
138
|
walletSyncWatchLoopConfig.onStartPolling = () => {
|
|
148
139
|
throw new errors_1.TrustchainEjected("error");
|
|
149
140
|
};
|
|
150
141
|
const watchLoop = (0, createWalletSyncWatchLoop_1.createWalletSyncWatchLoop)(walletSyncWatchLoopConfig);
|
|
151
|
-
|
|
142
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(5);
|
|
152
143
|
expect(walletSyncWatchLoopConfig.walletSyncSdk.pull).toHaveBeenCalledTimes(0);
|
|
153
144
|
expect(walletSyncWatchLoopConfig.onTrustchainRefreshNeeded).toHaveBeenCalledTimes(1);
|
|
154
145
|
watchLoop.unsubscribe();
|
|
@@ -157,10 +148,10 @@ describe("createWalletSyncWatchLoop", () => {
|
|
|
157
148
|
throw new errors_1.TrustchainOutdated("error");
|
|
158
149
|
};
|
|
159
150
|
const watchLoop2 = (0, createWalletSyncWatchLoop_1.createWalletSyncWatchLoop)(walletSyncWatchLoopConfig2);
|
|
160
|
-
|
|
151
|
+
await (0, watchLoop_1.advanceTimersByTimeAsync)(5);
|
|
161
152
|
expect(walletSyncWatchLoopConfig2.walletSyncSdk.pull).toHaveBeenCalledTimes(0);
|
|
162
153
|
expect(walletSyncWatchLoopConfig2.onTrustchainRefreshNeeded).toHaveBeenCalledTimes(1);
|
|
163
154
|
watchLoop2.unsubscribe();
|
|
164
|
-
})
|
|
155
|
+
});
|
|
165
156
|
});
|
|
166
157
|
//# sourceMappingURL=createWalletSyncWatchLoop.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createWalletSyncWatchLoop.test.js","sourceRoot":"","sources":["../../src/walletsync/createWalletSyncWatchLoop.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createWalletSyncWatchLoop.test.js","sourceRoot":"","sources":["../../src/walletsync/createWalletSyncWatchLoop.test.ts"],"names":[],"mappings":";;AAAA,2EAAwE;AACxE,qDAA+F;AAC/F,+BAA+B;AAC/B,sEAAkG;AAElG,IAAI,CAAC,aAAa,EAAE,CAAC;AAErB,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,yBAAyB,GAAG,IAAA,wCAA4B,GAAE,CAAC;QAEjE,MAAM,SAAS,GAAG,IAAA,qDAAyB,EAAC,yBAAyB,CAAC,CAAC;QAEvE,MAAM,IAAA,oCAAwB,EAAC,EAAE,CAAC,CAAC;QAEnC,SAAS,CAAC,WAAW,EAAE,CAAC;QAExB,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,yBAAyB,GAAG,IAAA,wCAA4B,GAAE,CAAC;QAEjE,yBAAyB,CAAC,0BAA0B,GAAG,IAAI;aACxD,EAAE,EAAE;aACJ,mBAAmB,CAAC,CAAC,CAAC;aACtB,eAAe,CAAC,CAAC,CAAC,CAAC;QACtB,yBAAyB,CAAC,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAE5E,MAAM,SAAS,GAAG,IAAA,qDAAyB,EAAC,yBAAyB,CAAC,CAAC;QAEvE,MAAM,IAAA,oCAAwB,EAAC,EAAE,CAAC,CAAC;QAEnC,SAAS,CAAC,WAAW,EAAE,CAAC;QAExB,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvE,yBAAyB,CAAC,UAAU,EACpC,yBAAyB,CAAC,iBAAiB,CAC5C,CAAC;QACF,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,oBAAoB,CACvE,yBAAyB,CAAC,UAAU,EACpC,yBAAyB,CAAC,iBAAiB,EAC3C,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,yBAAyB,GAAG,IAAA,wCAA4B,GAAE,CAAC;QAEjE,MAAM,aAAa,GAAG,IAAI,cAAO,EAAU,CAAC;QAE5C,yBAAyB,CAAC,aAAa,CAAC,mBAAmB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;YACxD,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;YAC/D,OAAO,aAAa,CAAC;QACvB,CAAC,CAAC;QAEF,yBAAyB,CAAC,WAAW,GAAG;YACtC,oBAAoB,EAAE,IAAI;YAC1B,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,KAAK;SACvB,CAAC;QAEF,MAAM,SAAS,GAAG,IAAA,qDAAyB,EAAC,yBAAyB,CAAC,CAAC;QAEvE,MAAM,IAAA,oCAAwB,EAAC,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAE9E,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEtB,MAAM,IAAA,oCAAwB,EAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAE9E,SAAS,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,yBAAyB,GAAG,IAAA,wCAA4B,GAAE,CAAC;QAEjE,MAAM,aAAa,GAAG,IAAI,cAAO,EAAU,CAAC;QAE5C,yBAAyB,CAAC,aAAa,CAAC,mBAAmB,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC;QAElF,yBAAyB,CAAC,WAAW,GAAG;YACtC,oBAAoB,EAAE,KAAK;YAC3B,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,KAAK;SACvB,CAAC;QAEF,MAAM,SAAS,GAAG,IAAA,qDAAyB,EAAC,yBAAyB,CAAC,CAAC;QAEvE,MAAM,IAAA,oCAAwB,EAAC,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAE9E,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEtB,MAAM,IAAA,oCAAwB,EAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAE9E,SAAS,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,yBAAyB,GAAG,IAAA,wCAA4B,GAAE,CAAC;QAEjE,yBAAyB,CAAC,WAAW,GAAG;YACtC,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,KAAK;YACtB,kBAAkB,EAAE,IAAI;SACzB,CAAC;QAEF,MAAM,SAAS,GAAG,IAAA,qDAAyB,EAAC,yBAAyB,CAAC,CAAC;QAEvE,MAAM,IAAA,oCAAwB,EAAC,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAE9E,MAAM,IAAA,oCAAwB,EAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAE9E,SAAS,CAAC,mBAAmB,EAAE,CAAC;QAChC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAE9E,MAAM,IAAA,oCAAwB,EAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAE9E,SAAS,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,yBAAyB,GAAG,IAAA,wCAA4B,GAAE,CAAC;QAEjE,MAAM,SAAS,GAAG,IAAA,qDAAyB,EAAC,yBAAyB,CAAC,CAAC;QAEvE,MAAM,IAAA,oCAAwB,EAAC,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAE9E,SAAS,CAAC,WAAW,EAAE,CAAC;QAExB,MAAM,IAAA,oCAAwB,EAAC,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,yBAAyB,GAAG,IAAA,wCAA4B,GAAE,CAAC;QAEjE,yBAAyB,CAAC,WAAW,GAAG;YACtC,cAAc,EAAE,IAAI;SACrB,CAAC;QAEF,MAAM,SAAS,GAAG,IAAA,qDAAyB,EAAC,yBAAyB,CAAC,CAAC;QAEvE,MAAM,IAAA,oCAAwB,EAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAE9E,MAAM,IAAA,oCAAwB,EAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAE9E,SAAS,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,yBAAyB,GAAG,IAAA,wCAA4B,GAAE,CAAC;QAEjE,yBAAyB,CAAC,cAAc,GAAG,GAAG,EAAE;YAC9C,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC;QACF,yBAAyB,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAE9C,MAAM,SAAS,GAAG,IAAA,qDAAyB,EAAC,yBAAyB,CAAC,CAAC;QAEvE,MAAM,IAAA,oCAAwB,EAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,yBAAyB,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAErF,SAAS,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,yBAAyB,GAAG,IAAA,wCAA4B,GAAE,CAAC;QAEjE,yBAAyB,CAAC,cAAc,GAAG,GAAG,EAAE;YAC9C,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE7B,MAAM,SAAS,GAAG,IAAA,qDAAyB,EAAC,yBAAyB,CAAC,CAAC;QAEvE,MAAM,IAAA,oCAAwB,EAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAE/D,SAAS,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,2FAA2F,EAAE,KAAK,IAAI,EAAE;QACzG,MAAM,yBAAyB,GAAG,IAAA,wCAA4B,GAAE,CAAC;QAEjE,yBAAyB,CAAC,cAAc,GAAG,GAAG,EAAE;YAC9C,MAAM,IAAI,0BAAiB,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,IAAA,qDAAyB,EAAC,yBAAyB,CAAC,CAAC;QAEvE,MAAM,IAAA,oCAAwB,EAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,CAAC,yBAAyB,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAErF,SAAS,CAAC,WAAW,EAAE,CAAC;QAExB,MAAM,0BAA0B,GAAG,IAAA,wCAA4B,GAAE,CAAC;QAElE,0BAA0B,CAAC,cAAc,GAAG,GAAG,EAAE;YAC/C,MAAM,IAAI,2BAAkB,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,IAAA,qDAAyB,EAAC,0BAA0B,CAAC,CAAC;QAEzE,MAAM,IAAA,oCAAwB,EAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,0BAA0B,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAEtF,UAAU,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -16,7 +7,7 @@ exports.makeLocalIncrementalUpdate = exports.makeSaveNewUpdate = void 0;
|
|
|
16
7
|
const logs_1 = require("@ledgerhq/logs");
|
|
17
8
|
const root_1 = __importDefault(require("./root"));
|
|
18
9
|
function makeSaveNewUpdate({ ctx, getState, latestDistantStateSelector, latestDistantVersionSelector, localStateSelector, saveUpdate, }) {
|
|
19
|
-
return (event) =>
|
|
10
|
+
return async (event) => {
|
|
20
11
|
(0, logs_1.log)("walletsync", "saveNewUpdate", { event });
|
|
21
12
|
switch (event.type) {
|
|
22
13
|
case "new-data": {
|
|
@@ -26,48 +17,48 @@ function makeSaveNewUpdate({ ctx, getState, latestDistantStateSelector, latestDi
|
|
|
26
17
|
const latest = latestDistantStateSelector(state);
|
|
27
18
|
const local = localStateSelector(state);
|
|
28
19
|
const data = event.data;
|
|
29
|
-
const resolved =
|
|
20
|
+
const resolved = await root_1.default.resolveIncrementalUpdate(ctx, local, latest, data);
|
|
30
21
|
if (resolved.hasChanges) {
|
|
31
22
|
const version = event.version;
|
|
32
23
|
const localState = localStateSelector(getState()); // fetch again latest state because it might have changed
|
|
33
24
|
const newLocalState = root_1.default.applyUpdate(localState, resolved.update); // we resolve in sync the new local state to save
|
|
34
|
-
|
|
25
|
+
await saveUpdate(data, version, newLocalState);
|
|
35
26
|
(0, logs_1.log)("walletsync", "resolved. changes applied.");
|
|
36
27
|
}
|
|
37
28
|
else {
|
|
38
29
|
(0, logs_1.log)("walletsync", "resolved. no changes to apply.");
|
|
39
30
|
}
|
|
40
31
|
if (event.version !== latestVersion) {
|
|
41
|
-
|
|
32
|
+
await saveUpdate(data, event.version, null);
|
|
42
33
|
}
|
|
43
34
|
break;
|
|
44
35
|
}
|
|
45
36
|
case "pushed-data": {
|
|
46
|
-
|
|
37
|
+
await saveUpdate(event.data, event.version, null);
|
|
47
38
|
break;
|
|
48
39
|
}
|
|
49
40
|
case "deleted-data": {
|
|
50
|
-
|
|
41
|
+
await saveUpdate(null, 0, null);
|
|
51
42
|
break;
|
|
52
43
|
}
|
|
53
44
|
}
|
|
54
|
-
}
|
|
45
|
+
};
|
|
55
46
|
}
|
|
56
47
|
exports.makeSaveNewUpdate = makeSaveNewUpdate;
|
|
57
48
|
function makeLocalIncrementalUpdate({ ctx, getState, latestWalletStateSelector, localStateSelector, saveUpdate, }) {
|
|
58
|
-
return () =>
|
|
49
|
+
return async () => {
|
|
59
50
|
// we resolve possible local incremental update
|
|
60
51
|
const state = getState();
|
|
61
52
|
const { data, version } = latestWalletStateSelector(state);
|
|
62
53
|
const local = localStateSelector(state);
|
|
63
|
-
const resolved =
|
|
54
|
+
const resolved = await root_1.default.resolveIncrementalUpdate(ctx, local, data, data);
|
|
64
55
|
if (resolved.hasChanges) {
|
|
65
56
|
const localState = localStateSelector(getState()); // fetch again latest state because it might have changed
|
|
66
57
|
const newLocalState = root_1.default.applyUpdate(localState, resolved.update); // we resolve in sync the new local state to save
|
|
67
|
-
|
|
58
|
+
await saveUpdate(data, version, newLocalState);
|
|
68
59
|
(0, logs_1.log)("walletsync", "localIncrementalUpdate done.");
|
|
69
60
|
}
|
|
70
|
-
}
|
|
61
|
+
};
|
|
71
62
|
}
|
|
72
63
|
exports.makeLocalIncrementalUpdate = makeLocalIncrementalUpdate;
|
|
73
64
|
//# sourceMappingURL=incrementalUpdates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incrementalUpdates.js","sourceRoot":"","sources":["../../src/walletsync/incrementalUpdates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"incrementalUpdates.js","sourceRoot":"","sources":["../../src/walletsync/incrementalUpdates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
const zod_1 = require("zod");
|
|
13
4
|
const schema = zod_1.z.record(zod_1.z.string());
|
|
@@ -22,21 +13,19 @@ const manager = {
|
|
|
22
13
|
};
|
|
23
14
|
},
|
|
24
15
|
// NB: current implementation will take any incoming state changes and replace it all. the risk of conflict is limited but possible.
|
|
25
|
-
resolveIncrementalUpdate(_ctx, localData, latestState, incomingState) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
update,
|
|
39
|
-
});
|
|
16
|
+
async resolveIncrementalUpdate(_ctx, localData, latestState, incomingState) {
|
|
17
|
+
if (!incomingState) {
|
|
18
|
+
return { hasChanges: false }; // nothing to do, the data is no longer available
|
|
19
|
+
}
|
|
20
|
+
const hasChanges = latestState !== incomingState && // bail out from "local" increment update
|
|
21
|
+
!sameDistantState(Object.fromEntries(localData.entries()), incomingState);
|
|
22
|
+
if (!hasChanges) {
|
|
23
|
+
return { hasChanges: false };
|
|
24
|
+
}
|
|
25
|
+
const update = { replaceAllNames: incomingState };
|
|
26
|
+
return Promise.resolve({
|
|
27
|
+
hasChanges: true,
|
|
28
|
+
update,
|
|
40
29
|
});
|
|
41
30
|
},
|
|
42
31
|
applyUpdate(_localData, update) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountNames.js","sourceRoot":"","sources":["../../../src/walletsync/modules/accountNames.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accountNames.js","sourceRoot":"","sources":["../../../src/walletsync/modules/accountNames.ts"],"names":[],"mappings":";;AACA,6BAAwB;AAExB,MAAM,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAEpC,MAAM,OAAO,GAMT;IACF,MAAM;IAEN,kBAAkB,CAAC,SAAS,EAAE,WAAW;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,CAAC,gBAAgB,CAAC,WAAW,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO;YACL,UAAU;YACV,SAAS;SACV,CAAC;IACJ,CAAC;IAED,oIAAoI;IACpI,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa;QACxE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,iDAAiD;QACjF,CAAC;QAED,MAAM,UAAU,GACd,WAAW,KAAK,aAAa,IAAI,yCAAyC;YAC1E,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;QAE5E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAC/B,CAAC;QACD,MAAM,MAAM,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,UAAU,EAAE,IAAI;YAChB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,UAAU,EAAE,MAAM;QAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEF,SAAS,gBAAgB,CAAC,CAAyB,EAAE,CAAyB;IAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC5D,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kBAAe,OAAO,CAAC"}
|