@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
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -15,7 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
6
|
const environment_1 = require("../__mocks__/environment");
|
|
16
7
|
const __mocks__1 = require("../__mocks__");
|
|
17
8
|
const index_1 = __importDefault(require("../index"));
|
|
18
|
-
const oneAccountState =
|
|
9
|
+
const oneAccountState = {
|
|
10
|
+
...__mocks__1.emptyState,
|
|
11
|
+
accounts: (0, __mocks__1.genModuleState)("accounts", 0),
|
|
12
|
+
};
|
|
19
13
|
const distantEmptyState = index_1.default.diffLocalToDistant(__mocks__1.emptyState, null).nextState;
|
|
20
14
|
describe("the root WalletSyncDataManager can accept data that misses a new field handled by a new module (here accountNames)", () => {
|
|
21
15
|
const partialEmptyDistantData = { accounts: distantEmptyState.accounts };
|
|
@@ -30,25 +24,34 @@ describe("the root WalletSyncDataManager can accept data that misses a new field
|
|
|
30
24
|
const diff = index_1.default.diffLocalToDistant(__mocks__1.emptyState, partialEmptyDistantData);
|
|
31
25
|
expect(diff).toEqual({
|
|
32
26
|
hasChanges: false,
|
|
33
|
-
nextState:
|
|
27
|
+
nextState: {
|
|
28
|
+
...distantEmptyState, // verify that we indeed have the new fields in the nextState
|
|
29
|
+
accounts: partialEmptyDistantData.accounts,
|
|
30
|
+
},
|
|
34
31
|
});
|
|
35
32
|
});
|
|
36
33
|
test("on diffLocalToDistant with data (no changes)", () => {
|
|
37
34
|
const diff = index_1.default.diffLocalToDistant(oneAccountState, partialOneAccountDistantData);
|
|
38
35
|
expect(diff).toEqual({
|
|
39
36
|
hasChanges: false,
|
|
40
|
-
nextState:
|
|
37
|
+
nextState: {
|
|
38
|
+
...distantEmptyState, // verify that we indeed have the new fields in the nextState
|
|
39
|
+
accounts: partialOneAccountDistantData.accounts,
|
|
40
|
+
},
|
|
41
41
|
});
|
|
42
42
|
});
|
|
43
43
|
test("on diffLocalToDistant with data (changes)", () => {
|
|
44
44
|
const diff = index_1.default.diffLocalToDistant(__mocks__1.emptyState, partialOneAccountDistantData);
|
|
45
45
|
expect(diff).toEqual({
|
|
46
46
|
hasChanges: true,
|
|
47
|
-
nextState:
|
|
47
|
+
nextState: {
|
|
48
|
+
...distantEmptyState, // verify that we indeed have the new fields in the nextState
|
|
49
|
+
accounts: [],
|
|
50
|
+
},
|
|
48
51
|
});
|
|
49
52
|
});
|
|
50
|
-
test("on resolveIncrementalUpdate (accept new accounts)", () =>
|
|
51
|
-
const diff =
|
|
53
|
+
test("on resolveIncrementalUpdate (accept new accounts)", async () => {
|
|
54
|
+
const diff = await index_1.default.resolveIncrementalUpdate(environment_1.dummyContext, __mocks__1.emptyState, null, partialOneAccountDistantData);
|
|
52
55
|
if (diff.hasChanges) {
|
|
53
56
|
expect(diff.update.accountNames).toEqual({ hasChanges: false });
|
|
54
57
|
const firstaccount = diff.update.accounts.hasChanges
|
|
@@ -66,10 +69,13 @@ describe("the root WalletSyncDataManager can accept data that misses a new field
|
|
|
66
69
|
else {
|
|
67
70
|
expect(diff).toEqual({ hasChanges: true }); // we expected changes!
|
|
68
71
|
}
|
|
69
|
-
})
|
|
72
|
+
});
|
|
70
73
|
});
|
|
71
74
|
describe("the general module can accept data that are not yet understood and handled by an existing module", () => {
|
|
72
|
-
const emptyDistantDataWithExtra =
|
|
75
|
+
const emptyDistantDataWithExtra = {
|
|
76
|
+
...distantEmptyState,
|
|
77
|
+
fooBAR: true,
|
|
78
|
+
};
|
|
73
79
|
test("on the schema", () => {
|
|
74
80
|
const validated = index_1.default.schema.parse(emptyDistantDataWithExtra);
|
|
75
81
|
expect(validated).toMatchObject(distantEmptyState);
|
|
@@ -84,21 +90,36 @@ describe("the general module can accept data that are not yet understood and han
|
|
|
84
90
|
});
|
|
85
91
|
});
|
|
86
92
|
test("on diffLocalToDistant with changes", () => {
|
|
87
|
-
const localData =
|
|
93
|
+
const localData = {
|
|
94
|
+
...__mocks__1.emptyState,
|
|
95
|
+
accountNames: new Map([["foo", "bar"]]),
|
|
96
|
+
};
|
|
88
97
|
const latestState = emptyDistantDataWithExtra;
|
|
89
98
|
const diff = index_1.default.diffLocalToDistant(localData, latestState);
|
|
90
99
|
expect(diff).toEqual({
|
|
91
100
|
hasChanges: true,
|
|
92
|
-
nextState:
|
|
101
|
+
nextState: { ...latestState, accountNames: { foo: "bar" } },
|
|
93
102
|
});
|
|
94
103
|
});
|
|
95
|
-
test("on resolveIncrementalUpdate with changes", () =>
|
|
96
|
-
const localData =
|
|
97
|
-
|
|
104
|
+
test("on resolveIncrementalUpdate with changes", async () => {
|
|
105
|
+
const localData = {
|
|
106
|
+
...__mocks__1.emptyState,
|
|
107
|
+
accounts: (0, __mocks__1.genModuleState)("accounts", 0),
|
|
108
|
+
};
|
|
109
|
+
const resolved = await index_1.default.resolveIncrementalUpdate(environment_1.dummyContext, localData,
|
|
98
110
|
// basically we verify the extra data are just going to be ignored
|
|
99
|
-
|
|
111
|
+
{
|
|
112
|
+
...distantEmptyState,
|
|
113
|
+
accountNames: { foo: "bar" },
|
|
114
|
+
fooBAR: true,
|
|
115
|
+
}, {
|
|
116
|
+
...distantEmptyState,
|
|
117
|
+
accountNames: { foo: "baz" },
|
|
118
|
+
fooBAR: false,
|
|
119
|
+
fooBAZ: { a: 42 },
|
|
120
|
+
});
|
|
100
121
|
expect(resolved).toMatchObject({ hasChanges: true });
|
|
101
|
-
})
|
|
122
|
+
});
|
|
102
123
|
});
|
|
103
124
|
function convertAccountToDescriptor(account) {
|
|
104
125
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compatibility.test.js","sourceRoot":"","sources":["../../../src/walletsync/__tests__/compatibility.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compatibility.test.js","sourceRoot":"","sources":["../../../src/walletsync/__tests__/compatibility.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// cover generic cases with generative mocks
|
|
3
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
-
});
|
|
11
|
-
};
|
|
12
3
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
5
|
};
|
|
@@ -24,18 +15,18 @@ describe("canonical cases", () => {
|
|
|
24
15
|
nextState: (0, __mocks__1.convertLocalToDistantState)(__mocks__1.emptyState),
|
|
25
16
|
});
|
|
26
17
|
});
|
|
27
|
-
it("detects no changes on empty incoming", () =>
|
|
18
|
+
it("detects no changes on empty incoming", async () => {
|
|
28
19
|
const localState = (0, __mocks__1.genState)(5);
|
|
29
20
|
const latestState = (0, __mocks__1.convertLocalToDistantState)(localState);
|
|
30
|
-
const resolved =
|
|
21
|
+
const resolved = await __1.default.resolveIncrementalUpdate(environment_1.dummyContext, localState, latestState, null);
|
|
31
22
|
expect(resolved).toEqual({ hasChanges: false });
|
|
32
|
-
})
|
|
33
|
-
it("detects no changes on same incoming from empty local state", () =>
|
|
23
|
+
});
|
|
24
|
+
it("detects no changes on same incoming from empty local state", async () => {
|
|
34
25
|
const localState = (0, __mocks__1.genState)(9);
|
|
35
26
|
const latestState = (0, __mocks__1.convertLocalToDistantState)(localState);
|
|
36
|
-
const resolved =
|
|
27
|
+
const resolved = await __1.default.resolveIncrementalUpdate(environment_1.dummyContext, __mocks__1.emptyState, latestState, latestState);
|
|
37
28
|
expect(resolved).toEqual({ hasChanges: false });
|
|
38
|
-
})
|
|
29
|
+
});
|
|
39
30
|
// test many cases with different data sets
|
|
40
31
|
const runs = 127;
|
|
41
32
|
for (let n = 0; n < runs; n++) {
|
|
@@ -63,12 +54,12 @@ describe("canonical cases", () => {
|
|
|
63
54
|
});
|
|
64
55
|
});
|
|
65
56
|
let update = null;
|
|
66
|
-
it("resolves the transition (distI->distJ) from stateI", () =>
|
|
67
|
-
const resolved =
|
|
57
|
+
it("resolves the transition (distI->distJ) from stateI", async () => {
|
|
58
|
+
const resolved = await __1.default.resolveIncrementalUpdate(environment_1.dummyContext, stateI, distI, distJ);
|
|
68
59
|
expect(resolved).toMatchObject({ hasChanges: true });
|
|
69
60
|
if (resolved.hasChanges)
|
|
70
61
|
update = resolved.update;
|
|
71
|
-
})
|
|
62
|
+
});
|
|
72
63
|
let newState = null;
|
|
73
64
|
it("applies the transition (distI->distJ), assert that from stateI it gets you to stateJ", () => {
|
|
74
65
|
if (!update) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.test.js","sourceRoot":"","sources":["../../../src/walletsync/__tests__/generic.test.ts"],"names":[],"mappings":";AAAA,4CAA4C
|
|
1
|
+
{"version":3,"file":"generic.test.js","sourceRoot":"","sources":["../../../src/walletsync/__tests__/generic.test.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
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -95,7 +86,7 @@ describe("accountNames' WalletSyncDataManager", () => {
|
|
|
95
86
|
},
|
|
96
87
|
});
|
|
97
88
|
});
|
|
98
|
-
it("should resolve to no op if no changes", () =>
|
|
89
|
+
it("should resolve to no op if no changes", async () => {
|
|
99
90
|
const localData = new Map([["1", "a"]]);
|
|
100
91
|
const latestState = {
|
|
101
92
|
"1": "a",
|
|
@@ -103,12 +94,12 @@ describe("accountNames' WalletSyncDataManager", () => {
|
|
|
103
94
|
const incomingState = {
|
|
104
95
|
"1": "a",
|
|
105
96
|
};
|
|
106
|
-
const diff =
|
|
97
|
+
const diff = await accountNames_1.default.resolveIncrementalUpdate(dummyContext, localData, latestState, incomingState);
|
|
107
98
|
expect(diff).toEqual({
|
|
108
99
|
hasChanges: false,
|
|
109
100
|
});
|
|
110
|
-
})
|
|
111
|
-
it("should resolve to a new name addition with the full state", () =>
|
|
101
|
+
});
|
|
102
|
+
it("should resolve to a new name addition with the full state", async () => {
|
|
112
103
|
const localData = new Map([["1", "a"]]);
|
|
113
104
|
const latestState = {
|
|
114
105
|
"1": "a",
|
|
@@ -117,7 +108,7 @@ describe("accountNames' WalletSyncDataManager", () => {
|
|
|
117
108
|
"1": "a",
|
|
118
109
|
"2": "b",
|
|
119
110
|
};
|
|
120
|
-
const diff =
|
|
111
|
+
const diff = await accountNames_1.default.resolveIncrementalUpdate(dummyContext, localData, latestState, incomingState);
|
|
121
112
|
expect(diff).toEqual({
|
|
122
113
|
hasChanges: true,
|
|
123
114
|
update: {
|
|
@@ -127,8 +118,8 @@ describe("accountNames' WalletSyncDataManager", () => {
|
|
|
127
118
|
},
|
|
128
119
|
},
|
|
129
120
|
});
|
|
130
|
-
})
|
|
131
|
-
it("should resolve to a rename with the full state", () =>
|
|
121
|
+
});
|
|
122
|
+
it("should resolve to a rename with the full state", async () => {
|
|
132
123
|
const localData = new Map([
|
|
133
124
|
["1", "a"],
|
|
134
125
|
["2", "b"],
|
|
@@ -141,7 +132,7 @@ describe("accountNames' WalletSyncDataManager", () => {
|
|
|
141
132
|
"1": "a",
|
|
142
133
|
"2": "bbbb",
|
|
143
134
|
};
|
|
144
|
-
const diff =
|
|
135
|
+
const diff = await accountNames_1.default.resolveIncrementalUpdate(dummyContext, localData, latestState, incomingState);
|
|
145
136
|
expect(diff).toEqual({
|
|
146
137
|
hasChanges: true,
|
|
147
138
|
update: {
|
|
@@ -151,7 +142,7 @@ describe("accountNames' WalletSyncDataManager", () => {
|
|
|
151
142
|
},
|
|
152
143
|
},
|
|
153
144
|
});
|
|
154
|
-
})
|
|
145
|
+
});
|
|
155
146
|
it("applies an addition", () => {
|
|
156
147
|
const localData = new Map([["1", "a"]]);
|
|
157
148
|
const update = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountNames.test.js","sourceRoot":"","sources":["../../../../src/walletsync/__tests__/modules/accountNames.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accountNames.test.js","sourceRoot":"","sources":["../../../../src/walletsync/__tests__/modules/accountNames.test.ts"],"names":[],"mappings":"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"}
|