@ledgerhq/coin-vechain 2.11.0-nightly.7 → 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 -61
  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,162 @@
1
+ import { createTransaction } from "./createTransaction";
2
+ import { generateNonce } from "../common-logic";
3
+ import { MAINNET_CHAIN_TAG } from "../types";
4
+ import BigNumber from "bignumber.js";
5
+ // Mock dependencies
6
+ jest.mock("../common-logic");
7
+ jest.mock("../types", () => ({
8
+ ...jest.requireActual("../types"),
9
+ MAINNET_CHAIN_TAG: 74,
10
+ }));
11
+ const mockedGenerateNonce = jest.mocked(generateNonce);
12
+ describe("createTransaction", () => {
13
+ const mockAccount = {
14
+ type: "Account",
15
+ id: "vechain:1:0x123:",
16
+ seedIdentifier: "seed123",
17
+ derivationMode: "",
18
+ index: 0,
19
+ freshAddress: "0x742d35Cc6634C0532925a3b8D0B251d8c1743eC4",
20
+ freshAddressPath: "44'/818'/0'/0/0",
21
+ used: true,
22
+ balance: new BigNumber("5000000000000000000"),
23
+ spendableBalance: new BigNumber("5000000000000000000"),
24
+ creationDate: new Date("2022-01-01"),
25
+ blockHeight: 12345,
26
+ currency: {},
27
+ operationsCount: 10,
28
+ operations: [],
29
+ pendingOperations: [],
30
+ lastSyncDate: new Date("2022-01-01"),
31
+ balanceHistoryCache: { HOUR: {}, DAY: {}, WEEK: {} },
32
+ swapHistory: [],
33
+ subAccounts: [],
34
+ };
35
+ beforeEach(() => {
36
+ jest.clearAllMocks();
37
+ mockedGenerateNonce.mockReturnValue("0x1234567890abcdef");
38
+ });
39
+ it("should create a transaction with correct default values", () => {
40
+ const result = createTransaction(mockAccount);
41
+ expect(result).toEqual({
42
+ family: "vechain",
43
+ body: {
44
+ chainTag: 74,
45
+ blockRef: "0x0000000000000000",
46
+ expiration: 18,
47
+ clauses: [],
48
+ maxFeePerGas: 0,
49
+ maxPriorityFeePerGas: 0,
50
+ gas: "0",
51
+ dependsOn: null,
52
+ nonce: "0x1234567890abcdef",
53
+ },
54
+ amount: new BigNumber(0),
55
+ estimatedFees: "0",
56
+ recipient: "",
57
+ useAllAmount: false,
58
+ });
59
+ });
60
+ it("should use MAINNET_CHAIN_TAG for chainTag", () => {
61
+ const result = createTransaction(mockAccount);
62
+ expect(result.body.chainTag).toBe(MAINNET_CHAIN_TAG);
63
+ expect(result.body.chainTag).toBe(74);
64
+ });
65
+ it("should generate a unique nonce for each transaction", () => {
66
+ mockedGenerateNonce
67
+ .mockReturnValueOnce("0x1111111111111111")
68
+ .mockReturnValueOnce("0x2222222222222222")
69
+ .mockReturnValueOnce("0x3333333333333333");
70
+ const tx1 = createTransaction(mockAccount);
71
+ const tx2 = createTransaction(mockAccount);
72
+ const tx3 = createTransaction(mockAccount);
73
+ expect(tx1.body.nonce).toBe("0x1111111111111111");
74
+ expect(tx2.body.nonce).toBe("0x2222222222222222");
75
+ expect(tx3.body.nonce).toBe("0x3333333333333333");
76
+ expect(mockedGenerateNonce).toHaveBeenCalledTimes(3);
77
+ });
78
+ it("should create transaction with empty clauses array", () => {
79
+ const result = createTransaction(mockAccount);
80
+ expect(result.body.clauses).toEqual([]);
81
+ expect(Array.isArray(result.body.clauses)).toBe(true);
82
+ });
83
+ it("should set default expiration to 18", () => {
84
+ const result = createTransaction(mockAccount);
85
+ expect(result.body.expiration).toBe(18);
86
+ });
87
+ it("should set default blockRef to zero", () => {
88
+ const result = createTransaction(mockAccount);
89
+ expect(result.body.blockRef).toBe("0x0000000000000000");
90
+ });
91
+ it("should set default gas values to zero", () => {
92
+ const result = createTransaction(mockAccount);
93
+ expect(result.body.maxFeePerGas).toBe(0);
94
+ expect(result.body.maxPriorityFeePerGas).toBe(0);
95
+ expect(result.body.gas).toBe("0");
96
+ });
97
+ it("should set dependsOn to null", () => {
98
+ const result = createTransaction(mockAccount);
99
+ expect(result.body.dependsOn).toBe(null);
100
+ });
101
+ it("should create BigNumber amount with zero value", () => {
102
+ const result = createTransaction(mockAccount);
103
+ expect(result.amount).toBeInstanceOf(BigNumber);
104
+ expect(result.amount.isZero()).toBe(true);
105
+ expect(result.amount.toString()).toBe("0");
106
+ });
107
+ it("should set default recipient to empty string", () => {
108
+ const result = createTransaction(mockAccount);
109
+ expect(result.recipient).toBe("");
110
+ });
111
+ it("should set useAllAmount to false", () => {
112
+ const result = createTransaction(mockAccount);
113
+ expect(result.useAllAmount).toBe(false);
114
+ });
115
+ it("should set estimatedFees to zero string", () => {
116
+ const result = createTransaction(mockAccount);
117
+ expect(result.estimatedFees).toBe("0");
118
+ expect(typeof result.estimatedFees).toBe("string");
119
+ });
120
+ it("should set family to vechain", () => {
121
+ const result = createTransaction(mockAccount);
122
+ expect(result.family).toBe("vechain");
123
+ });
124
+ it("should call generateNonce exactly once", () => {
125
+ createTransaction(mockAccount);
126
+ expect(mockedGenerateNonce).toHaveBeenCalledTimes(1);
127
+ expect(mockedGenerateNonce).toHaveBeenCalledWith();
128
+ });
129
+ it("should handle different nonce formats from generateNonce", () => {
130
+ const testNonces = [
131
+ "0x0000000000000000",
132
+ "0xffffffffffffffff",
133
+ "0x123456789abcdef0",
134
+ "0xa1b2c3d4e5f67890",
135
+ ];
136
+ testNonces.forEach(nonce => {
137
+ mockedGenerateNonce.mockReturnValueOnce(nonce);
138
+ const result = createTransaction(mockAccount);
139
+ expect(result.body.nonce).toBe(nonce);
140
+ });
141
+ });
142
+ it("should create independent transaction objects", () => {
143
+ mockedGenerateNonce
144
+ .mockReturnValueOnce("0x1111111111111111")
145
+ .mockReturnValueOnce("0x2222222222222222");
146
+ const tx1 = createTransaction(mockAccount);
147
+ const tx2 = createTransaction(mockAccount);
148
+ // Modify one transaction
149
+ tx1.amount = new BigNumber(100);
150
+ tx1.recipient = "0x123";
151
+ tx1.body.clauses.push({
152
+ to: "0x123",
153
+ value: "100",
154
+ data: "0x",
155
+ });
156
+ // Verify the other transaction is unchanged
157
+ expect(tx2.amount.isZero()).toBe(true);
158
+ expect(tx2.recipient).toBe("");
159
+ expect(tx2.body.clauses).toEqual([]);
160
+ });
161
+ });
162
+ //# sourceMappingURL=createTransaction.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTransaction.test.js","sourceRoot":"","sources":["../../src/bridge/createTransaction.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=estimateMaxSpendable.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateMaxSpendable.test.d.ts","sourceRoot":"","sources":["../../src/bridge/estimateMaxSpendable.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,264 @@
1
+ import BigNumber from "bignumber.js";
2
+ import { estimateMaxSpendable } from "./estimateMaxSpendable";
3
+ import { calculateGasFees } from "../common-logic";
4
+ // Mock dependencies
5
+ jest.mock("../common-logic");
6
+ const mockedCalculateGasFees = jest.mocked(calculateGasFees);
7
+ describe("estimateMaxSpendable", () => {
8
+ const mockAccount = {
9
+ type: "Account",
10
+ id: "vechain:1:0x123:",
11
+ seedIdentifier: "seed123",
12
+ derivationMode: "",
13
+ index: 0,
14
+ freshAddress: "0x742d35Cc6634C0532925a3b8D0B251d8c1743eC4",
15
+ freshAddressPath: "44'/818'/0'/0/0",
16
+ used: true,
17
+ balance: new BigNumber("5000000000000000000"), // 5 VET
18
+ spendableBalance: new BigNumber("5000000000000000000"),
19
+ creationDate: new Date("2022-01-01"),
20
+ blockHeight: 12345,
21
+ currency: {},
22
+ operationsCount: 10,
23
+ operations: [],
24
+ pendingOperations: [],
25
+ lastSyncDate: new Date("2022-01-01"),
26
+ balanceHistoryCache: { HOUR: {}, DAY: {}, WEEK: {} },
27
+ swapHistory: [],
28
+ subAccounts: [],
29
+ };
30
+ const mockTokenAccount = {
31
+ type: "TokenAccount",
32
+ id: "vechain:1:0x123:+vtho",
33
+ parentId: "vechain:1:0x123:",
34
+ token: {},
35
+ balance: new BigNumber("1000000000000000000000"), // 1000 VTHO
36
+ spendableBalance: new BigNumber("1000000000000000000000"),
37
+ creationDate: new Date("2022-01-01"),
38
+ operationsCount: 5,
39
+ operations: [],
40
+ pendingOperations: [],
41
+ balanceHistoryCache: { HOUR: {}, DAY: {}, WEEK: {} },
42
+ swapHistory: [],
43
+ };
44
+ const mockTransaction = {
45
+ family: "vechain",
46
+ recipient: "0x456789012345678901234567890123456789abcd",
47
+ amount: new BigNumber("1000000000000000000"),
48
+ estimatedFees: "210000000000000000",
49
+ body: {
50
+ chainTag: 74,
51
+ blockRef: "0x00000000000b2bce",
52
+ expiration: 18,
53
+ clauses: [],
54
+ maxFeePerGas: 10000000000000,
55
+ maxPriorityFeePerGas: 1000000000000,
56
+ gas: 21000,
57
+ dependsOn: null,
58
+ nonce: "0x12345678",
59
+ },
60
+ };
61
+ beforeEach(() => {
62
+ jest.clearAllMocks();
63
+ mockedCalculateGasFees.mockResolvedValue({
64
+ estimatedGas: 21000,
65
+ estimatedGasFees: new BigNumber("210000000000000000"), // 0.21 VET
66
+ maxFeePerGas: 10000000000000,
67
+ maxPriorityFeePerGas: 1000000000000,
68
+ });
69
+ });
70
+ describe("Account type handling", () => {
71
+ it("should return account balance for Account type", async () => {
72
+ const result = await estimateMaxSpendable({
73
+ account: mockAccount,
74
+ transaction: mockTransaction,
75
+ });
76
+ expect(result).toEqual(new BigNumber("5000000000000000000"));
77
+ expect(mockedCalculateGasFees).not.toHaveBeenCalled();
78
+ });
79
+ it("should return account balance when transaction is missing", async () => {
80
+ const result = await estimateMaxSpendable({
81
+ account: mockTokenAccount,
82
+ transaction: undefined,
83
+ });
84
+ expect(result).toEqual(new BigNumber("1000000000000000000000"));
85
+ expect(mockedCalculateGasFees).not.toHaveBeenCalled();
86
+ });
87
+ it("should return account balance when transaction is null", async () => {
88
+ const result = await estimateMaxSpendable({
89
+ account: mockTokenAccount,
90
+ transaction: null,
91
+ });
92
+ expect(result).toEqual(new BigNumber("1000000000000000000000"));
93
+ expect(mockedCalculateGasFees).not.toHaveBeenCalled();
94
+ });
95
+ });
96
+ describe("Token account handling", () => {
97
+ it("should calculate max spendable for token account with sufficient balance", async () => {
98
+ const result = await estimateMaxSpendable({
99
+ account: mockTokenAccount,
100
+ transaction: mockTransaction,
101
+ });
102
+ expect(result).toEqual(new BigNumber("999790000000000000000")); // 1000 - 0.21 VTHO
103
+ expect(mockedCalculateGasFees).toHaveBeenCalledWith(mockTransaction, true);
104
+ });
105
+ it("should return zero when gas fees exceed token balance", async () => {
106
+ mockedCalculateGasFees.mockResolvedValue({
107
+ estimatedGas: 21000,
108
+ estimatedGasFees: new BigNumber("2000000000000000000000"), // 2000 VET (more than balance)
109
+ maxFeePerGas: 10000000000000,
110
+ maxPriorityFeePerGas: 1000000000000,
111
+ });
112
+ const result = await estimateMaxSpendable({
113
+ account: mockTokenAccount,
114
+ transaction: mockTransaction,
115
+ });
116
+ expect(result).toEqual(new BigNumber("0"));
117
+ });
118
+ it("should return zero when gas fees equal token balance", async () => {
119
+ mockedCalculateGasFees.mockResolvedValue({
120
+ estimatedGas: 21000,
121
+ estimatedGasFees: new BigNumber("1000000000000000000000"), // Exactly 1000 VET
122
+ maxFeePerGas: 10000000000000,
123
+ maxPriorityFeePerGas: 1000000000000,
124
+ });
125
+ const result = await estimateMaxSpendable({
126
+ account: mockTokenAccount,
127
+ transaction: mockTransaction,
128
+ });
129
+ expect(result).toEqual(new BigNumber("0"));
130
+ });
131
+ it("should handle very small gas fees", async () => {
132
+ mockedCalculateGasFees.mockResolvedValue({
133
+ estimatedGas: 21000,
134
+ estimatedGasFees: new BigNumber("1"), // 1 wei
135
+ maxFeePerGas: 10000000000000,
136
+ maxPriorityFeePerGas: 1000000000000,
137
+ });
138
+ const result = await estimateMaxSpendable({
139
+ account: mockTokenAccount,
140
+ transaction: mockTransaction,
141
+ });
142
+ expect(result).toEqual(new BigNumber("999999999999999999999")); // 1000 VTHO - 1 wei
143
+ });
144
+ });
145
+ describe("calculateGasFees integration", () => {
146
+ it("should call calculateGasFees with correct parameters for token account", async () => {
147
+ await estimateMaxSpendable({
148
+ account: mockTokenAccount,
149
+ transaction: mockTransaction,
150
+ });
151
+ expect(mockedCalculateGasFees).toHaveBeenCalledWith(mockTransaction, true);
152
+ expect(mockedCalculateGasFees).toHaveBeenCalledTimes(1);
153
+ });
154
+ it("should handle calculateGasFees errors", async () => {
155
+ const error = new Error("Gas calculation failed");
156
+ mockedCalculateGasFees.mockRejectedValue(error);
157
+ await expect(estimateMaxSpendable({
158
+ account: mockTokenAccount,
159
+ transaction: mockTransaction,
160
+ })).rejects.toThrow("Gas calculation failed");
161
+ });
162
+ });
163
+ describe("edge cases", () => {
164
+ it("should handle zero balance token account", async () => {
165
+ const zeroBalanceTokenAccount = {
166
+ ...mockTokenAccount,
167
+ balance: new BigNumber("0"),
168
+ spendableBalance: new BigNumber("0"),
169
+ };
170
+ const result = await estimateMaxSpendable({
171
+ account: zeroBalanceTokenAccount,
172
+ transaction: mockTransaction,
173
+ });
174
+ expect(result).toEqual(new BigNumber("0"));
175
+ });
176
+ it("should handle zero balance account", async () => {
177
+ const zeroBalanceAccount = {
178
+ ...mockAccount,
179
+ balance: new BigNumber("0"),
180
+ spendableBalance: new BigNumber("0"),
181
+ };
182
+ const result = await estimateMaxSpendable({
183
+ account: zeroBalanceAccount,
184
+ transaction: mockTransaction,
185
+ });
186
+ expect(result).toEqual(new BigNumber("0"));
187
+ });
188
+ it("should handle very large balances", async () => {
189
+ const largeBalanceTokenAccount = {
190
+ ...mockTokenAccount,
191
+ balance: new BigNumber("1000000000000000000000000"), // 1M tokens
192
+ };
193
+ const result = await estimateMaxSpendable({
194
+ account: largeBalanceTokenAccount,
195
+ transaction: mockTransaction,
196
+ });
197
+ expect(result).toEqual(new BigNumber("999999790000000000000000")); // 1M - 0.21
198
+ });
199
+ it("should handle different transaction types", async () => {
200
+ const tokenTransaction = {
201
+ ...mockTransaction,
202
+ subAccountId: "vechain:1:0x123:+vtho",
203
+ };
204
+ await estimateMaxSpendable({
205
+ account: mockTokenAccount,
206
+ transaction: tokenTransaction,
207
+ });
208
+ expect(mockedCalculateGasFees).toHaveBeenCalledWith(tokenTransaction, true);
209
+ });
210
+ });
211
+ describe("BigNumber operations", () => {
212
+ it("should handle precise BigNumber calculations", async () => {
213
+ const preciseBalanceTokenAccount = {
214
+ ...mockTokenAccount,
215
+ balance: new BigNumber("1000000000000000000001"), // 1000.000000000000000001 tokens
216
+ };
217
+ mockedCalculateGasFees.mockResolvedValue({
218
+ estimatedGas: 21000,
219
+ estimatedGasFees: new BigNumber("1"), // 1 wei
220
+ maxFeePerGas: 10000000000000,
221
+ maxPriorityFeePerGas: 1000000000000,
222
+ });
223
+ const result = await estimateMaxSpendable({
224
+ account: preciseBalanceTokenAccount,
225
+ transaction: mockTransaction,
226
+ });
227
+ expect(result).toEqual(new BigNumber("1000000000000000000000")); // Exactly 1000 tokens
228
+ });
229
+ it("should handle decimal precision in calculations", async () => {
230
+ mockedCalculateGasFees.mockResolvedValue({
231
+ estimatedGas: 21000,
232
+ estimatedGasFees: new BigNumber("123456789012345"), // Non-round number
233
+ maxFeePerGas: 10000000000000,
234
+ maxPriorityFeePerGas: 1000000000000,
235
+ });
236
+ const result = await estimateMaxSpendable({
237
+ account: mockTokenAccount,
238
+ transaction: mockTransaction,
239
+ });
240
+ expect(result).toEqual(new BigNumber("999999876543210987655")); // Precise subtraction
241
+ });
242
+ });
243
+ describe("account type validation", () => {
244
+ it("should correctly identify Account type", async () => {
245
+ const accountTypeAccount = { ...mockAccount, type: "Account" };
246
+ const result = await estimateMaxSpendable({
247
+ account: accountTypeAccount,
248
+ transaction: mockTransaction,
249
+ });
250
+ expect(result).toEqual(accountTypeAccount.balance);
251
+ expect(mockedCalculateGasFees).not.toHaveBeenCalled();
252
+ });
253
+ it("should correctly identify TokenAccount type", async () => {
254
+ const tokenTypeAccount = { ...mockTokenAccount, type: "TokenAccount" };
255
+ const result = await estimateMaxSpendable({
256
+ account: tokenTypeAccount,
257
+ transaction: mockTransaction,
258
+ });
259
+ expect(mockedCalculateGasFees).toHaveBeenCalled();
260
+ expect(result).toEqual(new BigNumber("999790000000000000000"));
261
+ });
262
+ });
263
+ });
264
+ //# sourceMappingURL=estimateMaxSpendable.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateMaxSpendable.test.js","sourceRoot":"","sources":["../../src/bridge/estimateMaxSpendable.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getTransactionStatus.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTransactionStatus.test.d.ts","sourceRoot":"","sources":["../../src/bridge/getTransactionStatus.test.ts"],"names":[],"mappings":""}