@ledgerhq/coin-vechain 2.6.0-nightly.2 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.unimportedrc.json +0 -1
  3. package/CHANGELOG.md +13 -17
  4. package/jest.config.js +0 -1
  5. package/lib/bridge/synchronisation.d.ts.map +1 -1
  6. package/lib/bridge/synchronisation.js +1 -5
  7. package/lib/bridge/synchronisation.js.map +1 -1
  8. package/lib/index.d.ts +0 -1
  9. package/lib/index.d.ts.map +1 -1
  10. package/lib/index.js +1 -3
  11. package/lib/index.js.map +1 -1
  12. package/lib-es/bridge/synchronisation.d.ts.map +1 -1
  13. package/lib-es/bridge/synchronisation.js +1 -5
  14. package/lib-es/bridge/synchronisation.js.map +1 -1
  15. package/lib-es/index.d.ts +0 -1
  16. package/lib-es/index.d.ts.map +1 -1
  17. package/lib-es/index.js +0 -1
  18. package/lib-es/index.js.map +1 -1
  19. package/package.json +7 -9
  20. package/src/__snapshots__/bridge.integration.test.ts.snap +146 -0
  21. package/src/bridge/synchronisation.ts +1 -5
  22. package/src/index.ts +0 -1
  23. package/lib/bridge/helpers.d.ts +0 -3
  24. package/lib/bridge/helpers.d.ts.map +0 -1
  25. package/lib/bridge/helpers.js +0 -9
  26. package/lib/bridge/helpers.js.map +0 -1
  27. package/lib/bridge/synchronisation.test.d.ts +0 -2
  28. package/lib/bridge/synchronisation.test.d.ts.map +0 -1
  29. package/lib/bridge/synchronisation.test.js +0 -201
  30. package/lib/bridge/synchronisation.test.js.map +0 -1
  31. package/lib-es/bridge/helpers.d.ts +0 -3
  32. package/lib-es/bridge/helpers.d.ts.map +0 -1
  33. package/lib-es/bridge/helpers.js +0 -5
  34. package/lib-es/bridge/helpers.js.map +0 -1
  35. package/lib-es/bridge/synchronisation.test.d.ts +0 -2
  36. package/lib-es/bridge/synchronisation.test.d.ts.map +0 -1
  37. package/lib-es/bridge/synchronisation.test.js +0 -196
  38. package/lib-es/bridge/synchronisation.test.js.map +0 -1
  39. package/src/bridge/helpers.ts +0 -8
  40. package/src/bridge/synchronisation.test.ts +0 -216
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/coin-vechain@2.6.0-nightly.1 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-vechain
2
+ > @ledgerhq/coin-vechain@2.6.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-vechain
3
3
  > tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
4
4
 
@@ -21,7 +21,6 @@
21
21
  "src/bridge/createTransaction.ts",
22
22
  "src/bridge/estimateMaxSpendable.ts",
23
23
  "src/bridge/getTransactionStatus.ts",
24
- "src/bridge/helpers.ts",
25
24
  "src/bridge/index.ts",
26
25
  "src/bridge/prepareTransaction.ts",
27
26
  "src/bridge/signOperation.ts",
package/CHANGELOG.md CHANGED
@@ -1,27 +1,20 @@
1
1
  # @ledgerhq/coin-evm
2
2
 
3
- ## 2.6.0-nightly.2
3
+ ## 2.6.0
4
4
 
5
5
  ### Minor Changes
6
6
 
7
- - [#9597](https://github.com/LedgerHQ/ledger-live/pull/9597) [`1e7d454`](https://github.com/LedgerHQ/ledger-live/commit/1e7d454d99f1f39880f39a120c59020725d26475) Thanks [@sprohaszka-ledger](https://github.com/sprohaszka-ledger)! - isAccountEmpty is now defined in each coin needed a dedicated logic.
8
-
9
- ### Patch Changes
10
-
11
- - Updated dependencies [[`1e7d454`](https://github.com/LedgerHQ/ledger-live/commit/1e7d454d99f1f39880f39a120c59020725d26475), [`d694069`](https://github.com/LedgerHQ/ledger-live/commit/d6940698a49b7a0ed48f84d6e8184d80760cca4f)]:
12
- - @ledgerhq/coin-framework@2.5.0-nightly.2
13
- - @ledgerhq/live-env@2.7.0-nightly.1
14
- - @ledgerhq/cryptoassets@13.14.0-nightly.2
15
- - @ledgerhq/live-network@2.0.6-nightly.1
16
-
17
- ## 2.6.0-nightly.1
7
+ - [#9298](https://github.com/LedgerHQ/ledger-live/pull/9298) [`2785d49`](https://github.com/LedgerHQ/ledger-live/commit/2785d49ac320498f98ed39b4eccc48310ad35fe1) Thanks [@Canestin](https://github.com/Canestin)! - config coin-integration env for sonarqube
18
8
 
19
9
  ### Patch Changes
20
10
 
21
- - Updated dependencies [[`71bb6a9`](https://github.com/LedgerHQ/ledger-live/commit/71bb6a9adb4ac83172be5def5b25d2836380df1d)]:
22
- - @ledgerhq/coin-framework@2.5.0-nightly.1
11
+ - Updated dependencies [[`2785d49`](https://github.com/LedgerHQ/ledger-live/commit/2785d49ac320498f98ed39b4eccc48310ad35fe1), [`32f2a0c`](https://github.com/LedgerHQ/ledger-live/commit/32f2a0cf073e5c1a5d65cbe44e69660f8f510dd7), [`40e98c3`](https://github.com/LedgerHQ/ledger-live/commit/40e98c392bd9192570e46c2d62cf0779bdfe01ec), [`a656e47`](https://github.com/LedgerHQ/ledger-live/commit/a656e47c1dc3ac8b578debf9cf80eab370c7086f)]:
12
+ - @ledgerhq/coin-framework@2.5.0
13
+ - @ledgerhq/live-env@2.7.0
14
+ - @ledgerhq/cryptoassets@13.14.0
15
+ - @ledgerhq/live-network@2.0.6
23
16
 
24
- ## 2.6.0-nightly.0
17
+ ## 2.6.0-next.0
25
18
 
26
19
  ### Minor Changes
27
20
 
@@ -29,8 +22,11 @@
29
22
 
30
23
  ### Patch Changes
31
24
 
32
- - Updated dependencies [[`2785d49`](https://github.com/LedgerHQ/ledger-live/commit/2785d49ac320498f98ed39b4eccc48310ad35fe1)]:
33
- - @ledgerhq/coin-framework@2.5.0-nightly.0
25
+ - Updated dependencies [[`2785d49`](https://github.com/LedgerHQ/ledger-live/commit/2785d49ac320498f98ed39b4eccc48310ad35fe1), [`32f2a0c`](https://github.com/LedgerHQ/ledger-live/commit/32f2a0cf073e5c1a5d65cbe44e69660f8f510dd7), [`40e98c3`](https://github.com/LedgerHQ/ledger-live/commit/40e98c392bd9192570e46c2d62cf0779bdfe01ec), [`a656e47`](https://github.com/LedgerHQ/ledger-live/commit/a656e47c1dc3ac8b578debf9cf80eab370c7086f)]:
26
+ - @ledgerhq/coin-framework@2.5.0-next.0
27
+ - @ledgerhq/live-env@2.7.0-next.0
28
+ - @ledgerhq/cryptoassets@13.14.0-next.0
29
+ - @ledgerhq/live-network@2.0.6-next.0
34
30
 
35
31
  ## 2.5.1
36
32
 
package/jest.config.js CHANGED
@@ -14,7 +14,6 @@ module.exports = {
14
14
  testEnvironment: "node",
15
15
  testPathIgnorePatterns: ["lib/", "lib-es/", ".integration.test.ts"],
16
16
  reporters: [
17
- "default",
18
17
  [
19
18
  "jest-sonar",
20
19
  { outputName: "vechain-sonar-executionTests-report.xml", reportedFilePath: "absolute" },
@@ -1 +1 @@
1
- {"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAY,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,OAAO,CAyEpD,CAAC"}
1
+ {"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAY,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,OAAO,CAsEpD,CAAC"}
@@ -11,7 +11,6 @@ const network_1 = require("../network");
11
11
  const tokens_1 = require("@ledgerhq/cryptoassets/tokens");
12
12
  const constants_1 = require("../contracts/constants");
13
13
  const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
14
- const helpers_1 = require("./helpers");
15
14
  const getAccountShape = async (info) => {
16
15
  const { initialAccount, currency, derivationMode } = info;
17
16
  const address = eip55_1.default.encode(info.address);
@@ -69,10 +68,7 @@ const getAccountShape = async (info) => {
69
68
  },
70
69
  ],
71
70
  };
72
- return {
73
- ...shape,
74
- used: !(0, helpers_1.isAccountEmpty)(shape),
75
- };
71
+ return shape;
76
72
  };
77
73
  exports.getAccountShape = getAccountShape;
78
74
  //# sourceMappingURL=synchronisation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
1
  export { createBridges } from "./bridge/index";
2
- export { isAccountEmpty } from "./bridge/helpers";
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
package/lib/index.js CHANGED
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isAccountEmpty = exports.createBridges = void 0;
3
+ exports.createBridges = void 0;
4
4
  var index_1 = require("./bridge/index");
5
5
  Object.defineProperty(exports, "createBridges", { enumerable: true, get: function () { return index_1.createBridges; } });
6
- var helpers_1 = require("./bridge/helpers");
7
- Object.defineProperty(exports, "isAccountEmpty", { enumerable: true, get: function () { return helpers_1.isAccountEmpty; } });
8
6
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,wCAA+C;AAAtC,sGAAA,aAAa,OAAA;AACtB,4CAAkD;AAAzC,yGAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,wCAA+C;AAAtC,sGAAA,aAAa,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAY,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,OAAO,CAyEpD,CAAC"}
1
+ {"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAY,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,OAAO,CAsEpD,CAAC"}
@@ -5,7 +5,6 @@ import { getAccount, getLastBlockHeight, getOperations, getTokenOperations } fro
5
5
  import { findTokenById, getTokenById } from "@ledgerhq/cryptoassets/tokens";
6
6
  import { VTHO_ADDRESS } from "../contracts/constants";
7
7
  import { mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
8
- import { isAccountEmpty } from "./helpers";
9
8
  export const getAccountShape = async (info) => {
10
9
  const { initialAccount, currency, derivationMode } = info;
11
10
  const address = eip55.encode(info.address);
@@ -63,9 +62,6 @@ export const getAccountShape = async (info) => {
63
62
  },
64
63
  ],
65
64
  };
66
- return {
67
- ...shape,
68
- used: !isAccountEmpty(shape),
69
- };
65
+ return shape;
70
66
  };
71
67
  //# sourceMappingURL=synchronisation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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"}
package/lib-es/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
1
  export { createBridges } from "./bridge/index";
2
- export { isAccountEmpty } from "./bridge/helpers";
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
package/lib-es/index.js CHANGED
@@ -1,3 +1,2 @@
1
1
  export { createBridges } from "./bridge/index";
2
- export { isAccountEmpty } from "./bridge/helpers";
3
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/coin-vechain",
3
- "version": "2.6.0-nightly.2",
3
+ "version": "2.6.0",
4
4
  "description": "Ledger VeChain Coin integration",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -85,26 +85,24 @@
85
85
  "lodash": "^4.17.21",
86
86
  "rxjs": "^7.8.1",
87
87
  "thor-devkit": "^2.0.6",
88
- "@ledgerhq/coin-framework": "^2.5.0-nightly.2",
89
- "@ledgerhq/cryptoassets": "^13.14.0-nightly.2",
88
+ "@ledgerhq/coin-framework": "^2.5.0",
89
+ "@ledgerhq/cryptoassets": "^13.14.0",
90
90
  "@ledgerhq/devices": "^8.4.4",
91
91
  "@ledgerhq/errors": "^6.19.1",
92
- "@ledgerhq/live-env": "^2.7.0-nightly.1",
93
- "@ledgerhq/live-network": "^2.0.6-nightly.1"
92
+ "@ledgerhq/live-env": "^2.7.0",
93
+ "@ledgerhq/live-network": "^2.0.6"
94
94
  },
95
95
  "devDependencies": {
96
- "@faker-js/faker": "^9.6.0",
97
96
  "@types/invariant": "^2.2.2",
98
97
  "@types/jest": "^29.5.10",
99
98
  "@types/lodash": "^4.14.191",
100
99
  "dotenv": "^16.4.5",
101
100
  "jest": "^29.7.0",
102
101
  "jest-sonar": "0.2.16",
103
- "msw": "^2.2.13",
104
102
  "ts-jest": "^29.1.1",
105
103
  "@ledgerhq/coin-tester": "^0.4.0",
106
- "@ledgerhq/types-cryptoassets": "^7.21.0-nightly.0",
107
- "@ledgerhq/types-live": "^6.65.0-nightly.0"
104
+ "@ledgerhq/types-cryptoassets": "^7.21.0",
105
+ "@ledgerhq/types-live": "^6.65.0"
108
106
  },
109
107
  "scripts": {
110
108
  "clean": "rimraf lib lib-es",
@@ -0,0 +1,146 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`vechain currency bridge scanAccounts vechain seed 1 1`] = `
4
+ [
5
+ {
6
+ "currencyId": "vechain",
7
+ "derivationMode": "vechain",
8
+ "feesCurrencyId": "vechain/vip180/vtho",
9
+ "freshAddress": "0x0fe6688548f0C303932bB197B0A96034f1d74dba",
10
+ "freshAddressPath": "44'/818'/0'/0/0",
11
+ "id": "js:2:vechain:0x0fe6688548f0C303932bB197B0A96034f1d74dba:vechain",
12
+ "index": 0,
13
+ "operationsCount": 1,
14
+ "pendingOperations": [],
15
+ "seedIdentifier": "04de5a8f11cc426ff5617aeffd397c5dd77b58424662f368f2cd539a8c42fd2e7d0c6245c9c3a4306f70d7f292e95642651a6832d66fd9823fa6a0af575113e94e",
16
+ "subAccounts": [],
17
+ "swapHistory": [],
18
+ "syncHash": undefined,
19
+ "used": true,
20
+ },
21
+ {
22
+ "id": "js:2:vechain:0x0fe6688548f0C303932bB197B0A96034f1d74dba:vechain+vechain%2Fvip180%2Fvtho",
23
+ "operationsCount": 1,
24
+ "parentId": "js:2:vechain:0x0fe6688548f0C303932bB197B0A96034f1d74dba:vechain",
25
+ "pendingOperations": [],
26
+ "swapHistory": [],
27
+ "tokenId": "vechain/vip180/vtho",
28
+ "type": "TokenAccountRaw",
29
+ },
30
+ {
31
+ "currencyId": "vechain",
32
+ "derivationMode": "vechain",
33
+ "feesCurrencyId": "vechain/vip180/vtho",
34
+ "freshAddress": "0x02961B92B8D20A4ea12f1f1CeFA74Dd7B4355A86",
35
+ "freshAddressPath": "44'/818'/0'/0/1",
36
+ "id": "js:2:vechain:0x02961B92B8D20A4ea12f1f1CeFA74Dd7B4355A86:vechain",
37
+ "index": 1,
38
+ "operationsCount": 1,
39
+ "pendingOperations": [],
40
+ "seedIdentifier": "04de5a8f11cc426ff5617aeffd397c5dd77b58424662f368f2cd539a8c42fd2e7d0c6245c9c3a4306f70d7f292e95642651a6832d66fd9823fa6a0af575113e94e",
41
+ "subAccounts": [],
42
+ "swapHistory": [],
43
+ "syncHash": undefined,
44
+ "used": true,
45
+ },
46
+ {
47
+ "id": "js:2:vechain:0x02961B92B8D20A4ea12f1f1CeFA74Dd7B4355A86:vechain+vechain%2Fvip180%2Fvtho",
48
+ "operationsCount": 0,
49
+ "parentId": "js:2:vechain:0x02961B92B8D20A4ea12f1f1CeFA74Dd7B4355A86:vechain",
50
+ "pendingOperations": [],
51
+ "swapHistory": [],
52
+ "tokenId": "vechain/vip180/vtho",
53
+ "type": "TokenAccountRaw",
54
+ },
55
+ {
56
+ "currencyId": "vechain",
57
+ "derivationMode": "vechain",
58
+ "feesCurrencyId": "vechain/vip180/vtho",
59
+ "freshAddress": "0xFbC8653C0b842dd33361CE8938B24e407dd4838C",
60
+ "freshAddressPath": "44'/818'/0'/0/2",
61
+ "id": "js:2:vechain:0xFbC8653C0b842dd33361CE8938B24e407dd4838C:vechain",
62
+ "index": 2,
63
+ "operationsCount": 0,
64
+ "pendingOperations": [],
65
+ "seedIdentifier": "04de5a8f11cc426ff5617aeffd397c5dd77b58424662f368f2cd539a8c42fd2e7d0c6245c9c3a4306f70d7f292e95642651a6832d66fd9823fa6a0af575113e94e",
66
+ "subAccounts": [],
67
+ "swapHistory": [],
68
+ "syncHash": undefined,
69
+ "used": false,
70
+ },
71
+ {
72
+ "id": "js:2:vechain:0xFbC8653C0b842dd33361CE8938B24e407dd4838C:vechain+vechain%2Fvip180%2Fvtho",
73
+ "operationsCount": 0,
74
+ "parentId": "js:2:vechain:0xFbC8653C0b842dd33361CE8938B24e407dd4838C:vechain",
75
+ "pendingOperations": [],
76
+ "swapHistory": [],
77
+ "tokenId": "vechain/vip180/vtho",
78
+ "type": "TokenAccountRaw",
79
+ },
80
+ ]
81
+ `;
82
+
83
+ exports[`vechain currency bridge scanAccounts vechain seed 1 2`] = `
84
+ [
85
+ [
86
+ {
87
+ "accountId": "js:2:vechain:0x0fe6688548f0C303932bB197B0A96034f1d74dba:vechain",
88
+ "blockHash": "0x00fa5b35f158cee280b6be35b4ada7669951035a79806244aaa11e5d2764d5bd",
89
+ "blockHeight": 16407349,
90
+ "extra": {},
91
+ "fee": "210000000000000000",
92
+ "hash": "0xe113f82af98a24c6f2473802f8673f0d69eed1c0f51a5a87d3cc6b8cf96ccfd6",
93
+ "id": "js:2:vechain:0x0fe6688548f0C303932bB197B0A96034f1d74dba:vechain-0xe113f82af98a24c6f2473802f8673f0d69eed1c0f51a5a87d3cc6b8cf96ccfd6-IN",
94
+ "recipients": [
95
+ "0x0fe6688548f0c303932bb197b0a96034f1d74dba",
96
+ ],
97
+ "senders": [
98
+ "0xcf130b42ae31c4931298b4b1c0f1d974b8732957",
99
+ ],
100
+ "type": "IN",
101
+ "value": "10000000000000000000",
102
+ },
103
+ ],
104
+ [
105
+ {
106
+ "accountId": "js:2:vechain:0x0fe6688548f0C303932bB197B0A96034f1d74dba:vechain+vechain%2Fvip180%2Fvtho",
107
+ "blockHash": "0x00fa5b4ee2eca5cf65907e3695bbea044cd1f78224534dc0ba02526890055ecc",
108
+ "blockHeight": 16407374,
109
+ "extra": {},
110
+ "fee": "365180000000000000",
111
+ "hash": "0x5fdd7191c4d476a8e86060d516366e87421f65667b9b3c14c33a740c04921b10",
112
+ "id": "js:2:vechain:0x0fe6688548f0C303932bB197B0A96034f1d74dba:vechain+vechain%2Fvip180%2Fvtho-0x5fdd7191c4d476a8e86060d516366e87421f65667b9b3c14c33a740c04921b10-IN",
113
+ "recipients": [
114
+ "0x0fe6688548f0c303932bb197b0a96034f1d74dba",
115
+ ],
116
+ "senders": [
117
+ "0xcf130b42ae31c4931298b4b1c0f1d974b8732957",
118
+ ],
119
+ "type": "IN",
120
+ "value": "10000000000000000000",
121
+ },
122
+ ],
123
+ [
124
+ {
125
+ "accountId": "js:2:vechain:0x02961B92B8D20A4ea12f1f1CeFA74Dd7B4355A86:vechain",
126
+ "blockHash": "0x00fa5b547b0d542ba8e62a85aa99cf355f1b2a70bd34e3949f889b0856776e05",
127
+ "blockHeight": 16407380,
128
+ "extra": {},
129
+ "fee": "210000000000000000",
130
+ "hash": "0xa4096186f2d58ecc68e6ea11c9757ef5bd78b21b87d73b4618eb6fd3508431ec",
131
+ "id": "js:2:vechain:0x02961B92B8D20A4ea12f1f1CeFA74Dd7B4355A86:vechain-0xa4096186f2d58ecc68e6ea11c9757ef5bd78b21b87d73b4618eb6fd3508431ec-IN",
132
+ "recipients": [
133
+ "0x02961b92b8d20a4ea12f1f1cefa74dd7b4355a86",
134
+ ],
135
+ "senders": [
136
+ "0xcf130b42ae31c4931298b4b1c0f1d974b8732957",
137
+ ],
138
+ "type": "IN",
139
+ "value": "10000000000000000000",
140
+ },
141
+ ],
142
+ [],
143
+ [],
144
+ [],
145
+ ]
146
+ `;
@@ -12,7 +12,6 @@ import { findTokenById, getTokenById } from "@ledgerhq/cryptoassets/tokens";
12
12
  import { VTHO_ADDRESS } from "../contracts/constants";
13
13
  import { GetAccountShape, mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
14
14
  import { Account } from "@ledgerhq/types-live";
15
- import { isAccountEmpty } from "./helpers";
16
15
 
17
16
  export const getAccountShape: GetAccountShape<Account> = async info => {
18
17
  const { initialAccount, currency, derivationMode } = info;
@@ -83,8 +82,5 @@ export const getAccountShape: GetAccountShape<Account> = async info => {
83
82
  ],
84
83
  };
85
84
 
86
- return {
87
- ...shape,
88
- used: !isAccountEmpty(shape),
89
- };
85
+ return shape;
90
86
  };
package/src/index.ts CHANGED
@@ -1,2 +1 @@
1
1
  export { createBridges } from "./bridge/index";
2
- export { isAccountEmpty } from "./bridge/helpers";
@@ -1,3 +0,0 @@
1
- import { Account } from "@ledgerhq/types-live";
2
- export declare function isAccountEmpty(account: Pick<Account, "subAccounts" | "balance" | "operationsCount">): boolean;
3
- //# sourceMappingURL=helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/bridge/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,wBAAgB,cAAc,CAC5B,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,iBAAiB,CAAC,WAItE"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isAccountEmpty = void 0;
4
- function isAccountEmpty(account) {
5
- const checkSubAccounts = account.subAccounts && !account.subAccounts[0].balance.isZero();
6
- return account.operationsCount === 0 && account.balance.isZero() && !checkSubAccounts;
7
- }
8
- exports.isAccountEmpty = isAccountEmpty;
9
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/bridge/helpers.ts"],"names":[],"mappings":";;;AAEA,SAAgB,cAAc,CAC5B,OAAqE;IAErE,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACzF,OAAO,OAAO,CAAC,eAAe,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC;AACxF,CAAC;AALD,wCAKC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=synchronisation.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"synchronisation.test.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.test.ts"],"names":[],"mappings":""}
@@ -1,201 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const faker_1 = require("@faker-js/faker");
7
- const account_1 = require("@ledgerhq/coin-framework/account");
8
- const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
9
- const cryptoassets_1 = require("@ledgerhq/cryptoassets");
10
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
11
- const node_1 = require("msw/node");
12
- const rxjs_1 = require("rxjs");
13
- const synchronisation_1 = require("./synchronisation");
14
- const mockGetAccount = jest.fn();
15
- const mockGetOperations = jest.fn();
16
- const mockGetTokenOperations = jest.fn();
17
- const mockGetLastBlockHeight = jest.fn();
18
- jest.mock("../network", () => {
19
- return {
20
- getAccount: () => mockGetAccount(),
21
- getLastBlockHeight: () => mockGetLastBlockHeight(),
22
- getOperations: () => mockGetOperations(),
23
- getTokenOperations: () => mockGetTokenOperations(),
24
- };
25
- });
26
- describe("scanAccounts", () => {
27
- const syncConfig = {
28
- paginationConfig: {},
29
- };
30
- const deviceId = "deviceId";
31
- const currency = (0, cryptoassets_1.getCryptoCurrencyById)("vechain");
32
- beforeAll(() => {
33
- (0, node_1.setupServer)().listen({ onUnhandledRequest: "error" });
34
- });
35
- beforeEach(() => {
36
- mockGetAccount.mockClear();
37
- mockGetLastBlockHeight.mockClear();
38
- mockGetOperations.mockClear();
39
- mockGetTokenOperations.mockClear();
40
- });
41
- it("returns the account info and its subaccount", async () => {
42
- // Given
43
- const blockHeight = 0;
44
- const address = "0x5066118c66793ED86bd379b50b20E32B0FC1aBf5";
45
- const addressResolver = {
46
- address,
47
- path: "path",
48
- publicKey: "publicKey",
49
- };
50
- mockGetAccount.mockResolvedValueOnce({ balance: "0", energy: "0" });
51
- mockGetLastBlockHeight.mockResolvedValueOnce(blockHeight);
52
- mockGetOperations.mockResolvedValueOnce([]);
53
- mockGetTokenOperations.mockResolvedValueOnce([]);
54
- // When
55
- const scanAccounts = (0, jsHelpers_1.makeScanAccounts)({
56
- getAccountShape: synchronisation_1.getAccountShape,
57
- getAddressFn: (_deviceId, _addressOpt) => Promise.resolve(addressResolver),
58
- });
59
- const result = await (0, rxjs_1.firstValueFrom)(scanAccounts({
60
- currency,
61
- deviceId,
62
- syncConfig,
63
- }));
64
- // Then
65
- expect(result).toEqual({
66
- account: {
67
- id: "js:2:vechain:0x5066118c66793ED86bd379b50b20E32B0FC1aBf5:vechain",
68
- balance: new bignumber_js_1.default("0"),
69
- balanceHistoryCache: {
70
- HOUR: {
71
- latestDate: expect.any(Number),
72
- balances: [],
73
- },
74
- DAY: {
75
- latestDate: expect.any(Number),
76
- balances: [],
77
- },
78
- WEEK: {
79
- latestDate: expect.any(Number),
80
- balances: [],
81
- },
82
- },
83
- blockHeight,
84
- creationDate: expect.any(Date),
85
- currency,
86
- derivationMode: "vechain",
87
- freshAddress: addressResolver.address,
88
- freshAddressPath: addressResolver.path,
89
- index: 0,
90
- lastSyncDate: expect.any(Date),
91
- operations: [],
92
- operationsCount: 0,
93
- pendingOperations: [],
94
- seedIdentifier: addressResolver.publicKey,
95
- spendableBalance: new bignumber_js_1.default("0"),
96
- swapHistory: [],
97
- type: "Account",
98
- used: false,
99
- feesCurrency: (0, cryptoassets_1.getTokenById)("vechain/vip180/vtho"),
100
- subAccounts: [
101
- {
102
- type: "TokenAccount",
103
- id: "js:2:vechain:0x5066118c66793ED86bd379b50b20E32B0FC1aBf5:vechain+vechain%2Fvip180%2Fvtho",
104
- parentId: "js:2:vechain:0x5066118c66793ED86bd379b50b20E32B0FC1aBf5:vechain",
105
- token: (0, cryptoassets_1.getTokenById)("vechain/vip180/vtho"),
106
- balance: new bignumber_js_1.default("0"),
107
- spendableBalance: new bignumber_js_1.default("0"),
108
- creationDate: expect.any(Date),
109
- operationsCount: 0,
110
- operations: [],
111
- blockHeight,
112
- pendingOperations: [],
113
- balanceHistoryCache: (0, account_1.createEmptyHistoryCache)(),
114
- swapHistory: [],
115
- },
116
- ],
117
- },
118
- type: "discovered",
119
- });
120
- });
121
- it("returns the balance in the main account and the energy in the subAccount", async () => {
122
- // Given
123
- const address = "0x5066118c66793ED86bd379b50b20E32B0FC1aBf5";
124
- const addressResolver = {
125
- address,
126
- path: "path",
127
- publicKey: "publicKey",
128
- };
129
- const balance = new bignumber_js_1.default(faker_1.faker.number.int({ min: 100_000, max: 1_000_000 }));
130
- const energy = new bignumber_js_1.default(faker_1.faker.number.int({ min: 100_000, max: 1_000_000 }));
131
- mockGetAccount.mockResolvedValueOnce({ balance, energy });
132
- mockGetOperations.mockResolvedValueOnce([]);
133
- mockGetTokenOperations.mockResolvedValueOnce([]);
134
- // When
135
- const scanAccounts = (0, jsHelpers_1.makeScanAccounts)({
136
- getAccountShape: synchronisation_1.getAccountShape,
137
- getAddressFn: (_deviceId, _addressOpt) => Promise.resolve(addressResolver),
138
- });
139
- const { account } = await (0, rxjs_1.firstValueFrom)(scanAccounts({
140
- currency,
141
- deviceId,
142
- syncConfig,
143
- }));
144
- // Then
145
- expect(account).toMatchObject({
146
- balance,
147
- spendableBalance: balance,
148
- subAccounts: [
149
- {
150
- balance: energy,
151
- spendableBalance: energy,
152
- },
153
- ],
154
- });
155
- });
156
- it.each([
157
- {
158
- balance: "100000",
159
- energy: "0",
160
- operations: [],
161
- },
162
- {
163
- balance: "0",
164
- energy: "100000",
165
- operations: [],
166
- },
167
- {
168
- balance: "0",
169
- energy: "0",
170
- operations: [
171
- {
172
- date: faker_1.faker.date.recent(),
173
- },
174
- ],
175
- },
176
- ])("returns the account flagged as used", async ({ balance, energy, operations }) => {
177
- // Given
178
- const address = "0x5066118c66793ED86bd379b50b20E32B0FC1aBf5";
179
- const addressResolver = {
180
- address,
181
- path: "path",
182
- publicKey: "publicKey",
183
- };
184
- mockGetAccount.mockResolvedValueOnce({ balance, energy });
185
- mockGetOperations.mockResolvedValueOnce(operations);
186
- mockGetTokenOperations.mockResolvedValueOnce([]);
187
- // When
188
- const scanAccounts = (0, jsHelpers_1.makeScanAccounts)({
189
- getAccountShape: synchronisation_1.getAccountShape,
190
- getAddressFn: (_deviceId, _addressOpt) => Promise.resolve(addressResolver),
191
- });
192
- const { account } = await (0, rxjs_1.firstValueFrom)(scanAccounts({
193
- currency,
194
- deviceId,
195
- syncConfig,
196
- }));
197
- // Then
198
- expect(account.used).toBe(true);
199
- });
200
- });
201
- //# sourceMappingURL=synchronisation.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"synchronisation.test.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Account } from "@ledgerhq/types-live";
2
- export declare function isAccountEmpty(account: Pick<Account, "subAccounts" | "balance" | "operationsCount">): boolean;
3
- //# sourceMappingURL=helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/bridge/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,wBAAgB,cAAc,CAC5B,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,iBAAiB,CAAC,WAItE"}
@@ -1,5 +0,0 @@
1
- export function isAccountEmpty(account) {
2
- const checkSubAccounts = account.subAccounts && !account.subAccounts[0].balance.isZero();
3
- return account.operationsCount === 0 && account.balance.isZero() && !checkSubAccounts;
4
- }
5
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/bridge/helpers.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAC5B,OAAqE;IAErE,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACzF,OAAO,OAAO,CAAC,eAAe,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC;AACxF,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=synchronisation.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"synchronisation.test.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.test.ts"],"names":[],"mappings":""}
@@ -1,196 +0,0 @@
1
- import { faker } from "@faker-js/faker";
2
- import { createEmptyHistoryCache } from "@ledgerhq/coin-framework/account";
3
- import { makeScanAccounts } from "@ledgerhq/coin-framework/bridge/jsHelpers";
4
- import { getCryptoCurrencyById, getTokenById } from "@ledgerhq/cryptoassets";
5
- import BigNumber from "bignumber.js";
6
- import { setupServer } from "msw/node";
7
- import { firstValueFrom } from "rxjs";
8
- import { getAccountShape } from "./synchronisation";
9
- const mockGetAccount = jest.fn();
10
- const mockGetOperations = jest.fn();
11
- const mockGetTokenOperations = jest.fn();
12
- const mockGetLastBlockHeight = jest.fn();
13
- jest.mock("../network", () => {
14
- return {
15
- getAccount: () => mockGetAccount(),
16
- getLastBlockHeight: () => mockGetLastBlockHeight(),
17
- getOperations: () => mockGetOperations(),
18
- getTokenOperations: () => mockGetTokenOperations(),
19
- };
20
- });
21
- describe("scanAccounts", () => {
22
- const syncConfig = {
23
- paginationConfig: {},
24
- };
25
- const deviceId = "deviceId";
26
- const currency = getCryptoCurrencyById("vechain");
27
- beforeAll(() => {
28
- setupServer().listen({ onUnhandledRequest: "error" });
29
- });
30
- beforeEach(() => {
31
- mockGetAccount.mockClear();
32
- mockGetLastBlockHeight.mockClear();
33
- mockGetOperations.mockClear();
34
- mockGetTokenOperations.mockClear();
35
- });
36
- it("returns the account info and its subaccount", async () => {
37
- // Given
38
- const blockHeight = 0;
39
- const address = "0x5066118c66793ED86bd379b50b20E32B0FC1aBf5";
40
- const addressResolver = {
41
- address,
42
- path: "path",
43
- publicKey: "publicKey",
44
- };
45
- mockGetAccount.mockResolvedValueOnce({ balance: "0", energy: "0" });
46
- mockGetLastBlockHeight.mockResolvedValueOnce(blockHeight);
47
- mockGetOperations.mockResolvedValueOnce([]);
48
- mockGetTokenOperations.mockResolvedValueOnce([]);
49
- // When
50
- const scanAccounts = makeScanAccounts({
51
- getAccountShape,
52
- getAddressFn: (_deviceId, _addressOpt) => Promise.resolve(addressResolver),
53
- });
54
- const result = await firstValueFrom(scanAccounts({
55
- currency,
56
- deviceId,
57
- syncConfig,
58
- }));
59
- // Then
60
- expect(result).toEqual({
61
- account: {
62
- id: "js:2:vechain:0x5066118c66793ED86bd379b50b20E32B0FC1aBf5:vechain",
63
- balance: new BigNumber("0"),
64
- balanceHistoryCache: {
65
- HOUR: {
66
- latestDate: expect.any(Number),
67
- balances: [],
68
- },
69
- DAY: {
70
- latestDate: expect.any(Number),
71
- balances: [],
72
- },
73
- WEEK: {
74
- latestDate: expect.any(Number),
75
- balances: [],
76
- },
77
- },
78
- blockHeight,
79
- creationDate: expect.any(Date),
80
- currency,
81
- derivationMode: "vechain",
82
- freshAddress: addressResolver.address,
83
- freshAddressPath: addressResolver.path,
84
- index: 0,
85
- lastSyncDate: expect.any(Date),
86
- operations: [],
87
- operationsCount: 0,
88
- pendingOperations: [],
89
- seedIdentifier: addressResolver.publicKey,
90
- spendableBalance: new BigNumber("0"),
91
- swapHistory: [],
92
- type: "Account",
93
- used: false,
94
- feesCurrency: getTokenById("vechain/vip180/vtho"),
95
- subAccounts: [
96
- {
97
- type: "TokenAccount",
98
- id: "js:2:vechain:0x5066118c66793ED86bd379b50b20E32B0FC1aBf5:vechain+vechain%2Fvip180%2Fvtho",
99
- parentId: "js:2:vechain:0x5066118c66793ED86bd379b50b20E32B0FC1aBf5:vechain",
100
- token: getTokenById("vechain/vip180/vtho"),
101
- balance: new BigNumber("0"),
102
- spendableBalance: new BigNumber("0"),
103
- creationDate: expect.any(Date),
104
- operationsCount: 0,
105
- operations: [],
106
- blockHeight,
107
- pendingOperations: [],
108
- balanceHistoryCache: createEmptyHistoryCache(),
109
- swapHistory: [],
110
- },
111
- ],
112
- },
113
- type: "discovered",
114
- });
115
- });
116
- it("returns the balance in the main account and the energy in the subAccount", async () => {
117
- // Given
118
- const address = "0x5066118c66793ED86bd379b50b20E32B0FC1aBf5";
119
- const addressResolver = {
120
- address,
121
- path: "path",
122
- publicKey: "publicKey",
123
- };
124
- const balance = new BigNumber(faker.number.int({ min: 100_000, max: 1_000_000 }));
125
- const energy = new BigNumber(faker.number.int({ min: 100_000, max: 1_000_000 }));
126
- mockGetAccount.mockResolvedValueOnce({ balance, energy });
127
- mockGetOperations.mockResolvedValueOnce([]);
128
- mockGetTokenOperations.mockResolvedValueOnce([]);
129
- // When
130
- const scanAccounts = makeScanAccounts({
131
- getAccountShape,
132
- getAddressFn: (_deviceId, _addressOpt) => Promise.resolve(addressResolver),
133
- });
134
- const { account } = await firstValueFrom(scanAccounts({
135
- currency,
136
- deviceId,
137
- syncConfig,
138
- }));
139
- // Then
140
- expect(account).toMatchObject({
141
- balance,
142
- spendableBalance: balance,
143
- subAccounts: [
144
- {
145
- balance: energy,
146
- spendableBalance: energy,
147
- },
148
- ],
149
- });
150
- });
151
- it.each([
152
- {
153
- balance: "100000",
154
- energy: "0",
155
- operations: [],
156
- },
157
- {
158
- balance: "0",
159
- energy: "100000",
160
- operations: [],
161
- },
162
- {
163
- balance: "0",
164
- energy: "0",
165
- operations: [
166
- {
167
- date: faker.date.recent(),
168
- },
169
- ],
170
- },
171
- ])("returns the account flagged as used", async ({ balance, energy, operations }) => {
172
- // Given
173
- const address = "0x5066118c66793ED86bd379b50b20E32B0FC1aBf5";
174
- const addressResolver = {
175
- address,
176
- path: "path",
177
- publicKey: "publicKey",
178
- };
179
- mockGetAccount.mockResolvedValueOnce({ balance, energy });
180
- mockGetOperations.mockResolvedValueOnce(operations);
181
- mockGetTokenOperations.mockResolvedValueOnce([]);
182
- // When
183
- const scanAccounts = makeScanAccounts({
184
- getAccountShape,
185
- getAddressFn: (_deviceId, _addressOpt) => Promise.resolve(addressResolver),
186
- });
187
- const { account } = await firstValueFrom(scanAccounts({
188
- currency,
189
- deviceId,
190
- syncConfig,
191
- }));
192
- // Then
193
- expect(account.used).toBe(true);
194
- });
195
- });
196
- //# sourceMappingURL=synchronisation.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"synchronisation.test.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { Account } from "@ledgerhq/types-live";
2
-
3
- export function isAccountEmpty(
4
- account: Pick<Account, "subAccounts" | "balance" | "operationsCount">,
5
- ) {
6
- const checkSubAccounts = account.subAccounts && !account.subAccounts[0].balance.isZero();
7
- return account.operationsCount === 0 && account.balance.isZero() && !checkSubAccounts;
8
- }
@@ -1,216 +0,0 @@
1
- import { faker } from "@faker-js/faker";
2
- import { createEmptyHistoryCache } from "@ledgerhq/coin-framework/account";
3
- import { makeScanAccounts } from "@ledgerhq/coin-framework/bridge/jsHelpers";
4
- import { getCryptoCurrencyById, getTokenById } from "@ledgerhq/cryptoassets";
5
- import BigNumber from "bignumber.js";
6
- import { setupServer } from "msw/node";
7
- import { firstValueFrom } from "rxjs";
8
- import { getAccountShape } from "./synchronisation";
9
- import { Operation } from "@ledgerhq/types-live";
10
-
11
- const mockGetAccount = jest.fn();
12
- const mockGetOperations = jest.fn();
13
- const mockGetTokenOperations = jest.fn();
14
- const mockGetLastBlockHeight = jest.fn();
15
-
16
- jest.mock("../network", () => {
17
- return {
18
- getAccount: () => mockGetAccount(),
19
- getLastBlockHeight: () => mockGetLastBlockHeight(),
20
- getOperations: () => mockGetOperations(),
21
- getTokenOperations: () => mockGetTokenOperations(),
22
- };
23
- });
24
-
25
- describe("scanAccounts", () => {
26
- const syncConfig = {
27
- paginationConfig: {},
28
- };
29
- const deviceId = "deviceId";
30
- const currency = getCryptoCurrencyById("vechain");
31
-
32
- beforeAll(() => {
33
- setupServer().listen({ onUnhandledRequest: "error" });
34
- });
35
-
36
- beforeEach(() => {
37
- mockGetAccount.mockClear();
38
- mockGetLastBlockHeight.mockClear();
39
- mockGetOperations.mockClear();
40
- mockGetTokenOperations.mockClear();
41
- });
42
-
43
- it("returns the account info and its subaccount", async () => {
44
- // Given
45
- const blockHeight = 0;
46
- const address = "0x5066118c66793ED86bd379b50b20E32B0FC1aBf5";
47
- const addressResolver = {
48
- address,
49
- path: "path",
50
- publicKey: "publicKey",
51
- };
52
- mockGetAccount.mockResolvedValueOnce({ balance: "0", energy: "0" });
53
- mockGetLastBlockHeight.mockResolvedValueOnce(blockHeight);
54
- mockGetOperations.mockResolvedValueOnce([]);
55
- mockGetTokenOperations.mockResolvedValueOnce([]);
56
-
57
- // When
58
- const scanAccounts = makeScanAccounts({
59
- getAccountShape,
60
- getAddressFn: (_deviceId, _addressOpt) => Promise.resolve(addressResolver),
61
- });
62
- const result = await firstValueFrom(
63
- scanAccounts({
64
- currency,
65
- deviceId,
66
- syncConfig,
67
- }),
68
- );
69
-
70
- // Then
71
- expect(result).toEqual({
72
- account: {
73
- id: "js:2:vechain:0x5066118c66793ED86bd379b50b20E32B0FC1aBf5:vechain",
74
- balance: new BigNumber("0"),
75
- balanceHistoryCache: {
76
- HOUR: {
77
- latestDate: expect.any(Number),
78
- balances: [],
79
- },
80
- DAY: {
81
- latestDate: expect.any(Number),
82
- balances: [],
83
- },
84
- WEEK: {
85
- latestDate: expect.any(Number),
86
- balances: [],
87
- },
88
- },
89
- blockHeight,
90
- creationDate: expect.any(Date),
91
- currency,
92
- derivationMode: "vechain",
93
- freshAddress: addressResolver.address,
94
- freshAddressPath: addressResolver.path,
95
- index: 0,
96
- lastSyncDate: expect.any(Date),
97
- operations: [],
98
- operationsCount: 0,
99
- pendingOperations: [],
100
- seedIdentifier: addressResolver.publicKey,
101
- spendableBalance: new BigNumber("0"),
102
- swapHistory: [],
103
- type: "Account",
104
- used: false,
105
- feesCurrency: getTokenById("vechain/vip180/vtho"),
106
- subAccounts: [
107
- {
108
- type: "TokenAccount",
109
- id: "js:2:vechain:0x5066118c66793ED86bd379b50b20E32B0FC1aBf5:vechain+vechain%2Fvip180%2Fvtho",
110
- parentId: "js:2:vechain:0x5066118c66793ED86bd379b50b20E32B0FC1aBf5:vechain",
111
- token: getTokenById("vechain/vip180/vtho"),
112
- balance: new BigNumber("0"),
113
- spendableBalance: new BigNumber("0"),
114
- creationDate: expect.any(Date),
115
- operationsCount: 0,
116
- operations: [],
117
- blockHeight,
118
- pendingOperations: [],
119
- balanceHistoryCache: createEmptyHistoryCache(),
120
- swapHistory: [],
121
- },
122
- ],
123
- },
124
- type: "discovered",
125
- });
126
- });
127
-
128
- it("returns the balance in the main account and the energy in the subAccount", async () => {
129
- // Given
130
- const address = "0x5066118c66793ED86bd379b50b20E32B0FC1aBf5";
131
- const addressResolver = {
132
- address,
133
- path: "path",
134
- publicKey: "publicKey",
135
- };
136
- const balance = new BigNumber(faker.number.int({ min: 100_000, max: 1_000_000 }));
137
- const energy = new BigNumber(faker.number.int({ min: 100_000, max: 1_000_000 }));
138
- mockGetAccount.mockResolvedValueOnce({ balance, energy });
139
- mockGetOperations.mockResolvedValueOnce([]);
140
- mockGetTokenOperations.mockResolvedValueOnce([]);
141
-
142
- // When
143
- const scanAccounts = makeScanAccounts({
144
- getAccountShape,
145
- getAddressFn: (_deviceId, _addressOpt) => Promise.resolve(addressResolver),
146
- });
147
- const { account } = await firstValueFrom(
148
- scanAccounts({
149
- currency,
150
- deviceId,
151
- syncConfig,
152
- }),
153
- );
154
-
155
- // Then
156
- expect(account).toMatchObject({
157
- balance,
158
- spendableBalance: balance,
159
- subAccounts: [
160
- {
161
- balance: energy,
162
- spendableBalance: energy,
163
- },
164
- ],
165
- });
166
- });
167
-
168
- it.each([
169
- {
170
- balance: "100000",
171
- energy: "0",
172
- operations: [] as unknown as Operation,
173
- },
174
- {
175
- balance: "0",
176
- energy: "100000",
177
- operations: [] as unknown as Operation,
178
- },
179
- {
180
- balance: "0",
181
- energy: "0",
182
- operations: [
183
- {
184
- date: faker.date.recent(),
185
- },
186
- ] as unknown as Operation,
187
- },
188
- ])("returns the account flagged as used", async ({ balance, energy, operations }) => {
189
- // Given
190
- const address = "0x5066118c66793ED86bd379b50b20E32B0FC1aBf5";
191
- const addressResolver = {
192
- address,
193
- path: "path",
194
- publicKey: "publicKey",
195
- };
196
- mockGetAccount.mockResolvedValueOnce({ balance, energy });
197
- mockGetOperations.mockResolvedValueOnce(operations);
198
- mockGetTokenOperations.mockResolvedValueOnce([]);
199
-
200
- // When
201
- const scanAccounts = makeScanAccounts({
202
- getAccountShape,
203
- getAddressFn: (_deviceId, _addressOpt) => Promise.resolve(addressResolver),
204
- });
205
- const { account } = await firstValueFrom(
206
- scanAccounts({
207
- currency,
208
- deviceId,
209
- syncConfig,
210
- }),
211
- );
212
-
213
- // Then
214
- expect(account.used).toBe(true);
215
- });
216
- });