@ledgerhq/coin-vechain 2.11.0-nightly.8 → 2.11.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 (179) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +20 -68
  3. package/lib/bridge/broadcast.test.d.ts +2 -0
  4. package/lib/bridge/broadcast.test.d.ts.map +1 -0
  5. package/lib/bridge/broadcast.test.js +188 -0
  6. package/lib/bridge/broadcast.test.js.map +1 -0
  7. package/lib/bridge/buildOptimisticOperatioin.test.d.ts +2 -0
  8. package/lib/bridge/buildOptimisticOperatioin.test.d.ts.map +1 -0
  9. package/lib/bridge/buildOptimisticOperatioin.test.js +286 -0
  10. package/lib/bridge/buildOptimisticOperatioin.test.js.map +1 -0
  11. package/lib/bridge/createTransaction.test.d.ts +2 -0
  12. package/lib/bridge/createTransaction.test.d.ts.map +1 -0
  13. package/lib/bridge/createTransaction.test.js +167 -0
  14. package/lib/bridge/createTransaction.test.js.map +1 -0
  15. package/lib/bridge/estimateMaxSpendable.test.d.ts +2 -0
  16. package/lib/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
  17. package/lib/bridge/estimateMaxSpendable.test.js +269 -0
  18. package/lib/bridge/estimateMaxSpendable.test.js.map +1 -0
  19. package/lib/bridge/getTransactionStatus.test.d.ts +2 -0
  20. package/lib/bridge/getTransactionStatus.test.d.ts.map +1 -0
  21. package/lib/bridge/getTransactionStatus.test.js +282 -0
  22. package/lib/bridge/getTransactionStatus.test.js.map +1 -0
  23. package/lib/bridge/helpers.test.d.ts +2 -0
  24. package/lib/bridge/helpers.test.d.ts.map +1 -0
  25. package/lib/bridge/helpers.test.js +298 -0
  26. package/lib/bridge/helpers.test.js.map +1 -0
  27. package/lib/bridge/prepareTransaction.test.d.ts +2 -0
  28. package/lib/bridge/prepareTransaction.test.d.ts.map +1 -0
  29. package/lib/bridge/prepareTransaction.test.js +277 -0
  30. package/lib/bridge/prepareTransaction.test.js.map +1 -0
  31. package/lib/bridge/signOperation.test.d.ts +2 -0
  32. package/lib/bridge/signOperation.test.d.ts.map +1 -0
  33. package/lib/bridge/signOperation.test.js +295 -0
  34. package/lib/bridge/signOperation.test.js.map +1 -0
  35. package/lib/bridge/synchronisation.test.d.ts +2 -0
  36. package/lib/bridge/synchronisation.test.d.ts.map +1 -0
  37. package/lib/bridge/synchronisation.test.js +201 -0
  38. package/lib/bridge/synchronisation.test.js.map +1 -0
  39. package/lib/bridge/transaction.test.d.ts +2 -0
  40. package/lib/bridge/transaction.test.d.ts.map +1 -0
  41. package/lib/bridge/transaction.test.js +353 -0
  42. package/lib/bridge/transaction.test.js.map +1 -0
  43. package/lib/common-logic/calculateClauses.test.d.ts +2 -0
  44. package/lib/common-logic/calculateClauses.test.d.ts.map +1 -0
  45. package/lib/common-logic/calculateClauses.test.js +156 -0
  46. package/lib/common-logic/calculateClauses.test.js.map +1 -0
  47. package/lib/common-logic/calculateGasFees.test.d.ts +2 -0
  48. package/lib/common-logic/calculateGasFees.test.d.ts.map +1 -0
  49. package/lib/common-logic/calculateGasFees.test.js +279 -0
  50. package/lib/common-logic/calculateGasFees.test.js.map +1 -0
  51. package/lib/common-logic/calculateTransactionInfo.test.d.ts +2 -0
  52. package/lib/common-logic/calculateTransactionInfo.test.d.ts.map +1 -0
  53. package/lib/common-logic/calculateTransactionInfo.test.js +314 -0
  54. package/lib/common-logic/calculateTransactionInfo.test.js.map +1 -0
  55. package/lib/common-logic/estimateGas.test.d.ts +2 -0
  56. package/lib/common-logic/estimateGas.test.d.ts.map +1 -0
  57. package/lib/common-logic/estimateGas.test.js +129 -0
  58. package/lib/common-logic/estimateGas.test.js.map +1 -0
  59. package/lib/common-logic/fixPrefixCase.test.d.ts +2 -0
  60. package/lib/common-logic/fixPrefixCase.test.d.ts.map +1 -0
  61. package/lib/common-logic/fixPrefixCase.test.js +46 -0
  62. package/lib/common-logic/fixPrefixCase.test.js.map +1 -0
  63. package/lib/common-logic/generateNonce.test.d.ts +2 -0
  64. package/lib/common-logic/generateNonce.test.d.ts.map +1 -0
  65. package/lib/common-logic/generateNonce.test.js +59 -0
  66. package/lib/common-logic/generateNonce.test.js.map +1 -0
  67. package/lib/common-logic/getThorClient.test.d.ts +2 -0
  68. package/lib/common-logic/getThorClient.test.d.ts.map +1 -0
  69. package/lib/common-logic/getThorClient.test.js +53 -0
  70. package/lib/common-logic/getThorClient.test.js.map +1 -0
  71. package/lib/common-logic/mapTransfersToOperations.test.d.ts +2 -0
  72. package/lib/common-logic/mapTransfersToOperations.test.d.ts.map +1 -0
  73. package/lib/common-logic/mapTransfersToOperations.test.js +274 -0
  74. package/lib/common-logic/mapTransfersToOperations.test.js.map +1 -0
  75. package/lib/common-logic/padAddress.test.d.ts +2 -0
  76. package/lib/common-logic/padAddress.test.d.ts.map +1 -0
  77. package/lib/common-logic/padAddress.test.js +59 -0
  78. package/lib/common-logic/padAddress.test.js.map +1 -0
  79. package/lib/common-logic/parseAddress.test.d.ts +2 -0
  80. package/lib/common-logic/parseAddress.test.d.ts.map +1 -0
  81. package/lib/common-logic/parseAddress.test.js +97 -0
  82. package/lib/common-logic/parseAddress.test.js.map +1 -0
  83. package/lib/signer/getAddress.test.d.ts +2 -0
  84. package/lib/signer/getAddress.test.d.ts.map +1 -0
  85. package/lib/signer/getAddress.test.js +357 -0
  86. package/lib/signer/getAddress.test.js.map +1 -0
  87. package/lib/signer/signMessage.test.d.ts +2 -0
  88. package/lib/signer/signMessage.test.d.ts.map +1 -0
  89. package/lib/signer/signMessage.test.js +242 -0
  90. package/lib/signer/signMessage.test.js.map +1 -0
  91. package/lib-es/bridge/broadcast.test.d.ts +2 -0
  92. package/lib-es/bridge/broadcast.test.d.ts.map +1 -0
  93. package/lib-es/bridge/broadcast.test.js +183 -0
  94. package/lib-es/bridge/broadcast.test.js.map +1 -0
  95. package/lib-es/bridge/buildOptimisticOperatioin.test.d.ts +2 -0
  96. package/lib-es/bridge/buildOptimisticOperatioin.test.d.ts.map +1 -0
  97. package/lib-es/bridge/buildOptimisticOperatioin.test.js +281 -0
  98. package/lib-es/bridge/buildOptimisticOperatioin.test.js.map +1 -0
  99. package/lib-es/bridge/createTransaction.test.d.ts +2 -0
  100. package/lib-es/bridge/createTransaction.test.d.ts.map +1 -0
  101. package/lib-es/bridge/createTransaction.test.js +162 -0
  102. package/lib-es/bridge/createTransaction.test.js.map +1 -0
  103. package/lib-es/bridge/estimateMaxSpendable.test.d.ts +2 -0
  104. package/lib-es/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
  105. package/lib-es/bridge/estimateMaxSpendable.test.js +264 -0
  106. package/lib-es/bridge/estimateMaxSpendable.test.js.map +1 -0
  107. package/lib-es/bridge/getTransactionStatus.test.d.ts +2 -0
  108. package/lib-es/bridge/getTransactionStatus.test.d.ts.map +1 -0
  109. package/lib-es/bridge/getTransactionStatus.test.js +277 -0
  110. package/lib-es/bridge/getTransactionStatus.test.js.map +1 -0
  111. package/lib-es/bridge/helpers.test.d.ts +2 -0
  112. package/lib-es/bridge/helpers.test.d.ts.map +1 -0
  113. package/lib-es/bridge/helpers.test.js +293 -0
  114. package/lib-es/bridge/helpers.test.js.map +1 -0
  115. package/lib-es/bridge/prepareTransaction.test.d.ts +2 -0
  116. package/lib-es/bridge/prepareTransaction.test.d.ts.map +1 -0
  117. package/lib-es/bridge/prepareTransaction.test.js +272 -0
  118. package/lib-es/bridge/prepareTransaction.test.js.map +1 -0
  119. package/lib-es/bridge/signOperation.test.d.ts +2 -0
  120. package/lib-es/bridge/signOperation.test.d.ts.map +1 -0
  121. package/lib-es/bridge/signOperation.test.js +290 -0
  122. package/lib-es/bridge/signOperation.test.js.map +1 -0
  123. package/lib-es/bridge/synchronisation.test.d.ts +2 -0
  124. package/lib-es/bridge/synchronisation.test.d.ts.map +1 -0
  125. package/lib-es/bridge/synchronisation.test.js +196 -0
  126. package/lib-es/bridge/synchronisation.test.js.map +1 -0
  127. package/lib-es/bridge/transaction.test.d.ts +2 -0
  128. package/lib-es/bridge/transaction.test.d.ts.map +1 -0
  129. package/lib-es/bridge/transaction.test.js +347 -0
  130. package/lib-es/bridge/transaction.test.js.map +1 -0
  131. package/lib-es/common-logic/calculateClauses.test.d.ts +2 -0
  132. package/lib-es/common-logic/calculateClauses.test.d.ts.map +1 -0
  133. package/lib-es/common-logic/calculateClauses.test.js +151 -0
  134. package/lib-es/common-logic/calculateClauses.test.js.map +1 -0
  135. package/lib-es/common-logic/calculateGasFees.test.d.ts +2 -0
  136. package/lib-es/common-logic/calculateGasFees.test.d.ts.map +1 -0
  137. package/lib-es/common-logic/calculateGasFees.test.js +274 -0
  138. package/lib-es/common-logic/calculateGasFees.test.js.map +1 -0
  139. package/lib-es/common-logic/calculateTransactionInfo.test.d.ts +2 -0
  140. package/lib-es/common-logic/calculateTransactionInfo.test.d.ts.map +1 -0
  141. package/lib-es/common-logic/calculateTransactionInfo.test.js +309 -0
  142. package/lib-es/common-logic/calculateTransactionInfo.test.js.map +1 -0
  143. package/lib-es/common-logic/estimateGas.test.d.ts +2 -0
  144. package/lib-es/common-logic/estimateGas.test.d.ts.map +1 -0
  145. package/lib-es/common-logic/estimateGas.test.js +127 -0
  146. package/lib-es/common-logic/estimateGas.test.js.map +1 -0
  147. package/lib-es/common-logic/fixPrefixCase.test.d.ts +2 -0
  148. package/lib-es/common-logic/fixPrefixCase.test.d.ts.map +1 -0
  149. package/lib-es/common-logic/fixPrefixCase.test.js +44 -0
  150. package/lib-es/common-logic/fixPrefixCase.test.js.map +1 -0
  151. package/lib-es/common-logic/generateNonce.test.d.ts +2 -0
  152. package/lib-es/common-logic/generateNonce.test.d.ts.map +1 -0
  153. package/lib-es/common-logic/generateNonce.test.js +57 -0
  154. package/lib-es/common-logic/generateNonce.test.js.map +1 -0
  155. package/lib-es/common-logic/getThorClient.test.d.ts +2 -0
  156. package/lib-es/common-logic/getThorClient.test.d.ts.map +1 -0
  157. package/lib-es/common-logic/getThorClient.test.js +51 -0
  158. package/lib-es/common-logic/getThorClient.test.js.map +1 -0
  159. package/lib-es/common-logic/mapTransfersToOperations.test.d.ts +2 -0
  160. package/lib-es/common-logic/mapTransfersToOperations.test.d.ts.map +1 -0
  161. package/lib-es/common-logic/mapTransfersToOperations.test.js +269 -0
  162. package/lib-es/common-logic/mapTransfersToOperations.test.js.map +1 -0
  163. package/lib-es/common-logic/padAddress.test.d.ts +2 -0
  164. package/lib-es/common-logic/padAddress.test.d.ts.map +1 -0
  165. package/lib-es/common-logic/padAddress.test.js +57 -0
  166. package/lib-es/common-logic/padAddress.test.js.map +1 -0
  167. package/lib-es/common-logic/parseAddress.test.d.ts +2 -0
  168. package/lib-es/common-logic/parseAddress.test.d.ts.map +1 -0
  169. package/lib-es/common-logic/parseAddress.test.js +95 -0
  170. package/lib-es/common-logic/parseAddress.test.js.map +1 -0
  171. package/lib-es/signer/getAddress.test.d.ts +2 -0
  172. package/lib-es/signer/getAddress.test.d.ts.map +1 -0
  173. package/lib-es/signer/getAddress.test.js +352 -0
  174. package/lib-es/signer/getAddress.test.js.map +1 -0
  175. package/lib-es/signer/signMessage.test.d.ts +2 -0
  176. package/lib-es/signer/signMessage.test.d.ts.map +1 -0
  177. package/lib-es/signer/signMessage.test.js +240 -0
  178. package/lib-es/signer/signMessage.test.js.map +1 -0
  179. package/package.json +9 -9
@@ -0,0 +1,201 @@
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.findTokenById)("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.findTokenById)("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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synchronisation.test.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transaction.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.test.d.ts","sourceRoot":"","sources":["../../src/bridge/transaction.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,353 @@
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 bignumber_js_1 = __importDefault(require("bignumber.js"));
7
+ const transaction_1 = require("./transaction");
8
+ const index_1 = require("@ledgerhq/coin-framework/account/index");
9
+ const index_2 = require("@ledgerhq/coin-framework/currencies/index");
10
+ const serialization_1 = require("@ledgerhq/coin-framework/serialization");
11
+ // Mock dependencies
12
+ jest.mock("@ledgerhq/coin-framework/account/index");
13
+ jest.mock("@ledgerhq/coin-framework/currencies/index");
14
+ jest.mock("@ledgerhq/coin-framework/serialization");
15
+ const mockedGetAccountCurrency = jest.mocked(index_1.getAccountCurrency);
16
+ const mockedFormatCurrencyUnit = jest.mocked(index_2.formatCurrencyUnit);
17
+ const mockedFromTransactionCommonRaw = jest.mocked(serialization_1.fromTransactionCommonRaw);
18
+ const mockedFromTransactionStatusRawCommon = jest.mocked(serialization_1.fromTransactionStatusRawCommon);
19
+ const mockedToTransactionCommonRaw = jest.mocked(serialization_1.toTransactionCommonRaw);
20
+ const mockedToTransactionStatusRawCommon = jest.mocked(serialization_1.toTransactionStatusRawCommon);
21
+ describe("transaction utilities", () => {
22
+ const mockAccount = {
23
+ type: "Account",
24
+ id: "vechain:1:0x123:",
25
+ seedIdentifier: "seed123",
26
+ derivationMode: "",
27
+ index: 0,
28
+ freshAddress: "0x742d35Cc6634C0532925a3b8D0B251d8c1743eC4",
29
+ freshAddressPath: "44'/818'/0'/0/0",
30
+ used: true,
31
+ balance: new bignumber_js_1.default("5000000000000000000"),
32
+ spendableBalance: new bignumber_js_1.default("5000000000000000000"),
33
+ creationDate: new Date("2022-01-01"),
34
+ blockHeight: 12345,
35
+ currency: {
36
+ name: "VeChain",
37
+ units: [{ name: "VET", code: "VET", magnitude: 18 }],
38
+ },
39
+ operationsCount: 10,
40
+ operations: [],
41
+ pendingOperations: [],
42
+ lastSyncDate: new Date("2022-01-01"),
43
+ balanceHistoryCache: { HOUR: {}, DAY: {}, WEEK: {} },
44
+ swapHistory: [],
45
+ subAccounts: [],
46
+ };
47
+ const mockTransaction = {
48
+ family: "vechain",
49
+ recipient: "0x456789012345678901234567890123456789abcd",
50
+ amount: new bignumber_js_1.default("1000000000000000000"), // 1 VET
51
+ estimatedFees: "210000000000000000",
52
+ useAllAmount: false,
53
+ body: {
54
+ chainTag: 74,
55
+ blockRef: "0x00000000000b2bce",
56
+ expiration: 18,
57
+ clauses: [],
58
+ maxFeePerGas: 10000000000000,
59
+ maxPriorityFeePerGas: 1000000000000,
60
+ gas: 21000,
61
+ dependsOn: null,
62
+ nonce: "0x12345678",
63
+ },
64
+ };
65
+ beforeEach(() => {
66
+ jest.clearAllMocks();
67
+ mockedGetAccountCurrency.mockReturnValue(mockAccount.currency);
68
+ mockedFormatCurrencyUnit.mockReturnValue("1 VET");
69
+ });
70
+ describe("formatTransaction", () => {
71
+ it("should format transaction with amount", () => {
72
+ const result = (0, transaction_1.formatTransaction)(mockTransaction, mockAccount);
73
+ expect(result).toBe("SEND 1 VET TO 0x456789012345678901234567890123456789abcd");
74
+ expect(mockedGetAccountCurrency).toHaveBeenCalledWith(mockAccount);
75
+ expect(mockedFormatCurrencyUnit).toHaveBeenCalledWith(mockAccount.currency.units[0], mockTransaction.amount, {
76
+ showCode: true,
77
+ disableRounding: true,
78
+ });
79
+ });
80
+ it("should format transaction with useAllAmount", () => {
81
+ const useAllAmountTransaction = { ...mockTransaction, useAllAmount: true };
82
+ const result = (0, transaction_1.formatTransaction)(useAllAmountTransaction, mockAccount);
83
+ expect(result).toBe("SEND MAX TO 0x456789012345678901234567890123456789abcd");
84
+ expect(mockedFormatCurrencyUnit).not.toHaveBeenCalled();
85
+ });
86
+ it("should format transaction with zero amount", () => {
87
+ const zeroAmountTransaction = {
88
+ ...mockTransaction,
89
+ amount: new bignumber_js_1.default("0"),
90
+ useAllAmount: false,
91
+ };
92
+ const result = (0, transaction_1.formatTransaction)(zeroAmountTransaction, mockAccount);
93
+ expect(result).toBe("SEND TO 0x456789012345678901234567890123456789abcd");
94
+ expect(mockedFormatCurrencyUnit).not.toHaveBeenCalled();
95
+ });
96
+ it("should handle different recipients", () => {
97
+ const differentRecipientTx = {
98
+ ...mockTransaction,
99
+ recipient: "0x999888777666555444333222111000aaabbbcccd",
100
+ };
101
+ const result = (0, transaction_1.formatTransaction)(differentRecipientTx, mockAccount);
102
+ expect(result).toBe("SEND 1 VET TO 0x999888777666555444333222111000aaabbbcccd");
103
+ });
104
+ it("should handle different formatted amounts", () => {
105
+ mockedFormatCurrencyUnit.mockReturnValue("2.5 VET");
106
+ const result = (0, transaction_1.formatTransaction)(mockTransaction, mockAccount);
107
+ expect(result).toBe("SEND 2.5 VET TO 0x456789012345678901234567890123456789abcd");
108
+ });
109
+ it("should handle empty recipient", () => {
110
+ const emptyRecipientTx = { ...mockTransaction, recipient: "" };
111
+ const result = (0, transaction_1.formatTransaction)(emptyRecipientTx, mockAccount);
112
+ expect(result).toBe("SEND 1 VET TO ");
113
+ });
114
+ it("should handle very large amounts", () => {
115
+ const largeAmountTx = {
116
+ ...mockTransaction,
117
+ amount: new bignumber_js_1.default("1000000000000000000000000"),
118
+ };
119
+ mockedFormatCurrencyUnit.mockReturnValue("1000000 VET");
120
+ const result = (0, transaction_1.formatTransaction)(largeAmountTx, mockAccount);
121
+ expect(result).toBe("SEND 1000000 VET TO 0x456789012345678901234567890123456789abcd");
122
+ });
123
+ });
124
+ describe("fromTransactionRaw", () => {
125
+ const mockTransactionRaw = {
126
+ family: "vechain",
127
+ recipient: "0x456789012345678901234567890123456789abcd",
128
+ amount: "1000000000000000000",
129
+ estimatedFees: "210000000000000000",
130
+ body: {
131
+ chainTag: 74,
132
+ blockRef: "0x00000000000b2bce",
133
+ expiration: 18,
134
+ clauses: [],
135
+ maxFeePerGas: 10000000000000,
136
+ maxPriorityFeePerGas: 1000000000000,
137
+ gas: 21000,
138
+ dependsOn: null,
139
+ nonce: "0x12345678",
140
+ },
141
+ };
142
+ const mockCommonData = {
143
+ mode: "send",
144
+ useAllAmount: false,
145
+ amount: new bignumber_js_1.default("1000000000000000000"),
146
+ recipient: "0x456789012345678901234567890123456789abcd",
147
+ };
148
+ it("should deserialize transaction from raw", () => {
149
+ mockedFromTransactionCommonRaw.mockReturnValue(mockCommonData);
150
+ const result = (0, transaction_1.fromTransactionRaw)(mockTransactionRaw);
151
+ expect(result).toEqual({
152
+ ...mockTransactionRaw,
153
+ ...mockCommonData,
154
+ });
155
+ expect(mockedFromTransactionCommonRaw).toHaveBeenCalledWith(mockTransactionRaw);
156
+ });
157
+ it("should merge raw data with common data", () => {
158
+ const extendedCommonData = {
159
+ mode: "send",
160
+ useAllAmount: true,
161
+ amount: new bignumber_js_1.default("1000000000000000000"),
162
+ recipient: "0x456789012345678901234567890123456789abcd",
163
+ subAccountId: "vechain:1:0x123:+vtho",
164
+ };
165
+ mockedFromTransactionCommonRaw.mockReturnValue(extendedCommonData);
166
+ const result = (0, transaction_1.fromTransactionRaw)(mockTransactionRaw);
167
+ expect(result).toEqual({
168
+ ...mockTransactionRaw,
169
+ ...extendedCommonData,
170
+ });
171
+ });
172
+ });
173
+ describe("toTransactionRaw", () => {
174
+ const mockCommonRawData = {
175
+ mode: "send",
176
+ useAllAmount: false,
177
+ amount: "1000000000000000000",
178
+ recipient: "0x456789012345678901234567890123456789abcd",
179
+ };
180
+ it("should serialize transaction to raw", () => {
181
+ mockedToTransactionCommonRaw.mockReturnValue(mockCommonRawData);
182
+ const result = (0, transaction_1.toTransactionRaw)(mockTransaction);
183
+ expect(result).toEqual({
184
+ ...mockTransaction,
185
+ ...mockCommonRawData,
186
+ });
187
+ expect(mockedToTransactionCommonRaw).toHaveBeenCalledWith(mockTransaction);
188
+ });
189
+ it("should merge transaction data with common raw data", () => {
190
+ const extendedCommonRawData = {
191
+ mode: "send",
192
+ useAllAmount: true,
193
+ amount: "1000000000000000000",
194
+ recipient: "0x456789012345678901234567890123456789abcd",
195
+ subAccountId: "vechain:1:0x123:+vtho",
196
+ };
197
+ mockedToTransactionCommonRaw.mockReturnValue(extendedCommonRawData);
198
+ const result = (0, transaction_1.toTransactionRaw)(mockTransaction);
199
+ expect(result).toEqual({
200
+ ...mockTransaction,
201
+ ...extendedCommonRawData,
202
+ });
203
+ });
204
+ });
205
+ describe("fromTransactionStatusRaw", () => {
206
+ const mockTransactionStatusRaw = {
207
+ errors: {},
208
+ warnings: {},
209
+ estimatedFees: "210000000000000000",
210
+ amount: "1000000000000000000",
211
+ totalSpent: "1000000000000000000",
212
+ };
213
+ const mockCommonStatusData = {
214
+ errors: {},
215
+ warnings: {},
216
+ estimatedFees: new bignumber_js_1.default("210000000000000000"),
217
+ amount: new bignumber_js_1.default("1000000000000000000"),
218
+ totalSpent: new bignumber_js_1.default("1000000000000000000"),
219
+ txid: "0x123",
220
+ };
221
+ it("should deserialize transaction status from raw", () => {
222
+ mockedFromTransactionStatusRawCommon.mockReturnValue(mockCommonStatusData);
223
+ const result = (0, transaction_1.fromTransactionStatusRaw)(mockTransactionStatusRaw);
224
+ expect(result).toEqual({
225
+ ...mockTransactionStatusRaw,
226
+ ...mockCommonStatusData,
227
+ });
228
+ expect(mockedFromTransactionStatusRawCommon).toHaveBeenCalledWith(mockTransactionStatusRaw);
229
+ });
230
+ it("should merge raw status data with common data", () => {
231
+ const extendedCommonStatusData = {
232
+ errors: {},
233
+ warnings: {},
234
+ estimatedFees: new bignumber_js_1.default("210000000000000000"),
235
+ amount: new bignumber_js_1.default("1000000000000000000"),
236
+ totalSpent: new bignumber_js_1.default("1000000000000000000"),
237
+ txid: "0x456",
238
+ gasLimit: new bignumber_js_1.default("21000"),
239
+ };
240
+ mockedFromTransactionStatusRawCommon.mockReturnValue(extendedCommonStatusData);
241
+ const result = (0, transaction_1.fromTransactionStatusRaw)(mockTransactionStatusRaw);
242
+ expect(result).toEqual({
243
+ ...mockTransactionStatusRaw,
244
+ ...extendedCommonStatusData,
245
+ });
246
+ });
247
+ });
248
+ describe("toTransactionStatusRaw", () => {
249
+ const mockTransactionStatus = {
250
+ errors: {},
251
+ warnings: {},
252
+ estimatedFees: new bignumber_js_1.default("210000000000000000"),
253
+ amount: new bignumber_js_1.default("1000000000000000000"),
254
+ totalSpent: new bignumber_js_1.default("1000000000000000000"),
255
+ };
256
+ const mockCommonStatusRawData = {
257
+ errors: {},
258
+ warnings: {},
259
+ estimatedFees: "210000000000000000",
260
+ amount: "1000000000000000000",
261
+ totalSpent: "1000000000000000000",
262
+ txid: "0x789",
263
+ };
264
+ it("should serialize transaction status to raw", () => {
265
+ mockedToTransactionStatusRawCommon.mockReturnValue(mockCommonStatusRawData);
266
+ const result = (0, transaction_1.toTransactionStatusRaw)(mockTransactionStatus);
267
+ expect(result).toEqual({
268
+ ...mockTransactionStatus,
269
+ ...mockCommonStatusRawData,
270
+ });
271
+ expect(mockedToTransactionStatusRawCommon).toHaveBeenCalledWith(mockTransactionStatus);
272
+ });
273
+ it("should merge transaction status data with common raw data", () => {
274
+ const extendedCommonStatusRawData = {
275
+ errors: {},
276
+ warnings: {},
277
+ estimatedFees: "210000000000000000",
278
+ amount: "1000000000000000000",
279
+ totalSpent: "1000000000000000000",
280
+ txid: "0xabc",
281
+ gasLimit: "21000",
282
+ };
283
+ mockedToTransactionStatusRawCommon.mockReturnValue(extendedCommonStatusRawData);
284
+ const result = (0, transaction_1.toTransactionStatusRaw)(mockTransactionStatus);
285
+ expect(result).toEqual({
286
+ ...mockTransactionStatus,
287
+ ...extendedCommonStatusRawData,
288
+ });
289
+ });
290
+ });
291
+ describe("default export", () => {
292
+ it("should export all functions in default object", () => {
293
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
294
+ const defaultExport = require("./transaction").default;
295
+ expect(defaultExport).toEqual({
296
+ formatTransaction: transaction_1.formatTransaction,
297
+ formatTransactionStatus: expect.any(Function), // This is imported from coin-framework
298
+ fromTransactionRaw: // This is imported from coin-framework
299
+ transaction_1.fromTransactionRaw,
300
+ toTransactionRaw: transaction_1.toTransactionRaw,
301
+ fromTransactionStatusRaw: transaction_1.fromTransactionStatusRaw,
302
+ toTransactionStatusRaw: transaction_1.toTransactionStatusRaw,
303
+ });
304
+ });
305
+ });
306
+ describe("integration with currency formatting", () => {
307
+ it("should call formatCurrencyUnit with correct parameters", () => {
308
+ const customAmount = new bignumber_js_1.default("2500000000000000000"); // 2.5 VET
309
+ const customTransaction = { ...mockTransaction, amount: customAmount };
310
+ (0, transaction_1.formatTransaction)(customTransaction, mockAccount);
311
+ expect(mockedFormatCurrencyUnit).toHaveBeenCalledWith(mockAccount.currency.units[0], customAmount, {
312
+ showCode: true,
313
+ disableRounding: true,
314
+ });
315
+ });
316
+ it("should use the first currency unit", () => {
317
+ const multiUnitCurrency = {
318
+ ...mockAccount.currency,
319
+ units: [
320
+ { name: "VET", code: "VET", magnitude: 18 },
321
+ { name: "Wei", code: "wei", magnitude: 0 },
322
+ ],
323
+ };
324
+ const customAccount = { ...mockAccount, currency: multiUnitCurrency };
325
+ mockedGetAccountCurrency.mockReturnValue(multiUnitCurrency);
326
+ (0, transaction_1.formatTransaction)(mockTransaction, customAccount);
327
+ expect(mockedFormatCurrencyUnit).toHaveBeenCalledWith(multiUnitCurrency.units[0], // Should use the first unit
328
+ mockTransaction.amount, expect.any(Object));
329
+ });
330
+ });
331
+ describe("error handling", () => {
332
+ it("should handle getAccountCurrency errors", () => {
333
+ mockedGetAccountCurrency.mockImplementation(() => {
334
+ throw new Error("Currency not found");
335
+ });
336
+ expect(() => (0, transaction_1.formatTransaction)(mockTransaction, mockAccount)).toThrow("Currency not found");
337
+ });
338
+ it("should handle formatCurrencyUnit errors", () => {
339
+ mockedFormatCurrencyUnit.mockImplementation(() => {
340
+ throw new Error("Formatting error");
341
+ });
342
+ expect(() => (0, transaction_1.formatTransaction)(mockTransaction, mockAccount)).toThrow("Formatting error");
343
+ });
344
+ it("should handle fromTransactionCommonRaw errors", () => {
345
+ const mockTransactionRaw = {};
346
+ mockedFromTransactionCommonRaw.mockImplementation(() => {
347
+ throw new Error("Deserialization error");
348
+ });
349
+ expect(() => (0, transaction_1.fromTransactionRaw)(mockTransactionRaw)).toThrow("Deserialization error");
350
+ });
351
+ });
352
+ });
353
+ //# sourceMappingURL=transaction.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.test.js","sourceRoot":"","sources":["../../src/bridge/transaction.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=calculateClauses.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateClauses.test.d.ts","sourceRoot":"","sources":["../../src/common-logic/calculateClauses.test.ts"],"names":[],"mappings":""}