@ledgerhq/coin-evm 2.0.0 → 2.0.1-nightly.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 (235) hide show
  1. package/.eslintrc.js +8 -6
  2. package/CHANGELOG.md +9 -0
  3. package/jest.config.js +5 -2
  4. package/lib/__tests__/coin-tester/anvil.d.ts +3 -0
  5. package/lib/__tests__/coin-tester/anvil.d.ts.map +1 -0
  6. package/lib/__tests__/coin-tester/anvil.js +55 -0
  7. package/lib/__tests__/coin-tester/anvil.js.map +1 -0
  8. package/lib/__tests__/coin-tester/helpers.d.ts +15 -0
  9. package/lib/__tests__/coin-tester/helpers.d.ts.map +1 -0
  10. package/lib/__tests__/coin-tester/helpers.js +47 -0
  11. package/lib/__tests__/coin-tester/helpers.js.map +1 -0
  12. package/lib/__tests__/coin-tester/indexer.d.ts +8 -0
  13. package/lib/__tests__/coin-tester/indexer.d.ts.map +1 -0
  14. package/lib/__tests__/coin-tester/indexer.js +205 -0
  15. package/lib/__tests__/coin-tester/indexer.js.map +1 -0
  16. package/lib/__tests__/coin-tester/scenarios/ethereum.d.ts +4 -0
  17. package/lib/__tests__/coin-tester/scenarios/ethereum.d.ts.map +1 -0
  18. package/lib/__tests__/coin-tester/scenarios/ethereum.js +214 -0
  19. package/lib/__tests__/coin-tester/scenarios/ethereum.js.map +1 -0
  20. package/lib/__tests__/coin-tester/scenarios/polygon.d.ts +4 -0
  21. package/lib/__tests__/coin-tester/scenarios/polygon.d.ts.map +1 -0
  22. package/lib/__tests__/coin-tester/scenarios/polygon.js +208 -0
  23. package/lib/__tests__/coin-tester/scenarios/polygon.js.map +1 -0
  24. package/lib/__tests__/coin-tester/scenarios.test.d.ts +2 -0
  25. package/lib/__tests__/coin-tester/scenarios.test.d.ts.map +1 -0
  26. package/lib/__tests__/coin-tester/scenarios.test.js +46 -0
  27. package/lib/__tests__/coin-tester/scenarios.test.js.map +1 -0
  28. package/lib/__tests__/fixtures/common.fixtures.d.ts +2 -2
  29. package/lib/__tests__/fixtures/common.fixtures.d.ts.map +1 -1
  30. package/lib/__tests__/fixtures/common.fixtures.js +0 -5
  31. package/lib/__tests__/fixtures/common.fixtures.js.map +1 -1
  32. package/lib/__tests__/fixtures/prepareTransaction.fixtures.d.ts +0 -1
  33. package/lib/__tests__/fixtures/prepareTransaction.fixtures.d.ts.map +1 -1
  34. package/lib/__tests__/fixtures/synchronization.fixtures.d.ts +35 -5
  35. package/lib/__tests__/fixtures/synchronization.fixtures.d.ts.map +1 -1
  36. package/lib/__tests__/fixtures/synchronization.fixtures.js +13 -2
  37. package/lib/__tests__/fixtures/synchronization.fixtures.js.map +1 -1
  38. package/lib/__tests__/fixtures/transaction.fixtures.d.ts +0 -1
  39. package/lib/__tests__/fixtures/transaction.fixtures.d.ts.map +1 -1
  40. package/lib/__tests__/unit/api/node/ledger.unit.test.js +3 -0
  41. package/lib/__tests__/unit/api/node/ledger.unit.test.js.map +1 -1
  42. package/lib/__tests__/unit/api/node/rpc.unit.test.js +23 -0
  43. package/lib/__tests__/unit/api/node/rpc.unit.test.js.map +1 -1
  44. package/lib/__tests__/unit/editTransaction/getFormattedFeeFields.test.js +1 -1
  45. package/lib/__tests__/unit/editTransaction/getFormattedFeeFields.test.js.map +1 -1
  46. package/lib/__tests__/unit/hw-getAddress.unit.test.js.map +1 -1
  47. package/lib/__tests__/unit/logic.unit.test.js +60 -0
  48. package/lib/__tests__/unit/logic.unit.test.js.map +1 -1
  49. package/lib/__tests__/unit/operation.test.js +1 -1
  50. package/lib/__tests__/unit/operation.test.js.map +1 -1
  51. package/lib/__tests__/unit/signOperation.unit.test.js.map +1 -1
  52. package/lib/__tests__/unit/synchronization.unit.test.js +16 -7
  53. package/lib/__tests__/unit/synchronization.unit.test.js.map +1 -1
  54. package/lib/api/node/ledger.d.ts.map +1 -1
  55. package/lib/api/node/ledger.js +3 -0
  56. package/lib/api/node/ledger.js.map +1 -1
  57. package/lib/api/node/rpc.common.d.ts.map +1 -1
  58. package/lib/api/node/rpc.common.js +4 -1
  59. package/lib/api/node/rpc.common.js.map +1 -1
  60. package/lib/api/node/types.d.ts +3 -0
  61. package/lib/api/node/types.d.ts.map +1 -1
  62. package/lib/api/node/types.js.map +1 -1
  63. package/lib/bridge/js.d.ts +4 -4
  64. package/lib/bridge/js.d.ts.map +1 -1
  65. package/lib/bridge/js.js.map +1 -1
  66. package/lib/datasets/ethereum1.d.ts.map +1 -1
  67. package/lib/datasets/ethereum1.js +0 -2
  68. package/lib/datasets/ethereum1.js.map +1 -1
  69. package/lib/editTransaction/getFormattedFeeFields.d.ts.map +1 -1
  70. package/lib/editTransaction/getFormattedFeeFields.js +8 -9
  71. package/lib/editTransaction/getFormattedFeeFields.js.map +1 -1
  72. package/lib/getTransactionStatus.d.ts.map +1 -1
  73. package/lib/getTransactionStatus.js.map +1 -1
  74. package/lib/hw-getAddress.d.ts +2 -2
  75. package/lib/hw-getAddress.d.ts.map +1 -1
  76. package/lib/hw-getAddress.js +1 -1
  77. package/lib/hw-getAddress.js.map +1 -1
  78. package/lib/hw-signMessage.d.ts +2 -2
  79. package/lib/hw-signMessage.d.ts.map +1 -1
  80. package/lib/hw-signMessage.js.map +1 -1
  81. package/lib/logic.d.ts +7 -4
  82. package/lib/logic.d.ts.map +1 -1
  83. package/lib/logic.js +15 -1
  84. package/lib/logic.js.map +1 -1
  85. package/lib/nftResolvers.js +1 -1
  86. package/lib/nftResolvers.js.map +1 -1
  87. package/lib/signOperation.d.ts +2 -2
  88. package/lib/signOperation.d.ts.map +1 -1
  89. package/lib/signOperation.js.map +1 -1
  90. package/lib/specs.d.ts.map +1 -1
  91. package/lib/specs.js +8 -7
  92. package/lib/specs.js.map +1 -1
  93. package/lib/synchronization.d.ts +3 -3
  94. package/lib/synchronization.d.ts.map +1 -1
  95. package/lib/synchronization.js +15 -7
  96. package/lib/synchronization.js.map +1 -1
  97. package/lib/transaction.d.ts +0 -1
  98. package/lib/transaction.d.ts.map +1 -1
  99. package/lib/transaction.js +8 -7
  100. package/lib/transaction.js.map +1 -1
  101. package/lib/types/transaction.d.ts +0 -1
  102. package/lib/types/transaction.d.ts.map +1 -1
  103. package/lib-es/__tests__/coin-tester/anvil.d.ts +3 -0
  104. package/lib-es/__tests__/coin-tester/anvil.d.ts.map +1 -0
  105. package/lib-es/__tests__/coin-tester/anvil.js +47 -0
  106. package/lib-es/__tests__/coin-tester/anvil.js.map +1 -0
  107. package/lib-es/__tests__/coin-tester/helpers.d.ts +15 -0
  108. package/lib-es/__tests__/coin-tester/helpers.d.ts.map +1 -0
  109. package/lib-es/__tests__/coin-tester/helpers.js +40 -0
  110. package/lib-es/__tests__/coin-tester/helpers.js.map +1 -0
  111. package/lib-es/__tests__/coin-tester/indexer.d.ts +8 -0
  112. package/lib-es/__tests__/coin-tester/indexer.d.ts.map +1 -0
  113. package/lib-es/__tests__/coin-tester/indexer.js +195 -0
  114. package/lib-es/__tests__/coin-tester/indexer.js.map +1 -0
  115. package/lib-es/__tests__/coin-tester/scenarios/ethereum.d.ts +4 -0
  116. package/lib-es/__tests__/coin-tester/scenarios/ethereum.d.ts.map +1 -0
  117. package/lib-es/__tests__/coin-tester/scenarios/ethereum.js +208 -0
  118. package/lib-es/__tests__/coin-tester/scenarios/ethereum.js.map +1 -0
  119. package/lib-es/__tests__/coin-tester/scenarios/polygon.d.ts +4 -0
  120. package/lib-es/__tests__/coin-tester/scenarios/polygon.d.ts.map +1 -0
  121. package/lib-es/__tests__/coin-tester/scenarios/polygon.js +202 -0
  122. package/lib-es/__tests__/coin-tester/scenarios/polygon.js.map +1 -0
  123. package/lib-es/__tests__/coin-tester/scenarios.test.d.ts +2 -0
  124. package/lib-es/__tests__/coin-tester/scenarios.test.d.ts.map +1 -0
  125. package/lib-es/__tests__/coin-tester/scenarios.test.js +44 -0
  126. package/lib-es/__tests__/coin-tester/scenarios.test.js.map +1 -0
  127. package/lib-es/__tests__/fixtures/common.fixtures.d.ts +2 -2
  128. package/lib-es/__tests__/fixtures/common.fixtures.d.ts.map +1 -1
  129. package/lib-es/__tests__/fixtures/common.fixtures.js +1 -6
  130. package/lib-es/__tests__/fixtures/common.fixtures.js.map +1 -1
  131. package/lib-es/__tests__/fixtures/prepareTransaction.fixtures.d.ts +0 -1
  132. package/lib-es/__tests__/fixtures/prepareTransaction.fixtures.d.ts.map +1 -1
  133. package/lib-es/__tests__/fixtures/synchronization.fixtures.d.ts +35 -5
  134. package/lib-es/__tests__/fixtures/synchronization.fixtures.d.ts.map +1 -1
  135. package/lib-es/__tests__/fixtures/synchronization.fixtures.js +12 -1
  136. package/lib-es/__tests__/fixtures/synchronization.fixtures.js.map +1 -1
  137. package/lib-es/__tests__/fixtures/transaction.fixtures.d.ts +0 -1
  138. package/lib-es/__tests__/fixtures/transaction.fixtures.d.ts.map +1 -1
  139. package/lib-es/__tests__/unit/api/node/ledger.unit.test.js +3 -0
  140. package/lib-es/__tests__/unit/api/node/ledger.unit.test.js.map +1 -1
  141. package/lib-es/__tests__/unit/api/node/rpc.unit.test.js +23 -0
  142. package/lib-es/__tests__/unit/api/node/rpc.unit.test.js.map +1 -1
  143. package/lib-es/__tests__/unit/editTransaction/getFormattedFeeFields.test.js +1 -1
  144. package/lib-es/__tests__/unit/editTransaction/getFormattedFeeFields.test.js.map +1 -1
  145. package/lib-es/__tests__/unit/hw-getAddress.unit.test.js.map +1 -1
  146. package/lib-es/__tests__/unit/logic.unit.test.js +61 -1
  147. package/lib-es/__tests__/unit/logic.unit.test.js.map +1 -1
  148. package/lib-es/__tests__/unit/operation.test.js +1 -1
  149. package/lib-es/__tests__/unit/operation.test.js.map +1 -1
  150. package/lib-es/__tests__/unit/signOperation.unit.test.js.map +1 -1
  151. package/lib-es/__tests__/unit/synchronization.unit.test.js +17 -8
  152. package/lib-es/__tests__/unit/synchronization.unit.test.js.map +1 -1
  153. package/lib-es/api/node/ledger.d.ts.map +1 -1
  154. package/lib-es/api/node/ledger.js +3 -0
  155. package/lib-es/api/node/ledger.js.map +1 -1
  156. package/lib-es/api/node/rpc.common.d.ts.map +1 -1
  157. package/lib-es/api/node/rpc.common.js +4 -1
  158. package/lib-es/api/node/rpc.common.js.map +1 -1
  159. package/lib-es/api/node/types.d.ts +3 -0
  160. package/lib-es/api/node/types.d.ts.map +1 -1
  161. package/lib-es/api/node/types.js.map +1 -1
  162. package/lib-es/bridge/js.d.ts +4 -4
  163. package/lib-es/bridge/js.d.ts.map +1 -1
  164. package/lib-es/bridge/js.js.map +1 -1
  165. package/lib-es/datasets/ethereum1.d.ts.map +1 -1
  166. package/lib-es/datasets/ethereum1.js +0 -2
  167. package/lib-es/datasets/ethereum1.js.map +1 -1
  168. package/lib-es/editTransaction/getFormattedFeeFields.d.ts.map +1 -1
  169. package/lib-es/editTransaction/getFormattedFeeFields.js +3 -4
  170. package/lib-es/editTransaction/getFormattedFeeFields.js.map +1 -1
  171. package/lib-es/getTransactionStatus.d.ts.map +1 -1
  172. package/lib-es/getTransactionStatus.js.map +1 -1
  173. package/lib-es/hw-getAddress.d.ts +2 -2
  174. package/lib-es/hw-getAddress.d.ts.map +1 -1
  175. package/lib-es/hw-getAddress.js +1 -1
  176. package/lib-es/hw-getAddress.js.map +1 -1
  177. package/lib-es/hw-signMessage.d.ts +2 -2
  178. package/lib-es/hw-signMessage.d.ts.map +1 -1
  179. package/lib-es/hw-signMessage.js.map +1 -1
  180. package/lib-es/logic.d.ts +7 -4
  181. package/lib-es/logic.d.ts.map +1 -1
  182. package/lib-es/logic.js +13 -0
  183. package/lib-es/logic.js.map +1 -1
  184. package/lib-es/nftResolvers.js +1 -1
  185. package/lib-es/nftResolvers.js.map +1 -1
  186. package/lib-es/signOperation.d.ts +2 -2
  187. package/lib-es/signOperation.d.ts.map +1 -1
  188. package/lib-es/signOperation.js.map +1 -1
  189. package/lib-es/specs.d.ts.map +1 -1
  190. package/lib-es/specs.js +3 -2
  191. package/lib-es/specs.js.map +1 -1
  192. package/lib-es/synchronization.d.ts +3 -3
  193. package/lib-es/synchronization.d.ts.map +1 -1
  194. package/lib-es/synchronization.js +13 -8
  195. package/lib-es/synchronization.js.map +1 -1
  196. package/lib-es/transaction.d.ts +0 -1
  197. package/lib-es/transaction.d.ts.map +1 -1
  198. package/lib-es/transaction.js +4 -3
  199. package/lib-es/transaction.js.map +1 -1
  200. package/lib-es/types/transaction.d.ts +0 -1
  201. package/lib-es/types/transaction.d.ts.map +1 -1
  202. package/package.json +13 -6
  203. package/src/__tests__/coin-tester/.env.example +7 -0
  204. package/src/__tests__/coin-tester/anvil.ts +55 -0
  205. package/src/__tests__/coin-tester/docker-compose.yml +9 -0
  206. package/src/__tests__/coin-tester/helpers.ts +43 -0
  207. package/src/__tests__/coin-tester/indexer.ts +218 -0
  208. package/src/__tests__/coin-tester/scenarios/ethereum.ts +243 -0
  209. package/src/__tests__/coin-tester/scenarios/polygon.ts +235 -0
  210. package/src/__tests__/coin-tester/scenarios.test.ts +38 -0
  211. package/src/__tests__/fixtures/common.fixtures.ts +2 -16
  212. package/src/__tests__/fixtures/synchronization.fixtures.ts +16 -1
  213. package/src/__tests__/unit/api/node/ledger.unit.test.ts +3 -0
  214. package/src/__tests__/unit/api/node/rpc.unit.test.ts +23 -0
  215. package/src/__tests__/unit/editTransaction/getFormattedFeeFields.test.ts +1 -1
  216. package/src/__tests__/unit/hw-getAddress.unit.test.ts +2 -5
  217. package/src/__tests__/unit/logic.unit.test.ts +74 -0
  218. package/src/__tests__/unit/operation.test.ts +1 -1
  219. package/src/__tests__/unit/signOperation.unit.test.ts +3 -3
  220. package/src/__tests__/unit/synchronization.unit.test.ts +17 -5
  221. package/src/api/node/ledger.ts +3 -0
  222. package/src/api/node/rpc.common.ts +7 -1
  223. package/src/api/node/types.ts +3 -0
  224. package/src/bridge/js.ts +4 -6
  225. package/src/datasets/ethereum1.ts +0 -2
  226. package/src/editTransaction/getFormattedFeeFields.ts +3 -4
  227. package/src/getTransactionStatus.ts +8 -3
  228. package/src/hw-getAddress.ts +4 -6
  229. package/src/hw-signMessage.ts +2 -2
  230. package/src/logic.ts +26 -9
  231. package/src/nftResolvers.ts +1 -1
  232. package/src/signOperation.ts +2 -4
  233. package/src/specs.ts +3 -5
  234. package/src/synchronization.ts +18 -10
  235. package/src/transaction.ts +4 -4
@@ -0,0 +1,214 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.scenarioEthereum = void 0;
16
+ const hw_app_eth_1 = __importDefault(require("@ledgerhq/hw-app-eth"));
17
+ const bignumber_js_1 = require("bignumber.js");
18
+ const ethers_1 = require("ethers");
19
+ const speculos_1 = require("@ledgerhq/coin-tester/signers/speculos");
20
+ const index_1 = require("@ledgerhq/coin-framework/account/index");
21
+ const currencies_1 = require("@ledgerhq/cryptoassets/currencies");
22
+ const js_1 = require("../../../bridge/js");
23
+ const common_fixtures_1 = require("../../fixtures/common.fixtures");
24
+ const hw_getAddress_1 = __importDefault(require("../../../hw-getAddress"));
25
+ const config_1 = require("../../../config");
26
+ const helpers_1 = require("../helpers");
27
+ const indexer_1 = require("../indexer");
28
+ const anvil_1 = require("../anvil");
29
+ const makeScenarioTransactions = ({ address, }) => {
30
+ const scenarioSendEthTransaction = {
31
+ name: "Send ethereum",
32
+ amount: new bignumber_js_1.BigNumber(100),
33
+ recipient: "0x6bfD74C0996F269Bcece59191EFf667b3dFD73b9",
34
+ expect: (previousAccount, currentAccount) => {
35
+ const [latestOperation] = currentAccount.operations;
36
+ expect(currentAccount.operations.length - previousAccount.operations.length).toBe(1);
37
+ expect(latestOperation.type).toBe("OUT");
38
+ expect(latestOperation.value.toFixed()).toBe(latestOperation.fee.plus(100).toFixed());
39
+ expect(currentAccount.balance.toFixed()).toBe(previousAccount.balance.minus(latestOperation.value).toFixed());
40
+ },
41
+ };
42
+ const scenarioSendUSDCTransaction = {
43
+ name: "Send USDC",
44
+ amount: new bignumber_js_1.BigNumber(ethers_1.ethers.utils.parseUnits("80", helpers_1.USDC_ON_ETHEREUM.units[0].magnitude).toString()),
45
+ recipient: "0x6bfD74C0996F269Bcece59191EFf667b3dFD73b9",
46
+ subAccountId: (0, index_1.encodeTokenAccountId)(`js:2:ethereum:${address}:`, helpers_1.USDC_ON_ETHEREUM),
47
+ expect: (previousAccount, currentAccount) => {
48
+ var _a, _b, _c;
49
+ const [latestOperation] = currentAccount.operations;
50
+ expect(currentAccount.operations.length - previousAccount.operations.length).toBe(1);
51
+ expect(latestOperation.type).toBe("FEES");
52
+ expect(latestOperation.value.toFixed()).toBe(latestOperation.fee.toFixed());
53
+ expect((_a = latestOperation.subOperations) === null || _a === void 0 ? void 0 : _a[0].type).toBe("OUT");
54
+ expect((_b = latestOperation.subOperations) === null || _b === void 0 ? void 0 : _b[0].value.toFixed()).toBe(ethers_1.ethers.utils.parseUnits("80", helpers_1.USDC_ON_ETHEREUM.units[0].magnitude).toString());
55
+ expect((_c = currentAccount.subAccounts) === null || _c === void 0 ? void 0 : _c[0].balance.toFixed()).toBe(ethers_1.ethers.utils.parseUnits("20", helpers_1.USDC_ON_ETHEREUM.units[0].magnitude).toString());
56
+ },
57
+ };
58
+ const scenarioSendERC721Transaction = {
59
+ name: "Send ERC721",
60
+ recipient: "0x6bfD74C0996F269Bcece59191EFf667b3dFD73b9",
61
+ mode: "erc721",
62
+ nft: {
63
+ tokenId: "3368",
64
+ contract: "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D",
65
+ quantity: new bignumber_js_1.BigNumber(1),
66
+ collectionName: "Bored Ape",
67
+ },
68
+ expect: (previousAccount, currentAccount) => {
69
+ var _a, _b;
70
+ const [latestOperation] = currentAccount.operations;
71
+ expect(currentAccount.operations.length - previousAccount.operations.length).toBe(1);
72
+ expect((_a = currentAccount.nfts) === null || _a === void 0 ? void 0 : _a.every(nft => nft.contract !== "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D")).toBe(true);
73
+ expect(latestOperation.type).toBe("FEES");
74
+ const lastNftOperation = (_b = latestOperation.nftOperations) === null || _b === void 0 ? void 0 : _b[0];
75
+ expect(lastNftOperation).toMatchObject({
76
+ contract: "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D",
77
+ tokenId: "3368",
78
+ value: new bignumber_js_1.BigNumber(1),
79
+ });
80
+ },
81
+ };
82
+ const scenarioSendERC1155Transaction = {
83
+ name: "Send ERC1155",
84
+ recipient: "0x6bfD74C0996F269Bcece59191EFf667b3dFD73b9",
85
+ mode: "erc1155",
86
+ nft: {
87
+ tokenId: "951",
88
+ collectionName: "Clone X",
89
+ contract: "0x348FC118bcC65a92dC033A951aF153d14D945312",
90
+ quantity: new bignumber_js_1.BigNumber(2),
91
+ },
92
+ expect: (previousAccount, currentAccount) => {
93
+ var _a, _b;
94
+ const [latestOperation] = currentAccount.operations;
95
+ expect(currentAccount.operations.length - previousAccount.operations.length).toBe(1);
96
+ expect((_a = currentAccount.nfts) === null || _a === void 0 ? void 0 : _a.every(nft => nft.contract !== "0x348FC118bcC65a92dC033A951aF153d14D945312")).toBe(true);
97
+ expect(latestOperation.type).toBe("FEES");
98
+ const lastNftOperation = (_b = latestOperation.nftOperations) === null || _b === void 0 ? void 0 : _b[0];
99
+ expect(lastNftOperation).toMatchObject({
100
+ contract: "0x348FC118bcC65a92dC033A951aF153d14D945312",
101
+ tokenId: "951",
102
+ value: new bignumber_js_1.BigNumber(2),
103
+ });
104
+ },
105
+ };
106
+ return [
107
+ scenarioSendEthTransaction,
108
+ scenarioSendUSDCTransaction,
109
+ scenarioSendERC721Transaction,
110
+ scenarioSendERC1155Transaction,
111
+ ];
112
+ };
113
+ const defaultNanoApp = { firmware: "2.2.3", version: "1.10.4" };
114
+ exports.scenarioEthereum = {
115
+ name: "Ledger Live Basic ETH Transactions",
116
+ setup: () => __awaiter(void 0, void 0, void 0, function* () {
117
+ const [{ transport, onSignerConfirmation }] = yield Promise.all([
118
+ (0, speculos_1.spawnSpeculos)(`/${defaultNanoApp.firmware}/Ethereum/app_${defaultNanoApp.version}.elf`),
119
+ (0, anvil_1.spawnAnvil)("https://rpc.ankr.com/eth"),
120
+ ]);
121
+ const provider = new ethers_1.providers.StaticJsonRpcProvider("http://127.0.0.1:8545");
122
+ const signerContext = (deviceId, fn) => fn(new hw_app_eth_1.default(transport));
123
+ (0, config_1.setCoinConfig)(() => ({
124
+ info: {
125
+ status: {
126
+ type: "active",
127
+ },
128
+ gasTracker: {
129
+ type: "ledger",
130
+ explorerId: "eth",
131
+ },
132
+ node: {
133
+ type: "external",
134
+ uri: "http://127.0.0.1:8545",
135
+ },
136
+ explorer: {
137
+ type: "ledger",
138
+ explorerId: "eth",
139
+ },
140
+ },
141
+ }));
142
+ const currencyBridge = (0, js_1.buildCurrencyBridge)(signerContext);
143
+ const accountBridge = (0, js_1.buildAccountBridge)(signerContext);
144
+ const getAddress = (0, hw_getAddress_1.default)(signerContext);
145
+ const { address } = yield getAddress("", {
146
+ path: "44'/60'/0'/0/0",
147
+ currency: (0, currencies_1.getCryptoCurrencyById)("ethereum"),
148
+ derivationMode: "",
149
+ });
150
+ const scenarioAccount = (0, common_fixtures_1.makeAccount)(address, helpers_1.ethereum);
151
+ yield (0, indexer_1.setBlock)();
152
+ // Binance account
153
+ yield (0, helpers_1.impersonnateAccount)({
154
+ provider,
155
+ data: helpers_1.ERC20Interface.encodeFunctionData("transfer", [
156
+ address,
157
+ ethers_1.ethers.utils.parseUnits("100", helpers_1.USDC_ON_ETHEREUM.units[0].magnitude),
158
+ ]),
159
+ to: helpers_1.USDC_ON_ETHEREUM.contractAddress,
160
+ addressToImpersonnate: "0x47ac0Fb4F2D84898e4D9E7b4DaB3C24507a6D503", // binance
161
+ });
162
+ // Bored Ape
163
+ yield (0, helpers_1.impersonnateAccount)({
164
+ provider,
165
+ data: helpers_1.ERC721Interface.encodeFunctionData("transferFrom", [
166
+ "0x440Bcc7a1CF465EAFaBaE301D1D7739cbFe09dDA",
167
+ address,
168
+ "3368",
169
+ ]),
170
+ to: "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D",
171
+ addressToImpersonnate: "0x440Bcc7a1CF465EAFaBaE301D1D7739cbFe09dDA",
172
+ });
173
+ // Clone X
174
+ yield (0, helpers_1.impersonnateAccount)({
175
+ provider,
176
+ data: helpers_1.ERC1155Interface.encodeFunctionData("safeTransferFrom", [
177
+ "0xa3cd1123f4860C0cC512C775Ab6DB6A3E3d1B1Ee",
178
+ address,
179
+ "951",
180
+ 2,
181
+ "0x",
182
+ ]),
183
+ to: "0x348fc118bcc65a92dc033a951af153d14d945312",
184
+ addressToImpersonnate: "0xa3cd1123f4860C0cC512C775Ab6DB6A3E3d1B1Ee",
185
+ });
186
+ yield (0, indexer_1.getLogs)();
187
+ return {
188
+ currencyBridge,
189
+ accountBridge,
190
+ account: scenarioAccount,
191
+ onSignerConfirmation,
192
+ };
193
+ }),
194
+ beforeAll: account => {
195
+ var _a, _b, _c;
196
+ expect(account.balance.toFixed()).toBe(ethers_1.ethers.utils.parseEther("10000").toString());
197
+ expect((_a = account.subAccounts) === null || _a === void 0 ? void 0 : _a[0].type).toBe("TokenAccount");
198
+ expect((_b = account.subAccounts) === null || _b === void 0 ? void 0 : _b[0].balance.toFixed()).toBe(ethers_1.ethers.utils.parseUnits("100", helpers_1.USDC_ON_ETHEREUM.units[0].magnitude).toString());
199
+ expect((_c = account.nfts) === null || _c === void 0 ? void 0 : _c.length).toBe(2);
200
+ },
201
+ getTransactions: address => makeScenarioTransactions({ address }),
202
+ afterAll: account => {
203
+ var _a, _b, _c;
204
+ expect((_a = account.subAccounts) === null || _a === void 0 ? void 0 : _a.length).toBe(1);
205
+ expect((_b = account.subAccounts) === null || _b === void 0 ? void 0 : _b[0].balance.toFixed()).toBe(ethers_1.ethers.utils.parseUnits("20", helpers_1.USDC_ON_ETHEREUM.units[0].magnitude).toString());
206
+ expect((_c = account.nfts) === null || _c === void 0 ? void 0 : _c.length).toBe(0);
207
+ expect(account.operations.length).toBe(7);
208
+ },
209
+ teardown: () => __awaiter(void 0, void 0, void 0, function* () {
210
+ yield Promise.all([(0, speculos_1.killSpeculos)(), (0, anvil_1.killAnvil)()]);
211
+ (0, indexer_1.clearExplorerAppendix)();
212
+ }),
213
+ };
214
+ //# sourceMappingURL=ethereum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ethereum.js","sourceRoot":"","sources":["../../../../src/__tests__/coin-tester/scenarios/ethereum.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Scenario } from "@ledgerhq/coin-tester/main";
2
+ import { Transaction as EvmTransaction } from "../../../types";
3
+ export declare const scenarioPolygon: Scenario<EvmTransaction>;
4
+ //# sourceMappingURL=polygon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/coin-tester/scenarios/polygon.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAuB,MAAM,4BAA4B,CAAC;AAI3E,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAuH/D,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,cAAc,CA0GpD,CAAC"}
@@ -0,0 +1,208 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.scenarioPolygon = void 0;
16
+ const hw_app_eth_1 = __importDefault(require("@ledgerhq/hw-app-eth"));
17
+ const bignumber_js_1 = require("bignumber.js");
18
+ const ethers_1 = require("ethers");
19
+ const speculos_1 = require("@ledgerhq/coin-tester/signers/speculos");
20
+ const index_1 = require("@ledgerhq/coin-framework/account/index");
21
+ const currencies_1 = require("@ledgerhq/cryptoassets/currencies");
22
+ const js_1 = require("../../../bridge/js");
23
+ const common_fixtures_1 = require("../../fixtures/common.fixtures");
24
+ const hw_getAddress_1 = __importDefault(require("../../../hw-getAddress"));
25
+ const config_1 = require("../../../config");
26
+ const helpers_1 = require("../helpers");
27
+ const indexer_1 = require("../indexer");
28
+ const anvil_1 = require("../anvil");
29
+ const makeScenarioTransactions = ({ address }) => {
30
+ const send1MaticTransaction = {
31
+ name: "Send 1 Matic",
32
+ amount: new bignumber_js_1.BigNumber(ethers_1.ethers.utils.parseEther("1").toString()),
33
+ recipient: ethers_1.ethers.constants.AddressZero,
34
+ expect: (previousAccount, currentAccount) => {
35
+ const [latestOperation] = currentAccount.operations;
36
+ expect(currentAccount.operations.length - previousAccount.operations.length).toBe(1);
37
+ expect(latestOperation.type).toBe("OUT");
38
+ expect(latestOperation.value.toFixed()).toBe(latestOperation.fee.plus(new bignumber_js_1.BigNumber("1000000000000000000")).toFixed());
39
+ expect(currentAccount.balance.toFixed()).toBe(previousAccount.balance.minus(latestOperation.value).toFixed());
40
+ expect(currentAccount.balance.toFixed()).toBe(previousAccount.balance.minus(latestOperation.value).toFixed());
41
+ },
42
+ };
43
+ const send80USDCTransaction = {
44
+ name: "Send 80 USDC",
45
+ recipient: "0x47ac0Fb4F2D84898e4D9E7b4DaB3C24507a6D503",
46
+ amount: new bignumber_js_1.BigNumber(ethers_1.ethers.utils.parseUnits("80", helpers_1.USDC_ON_POLYGON.units[0].magnitude).toString()),
47
+ subAccountId: (0, index_1.encodeTokenAccountId)(`js:2:polygon:${address}:`, helpers_1.USDC_ON_POLYGON),
48
+ expect: (previousAccount, currentAccount) => {
49
+ var _a, _b;
50
+ const [latestOperation] = currentAccount.operations;
51
+ expect(currentAccount.operations.length - previousAccount.operations.length).toBe(1);
52
+ expect(latestOperation.type).toBe("FEES");
53
+ expect((_a = latestOperation.subOperations) === null || _a === void 0 ? void 0 : _a[0].type).toBe("OUT");
54
+ expect((_b = latestOperation.subOperations) === null || _b === void 0 ? void 0 : _b[0].value.toFixed()).toBe(ethers_1.ethers.utils.parseUnits("80", helpers_1.USDC_ON_POLYGON.units[0].magnitude).toString());
55
+ },
56
+ };
57
+ const sendERC721Transaction = {
58
+ name: "Send ERC721",
59
+ recipient: "0x6bfD74C0996F269Bcece59191EFf667b3dFD73b9",
60
+ mode: "erc721",
61
+ nft: {
62
+ tokenId: "60528792147736380591631075209254468696410877323158186238633641510210472247297",
63
+ contract: "0x897B7A466905A7F0390ebCFf195F227f9DC2244c",
64
+ quantity: new bignumber_js_1.BigNumber(1),
65
+ collectionName: "Random Shit",
66
+ },
67
+ expect: (previousAccount, currentAccount) => {
68
+ var _a, _b;
69
+ const [latestOperation] = currentAccount.operations;
70
+ expect(currentAccount.operations.length - previousAccount.operations.length).toBe(1);
71
+ expect((_a = currentAccount.nfts) === null || _a === void 0 ? void 0 : _a.every(nft => nft.contract !== "0x897B7A466905A7F0390ebCFf195F227f9DC2244c")).toBe(true);
72
+ expect(latestOperation.type).toBe("FEES");
73
+ const lastNftOperation = (_b = latestOperation.nftOperations) === null || _b === void 0 ? void 0 : _b[0];
74
+ expect(lastNftOperation).toMatchObject({
75
+ contract: "0x897B7A466905A7F0390ebCFf195F227f9DC2244c",
76
+ tokenId: "60528792147736380591631075209254468696410877323158186238633641510210472247297",
77
+ value: new bignumber_js_1.BigNumber(1),
78
+ });
79
+ },
80
+ };
81
+ const sendERC1155Transaction = {
82
+ name: "Send ERC1155",
83
+ recipient: "0x6bfD74C0996F269Bcece59191EFf667b3dFD73b9",
84
+ mode: "erc1155",
85
+ nft: {
86
+ tokenId: "60528792147736380591631075209254468696410877323158186238633641510210472247298",
87
+ contract: "0x631EAEd1388D1ac5A46e327f3A893c19b4d48920",
88
+ quantity: new bignumber_js_1.BigNumber(10),
89
+ collectionName: "Random Shit 1155",
90
+ },
91
+ expect: (previousAccount, currentAccount) => {
92
+ var _a, _b;
93
+ const [latestOperation] = currentAccount.operations;
94
+ expect(currentAccount.operations.length - previousAccount.operations.length).toBe(1);
95
+ expect((_a = currentAccount.nfts) === null || _a === void 0 ? void 0 : _a.every(nft => nft.contract !== "0x631EAEd1388D1ac5A46e327f3A893c19b4d48920")).toBe(true);
96
+ expect(latestOperation.type).toBe("FEES");
97
+ const lastNftOperation = (_b = latestOperation.nftOperations) === null || _b === void 0 ? void 0 : _b[0];
98
+ expect(lastNftOperation).toMatchObject({
99
+ contract: "0x631EAEd1388D1ac5A46e327f3A893c19b4d48920",
100
+ tokenId: "60528792147736380591631075209254468696410877323158186238633641510210472247298",
101
+ value: new bignumber_js_1.BigNumber(10),
102
+ });
103
+ },
104
+ };
105
+ return [
106
+ send1MaticTransaction,
107
+ send80USDCTransaction,
108
+ sendERC721Transaction,
109
+ sendERC1155Transaction,
110
+ ];
111
+ };
112
+ const defaultNanoApp = { firmware: "2.2.3", version: "1.10.4" };
113
+ exports.scenarioPolygon = {
114
+ name: "Ledger Live Basic Polygon Transactions",
115
+ setup: () => __awaiter(void 0, void 0, void 0, function* () {
116
+ const [{ transport, onSignerConfirmation }] = yield Promise.all([
117
+ (0, speculos_1.spawnSpeculos)(`/${defaultNanoApp.firmware}/Ethereum/app_${defaultNanoApp.version}.elf`),
118
+ (0, anvil_1.spawnAnvil)("https://rpc.ankr.com/polygon"),
119
+ ]);
120
+ const provider = new ethers_1.providers.StaticJsonRpcProvider("http://127.0.0.1:8545");
121
+ const signerContext = (deviceId, fn) => fn(new hw_app_eth_1.default(transport));
122
+ (0, config_1.setCoinConfig)(() => ({
123
+ info: {
124
+ status: {
125
+ type: "active",
126
+ },
127
+ node: {
128
+ type: "external",
129
+ uri: "http://127.0.0.1:8545",
130
+ },
131
+ gasTracker: {
132
+ type: "ledger",
133
+ explorerId: "matic",
134
+ },
135
+ explorer: {
136
+ type: "ledger",
137
+ explorerId: "matic",
138
+ },
139
+ },
140
+ }));
141
+ const currencyBridge = (0, js_1.buildCurrencyBridge)(signerContext);
142
+ const accountBridge = (0, js_1.buildAccountBridge)(signerContext);
143
+ const getAddress = (0, hw_getAddress_1.default)(signerContext);
144
+ const { address } = yield getAddress("", {
145
+ path: "44'/60'/0'/0/0",
146
+ currency: (0, currencies_1.getCryptoCurrencyById)("polygon"),
147
+ derivationMode: "",
148
+ });
149
+ const scenarioAccount = (0, common_fixtures_1.makeAccount)(address, helpers_1.polygon);
150
+ yield (0, indexer_1.setBlock)();
151
+ // Send 100 USDC to the scenario account
152
+ yield (0, helpers_1.impersonnateAccount)({
153
+ provider,
154
+ to: helpers_1.USDC_ON_POLYGON.contractAddress,
155
+ data: helpers_1.ERC20Interface.encodeFunctionData("transfer", [
156
+ address,
157
+ ethers_1.ethers.utils.parseUnits("100", helpers_1.USDC_ON_POLYGON.units[0].magnitude),
158
+ ]),
159
+ addressToImpersonnate: "0x45dDa9cb7c25131DF268515131f647d726f50608",
160
+ });
161
+ // Send 1 ERC721 to the scenario account
162
+ yield (0, helpers_1.impersonnateAccount)({
163
+ provider,
164
+ to: "0x897B7A466905A7F0390ebCFf195F227f9DC2244c",
165
+ data: helpers_1.ERC721Interface.encodeFunctionData("transferFrom", [
166
+ "0x85d2151147d8347aac0a8cd07bb6cc363fcf88e1",
167
+ address,
168
+ "60528792147736380591631075209254468696410877323158186238633641510210472247297",
169
+ ]),
170
+ addressToImpersonnate: "0x85d2151147d8347aac0a8cd07bb6cc363fcf88e1",
171
+ });
172
+ // Send 10 ERC1155 to the scenario account
173
+ yield (0, helpers_1.impersonnateAccount)({
174
+ provider,
175
+ to: "0x631EAEd1388D1ac5A46e327f3A893c19b4d48920",
176
+ data: helpers_1.ERC1155Interface.encodeFunctionData("safeTransferFrom", [
177
+ "0x85d2151147d8347aac0a8cd07bb6cc363fcf88e1",
178
+ address,
179
+ "60528792147736380591631075209254468696410877323158186238633641510210472247298",
180
+ 10,
181
+ "0x",
182
+ ]),
183
+ addressToImpersonnate: "0x85d2151147d8347aac0a8cd07bb6cc363fcf88e1",
184
+ });
185
+ yield (0, indexer_1.getLogs)();
186
+ return { currencyBridge, accountBridge, account: scenarioAccount, onSignerConfirmation };
187
+ }),
188
+ getTransactions: address => makeScenarioTransactions({ address }),
189
+ beforeAll: account => {
190
+ var _a, _b, _c;
191
+ expect(account.balance.toFixed()).toBe(ethers_1.ethers.utils.parseEther("10000").toString());
192
+ expect((_a = account.subAccounts) === null || _a === void 0 ? void 0 : _a[0].type).toBe("TokenAccount");
193
+ expect((_b = account.subAccounts) === null || _b === void 0 ? void 0 : _b[0].balance.toFixed()).toBe(ethers_1.ethers.utils.parseUnits("100", helpers_1.USDC_ON_POLYGON.units[0].magnitude).toString());
194
+ expect((_c = account.nfts) === null || _c === void 0 ? void 0 : _c.length).toBe(2);
195
+ },
196
+ afterAll: account => {
197
+ var _a, _b, _c;
198
+ expect((_a = account.subAccounts) === null || _a === void 0 ? void 0 : _a.length).toBe(1);
199
+ expect((_b = account.subAccounts) === null || _b === void 0 ? void 0 : _b[0].balance.toFixed()).toBe(ethers_1.ethers.utils.parseUnits("20", helpers_1.USDC_ON_POLYGON.units[0].magnitude).toString());
200
+ expect((_c = account.nfts) === null || _c === void 0 ? void 0 : _c.length).toBe(0);
201
+ expect(account.operations.length).toBe(7);
202
+ },
203
+ teardown: () => __awaiter(void 0, void 0, void 0, function* () {
204
+ yield Promise.all([(0, speculos_1.killSpeculos)(), (0, anvil_1.killAnvil)()]);
205
+ (0, indexer_1.clearExplorerAppendix)();
206
+ }),
207
+ };
208
+ //# sourceMappingURL=polygon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polygon.js","sourceRoot":"","sources":["../../../../src/__tests__/coin-tester/scenarios/polygon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=scenarios.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenarios.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/coin-tester/scenarios.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const speculos_1 = require("@ledgerhq/coin-tester/lib/signers/speculos");
13
+ const main_1 = require("@ledgerhq/coin-tester/main");
14
+ const anvil_1 = require("./anvil");
15
+ const ethereum_1 = require("./scenarios/ethereum");
16
+ const polygon_1 = require("./scenarios/polygon");
17
+ global.console = require("console");
18
+ jest.setTimeout(100000);
19
+ describe("EVM Deterministic Tester", () => {
20
+ it("scenario Ethereum", () => __awaiter(void 0, void 0, void 0, function* () {
21
+ try {
22
+ yield (0, main_1.executeScenario)(ethereum_1.scenarioEthereum);
23
+ }
24
+ catch (e) {
25
+ if (e != "done") {
26
+ yield Promise.all([(0, speculos_1.killSpeculos)(), (0, anvil_1.killAnvil)()]);
27
+ throw e;
28
+ }
29
+ }
30
+ }));
31
+ it("scenario polygon", () => __awaiter(void 0, void 0, void 0, function* () {
32
+ try {
33
+ yield (0, main_1.executeScenario)(polygon_1.scenarioPolygon);
34
+ }
35
+ catch (e) {
36
+ if (e != "done") {
37
+ yield Promise.all([(0, speculos_1.killSpeculos)(), (0, anvil_1.killAnvil)()]);
38
+ throw e;
39
+ }
40
+ }
41
+ }));
42
+ });
43
+ ["exit", "SIGINT", "SIGQUIT", "SIGTERM", "SIGUSR1", "SIGUSR2", "uncaughtException"].map(e => process.on(e, () => __awaiter(void 0, void 0, void 0, function* () {
44
+ yield Promise.all([(0, speculos_1.killSpeculos)(), (0, anvil_1.killAnvil)()]);
45
+ })));
46
+ //# sourceMappingURL=scenarios.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenarios.test.js","sourceRoot":"","sources":["../../../src/__tests__/coin-tester/scenarios.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,yEAA0E;AAC1E,qDAA6D;AAC7D,mCAAoC;AACpC,mDAAwD;AACxD,iDAAsD;AAEtD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACpC,IAAI,CAAC,UAAU,CAAC,MAAO,CAAC,CAAC;AAEzB,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,mBAAmB,EAAE,GAAS,EAAE;QACjC,IAAI;YACF,MAAM,IAAA,sBAAe,EAAC,2BAAgB,CAAC,CAAC;SACzC;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,IAAI,MAAM,EAAE;gBACf,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAA,uBAAY,GAAE,EAAE,IAAA,iBAAS,GAAE,CAAC,CAAC,CAAC;gBACjD,MAAM,CAAC,CAAC;aACT;SACF;IACH,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,GAAS,EAAE;QAChC,IAAI;YACF,MAAM,IAAA,sBAAe,EAAC,yBAAe,CAAC,CAAC;SACxC;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,IAAI,MAAM,EAAE;gBACf,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAA,uBAAY,GAAE,EAAE,IAAA,iBAAS,GAAE,CAAC,CAAC,CAAC;gBACjD,MAAM,CAAC,CAAC;aACT;SACF;IACH,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC1F,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAS,EAAE;IACvB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAA,uBAAY,GAAE,EAAE,IAAA,iBAAS,GAAE,CAAC,CAAC,CAAC;AACnD,CAAC,CAAA,CAAC,CACH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { CryptoCurrency, TokenCurrency } from "@ledgerhq/types-cryptoassets";
2
- import { Account, Operation, ProtoNFT, SubAccount, TokenAccount } from "@ledgerhq/types-live";
3
- export declare const makeAccount: (address: string, currency: CryptoCurrency, subAccounts?: SubAccount[]) => Account;
2
+ import { Account, Operation, ProtoNFT, TokenAccount } from "@ledgerhq/types-live";
3
+ export declare const makeAccount: (address: string, currency: CryptoCurrency, subAccounts?: TokenAccount[]) => Account;
4
4
  export declare const makeTokenAccount: (address: string, tokenCurrency: TokenCurrency) => TokenAccount;
5
5
  export declare const makeOperation: (partialOp?: Partial<Operation>) => Operation;
6
6
  export declare const makeNftOperation: (partialOp?: Partial<Operation>, operationIndex?: number) => Operation;
@@ -1 +1 @@
1
- {"version":3,"file":"common.fixtures.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/common.fixtures.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EACL,OAAO,EAEP,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,EACb,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,WAAW,YACb,MAAM,YACL,cAAc,gBACX,UAAU,EAAE,KACxB,OA0DF,CAAC;AAEF,eAAO,MAAM,gBAAgB,YAAa,MAAM,iBAAiB,aAAa,KAAG,YAkChF,CAAC;AAEF,eAAO,MAAM,aAAa,eAAgB,QAAQ,SAAS,CAAC,KAAG,SA2B9D,CAAC;AAEF,eAAO,MAAM,gBAAgB,eACf,QAAQ,SAAS,CAAC,mBACb,MAAM,KACtB,SA+BF,CAAC;AAEF,eAAO,MAAM,OAAO,gBAAiB,QAAQ,QAAQ,CAAC,KAAG,QASrD,CAAC;AAEL,eAAO,MAAM,UAAU,4BAOtB,CAAC"}
1
+ {"version":3,"file":"common.fixtures.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/common.fixtures.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAkB,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAElG,eAAO,MAAM,WAAW,YACb,MAAM,YACL,cAAc,gBACX,YAAY,EAAE,KAC1B,OAqDF,CAAC;AAEF,eAAO,MAAM,gBAAgB,YAAa,MAAM,iBAAiB,aAAa,KAAG,YAiChF,CAAC;AAEF,eAAO,MAAM,aAAa,eAAgB,QAAQ,SAAS,CAAC,KAAG,SA2B9D,CAAC;AAEF,eAAO,MAAM,gBAAgB,eACf,QAAQ,SAAS,CAAC,mBACb,MAAM,KACtB,SA+BF,CAAC;AAEF,eAAO,MAAM,OAAO,gBAAiB,QAAQ,QAAQ,CAAC,KAAG,QASrD,CAAC;AAEL,eAAO,MAAM,UAAU,4BAOtB,CAAC"}
@@ -26,22 +26,18 @@ const makeAccount = (address, currency, subAccounts = []) => {
26
26
  });
27
27
  const account = {
28
28
  type: "Account",
29
- name: currency.name + " " + (derivationMode || "legacy") + " " + (0, index_1.shortAddressPreview)(xpubOrAddress),
30
29
  xpub: xpubOrAddress,
31
30
  subAccounts,
32
31
  seedIdentifier: xpubOrAddress,
33
- starred: true,
34
32
  used: true,
35
33
  swapHistory: [],
36
34
  id,
37
35
  derivationMode,
38
36
  currency,
39
- unit: currency.units[0],
40
37
  index,
41
38
  nfts: [],
42
39
  freshAddress: xpubOrAddress,
43
40
  freshAddressPath,
44
- freshAddresses: [],
45
41
  creationDate: new Date(),
46
42
  lastSyncDate: new Date(0),
47
43
  blockHeight: 0,
@@ -83,7 +79,6 @@ const makeTokenAccount = (address, tokenCurrency) => {
83
79
  operationsCount: 0,
84
80
  operations: [],
85
81
  pendingOperations: [],
86
- starred: false,
87
82
  balanceHistoryCache: {
88
83
  HOUR: {
89
84
  latestDate: null,
@@ -1 +1 @@
1
- {"version":3,"file":"common.fixtures.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/common.fixtures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.fixtures.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/common.fixtures.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { Account } from "@ledgerhq/types-live";
3
2
  import { EvmNftTransaction, Transaction as EvmTransaction } from "../../types";
4
3
  export declare const tokenAccount: import("@ledgerhq/types-live").TokenAccount;
@@ -1 +1 @@
1
- {"version":3,"file":"prepareTransaction.fixtures.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/prepareTransaction.fixtures.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAc/E,eAAO,MAAM,YAAY,6CAAsE,CAAC;AAChG,eAAO,MAAM,OAAO,SAElB,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,cAYxB,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,cAG7B,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,cAAc,GAAG,iBAS5C,CAAC;AAEH,eAAO,MAAM,YAAY,YACd,OAAO,eACH,cAAc,QACrB,OAAO,GAAG,QAAQ,GAAG,SAAS,KACnC,MAAM,GAAG,SAmCX,CAAC"}
1
+ {"version":3,"file":"prepareTransaction.fixtures.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/prepareTransaction.fixtures.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,aAAa,CAAC;AAc/E,eAAO,MAAM,YAAY,6CAAsE,CAAC;AAChG,eAAO,MAAM,OAAO,SAElB,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,cAYxB,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,cAG7B,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,cAAc,GAAG,iBAS5C,CAAC;AAEH,eAAO,MAAM,YAAY,YACd,OAAO,eACH,cAAc,QACrB,OAAO,GAAG,QAAQ,GAAG,SAAS,KACnC,MAAM,GAAG,SAmCX,CAAC"}