@ledgerhq/coin-vechain 2.11.0 → 2.11.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 (178) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/package.json +6 -6
  3. package/lib/bridge/broadcast.test.d.ts +0 -2
  4. package/lib/bridge/broadcast.test.d.ts.map +0 -1
  5. package/lib/bridge/broadcast.test.js +0 -188
  6. package/lib/bridge/broadcast.test.js.map +0 -1
  7. package/lib/bridge/buildOptimisticOperatioin.test.d.ts +0 -2
  8. package/lib/bridge/buildOptimisticOperatioin.test.d.ts.map +0 -1
  9. package/lib/bridge/buildOptimisticOperatioin.test.js +0 -286
  10. package/lib/bridge/buildOptimisticOperatioin.test.js.map +0 -1
  11. package/lib/bridge/createTransaction.test.d.ts +0 -2
  12. package/lib/bridge/createTransaction.test.d.ts.map +0 -1
  13. package/lib/bridge/createTransaction.test.js +0 -167
  14. package/lib/bridge/createTransaction.test.js.map +0 -1
  15. package/lib/bridge/estimateMaxSpendable.test.d.ts +0 -2
  16. package/lib/bridge/estimateMaxSpendable.test.d.ts.map +0 -1
  17. package/lib/bridge/estimateMaxSpendable.test.js +0 -269
  18. package/lib/bridge/estimateMaxSpendable.test.js.map +0 -1
  19. package/lib/bridge/getTransactionStatus.test.d.ts +0 -2
  20. package/lib/bridge/getTransactionStatus.test.d.ts.map +0 -1
  21. package/lib/bridge/getTransactionStatus.test.js +0 -282
  22. package/lib/bridge/getTransactionStatus.test.js.map +0 -1
  23. package/lib/bridge/helpers.test.d.ts +0 -2
  24. package/lib/bridge/helpers.test.d.ts.map +0 -1
  25. package/lib/bridge/helpers.test.js +0 -298
  26. package/lib/bridge/helpers.test.js.map +0 -1
  27. package/lib/bridge/prepareTransaction.test.d.ts +0 -2
  28. package/lib/bridge/prepareTransaction.test.d.ts.map +0 -1
  29. package/lib/bridge/prepareTransaction.test.js +0 -277
  30. package/lib/bridge/prepareTransaction.test.js.map +0 -1
  31. package/lib/bridge/signOperation.test.d.ts +0 -2
  32. package/lib/bridge/signOperation.test.d.ts.map +0 -1
  33. package/lib/bridge/signOperation.test.js +0 -295
  34. package/lib/bridge/signOperation.test.js.map +0 -1
  35. package/lib/bridge/synchronisation.test.d.ts +0 -2
  36. package/lib/bridge/synchronisation.test.d.ts.map +0 -1
  37. package/lib/bridge/synchronisation.test.js +0 -201
  38. package/lib/bridge/synchronisation.test.js.map +0 -1
  39. package/lib/bridge/transaction.test.d.ts +0 -2
  40. package/lib/bridge/transaction.test.d.ts.map +0 -1
  41. package/lib/bridge/transaction.test.js +0 -353
  42. package/lib/bridge/transaction.test.js.map +0 -1
  43. package/lib/common-logic/calculateClauses.test.d.ts +0 -2
  44. package/lib/common-logic/calculateClauses.test.d.ts.map +0 -1
  45. package/lib/common-logic/calculateClauses.test.js +0 -156
  46. package/lib/common-logic/calculateClauses.test.js.map +0 -1
  47. package/lib/common-logic/calculateGasFees.test.d.ts +0 -2
  48. package/lib/common-logic/calculateGasFees.test.d.ts.map +0 -1
  49. package/lib/common-logic/calculateGasFees.test.js +0 -279
  50. package/lib/common-logic/calculateGasFees.test.js.map +0 -1
  51. package/lib/common-logic/calculateTransactionInfo.test.d.ts +0 -2
  52. package/lib/common-logic/calculateTransactionInfo.test.d.ts.map +0 -1
  53. package/lib/common-logic/calculateTransactionInfo.test.js +0 -314
  54. package/lib/common-logic/calculateTransactionInfo.test.js.map +0 -1
  55. package/lib/common-logic/estimateGas.test.d.ts +0 -2
  56. package/lib/common-logic/estimateGas.test.d.ts.map +0 -1
  57. package/lib/common-logic/estimateGas.test.js +0 -129
  58. package/lib/common-logic/estimateGas.test.js.map +0 -1
  59. package/lib/common-logic/fixPrefixCase.test.d.ts +0 -2
  60. package/lib/common-logic/fixPrefixCase.test.d.ts.map +0 -1
  61. package/lib/common-logic/fixPrefixCase.test.js +0 -46
  62. package/lib/common-logic/fixPrefixCase.test.js.map +0 -1
  63. package/lib/common-logic/generateNonce.test.d.ts +0 -2
  64. package/lib/common-logic/generateNonce.test.d.ts.map +0 -1
  65. package/lib/common-logic/generateNonce.test.js +0 -59
  66. package/lib/common-logic/generateNonce.test.js.map +0 -1
  67. package/lib/common-logic/getThorClient.test.d.ts +0 -2
  68. package/lib/common-logic/getThorClient.test.d.ts.map +0 -1
  69. package/lib/common-logic/getThorClient.test.js +0 -53
  70. package/lib/common-logic/getThorClient.test.js.map +0 -1
  71. package/lib/common-logic/mapTransfersToOperations.test.d.ts +0 -2
  72. package/lib/common-logic/mapTransfersToOperations.test.d.ts.map +0 -1
  73. package/lib/common-logic/mapTransfersToOperations.test.js +0 -274
  74. package/lib/common-logic/mapTransfersToOperations.test.js.map +0 -1
  75. package/lib/common-logic/padAddress.test.d.ts +0 -2
  76. package/lib/common-logic/padAddress.test.d.ts.map +0 -1
  77. package/lib/common-logic/padAddress.test.js +0 -59
  78. package/lib/common-logic/padAddress.test.js.map +0 -1
  79. package/lib/common-logic/parseAddress.test.d.ts +0 -2
  80. package/lib/common-logic/parseAddress.test.d.ts.map +0 -1
  81. package/lib/common-logic/parseAddress.test.js +0 -97
  82. package/lib/common-logic/parseAddress.test.js.map +0 -1
  83. package/lib/signer/getAddress.test.d.ts +0 -2
  84. package/lib/signer/getAddress.test.d.ts.map +0 -1
  85. package/lib/signer/getAddress.test.js +0 -357
  86. package/lib/signer/getAddress.test.js.map +0 -1
  87. package/lib/signer/signMessage.test.d.ts +0 -2
  88. package/lib/signer/signMessage.test.d.ts.map +0 -1
  89. package/lib/signer/signMessage.test.js +0 -242
  90. package/lib/signer/signMessage.test.js.map +0 -1
  91. package/lib-es/bridge/broadcast.test.d.ts +0 -2
  92. package/lib-es/bridge/broadcast.test.d.ts.map +0 -1
  93. package/lib-es/bridge/broadcast.test.js +0 -183
  94. package/lib-es/bridge/broadcast.test.js.map +0 -1
  95. package/lib-es/bridge/buildOptimisticOperatioin.test.d.ts +0 -2
  96. package/lib-es/bridge/buildOptimisticOperatioin.test.d.ts.map +0 -1
  97. package/lib-es/bridge/buildOptimisticOperatioin.test.js +0 -281
  98. package/lib-es/bridge/buildOptimisticOperatioin.test.js.map +0 -1
  99. package/lib-es/bridge/createTransaction.test.d.ts +0 -2
  100. package/lib-es/bridge/createTransaction.test.d.ts.map +0 -1
  101. package/lib-es/bridge/createTransaction.test.js +0 -162
  102. package/lib-es/bridge/createTransaction.test.js.map +0 -1
  103. package/lib-es/bridge/estimateMaxSpendable.test.d.ts +0 -2
  104. package/lib-es/bridge/estimateMaxSpendable.test.d.ts.map +0 -1
  105. package/lib-es/bridge/estimateMaxSpendable.test.js +0 -264
  106. package/lib-es/bridge/estimateMaxSpendable.test.js.map +0 -1
  107. package/lib-es/bridge/getTransactionStatus.test.d.ts +0 -2
  108. package/lib-es/bridge/getTransactionStatus.test.d.ts.map +0 -1
  109. package/lib-es/bridge/getTransactionStatus.test.js +0 -277
  110. package/lib-es/bridge/getTransactionStatus.test.js.map +0 -1
  111. package/lib-es/bridge/helpers.test.d.ts +0 -2
  112. package/lib-es/bridge/helpers.test.d.ts.map +0 -1
  113. package/lib-es/bridge/helpers.test.js +0 -293
  114. package/lib-es/bridge/helpers.test.js.map +0 -1
  115. package/lib-es/bridge/prepareTransaction.test.d.ts +0 -2
  116. package/lib-es/bridge/prepareTransaction.test.d.ts.map +0 -1
  117. package/lib-es/bridge/prepareTransaction.test.js +0 -272
  118. package/lib-es/bridge/prepareTransaction.test.js.map +0 -1
  119. package/lib-es/bridge/signOperation.test.d.ts +0 -2
  120. package/lib-es/bridge/signOperation.test.d.ts.map +0 -1
  121. package/lib-es/bridge/signOperation.test.js +0 -290
  122. package/lib-es/bridge/signOperation.test.js.map +0 -1
  123. package/lib-es/bridge/synchronisation.test.d.ts +0 -2
  124. package/lib-es/bridge/synchronisation.test.d.ts.map +0 -1
  125. package/lib-es/bridge/synchronisation.test.js +0 -196
  126. package/lib-es/bridge/synchronisation.test.js.map +0 -1
  127. package/lib-es/bridge/transaction.test.d.ts +0 -2
  128. package/lib-es/bridge/transaction.test.d.ts.map +0 -1
  129. package/lib-es/bridge/transaction.test.js +0 -347
  130. package/lib-es/bridge/transaction.test.js.map +0 -1
  131. package/lib-es/common-logic/calculateClauses.test.d.ts +0 -2
  132. package/lib-es/common-logic/calculateClauses.test.d.ts.map +0 -1
  133. package/lib-es/common-logic/calculateClauses.test.js +0 -151
  134. package/lib-es/common-logic/calculateClauses.test.js.map +0 -1
  135. package/lib-es/common-logic/calculateGasFees.test.d.ts +0 -2
  136. package/lib-es/common-logic/calculateGasFees.test.d.ts.map +0 -1
  137. package/lib-es/common-logic/calculateGasFees.test.js +0 -274
  138. package/lib-es/common-logic/calculateGasFees.test.js.map +0 -1
  139. package/lib-es/common-logic/calculateTransactionInfo.test.d.ts +0 -2
  140. package/lib-es/common-logic/calculateTransactionInfo.test.d.ts.map +0 -1
  141. package/lib-es/common-logic/calculateTransactionInfo.test.js +0 -309
  142. package/lib-es/common-logic/calculateTransactionInfo.test.js.map +0 -1
  143. package/lib-es/common-logic/estimateGas.test.d.ts +0 -2
  144. package/lib-es/common-logic/estimateGas.test.d.ts.map +0 -1
  145. package/lib-es/common-logic/estimateGas.test.js +0 -127
  146. package/lib-es/common-logic/estimateGas.test.js.map +0 -1
  147. package/lib-es/common-logic/fixPrefixCase.test.d.ts +0 -2
  148. package/lib-es/common-logic/fixPrefixCase.test.d.ts.map +0 -1
  149. package/lib-es/common-logic/fixPrefixCase.test.js +0 -44
  150. package/lib-es/common-logic/fixPrefixCase.test.js.map +0 -1
  151. package/lib-es/common-logic/generateNonce.test.d.ts +0 -2
  152. package/lib-es/common-logic/generateNonce.test.d.ts.map +0 -1
  153. package/lib-es/common-logic/generateNonce.test.js +0 -57
  154. package/lib-es/common-logic/generateNonce.test.js.map +0 -1
  155. package/lib-es/common-logic/getThorClient.test.d.ts +0 -2
  156. package/lib-es/common-logic/getThorClient.test.d.ts.map +0 -1
  157. package/lib-es/common-logic/getThorClient.test.js +0 -51
  158. package/lib-es/common-logic/getThorClient.test.js.map +0 -1
  159. package/lib-es/common-logic/mapTransfersToOperations.test.d.ts +0 -2
  160. package/lib-es/common-logic/mapTransfersToOperations.test.d.ts.map +0 -1
  161. package/lib-es/common-logic/mapTransfersToOperations.test.js +0 -269
  162. package/lib-es/common-logic/mapTransfersToOperations.test.js.map +0 -1
  163. package/lib-es/common-logic/padAddress.test.d.ts +0 -2
  164. package/lib-es/common-logic/padAddress.test.d.ts.map +0 -1
  165. package/lib-es/common-logic/padAddress.test.js +0 -57
  166. package/lib-es/common-logic/padAddress.test.js.map +0 -1
  167. package/lib-es/common-logic/parseAddress.test.d.ts +0 -2
  168. package/lib-es/common-logic/parseAddress.test.d.ts.map +0 -1
  169. package/lib-es/common-logic/parseAddress.test.js +0 -95
  170. package/lib-es/common-logic/parseAddress.test.js.map +0 -1
  171. package/lib-es/signer/getAddress.test.d.ts +0 -2
  172. package/lib-es/signer/getAddress.test.d.ts.map +0 -1
  173. package/lib-es/signer/getAddress.test.js +0 -352
  174. package/lib-es/signer/getAddress.test.js.map +0 -1
  175. package/lib-es/signer/signMessage.test.d.ts +0 -2
  176. package/lib-es/signer/signMessage.test.d.ts.map +0 -1
  177. package/lib-es/signer/signMessage.test.js +0 -240
  178. package/lib-es/signer/signMessage.test.js.map +0 -1
@@ -1,314 +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 bignumber_js_1 = __importDefault(require("bignumber.js"));
7
- const calculateTransactionInfo_1 = require("./calculateTransactionInfo");
8
- const errors_1 = require("../errors");
9
- const calculateGasFees_1 = require("./calculateGasFees");
10
- // Mock dependencies
11
- jest.mock("./calculateGasFees");
12
- const mockedCalculateGasFees = jest.mocked(calculateGasFees_1.calculateGasFees);
13
- describe("calculateTransactionInfo", () => {
14
- const mockAccount = {
15
- type: "Account",
16
- id: "vechain:1:0x123:",
17
- seedIdentifier: "seed123",
18
- derivationMode: "",
19
- index: 0,
20
- freshAddress: "0x742d35Cc6634C0532925a3b8D0B251d8c1743eC4",
21
- freshAddressPath: "44'/818'/0'/0/0",
22
- used: true,
23
- balance: new bignumber_js_1.default("5000000000000000000"), // 5 VET
24
- spendableBalance: new bignumber_js_1.default("5000000000000000000"),
25
- creationDate: new Date("2022-01-01"),
26
- blockHeight: 12345,
27
- currency: {},
28
- operationsCount: 10,
29
- operations: [],
30
- pendingOperations: [],
31
- lastSyncDate: new Date("2022-01-01"),
32
- balanceHistoryCache: { HOUR: {}, DAY: {}, WEEK: {} },
33
- swapHistory: [],
34
- subAccounts: [],
35
- };
36
- const mockTokenAccount = {
37
- type: "TokenAccount",
38
- id: "vechain:1:0x123:+0x0000000000000000000000000000456e65726779",
39
- parentId: "vechain:1:0x123:",
40
- token: {},
41
- balance: new bignumber_js_1.default("1000000000000000000000"), // 1000 VTHO
42
- spendableBalance: new bignumber_js_1.default("1000000000000000000000"),
43
- creationDate: new Date("2022-01-01"),
44
- operationsCount: 5,
45
- operations: [],
46
- pendingOperations: [],
47
- balanceHistoryCache: { HOUR: {}, DAY: {}, WEEK: {} },
48
- swapHistory: [],
49
- };
50
- const mockBaseTransaction = {
51
- family: "vechain",
52
- recipient: "0x456789012345678901234567890123456789abcd",
53
- amount: new bignumber_js_1.default("1000000000000000000"), // 1 VET/VTHO
54
- estimatedFees: "0",
55
- body: {},
56
- };
57
- const mockGasFeesResult = {
58
- estimatedGas: 21000,
59
- estimatedGasFees: new bignumber_js_1.default("210000000000000000"), // 0.21 VET
60
- maxFeePerGas: 10000000000000,
61
- maxPriorityFeePerGas: 1000000000000,
62
- };
63
- beforeEach(() => {
64
- jest.clearAllMocks();
65
- mockedCalculateGasFees.mockResolvedValue(mockGasFeesResult);
66
- });
67
- describe("VET transactions", () => {
68
- it("should calculate transaction info for normal VET transaction", async () => {
69
- const result = await (0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccount, mockBaseTransaction);
70
- expect(result).toEqual({
71
- isTokenAccount: false,
72
- amount: new bignumber_js_1.default("1000000000000000000"),
73
- spendableBalance: new bignumber_js_1.default("5000000000000000000"),
74
- balance: new bignumber_js_1.default("5000000000000000000"),
75
- tokenAccount: undefined,
76
- estimatedFees: "210000000000000000",
77
- estimatedGas: 21000,
78
- maxFeePerGas: 10000000000000,
79
- maxPriorityFeePerGas: 1000000000000,
80
- });
81
- });
82
- it("should handle useAllAmount for VET transaction", async () => {
83
- const useAllAmountTransaction = {
84
- ...mockBaseTransaction,
85
- useAllAmount: true,
86
- };
87
- const result = await (0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccount, useAllAmountTransaction);
88
- expect(result.amount).toEqual(new bignumber_js_1.default("5000000000000000000"));
89
- expect(result.spendableBalance).toEqual(new bignumber_js_1.default("5000000000000000000"));
90
- });
91
- it("should call calculateGasFees with correct parameters for VET", async () => {
92
- await (0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccount, mockBaseTransaction);
93
- expect(mockedCalculateGasFees).toHaveBeenCalledWith(expect.objectContaining({
94
- amount: new bignumber_js_1.default("1000000000000000000"),
95
- }), false);
96
- });
97
- });
98
- describe("Token transactions", () => {
99
- const mockAccountWithToken = {
100
- ...mockAccount,
101
- subAccounts: [mockTokenAccount],
102
- };
103
- const mockTokenTransaction = {
104
- ...mockBaseTransaction,
105
- subAccountId: "vechain:1:0x123:+0x0000000000000000000000000000456e65726779",
106
- };
107
- it("should calculate transaction info for normal token transaction", async () => {
108
- const result = await (0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccountWithToken, mockTokenTransaction);
109
- expect(result).toEqual({
110
- isTokenAccount: true,
111
- amount: new bignumber_js_1.default("1000000000000000000"),
112
- spendableBalance: new bignumber_js_1.default("999790000000000000000"), // token balance - gas fees
113
- balance: new bignumber_js_1.default("1000000000000000000000"),
114
- tokenAccount: mockTokenAccount,
115
- estimatedFees: "210000000000000000",
116
- estimatedGas: 21000,
117
- maxFeePerGas: 10000000000000,
118
- maxPriorityFeePerGas: 1000000000000,
119
- });
120
- });
121
- it("should handle useAllAmount for token transaction", async () => {
122
- const useAllAmountTokenTransaction = {
123
- ...mockTokenTransaction,
124
- useAllAmount: true,
125
- };
126
- const result = await (0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccountWithToken, useAllAmountTokenTransaction);
127
- expect(result.amount).toEqual(new bignumber_js_1.default("999790000000000000000"));
128
- expect(result.spendableBalance).toEqual(new bignumber_js_1.default("999790000000000000000"));
129
- });
130
- it("should handle token transaction when gas fees exceed balance", async () => {
131
- const highGasResult = {
132
- ...mockGasFeesResult,
133
- estimatedGasFees: new bignumber_js_1.default("2000000000000000000000"), // 2000 VET (more than token balance)
134
- };
135
- mockedCalculateGasFees.mockResolvedValue(highGasResult);
136
- const result = await (0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccountWithToken, mockTokenTransaction);
137
- expect(result.spendableBalance).toEqual(new bignumber_js_1.default("0"));
138
- });
139
- it("should call calculateGasFees with correct parameters for token", async () => {
140
- await (0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccountWithToken, mockTokenTransaction);
141
- expect(mockedCalculateGasFees).toHaveBeenCalledWith(expect.objectContaining({
142
- amount: new bignumber_js_1.default("1000000000000000000"),
143
- }), true);
144
- });
145
- it("should handle missing token account", async () => {
146
- const transactionWithNonExistentToken = {
147
- ...mockTokenTransaction,
148
- subAccountId: "vechain:1:0x123:+nonexistent",
149
- };
150
- const result = await (0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccountWithToken, transactionWithNonExistentToken);
151
- expect(result.isTokenAccount).toBe(false);
152
- expect(result.tokenAccount).toBeUndefined();
153
- });
154
- });
155
- describe("Fixed gas fees", () => {
156
- const fixedGasFees = {
157
- estimatedGas: 50000,
158
- estimatedGasFees: new bignumber_js_1.default("500000000000000000"),
159
- maxFeePerGas: 20000000000000,
160
- maxPriorityFeePerGas: 2000000000000,
161
- };
162
- it("should use fixed gas fees when provided", async () => {
163
- const result = await (0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccount, mockBaseTransaction, fixedGasFees);
164
- expect(mockedCalculateGasFees).not.toHaveBeenCalled();
165
- expect(result.estimatedFees).toBe("500000000000000000");
166
- expect(result.estimatedGas).toBe(50000);
167
- expect(result.maxFeePerGas).toBe(20000000000000);
168
- expect(result.maxPriorityFeePerGas).toBe(2000000000000);
169
- });
170
- it("should use fixed gas fees for token transactions", async () => {
171
- const mockAccountWithToken = {
172
- ...mockAccount,
173
- subAccounts: [mockTokenAccount],
174
- };
175
- const mockTokenTransaction = {
176
- ...mockBaseTransaction,
177
- subAccountId: "vechain:1:0x123:+0x0000000000000000000000000000456e65726779",
178
- };
179
- const result = await (0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccountWithToken, mockTokenTransaction, fixedGasFees);
180
- expect(mockedCalculateGasFees).not.toHaveBeenCalled();
181
- expect(result.estimatedFees).toBe("500000000000000000");
182
- });
183
- });
184
- describe("Circular dependency resolution", () => {
185
- it("should handle iterative calculation when useAllAmount changes values", async () => {
186
- // Mock calculateGasFees to return different values based on amount
187
- mockedCalculateGasFees
188
- .mockResolvedValueOnce({
189
- estimatedGas: 21000,
190
- estimatedGasFees: new bignumber_js_1.default("210000000000000000"),
191
- maxFeePerGas: 10000000000000,
192
- maxPriorityFeePerGas: 1000000000000,
193
- })
194
- .mockResolvedValueOnce({
195
- estimatedGas: 21000,
196
- estimatedGasFees: new bignumber_js_1.default("210000000000000000"),
197
- maxFeePerGas: 10000000000000,
198
- maxPriorityFeePerGas: 1000000000000,
199
- });
200
- const useAllAmountTransaction = {
201
- ...mockBaseTransaction,
202
- useAllAmount: true,
203
- };
204
- const result = await (0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccount, useAllAmountTransaction);
205
- expect(result.amount).toEqual(new bignumber_js_1.default("5000000000000000000"));
206
- expect(mockedCalculateGasFees).toHaveBeenCalledTimes(2);
207
- });
208
- it("should throw error when max iterations reached", async () => {
209
- // Create a token account scenario where gas fees can affect spendableBalance
210
- const mockAccountWithToken = {
211
- ...mockAccount,
212
- subAccounts: [mockTokenAccount],
213
- };
214
- const mockTokenTransaction = {
215
- ...mockBaseTransaction,
216
- subAccountId: "vechain:1:0x123:+0x0000000000000000000000000000456e65726779",
217
- useAllAmount: true,
218
- };
219
- // Mock calculateGasFees to always return incrementally higher fees
220
- let callCount = 0;
221
- mockedCalculateGasFees.mockImplementation(() => {
222
- callCount++;
223
- return Promise.resolve({
224
- estimatedGas: 21000,
225
- estimatedGasFees: new bignumber_js_1.default(`${100000000000000000 + callCount * 100000000000000000}`), // Incremental fees
226
- maxFeePerGas: 10000000000000,
227
- maxPriorityFeePerGas: 1000000000000,
228
- });
229
- });
230
- await expect((0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccountWithToken, mockTokenTransaction)).rejects.toThrow(errors_1.ImpossibleToCalculateAmountAndFees);
231
- });
232
- it("should stop iterating when amount stabilizes", async () => {
233
- const constantGasResult = {
234
- estimatedGas: 21000,
235
- estimatedGasFees: new bignumber_js_1.default("210000000000000000"),
236
- maxFeePerGas: 10000000000000,
237
- maxPriorityFeePerGas: 1000000000000,
238
- };
239
- mockedCalculateGasFees.mockResolvedValue(constantGasResult);
240
- const useAllAmountTransaction = {
241
- ...mockBaseTransaction,
242
- useAllAmount: true,
243
- };
244
- await (0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccount, useAllAmountTransaction);
245
- // Should be called at least once, might be called twice in the loop
246
- expect(mockedCalculateGasFees).toHaveBeenCalledTimes(2);
247
- });
248
- });
249
- describe("NaN amount handling", () => {
250
- it("should handle NaN amount without calling calculateGasFees", async () => {
251
- const nanAmountTransaction = {
252
- ...mockBaseTransaction,
253
- amount: new bignumber_js_1.default(NaN),
254
- };
255
- const result = await (0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccount, nanAmountTransaction);
256
- expect(mockedCalculateGasFees).not.toHaveBeenCalled();
257
- expect(result.amount.isNaN()).toBe(true);
258
- expect(result.estimatedFees).toBe("0");
259
- expect(result.estimatedGas).toBe(0);
260
- });
261
- it("should use account balance and spendableBalance for NaN amount", async () => {
262
- const nanAmountTransaction = {
263
- ...mockBaseTransaction,
264
- amount: new bignumber_js_1.default(NaN),
265
- };
266
- const result = await (0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccount, nanAmountTransaction);
267
- expect(result.balance).toEqual(mockAccount.balance);
268
- expect(result.spendableBalance).toEqual(mockAccount.balance);
269
- });
270
- });
271
- describe("Edge cases", () => {
272
- it("should handle account without subAccounts", async () => {
273
- const accountWithoutSubAccounts = {
274
- ...mockAccount,
275
- subAccounts: [],
276
- };
277
- const result = await (0, calculateTransactionInfo_1.calculateTransactionInfo)(accountWithoutSubAccounts, mockBaseTransaction);
278
- expect(result.isTokenAccount).toBe(false);
279
- expect(result.tokenAccount).toBeUndefined();
280
- });
281
- it("should handle empty subAccounts array", async () => {
282
- const accountWithEmptySubAccounts = {
283
- ...mockAccount,
284
- subAccounts: [],
285
- };
286
- const tokenTransaction = {
287
- ...mockBaseTransaction,
288
- subAccountId: "some-id",
289
- };
290
- const result = await (0, calculateTransactionInfo_1.calculateTransactionInfo)(accountWithEmptySubAccounts, tokenTransaction);
291
- expect(result.isTokenAccount).toBe(false);
292
- expect(result.tokenAccount).toBeUndefined();
293
- });
294
- it("should handle zero balance account", async () => {
295
- const zeroBalanceAccount = {
296
- ...mockAccount,
297
- balance: new bignumber_js_1.default("0"),
298
- };
299
- const result = await (0, calculateTransactionInfo_1.calculateTransactionInfo)(zeroBalanceAccount, mockBaseTransaction);
300
- expect(result.balance).toEqual(new bignumber_js_1.default("0"));
301
- expect(result.spendableBalance).toEqual(new bignumber_js_1.default("0"));
302
- });
303
- it("should handle zero amount transaction", async () => {
304
- const zeroAmountTransaction = {
305
- ...mockBaseTransaction,
306
- amount: new bignumber_js_1.default("0"),
307
- };
308
- const result = await (0, calculateTransactionInfo_1.calculateTransactionInfo)(mockAccount, zeroAmountTransaction);
309
- expect(result.amount).toEqual(new bignumber_js_1.default("0"));
310
- expect(mockedCalculateGasFees).toHaveBeenCalled();
311
- });
312
- });
313
- });
314
- //# sourceMappingURL=calculateTransactionInfo.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calculateTransactionInfo.test.js","sourceRoot":"","sources":["../../src/common-logic/calculateTransactionInfo.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=estimateGas.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"estimateGas.test.d.ts","sourceRoot":"","sources":["../../src/common-logic/estimateGas.test.ts"],"names":[],"mappings":""}
@@ -1,129 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const estimateGas_1 = require("./estimateGas");
4
- const getThorClient_1 = require("./getThorClient");
5
- // Mock dependencies
6
- jest.mock("./getThorClient");
7
- const mockedGetThorClient = jest.mocked(getThorClient_1.getThorClient);
8
- describe("estimateGas", () => {
9
- const mockClauses = [
10
- {
11
- to: "0x742d35Cc6634C0532925a3b8D0B251d8c1743eC4",
12
- value: "1000000000000000000",
13
- data: "0x",
14
- },
15
- {
16
- to: "0x123456789012345678901234567890123456789a",
17
- value: "2000000000000000000",
18
- data: "0xa9059cbb000000000000000000000000742d35cc6634c0532925a3b8d0b251d8c1743ec40000000000000000000000000000000000000000000000000de0b6b3a7640000",
19
- },
20
- ];
21
- const mockOrigin = "0x5034aa590125b64023a0262112b98d72e3c8e40e";
22
- const mockEstimateGasResult = {
23
- totalGas: 21000,
24
- reverted: false,
25
- revertReasons: [],
26
- vmErrors: [],
27
- };
28
- const mockThorClient = {
29
- gas: {
30
- estimateGas: jest.fn(),
31
- },
32
- };
33
- beforeEach(() => {
34
- jest.clearAllMocks();
35
- mockedGetThorClient.mockReturnValue(mockThorClient);
36
- });
37
- it("should estimate gas for transaction clauses", async () => {
38
- mockThorClient.gas.estimateGas.mockResolvedValue(mockEstimateGasResult);
39
- const result = await (0, estimateGas_1.estimateGas)(mockClauses, mockOrigin);
40
- expect(mockedGetThorClient).toHaveBeenCalledTimes(1);
41
- expect(mockThorClient.gas.estimateGas).toHaveBeenCalledWith(mockClauses, mockOrigin);
42
- expect(result).toEqual(mockEstimateGasResult);
43
- });
44
- it("should handle single clause", async () => {
45
- const singleClause = [mockClauses[0]];
46
- mockThorClient.gas.estimateGas.mockResolvedValue(mockEstimateGasResult);
47
- const result = await (0, estimateGas_1.estimateGas)(singleClause, mockOrigin);
48
- expect(mockThorClient.gas.estimateGas).toHaveBeenCalledWith(singleClause, mockOrigin);
49
- expect(result).toEqual(mockEstimateGasResult);
50
- });
51
- it("should handle empty clauses array", async () => {
52
- const emptyClauses = [];
53
- mockThorClient.gas.estimateGas.mockResolvedValue({
54
- totalGas: 0,
55
- reverted: false,
56
- revertReasons: [],
57
- vmErrors: [],
58
- });
59
- const result = await (0, estimateGas_1.estimateGas)(emptyClauses, mockOrigin);
60
- expect(mockThorClient.gas.estimateGas).toHaveBeenCalledWith(emptyClauses, mockOrigin);
61
- expect(result.totalGas).toBe(0);
62
- });
63
- it("should handle gas estimation with revert", async () => {
64
- const revertedResult = {
65
- totalGas: 0,
66
- reverted: true,
67
- revertReasons: ["insufficient balance"],
68
- vmErrors: ["VM error: out of gas"],
69
- };
70
- mockThorClient.gas.estimateGas.mockResolvedValue(revertedResult);
71
- const result = await (0, estimateGas_1.estimateGas)(mockClauses, mockOrigin);
72
- expect(result).toEqual(revertedResult);
73
- expect(result.reverted).toBe(true);
74
- expect(result.revertReasons).toContain("insufficient balance");
75
- });
76
- it("should handle high gas estimation", async () => {
77
- const highGasResult = {
78
- totalGas: 500000,
79
- reverted: false,
80
- revertReasons: [],
81
- vmErrors: [],
82
- };
83
- mockThorClient.gas.estimateGas.mockResolvedValue(highGasResult);
84
- const result = await (0, estimateGas_1.estimateGas)(mockClauses, mockOrigin);
85
- expect(result.totalGas).toBe(500000);
86
- });
87
- it("should propagate errors from thor client", async () => {
88
- const errorMessage = "Network error";
89
- mockThorClient.gas.estimateGas.mockRejectedValue(new Error(errorMessage));
90
- await expect((0, estimateGas_1.estimateGas)(mockClauses, mockOrigin)).rejects.toThrow(errorMessage);
91
- });
92
- it("should handle clauses with data for token transfers", async () => {
93
- const tokenTransferClause = [
94
- {
95
- to: "0x0000000000000000000000000000456e65726779",
96
- value: "0",
97
- data: "0xa9059cbb000000000000000000000000742d35cc6634c0532925a3b8d0b251d8c1743ec40000000000000000000000000000000000000000000000000de0b6b3a7640000",
98
- },
99
- ];
100
- const tokenGasResult = {
101
- totalGas: 37000,
102
- reverted: false,
103
- revertReasons: [],
104
- vmErrors: [],
105
- };
106
- mockThorClient.gas.estimateGas.mockResolvedValue(tokenGasResult);
107
- const result = await (0, estimateGas_1.estimateGas)(tokenTransferClause, mockOrigin);
108
- expect(mockThorClient.gas.estimateGas).toHaveBeenCalledWith(tokenTransferClause, mockOrigin);
109
- expect(result.totalGas).toBe(37000);
110
- });
111
- it("should get a new thor client instance for each call", async () => {
112
- mockThorClient.gas.estimateGas.mockResolvedValue(mockEstimateGasResult);
113
- await (0, estimateGas_1.estimateGas)(mockClauses, mockOrigin);
114
- await (0, estimateGas_1.estimateGas)(mockClauses, mockOrigin);
115
- expect(mockedGetThorClient).toHaveBeenCalledTimes(2);
116
- });
117
- it("should return the exact result from thor client", async () => {
118
- const exactResult = {
119
- totalGas: 123456,
120
- reverted: false,
121
- revertReasons: [],
122
- vmErrors: [],
123
- };
124
- mockThorClient.gas.estimateGas.mockResolvedValue(exactResult);
125
- const result = await (0, estimateGas_1.estimateGas)(mockClauses, mockOrigin);
126
- expect(result).toBe(exactResult);
127
- });
128
- });
129
- //# sourceMappingURL=estimateGas.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"estimateGas.test.js","sourceRoot":"","sources":["../../src/common-logic/estimateGas.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=fixPrefixCase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fixPrefixCase.test.d.ts","sourceRoot":"","sources":["../../src/common-logic/fixPrefixCase.test.ts"],"names":[],"mappings":""}
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const fixPrefixCase_1 = require("./fixPrefixCase");
4
- describe("fixPrefixCase", () => {
5
- it("should convert uppercase 0X prefix to lowercase 0x", () => {
6
- const input = "0X1234567890abcdef";
7
- const result = (0, fixPrefixCase_1.fixPrefixCase)(input);
8
- expect(result).toBe("0x1234567890abcdef");
9
- });
10
- it("should keep lowercase 0x prefix unchanged", () => {
11
- const input = "0x1234567890abcdef";
12
- const result = (0, fixPrefixCase_1.fixPrefixCase)(input);
13
- expect(result).toBe("0x1234567890abcdef");
14
- });
15
- it("should add 0x prefix when missing", () => {
16
- const input = "1234567890abcdef";
17
- const result = (0, fixPrefixCase_1.fixPrefixCase)(input);
18
- expect(result).toBe("0x1234567890abcdef");
19
- });
20
- it("should handle empty string by adding 0x prefix", () => {
21
- const input = "";
22
- const result = (0, fixPrefixCase_1.fixPrefixCase)(input);
23
- expect(result).toBe("0x");
24
- });
25
- it("should handle mixed case prefix 0X", () => {
26
- const input = "0X123abc";
27
- const result = (0, fixPrefixCase_1.fixPrefixCase)(input);
28
- expect(result).toBe("0x123abc");
29
- });
30
- it("should handle string starting with just 0 by adding x", () => {
31
- const input = "01234";
32
- const result = (0, fixPrefixCase_1.fixPrefixCase)(input);
33
- expect(result).toBe("0x01234");
34
- });
35
- it("should handle valid ethereum address", () => {
36
- const input = "0x742d35Cc6634C0532925a3b8D0B251d8c1743eC4";
37
- const result = (0, fixPrefixCase_1.fixPrefixCase)(input);
38
- expect(result).toBe("0x742d35Cc6634C0532925a3b8D0B251d8c1743eC4");
39
- });
40
- it("should handle address without prefix", () => {
41
- const input = "742d35Cc6634C0532925a3b8D0B251d8c1743eC4";
42
- const result = (0, fixPrefixCase_1.fixPrefixCase)(input);
43
- expect(result).toBe("0x742d35Cc6634C0532925a3b8D0B251d8c1743eC4");
44
- });
45
- });
46
- //# sourceMappingURL=fixPrefixCase.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fixPrefixCase.test.js","sourceRoot":"","sources":["../../src/common-logic/fixPrefixCase.test.ts"],"names":[],"mappings":";;AAAA,mDAAgD;AAEhD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,KAAK,GAAG,oBAAoB,CAAC;QACnC,MAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,KAAK,GAAG,oBAAoB,CAAC;QACnC,MAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,KAAK,GAAG,kBAAkB,CAAC;QACjC,MAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,KAAK,GAAG,UAAU,CAAC;QACzB,MAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,KAAK,GAAG,OAAO,CAAC;QACtB,MAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,KAAK,GAAG,4CAA4C,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,KAAK,GAAG,0CAA0C,CAAC;QACzD,MAAM,MAAM,GAAG,IAAA,6BAAa,EAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=generateNonce.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateNonce.test.d.ts","sourceRoot":"","sources":["../../src/common-logic/generateNonce.test.ts"],"names":[],"mappings":""}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const generateNonce_1 = require("./generateNonce");
4
- const sdk_core_1 = require("@vechain/sdk-core");
5
- // Mock the Hex.random method
6
- jest.mock("@vechain/sdk-core", () => ({
7
- Hex: {
8
- random: jest.fn(),
9
- },
10
- }));
11
- const mockedHex = jest.mocked(sdk_core_1.Hex);
12
- describe("generateNonce", () => {
13
- beforeEach(() => {
14
- jest.clearAllMocks();
15
- });
16
- it("should generate a nonce using Hex.random with length 8", () => {
17
- const mockHexValue = {
18
- toString: jest.fn().mockReturnValue("0x1234567890abcdef"),
19
- };
20
- mockedHex.random.mockReturnValue(mockHexValue);
21
- const result = (0, generateNonce_1.generateNonce)();
22
- expect(mockedHex.random).toHaveBeenCalledWith(8);
23
- expect(mockHexValue.toString).toHaveBeenCalled();
24
- expect(result).toBe("0x1234567890abcdef");
25
- });
26
- it("should return a string", () => {
27
- const mockHexValue = {
28
- toString: jest.fn().mockReturnValue("0xabcdef1234567890"),
29
- };
30
- mockedHex.random.mockReturnValue(mockHexValue);
31
- const result = (0, generateNonce_1.generateNonce)();
32
- expect(typeof result).toBe("string");
33
- });
34
- it("should call toString on the hex value", () => {
35
- const mockHexValue = {
36
- toString: jest.fn().mockReturnValue("0x123456789abcdef0"),
37
- };
38
- mockedHex.random.mockReturnValue(mockHexValue);
39
- (0, generateNonce_1.generateNonce)();
40
- expect(mockHexValue.toString).toHaveBeenCalledTimes(1);
41
- });
42
- it("should handle different hex values", () => {
43
- const testCases = [
44
- "0x0000000000000000",
45
- "0xffffffffffffffff",
46
- "0x123456789abcdef0",
47
- "0xa1b2c3d4e5f67890",
48
- ];
49
- testCases.forEach(expectedValue => {
50
- const mockHexValue = {
51
- toString: jest.fn().mockReturnValue(expectedValue),
52
- };
53
- mockedHex.random.mockReturnValue(mockHexValue);
54
- const result = (0, generateNonce_1.generateNonce)();
55
- expect(result).toBe(expectedValue);
56
- });
57
- });
58
- });
59
- //# sourceMappingURL=generateNonce.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateNonce.test.js","sourceRoot":"","sources":["../../src/common-logic/generateNonce.test.ts"],"names":[],"mappings":";;AAAA,mDAAgD;AAChD,gDAAwC;AAExC,6BAA6B;AAC7B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,GAAG,EAAE;QACH,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;KAClB;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,cAAG,CAAC,CAAC;AAEnC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,YAAY,GAAG;YACnB,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,oBAAoB,CAAC;SAC1D,CAAC;QACF,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,YAAmB,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAA,6BAAa,GAAE,CAAC;QAE/B,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,YAAY,GAAG;YACnB,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,oBAAoB,CAAC;SAC1D,CAAC;QACF,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,YAAmB,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAA,6BAAa,GAAE,CAAC;QAE/B,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,YAAY,GAAG;YACnB,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,oBAAoB,CAAC;SAC1D,CAAC;QACF,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,YAAmB,CAAC,CAAC;QAEtD,IAAA,6BAAa,GAAE,CAAC;QAEhB,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,SAAS,GAAG;YAChB,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;SACrB,CAAC;QAEF,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;YAChC,MAAM,YAAY,GAAG;gBACnB,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC;aACnD,CAAC;YACF,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,YAAmB,CAAC,CAAC;YAEtD,MAAM,MAAM,GAAG,IAAA,6BAAa,GAAE,CAAC;YAE/B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=getThorClient.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getThorClient.test.d.ts","sourceRoot":"","sources":["../../src/common-logic/getThorClient.test.ts"],"names":[],"mappings":""}