@ledgerhq/coin-vechain 2.11.0 → 2.11.1-nightly.1

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 +15 -0
  3. package/package.json +6 -6
  4. package/lib/bridge/broadcast.test.d.ts +0 -2
  5. package/lib/bridge/broadcast.test.d.ts.map +0 -1
  6. package/lib/bridge/broadcast.test.js +0 -188
  7. package/lib/bridge/broadcast.test.js.map +0 -1
  8. package/lib/bridge/buildOptimisticOperatioin.test.d.ts +0 -2
  9. package/lib/bridge/buildOptimisticOperatioin.test.d.ts.map +0 -1
  10. package/lib/bridge/buildOptimisticOperatioin.test.js +0 -286
  11. package/lib/bridge/buildOptimisticOperatioin.test.js.map +0 -1
  12. package/lib/bridge/createTransaction.test.d.ts +0 -2
  13. package/lib/bridge/createTransaction.test.d.ts.map +0 -1
  14. package/lib/bridge/createTransaction.test.js +0 -167
  15. package/lib/bridge/createTransaction.test.js.map +0 -1
  16. package/lib/bridge/estimateMaxSpendable.test.d.ts +0 -2
  17. package/lib/bridge/estimateMaxSpendable.test.d.ts.map +0 -1
  18. package/lib/bridge/estimateMaxSpendable.test.js +0 -269
  19. package/lib/bridge/estimateMaxSpendable.test.js.map +0 -1
  20. package/lib/bridge/getTransactionStatus.test.d.ts +0 -2
  21. package/lib/bridge/getTransactionStatus.test.d.ts.map +0 -1
  22. package/lib/bridge/getTransactionStatus.test.js +0 -282
  23. package/lib/bridge/getTransactionStatus.test.js.map +0 -1
  24. package/lib/bridge/helpers.test.d.ts +0 -2
  25. package/lib/bridge/helpers.test.d.ts.map +0 -1
  26. package/lib/bridge/helpers.test.js +0 -298
  27. package/lib/bridge/helpers.test.js.map +0 -1
  28. package/lib/bridge/prepareTransaction.test.d.ts +0 -2
  29. package/lib/bridge/prepareTransaction.test.d.ts.map +0 -1
  30. package/lib/bridge/prepareTransaction.test.js +0 -277
  31. package/lib/bridge/prepareTransaction.test.js.map +0 -1
  32. package/lib/bridge/signOperation.test.d.ts +0 -2
  33. package/lib/bridge/signOperation.test.d.ts.map +0 -1
  34. package/lib/bridge/signOperation.test.js +0 -295
  35. package/lib/bridge/signOperation.test.js.map +0 -1
  36. package/lib/bridge/synchronisation.test.d.ts +0 -2
  37. package/lib/bridge/synchronisation.test.d.ts.map +0 -1
  38. package/lib/bridge/synchronisation.test.js +0 -201
  39. package/lib/bridge/synchronisation.test.js.map +0 -1
  40. package/lib/bridge/transaction.test.d.ts +0 -2
  41. package/lib/bridge/transaction.test.d.ts.map +0 -1
  42. package/lib/bridge/transaction.test.js +0 -353
  43. package/lib/bridge/transaction.test.js.map +0 -1
  44. package/lib/common-logic/calculateClauses.test.d.ts +0 -2
  45. package/lib/common-logic/calculateClauses.test.d.ts.map +0 -1
  46. package/lib/common-logic/calculateClauses.test.js +0 -156
  47. package/lib/common-logic/calculateClauses.test.js.map +0 -1
  48. package/lib/common-logic/calculateGasFees.test.d.ts +0 -2
  49. package/lib/common-logic/calculateGasFees.test.d.ts.map +0 -1
  50. package/lib/common-logic/calculateGasFees.test.js +0 -279
  51. package/lib/common-logic/calculateGasFees.test.js.map +0 -1
  52. package/lib/common-logic/calculateTransactionInfo.test.d.ts +0 -2
  53. package/lib/common-logic/calculateTransactionInfo.test.d.ts.map +0 -1
  54. package/lib/common-logic/calculateTransactionInfo.test.js +0 -314
  55. package/lib/common-logic/calculateTransactionInfo.test.js.map +0 -1
  56. package/lib/common-logic/estimateGas.test.d.ts +0 -2
  57. package/lib/common-logic/estimateGas.test.d.ts.map +0 -1
  58. package/lib/common-logic/estimateGas.test.js +0 -129
  59. package/lib/common-logic/estimateGas.test.js.map +0 -1
  60. package/lib/common-logic/fixPrefixCase.test.d.ts +0 -2
  61. package/lib/common-logic/fixPrefixCase.test.d.ts.map +0 -1
  62. package/lib/common-logic/fixPrefixCase.test.js +0 -46
  63. package/lib/common-logic/fixPrefixCase.test.js.map +0 -1
  64. package/lib/common-logic/generateNonce.test.d.ts +0 -2
  65. package/lib/common-logic/generateNonce.test.d.ts.map +0 -1
  66. package/lib/common-logic/generateNonce.test.js +0 -59
  67. package/lib/common-logic/generateNonce.test.js.map +0 -1
  68. package/lib/common-logic/getThorClient.test.d.ts +0 -2
  69. package/lib/common-logic/getThorClient.test.d.ts.map +0 -1
  70. package/lib/common-logic/getThorClient.test.js +0 -53
  71. package/lib/common-logic/getThorClient.test.js.map +0 -1
  72. package/lib/common-logic/mapTransfersToOperations.test.d.ts +0 -2
  73. package/lib/common-logic/mapTransfersToOperations.test.d.ts.map +0 -1
  74. package/lib/common-logic/mapTransfersToOperations.test.js +0 -274
  75. package/lib/common-logic/mapTransfersToOperations.test.js.map +0 -1
  76. package/lib/common-logic/padAddress.test.d.ts +0 -2
  77. package/lib/common-logic/padAddress.test.d.ts.map +0 -1
  78. package/lib/common-logic/padAddress.test.js +0 -59
  79. package/lib/common-logic/padAddress.test.js.map +0 -1
  80. package/lib/common-logic/parseAddress.test.d.ts +0 -2
  81. package/lib/common-logic/parseAddress.test.d.ts.map +0 -1
  82. package/lib/common-logic/parseAddress.test.js +0 -97
  83. package/lib/common-logic/parseAddress.test.js.map +0 -1
  84. package/lib/signer/getAddress.test.d.ts +0 -2
  85. package/lib/signer/getAddress.test.d.ts.map +0 -1
  86. package/lib/signer/getAddress.test.js +0 -357
  87. package/lib/signer/getAddress.test.js.map +0 -1
  88. package/lib/signer/signMessage.test.d.ts +0 -2
  89. package/lib/signer/signMessage.test.d.ts.map +0 -1
  90. package/lib/signer/signMessage.test.js +0 -242
  91. package/lib/signer/signMessage.test.js.map +0 -1
  92. package/lib-es/bridge/broadcast.test.d.ts +0 -2
  93. package/lib-es/bridge/broadcast.test.d.ts.map +0 -1
  94. package/lib-es/bridge/broadcast.test.js +0 -183
  95. package/lib-es/bridge/broadcast.test.js.map +0 -1
  96. package/lib-es/bridge/buildOptimisticOperatioin.test.d.ts +0 -2
  97. package/lib-es/bridge/buildOptimisticOperatioin.test.d.ts.map +0 -1
  98. package/lib-es/bridge/buildOptimisticOperatioin.test.js +0 -281
  99. package/lib-es/bridge/buildOptimisticOperatioin.test.js.map +0 -1
  100. package/lib-es/bridge/createTransaction.test.d.ts +0 -2
  101. package/lib-es/bridge/createTransaction.test.d.ts.map +0 -1
  102. package/lib-es/bridge/createTransaction.test.js +0 -162
  103. package/lib-es/bridge/createTransaction.test.js.map +0 -1
  104. package/lib-es/bridge/estimateMaxSpendable.test.d.ts +0 -2
  105. package/lib-es/bridge/estimateMaxSpendable.test.d.ts.map +0 -1
  106. package/lib-es/bridge/estimateMaxSpendable.test.js +0 -264
  107. package/lib-es/bridge/estimateMaxSpendable.test.js.map +0 -1
  108. package/lib-es/bridge/getTransactionStatus.test.d.ts +0 -2
  109. package/lib-es/bridge/getTransactionStatus.test.d.ts.map +0 -1
  110. package/lib-es/bridge/getTransactionStatus.test.js +0 -277
  111. package/lib-es/bridge/getTransactionStatus.test.js.map +0 -1
  112. package/lib-es/bridge/helpers.test.d.ts +0 -2
  113. package/lib-es/bridge/helpers.test.d.ts.map +0 -1
  114. package/lib-es/bridge/helpers.test.js +0 -293
  115. package/lib-es/bridge/helpers.test.js.map +0 -1
  116. package/lib-es/bridge/prepareTransaction.test.d.ts +0 -2
  117. package/lib-es/bridge/prepareTransaction.test.d.ts.map +0 -1
  118. package/lib-es/bridge/prepareTransaction.test.js +0 -272
  119. package/lib-es/bridge/prepareTransaction.test.js.map +0 -1
  120. package/lib-es/bridge/signOperation.test.d.ts +0 -2
  121. package/lib-es/bridge/signOperation.test.d.ts.map +0 -1
  122. package/lib-es/bridge/signOperation.test.js +0 -290
  123. package/lib-es/bridge/signOperation.test.js.map +0 -1
  124. package/lib-es/bridge/synchronisation.test.d.ts +0 -2
  125. package/lib-es/bridge/synchronisation.test.d.ts.map +0 -1
  126. package/lib-es/bridge/synchronisation.test.js +0 -196
  127. package/lib-es/bridge/synchronisation.test.js.map +0 -1
  128. package/lib-es/bridge/transaction.test.d.ts +0 -2
  129. package/lib-es/bridge/transaction.test.d.ts.map +0 -1
  130. package/lib-es/bridge/transaction.test.js +0 -347
  131. package/lib-es/bridge/transaction.test.js.map +0 -1
  132. package/lib-es/common-logic/calculateClauses.test.d.ts +0 -2
  133. package/lib-es/common-logic/calculateClauses.test.d.ts.map +0 -1
  134. package/lib-es/common-logic/calculateClauses.test.js +0 -151
  135. package/lib-es/common-logic/calculateClauses.test.js.map +0 -1
  136. package/lib-es/common-logic/calculateGasFees.test.d.ts +0 -2
  137. package/lib-es/common-logic/calculateGasFees.test.d.ts.map +0 -1
  138. package/lib-es/common-logic/calculateGasFees.test.js +0 -274
  139. package/lib-es/common-logic/calculateGasFees.test.js.map +0 -1
  140. package/lib-es/common-logic/calculateTransactionInfo.test.d.ts +0 -2
  141. package/lib-es/common-logic/calculateTransactionInfo.test.d.ts.map +0 -1
  142. package/lib-es/common-logic/calculateTransactionInfo.test.js +0 -309
  143. package/lib-es/common-logic/calculateTransactionInfo.test.js.map +0 -1
  144. package/lib-es/common-logic/estimateGas.test.d.ts +0 -2
  145. package/lib-es/common-logic/estimateGas.test.d.ts.map +0 -1
  146. package/lib-es/common-logic/estimateGas.test.js +0 -127
  147. package/lib-es/common-logic/estimateGas.test.js.map +0 -1
  148. package/lib-es/common-logic/fixPrefixCase.test.d.ts +0 -2
  149. package/lib-es/common-logic/fixPrefixCase.test.d.ts.map +0 -1
  150. package/lib-es/common-logic/fixPrefixCase.test.js +0 -44
  151. package/lib-es/common-logic/fixPrefixCase.test.js.map +0 -1
  152. package/lib-es/common-logic/generateNonce.test.d.ts +0 -2
  153. package/lib-es/common-logic/generateNonce.test.d.ts.map +0 -1
  154. package/lib-es/common-logic/generateNonce.test.js +0 -57
  155. package/lib-es/common-logic/generateNonce.test.js.map +0 -1
  156. package/lib-es/common-logic/getThorClient.test.d.ts +0 -2
  157. package/lib-es/common-logic/getThorClient.test.d.ts.map +0 -1
  158. package/lib-es/common-logic/getThorClient.test.js +0 -51
  159. package/lib-es/common-logic/getThorClient.test.js.map +0 -1
  160. package/lib-es/common-logic/mapTransfersToOperations.test.d.ts +0 -2
  161. package/lib-es/common-logic/mapTransfersToOperations.test.d.ts.map +0 -1
  162. package/lib-es/common-logic/mapTransfersToOperations.test.js +0 -269
  163. package/lib-es/common-logic/mapTransfersToOperations.test.js.map +0 -1
  164. package/lib-es/common-logic/padAddress.test.d.ts +0 -2
  165. package/lib-es/common-logic/padAddress.test.d.ts.map +0 -1
  166. package/lib-es/common-logic/padAddress.test.js +0 -57
  167. package/lib-es/common-logic/padAddress.test.js.map +0 -1
  168. package/lib-es/common-logic/parseAddress.test.d.ts +0 -2
  169. package/lib-es/common-logic/parseAddress.test.d.ts.map +0 -1
  170. package/lib-es/common-logic/parseAddress.test.js +0 -95
  171. package/lib-es/common-logic/parseAddress.test.js.map +0 -1
  172. package/lib-es/signer/getAddress.test.d.ts +0 -2
  173. package/lib-es/signer/getAddress.test.d.ts.map +0 -1
  174. package/lib-es/signer/getAddress.test.js +0 -352
  175. package/lib-es/signer/getAddress.test.js.map +0 -1
  176. package/lib-es/signer/signMessage.test.d.ts +0 -2
  177. package/lib-es/signer/signMessage.test.d.ts.map +0 -1
  178. package/lib-es/signer/signMessage.test.js +0 -240
  179. package/lib-es/signer/signMessage.test.js.map +0 -1
@@ -1,272 +0,0 @@
1
- import BigNumber from "bignumber.js";
2
- import { prepareTransaction } from "./prepareTransaction";
3
- import { calculateTransactionInfo, calculateClausesVet, calculateClausesVtho, parseAddress, } from "../common-logic";
4
- import { getBlockRef } from "../network";
5
- // Mock dependencies
6
- jest.mock("../common-logic");
7
- jest.mock("../network");
8
- const mockedCalculateTransactionInfo = jest.mocked(calculateTransactionInfo);
9
- const mockedCalculateClausesVet = jest.mocked(calculateClausesVet);
10
- const mockedCalculateClausesVtho = jest.mocked(calculateClausesVtho);
11
- const mockedParseAddress = jest.mocked(parseAddress);
12
- const mockedGetBlockRef = jest.mocked(getBlockRef);
13
- describe("prepareTransaction", () => {
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("5000000000000000000"), // 5 VET
24
- spendableBalance: new BigNumber("5000000000000000000"),
25
- creationDate: new Date("2022-01-01"),
26
- blockHeight: 12345,
27
- currency: { name: "VeChain" },
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 mockTransaction = {
37
- family: "vechain",
38
- recipient: "0x456789012345678901234567890123456789abcd",
39
- amount: new BigNumber("1000000000000000000"), // 1 VET
40
- estimatedFees: "0",
41
- body: {
42
- chainTag: 74,
43
- blockRef: "0x0000000000000000",
44
- expiration: 18,
45
- clauses: [],
46
- maxFeePerGas: 0,
47
- maxPriorityFeePerGas: 0,
48
- gas: "0",
49
- dependsOn: null,
50
- nonce: "0x12345678",
51
- },
52
- };
53
- const mockTransactionInfo = {
54
- amount: new BigNumber("1000000000000000000"),
55
- isTokenAccount: false,
56
- estimatedFees: "210000000000000000",
57
- estimatedGas: 21000,
58
- maxFeePerGas: 10000000000000,
59
- maxPriorityFeePerGas: 1000000000000,
60
- spendableBalance: new BigNumber("4790000000000000000"),
61
- balance: new BigNumber("5000000000000000000"),
62
- tokenAccount: undefined,
63
- };
64
- const mockVetClauses = [
65
- {
66
- to: "0x456789012345678901234567890123456789abcd",
67
- value: "1000000000000000000",
68
- data: "0x",
69
- },
70
- ];
71
- const mockVthoClauses = [
72
- {
73
- to: "0x0000000000000000000000000000456e65726779",
74
- value: "0",
75
- data: "0xa9059cbb000000000000000000000000456789012345678901234567890123456789abcd0000000000000000000000000000000000000000000000000de0b6b3a7640000",
76
- },
77
- ];
78
- beforeEach(() => {
79
- jest.clearAllMocks();
80
- mockedCalculateTransactionInfo.mockResolvedValue(mockTransactionInfo);
81
- mockedParseAddress.mockReturnValue(true);
82
- mockedGetBlockRef.mockResolvedValue("0x00000000000b2bce");
83
- mockedCalculateClausesVet.mockResolvedValue(mockVetClauses);
84
- mockedCalculateClausesVtho.mockResolvedValue(mockVthoClauses);
85
- });
86
- describe("VET transactions", () => {
87
- it("should prepare a VET transaction with valid recipient", async () => {
88
- const result = await prepareTransaction(mockAccount, mockTransaction);
89
- expect(result).toEqual({
90
- ...mockTransaction,
91
- body: {
92
- ...mockTransaction.body,
93
- gas: 21000,
94
- blockRef: "0x00000000000b2bce",
95
- clauses: mockVetClauses,
96
- maxFeePerGas: 10000000000000,
97
- maxPriorityFeePerGas: 1000000000000,
98
- },
99
- amount: new BigNumber("1000000000000000000"),
100
- estimatedFees: "210000000000000000",
101
- });
102
- expect(mockedCalculateClausesVet).toHaveBeenCalledWith(mockTransaction.recipient, new BigNumber("1000000000000000000"));
103
- expect(mockedCalculateClausesVtho).not.toHaveBeenCalled();
104
- });
105
- it("should handle VET transaction without recipient", async () => {
106
- const transactionWithoutRecipient = {
107
- ...mockTransaction,
108
- recipient: "",
109
- };
110
- const result = await prepareTransaction(mockAccount, transactionWithoutRecipient);
111
- expect(result.body.clauses).toEqual([]);
112
- expect(result.body.blockRef).toBe("");
113
- expect(mockedGetBlockRef).not.toHaveBeenCalled();
114
- expect(mockedCalculateClausesVet).not.toHaveBeenCalled();
115
- });
116
- it("should handle VET transaction with invalid recipient", async () => {
117
- mockedParseAddress.mockReturnValue(false);
118
- const result = await prepareTransaction(mockAccount, mockTransaction);
119
- expect(result.body.clauses).toEqual([]);
120
- expect(result.body.blockRef).toBe("");
121
- expect(mockedGetBlockRef).not.toHaveBeenCalled();
122
- expect(mockedCalculateClausesVet).not.toHaveBeenCalled();
123
- });
124
- });
125
- describe("Token transactions", () => {
126
- it("should prepare a token transaction with valid recipient", async () => {
127
- const tokenTransactionInfo = {
128
- ...mockTransactionInfo,
129
- isTokenAccount: true,
130
- tokenAccount: {},
131
- };
132
- mockedCalculateTransactionInfo.mockResolvedValue(tokenTransactionInfo);
133
- const result = await prepareTransaction(mockAccount, mockTransaction);
134
- expect(result).toEqual({
135
- ...mockTransaction,
136
- body: {
137
- ...mockTransaction.body,
138
- gas: 21000,
139
- blockRef: "0x00000000000b2bce",
140
- clauses: mockVthoClauses,
141
- maxFeePerGas: 10000000000000,
142
- maxPriorityFeePerGas: 1000000000000,
143
- },
144
- amount: new BigNumber("1000000000000000000"),
145
- estimatedFees: "210000000000000000",
146
- });
147
- expect(mockedCalculateClausesVtho).toHaveBeenCalledWith(mockTransaction.recipient, new BigNumber("1000000000000000000"));
148
- expect(mockedCalculateClausesVet).not.toHaveBeenCalled();
149
- });
150
- });
151
- describe("calculateTransactionInfo integration", () => {
152
- it("should call calculateTransactionInfo with correct parameters", async () => {
153
- await prepareTransaction(mockAccount, mockTransaction);
154
- expect(mockedCalculateTransactionInfo).toHaveBeenCalledWith(mockAccount, mockTransaction);
155
- });
156
- it("should use transaction info results in the prepared transaction", async () => {
157
- const customTransactionInfo = {
158
- amount: new BigNumber("2000000000000000000"),
159
- isTokenAccount: false,
160
- estimatedFees: "420000000000000000",
161
- estimatedGas: 42000,
162
- maxFeePerGas: 20000000000000,
163
- maxPriorityFeePerGas: 2000000000000,
164
- spendableBalance: new BigNumber("3000000000000000000"),
165
- balance: new BigNumber("5000000000000000000"),
166
- tokenAccount: undefined,
167
- };
168
- mockedCalculateTransactionInfo.mockResolvedValue(customTransactionInfo);
169
- const result = await prepareTransaction(mockAccount, mockTransaction);
170
- expect(result.amount).toEqual(new BigNumber("2000000000000000000"));
171
- expect(result.estimatedFees).toBe("420000000000000000");
172
- expect(result.body.gas).toBe(42000);
173
- expect(result.body.maxFeePerGas).toBe(20000000000000);
174
- expect(result.body.maxPriorityFeePerGas).toBe(2000000000000);
175
- });
176
- });
177
- describe("blockRef handling", () => {
178
- it("should get blockRef when recipient is valid", async () => {
179
- await prepareTransaction(mockAccount, mockTransaction);
180
- expect(mockedGetBlockRef).toHaveBeenCalledTimes(1);
181
- });
182
- it("should not get blockRef when recipient is empty", async () => {
183
- const transactionWithoutRecipient = {
184
- ...mockTransaction,
185
- recipient: "",
186
- };
187
- await prepareTransaction(mockAccount, transactionWithoutRecipient);
188
- expect(mockedGetBlockRef).not.toHaveBeenCalled();
189
- });
190
- it("should not get blockRef when recipient is invalid", async () => {
191
- mockedParseAddress.mockReturnValue(false);
192
- await prepareTransaction(mockAccount, mockTransaction);
193
- expect(mockedGetBlockRef).not.toHaveBeenCalled();
194
- });
195
- it("should handle getBlockRef errors", async () => {
196
- const error = new Error("Network error");
197
- mockedGetBlockRef.mockRejectedValue(error);
198
- await expect(prepareTransaction(mockAccount, mockTransaction)).rejects.toThrow("Network error");
199
- });
200
- });
201
- describe("clause calculation", () => {
202
- it("should handle calculateClausesVet errors", async () => {
203
- const error = new Error("VET clause calculation failed");
204
- mockedCalculateClausesVet.mockRejectedValue(error);
205
- await expect(prepareTransaction(mockAccount, mockTransaction)).rejects.toThrow("VET clause calculation failed");
206
- });
207
- it("should handle calculateClausesVtho errors", async () => {
208
- const tokenTransactionInfo = {
209
- ...mockTransactionInfo,
210
- isTokenAccount: true,
211
- tokenAccount: {},
212
- };
213
- mockedCalculateTransactionInfo.mockResolvedValue(tokenTransactionInfo);
214
- const error = new Error("VTHO clause calculation failed");
215
- mockedCalculateClausesVtho.mockRejectedValue(error);
216
- await expect(prepareTransaction(mockAccount, mockTransaction)).rejects.toThrow("VTHO clause calculation failed");
217
- });
218
- });
219
- describe("body preservation", () => {
220
- it("should preserve existing body properties", async () => {
221
- const transactionWithBody = {
222
- ...mockTransaction,
223
- body: {
224
- ...mockTransaction.body,
225
- chainTag: 39, // testnet
226
- expiration: 32,
227
- dependsOn: "0xprevious123",
228
- nonce: "0xabcdef123456",
229
- },
230
- };
231
- const result = await prepareTransaction(mockAccount, transactionWithBody);
232
- expect(result.body.chainTag).toBe(39);
233
- expect(result.body.expiration).toBe(32);
234
- expect(result.body.dependsOn).toBe("0xprevious123");
235
- expect(result.body.nonce).toBe("0xabcdef123456");
236
- });
237
- it("should override gas-related properties", async () => {
238
- const transactionWithOldGas = {
239
- ...mockTransaction,
240
- body: {
241
- ...mockTransaction.body,
242
- gas: 999,
243
- maxFeePerGas: 999,
244
- maxPriorityFeePerGas: 999,
245
- },
246
- };
247
- const result = await prepareTransaction(mockAccount, transactionWithOldGas);
248
- expect(result.body.gas).toBe(21000);
249
- expect(result.body.maxFeePerGas).toBe(10000000000000);
250
- expect(result.body.maxPriorityFeePerGas).toBe(1000000000000);
251
- });
252
- });
253
- describe("address validation", () => {
254
- it("should call parseAddress with recipient", async () => {
255
- await prepareTransaction(mockAccount, mockTransaction);
256
- expect(mockedParseAddress).toHaveBeenCalledWith(mockTransaction.recipient);
257
- });
258
- it("should handle different recipient formats", async () => {
259
- const recipients = [
260
- "0x456789012345678901234567890123456789abcd",
261
- "0X456789012345678901234567890123456789ABCD",
262
- "456789012345678901234567890123456789abcd",
263
- ];
264
- for (const recipient of recipients) {
265
- const txWithRecipient = { ...mockTransaction, recipient };
266
- await prepareTransaction(mockAccount, txWithRecipient);
267
- expect(mockedParseAddress).toHaveBeenCalledWith(recipient);
268
- }
269
- });
270
- });
271
- });
272
- //# sourceMappingURL=prepareTransaction.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prepareTransaction.test.js","sourceRoot":"","sources":["../../src/bridge/prepareTransaction.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=signOperation.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signOperation.test.d.ts","sourceRoot":"","sources":["../../src/bridge/signOperation.test.ts"],"names":[],"mappings":""}
@@ -1,290 +0,0 @@
1
- import { buildSignOperation } from "./signOperation";
2
- import { buildOptimisticOperation } from "./buildOptimisticOperatioin";
3
- import { VechainSDKTransaction } from "../types";
4
- import BigNumber from "bignumber.js";
5
- // Mock dependencies
6
- jest.mock("./buildOptimisticOperatioin");
7
- jest.mock("../types", () => ({
8
- ...jest.requireActual("../types"),
9
- VechainSDKTransaction: {
10
- of: jest.fn(),
11
- },
12
- }));
13
- const mockedBuildOptimisticOperation = jest.mocked(buildOptimisticOperation);
14
- const mockedVechainSDKTransaction = jest.mocked(VechainSDKTransaction);
15
- describe("buildSignOperation", () => {
16
- const mockAccount = {
17
- type: "Account",
18
- id: "vechain:1:0x123:",
19
- seedIdentifier: "seed123",
20
- derivationMode: "",
21
- index: 0,
22
- freshAddress: "0x742d35Cc6634C0532925a3b8D0B251d8c1743eC4",
23
- freshAddressPath: "44'/818'/0'/0/0",
24
- used: true,
25
- balance: new BigNumber("5000000000000000000"),
26
- spendableBalance: new BigNumber("5000000000000000000"),
27
- creationDate: new Date("2022-01-01"),
28
- blockHeight: 12345,
29
- currency: {},
30
- operationsCount: 10,
31
- operations: [],
32
- pendingOperations: [],
33
- lastSyncDate: new Date("2022-01-01"),
34
- balanceHistoryCache: { HOUR: {}, DAY: {}, WEEK: {} },
35
- swapHistory: [],
36
- subAccounts: [],
37
- };
38
- const mockTransaction = {
39
- family: "vechain",
40
- recipient: "0x456789012345678901234567890123456789abcd",
41
- amount: new BigNumber("1000000000000000000"),
42
- estimatedFees: "210000000000000000",
43
- body: {
44
- chainTag: 74,
45
- blockRef: "0x00000000000b2bce",
46
- expiration: 18,
47
- clauses: [
48
- {
49
- to: "0x456789012345678901234567890123456789abcd",
50
- value: "1000000000000000000",
51
- data: "0x",
52
- },
53
- ],
54
- maxFeePerGas: 10000000000000,
55
- maxPriorityFeePerGas: 1000000000000,
56
- gas: 21000,
57
- dependsOn: null,
58
- nonce: "0x12345678",
59
- },
60
- };
61
- const mockDeviceId = "mock-device-id";
62
- const mockSigner = {
63
- getAddress: jest.fn(),
64
- signTransaction: jest.fn(),
65
- };
66
- const mockSignerContext = jest.fn();
67
- const mockUnsignedTransaction = {
68
- encoded: Buffer.from("mockencoded", "hex"),
69
- };
70
- const mockOperation = {
71
- id: "vechain:1:0x123:0xtxhash:OUT",
72
- hash: "",
73
- type: "OUT",
74
- value: new BigNumber("1000000000000000000"),
75
- fee: new BigNumber("210000000000000000"),
76
- blockHash: null,
77
- blockHeight: null,
78
- senders: ["0x742d35Cc6634C0532925a3b8D0B251d8c1743eC4"],
79
- recipients: ["0x456789012345678901234567890123456789abcd"],
80
- accountId: "vechain:1:0x123:",
81
- date: new Date("2022-01-01"),
82
- extra: {},
83
- };
84
- beforeEach(() => {
85
- jest.clearAllMocks();
86
- mockedVechainSDKTransaction.of.mockReturnValue(mockUnsignedTransaction);
87
- mockedBuildOptimisticOperation.mockResolvedValue(mockOperation);
88
- mockSigner.signTransaction.mockResolvedValue(Buffer.from("signature123", "hex"));
89
- mockSignerContext.mockImplementation((deviceId, callback) => callback(mockSigner));
90
- });
91
- it("should emit correct sequence of events for successful signing", async () => {
92
- const signOperation = buildSignOperation(mockSignerContext);
93
- const observable = signOperation({
94
- account: mockAccount,
95
- transaction: mockTransaction,
96
- deviceId: mockDeviceId,
97
- });
98
- const events = [];
99
- const promise = new Promise((resolve, reject) => {
100
- observable.subscribe({
101
- next: event => events.push(event),
102
- complete: resolve,
103
- error: reject,
104
- });
105
- });
106
- await promise;
107
- expect(events).toHaveLength(3);
108
- expect(events[0]).toEqual({ type: "device-signature-requested" });
109
- expect(events[1]).toEqual({ type: "device-signature-granted" });
110
- expect(events[2]).toEqual({
111
- type: "signed",
112
- signedOperation: {
113
- operation: mockOperation,
114
- signature: "",
115
- rawData: mockTransaction,
116
- },
117
- });
118
- });
119
- it("should create unsigned transaction from transaction body", async () => {
120
- const signOperation = buildSignOperation(mockSignerContext);
121
- const observable = signOperation({
122
- account: mockAccount,
123
- transaction: mockTransaction,
124
- deviceId: mockDeviceId,
125
- });
126
- await new Promise((resolve, reject) => {
127
- observable.subscribe({ complete: resolve, error: reject });
128
- });
129
- expect(mockedVechainSDKTransaction.of).toHaveBeenCalledWith(mockTransaction.body);
130
- });
131
- it("should call signer with correct parameters", async () => {
132
- const signOperation = buildSignOperation(mockSignerContext);
133
- const observable = signOperation({
134
- account: mockAccount,
135
- transaction: mockTransaction,
136
- deviceId: mockDeviceId,
137
- });
138
- await new Promise((resolve, reject) => {
139
- observable.subscribe({ complete: resolve, error: reject });
140
- });
141
- expect(mockSignerContext).toHaveBeenCalledWith(mockDeviceId, expect.any(Function));
142
- expect(mockSigner.signTransaction).toHaveBeenCalledWith(mockAccount.freshAddressPath, mockUnsignedTransaction.encoded.toString("hex"));
143
- });
144
- it("should build optimistic operation with correct parameters", async () => {
145
- const signOperation = buildSignOperation(mockSignerContext);
146
- const observable = signOperation({
147
- account: mockAccount,
148
- transaction: mockTransaction,
149
- deviceId: mockDeviceId,
150
- });
151
- await new Promise((resolve, reject) => {
152
- observable.subscribe({ complete: resolve, error: reject });
153
- });
154
- expect(mockedBuildOptimisticOperation).toHaveBeenCalledWith(mockAccount, mockTransaction);
155
- });
156
- it("should convert signature buffer to hex string", async () => {
157
- const signatureBuffer = Buffer.from([0x12, 0x34, 0x56, 0x78]);
158
- mockSigner.signTransaction.mockResolvedValue(signatureBuffer);
159
- const signOperation = buildSignOperation(mockSignerContext);
160
- const observable = signOperation({
161
- account: mockAccount,
162
- transaction: mockTransaction,
163
- deviceId: mockDeviceId,
164
- });
165
- const events = [];
166
- await new Promise((resolve, reject) => {
167
- observable.subscribe({
168
- next: event => events.push(event),
169
- complete: resolve,
170
- error: reject,
171
- });
172
- });
173
- const signedEvent = events.find(e => e.type === "signed");
174
- expect(signedEvent.signedOperation.signature).toBe("12345678");
175
- });
176
- it("should handle signer errors", async () => {
177
- const signerError = new Error("Hardware wallet error");
178
- mockSigner.signTransaction.mockRejectedValue(signerError);
179
- const signOperation = buildSignOperation(mockSignerContext);
180
- const observable = signOperation({
181
- account: mockAccount,
182
- transaction: mockTransaction,
183
- deviceId: mockDeviceId,
184
- });
185
- await expect(new Promise((resolve, reject) => {
186
- observable.subscribe({ complete: resolve, error: reject });
187
- })).rejects.toThrow("Hardware wallet error");
188
- });
189
- it("should handle VechainSDKTransaction creation errors", async () => {
190
- const transactionError = new Error("Invalid transaction format");
191
- mockedVechainSDKTransaction.of.mockImplementation(() => {
192
- throw transactionError;
193
- });
194
- const signOperation = buildSignOperation(mockSignerContext);
195
- const observable = signOperation({
196
- account: mockAccount,
197
- transaction: mockTransaction,
198
- deviceId: mockDeviceId,
199
- });
200
- await expect(new Promise((resolve, reject) => {
201
- observable.subscribe({ complete: resolve, error: reject });
202
- })).rejects.toThrow("Invalid transaction format");
203
- });
204
- it("should handle buildOptimisticOperation errors", async () => {
205
- const operationError = new Error("Failed to build operation");
206
- mockedBuildOptimisticOperation.mockRejectedValue(operationError);
207
- const signOperation = buildSignOperation(mockSignerContext);
208
- const observable = signOperation({
209
- account: mockAccount,
210
- transaction: mockTransaction,
211
- deviceId: mockDeviceId,
212
- });
213
- await expect(new Promise((resolve, reject) => {
214
- observable.subscribe({ complete: resolve, error: reject });
215
- })).rejects.toThrow("Failed to build operation");
216
- });
217
- it("should handle signerContext errors", async () => {
218
- const contextError = new Error("Signer context failed");
219
- mockSignerContext.mockRejectedValue(contextError);
220
- const signOperation = buildSignOperation(mockSignerContext);
221
- const observable = signOperation({
222
- account: mockAccount,
223
- transaction: mockTransaction,
224
- deviceId: mockDeviceId,
225
- });
226
- await expect(new Promise((resolve, reject) => {
227
- observable.subscribe({ complete: resolve, error: reject });
228
- })).rejects.toThrow("Signer context failed");
229
- });
230
- it("should work with different device IDs", async () => {
231
- const deviceIds = ["device1", "device2", "device3"];
232
- for (const deviceId of deviceIds) {
233
- const signOperation = buildSignOperation(mockSignerContext);
234
- const observable = signOperation({
235
- account: mockAccount,
236
- transaction: mockTransaction,
237
- deviceId,
238
- });
239
- await new Promise((resolve, reject) => {
240
- observable.subscribe({ complete: resolve, error: reject });
241
- });
242
- expect(mockSignerContext).toHaveBeenCalledWith(deviceId, expect.any(Function));
243
- }
244
- });
245
- it("should include rawData as transaction in signed operation", async () => {
246
- const signOperation = buildSignOperation(mockSignerContext);
247
- const observable = signOperation({
248
- account: mockAccount,
249
- transaction: mockTransaction,
250
- deviceId: mockDeviceId,
251
- });
252
- const events = [];
253
- await new Promise((resolve, reject) => {
254
- observable.subscribe({
255
- next: event => events.push(event),
256
- complete: resolve,
257
- error: reject,
258
- });
259
- });
260
- const signedEvent = events.find(e => e.type === "signed");
261
- expect(signedEvent.signedOperation.rawData).toBe(mockTransaction);
262
- });
263
- it("should handle different transaction types", async () => {
264
- const tokenTransaction = {
265
- ...mockTransaction,
266
- subAccountId: "vechain:1:0x123:+vtho",
267
- body: {
268
- ...mockTransaction.body,
269
- clauses: [
270
- {
271
- to: "0x0000000000000000000000000000456e65726779",
272
- value: "0",
273
- data: "0xa9059cbb000000000000000000000000456789012345678901234567890123456789abcd0000000000000000000000000000000000000000000000000de0b6b3a7640000",
274
- },
275
- ],
276
- },
277
- };
278
- const signOperation = buildSignOperation(mockSignerContext);
279
- const observable = signOperation({
280
- account: mockAccount,
281
- transaction: tokenTransaction,
282
- deviceId: mockDeviceId,
283
- });
284
- await new Promise((resolve, reject) => {
285
- observable.subscribe({ complete: resolve, error: reject });
286
- });
287
- expect(mockedVechainSDKTransaction.of).toHaveBeenCalledWith(tokenTransaction.body);
288
- });
289
- });
290
- //# sourceMappingURL=signOperation.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signOperation.test.js","sourceRoot":"","sources":["../../src/bridge/signOperation.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAA8B,MAAM,UAAU,CAAC;AAG7E,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,oBAAoB;AACpB,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;AACzC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3B,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACjC,qBAAqB,EAAE;QACrB,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;KACd;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,8BAA8B,GAAG,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC7E,MAAM,2BAA2B,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAEvE,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,MAAM,WAAW,GAAY;QAC3B,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,kBAAkB;QACtB,cAAc,EAAE,SAAS;QACzB,cAAc,EAAE,EAAS;QACzB,KAAK,EAAE,CAAC;QACR,YAAY,EAAE,4CAA4C;QAC1D,gBAAgB,EAAE,iBAAiB;QACnC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI,SAAS,CAAC,qBAAqB,CAAC;QAC7C,gBAAgB,EAAE,IAAI,SAAS,CAAC,qBAAqB,CAAC;QACtD,YAAY,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QACpC,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,EAAS;QACnB,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE,EAAE;QACd,iBAAiB,EAAE,EAAE;QACrB,YAAY,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QACpC,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS;QAC3D,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE;KAChB,CAAC;IAEF,MAAM,eAAe,GAAgB;QACnC,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,4CAA4C;QACvD,MAAM,EAAE,IAAI,SAAS,CAAC,qBAAqB,CAAC;QAC5C,aAAa,EAAE,oBAAoB;QACnC,IAAI,EAAE;YACJ,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,oBAAoB;YAC9B,UAAU,EAAE,EAAE;YACd,OAAO,EAAE;gBACP;oBACE,EAAE,EAAE,4CAA4C;oBAChD,KAAK,EAAE,qBAAqB;oBAC5B,IAAI,EAAE,IAAI;iBACX;aACF;YACD,YAAY,EAAE,cAAc;YAC5B,oBAAoB,EAAE,aAAa;YACnC,GAAG,EAAE,KAAK;YACV,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,YAAY;SACpB;KACa,CAAC;IAEjB,MAAM,YAAY,GAAa,gBAAgB,CAAC;IAEhD,MAAM,UAAU,GAAkB;QAChC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;QACrB,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE;KAC3B,CAAC;IAEF,MAAM,iBAAiB,GAAiC,IAAI,CAAC,EAAE,EAAE,CAAC;IAElE,MAAM,uBAAuB,GAAG;QAC9B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;KAC3C,CAAC;IAEF,MAAM,aAAa,GAAG;QACpB,EAAE,EAAE,8BAA8B;QAClC,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,KAAc;QACpB,KAAK,EAAE,IAAI,SAAS,CAAC,qBAAqB,CAAC;QAC3C,GAAG,EAAE,IAAI,SAAS,CAAC,oBAAoB,CAAC;QACxC,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,CAAC,4CAA4C,CAAC;QACvD,UAAU,EAAE,CAAC,4CAA4C,CAAC;QAC1D,SAAS,EAAE,kBAAkB;QAC7B,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QAC5B,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,2BAA2B,CAAC,EAAE,CAAC,eAAe,CAAC,uBAA8B,CAAC,CAAC;QAC/E,8BAA8B,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAC/D,UAAU,CAAC,eAA6B,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/F,iBAA+B,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CACzE,QAAQ,CAAC,UAAU,CAAC,CACrB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,aAAa,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC;YAC/B,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAyB,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpD,UAAU,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;gBACjC,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC;QAEd,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE;gBACf,SAAS,EAAE,aAAa;gBACxB,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,eAAe;aACzB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,aAAa,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC;YAC/B,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,aAAa,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC;YAC/B,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,oBAAoB,CACrD,WAAW,CAAC,gBAAgB,EAC5B,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAChD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,aAAa,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC;YAC/B,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,8BAA8B,CAAC,CAAC,oBAAoB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7D,UAAU,CAAC,eAA6B,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAE7E,MAAM,aAAa,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC;YAC/B,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAyB,EAAE,CAAC;QACxC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,UAAU,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;gBACjC,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAQ,CAAC;QACjE,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACtD,UAAU,CAAC,eAA6B,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAEzE,MAAM,aAAa,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC;YAC/B,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,gBAAgB,GAAG,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACjE,2BAA2B,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACrD,MAAM,gBAAgB,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC;YAC/B,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9D,8BAA8B,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAEjE,MAAM,aAAa,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC;YAC/B,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACvD,iBAA+B,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAEjE,MAAM,aAAa,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC;YAC/B,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAEpD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAG,aAAa,CAAC;gBAC/B,OAAO,EAAE,WAAW;gBACpB,WAAW,EAAE,eAAe;gBAC5B,QAAQ;aACT,CAAC,CAAC;YAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,aAAa,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC;YAC/B,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAyB,EAAE,CAAC;QACxC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,UAAU,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;gBACjC,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAQ,CAAC;QACjE,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,gBAAgB,GAAgB;YACpC,GAAG,eAAe;YAClB,YAAY,EAAE,uBAAuB;YACrC,IAAI,EAAE;gBACJ,GAAG,eAAe,CAAC,IAAI;gBACvB,OAAO,EAAE;oBACP;wBACE,EAAE,EAAE,4CAA4C;wBAChD,KAAK,EAAE,GAAG;wBACV,IAAI,EAAE,4IAA4I;qBACnJ;iBACF;aACF;SACF,CAAC;QAEF,MAAM,aAAa,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC;YAC/B,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,gBAAgB;YAC7B,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=synchronisation.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"synchronisation.test.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.test.ts"],"names":[],"mappings":""}