@ledgerhq/coin-aptos 1.9.0-next.0 → 2.0.0-nightly.2

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 (159) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +28 -10
  3. package/lib/__tests__/api/index.test.js +61 -5
  4. package/lib/__tests__/api/index.test.js.map +1 -1
  5. package/lib/__tests__/bridge/buildTransaction.test.js +57 -2
  6. package/lib/__tests__/bridge/buildTransaction.test.js.map +1 -1
  7. package/lib/__tests__/bridge/getFeesForTransaction.test.js +109 -8
  8. package/lib/__tests__/bridge/getFeesForTransaction.test.js.map +1 -1
  9. package/lib/__tests__/bridge/getTransactionStatus.test.js +175 -37
  10. package/lib/__tests__/bridge/getTransactionStatus.test.js.map +1 -1
  11. package/lib/__tests__/bridge/logic.test.js +889 -115
  12. package/lib/__tests__/bridge/logic.test.js.map +1 -1
  13. package/lib/__tests__/bridge/signOperation.test.js +128 -2
  14. package/lib/__tests__/bridge/signOperation.test.js.map +1 -1
  15. package/lib/__tests__/bridge/synchronisation.test.js +1214 -67
  16. package/lib/__tests__/bridge/synchronisation.test.js.map +1 -1
  17. package/lib/api/graphql/queries.js +6 -6
  18. package/lib/api/graphql/types.d.ts +9 -9
  19. package/lib/api/graphql/types.d.ts.map +1 -1
  20. package/lib/api/index.d.ts +5 -2
  21. package/lib/api/index.d.ts.map +1 -1
  22. package/lib/api/index.js +30 -4
  23. package/lib/api/index.js.map +1 -1
  24. package/lib/bridge/bridge.fixture.d.ts +2 -0
  25. package/lib/bridge/bridge.fixture.d.ts.map +1 -1
  26. package/lib/bridge/bridge.fixture.js +85 -13
  27. package/lib/bridge/bridge.fixture.js.map +1 -1
  28. package/lib/bridge/buildTransaction.d.ts.map +1 -1
  29. package/lib/bridge/buildTransaction.js +29 -3
  30. package/lib/bridge/buildTransaction.js.map +1 -1
  31. package/lib/bridge/estimateMaxSpendable.js +1 -1
  32. package/lib/bridge/estimateMaxSpendable.js.map +1 -1
  33. package/lib/bridge/getFeesForTransaction.d.ts.map +1 -1
  34. package/lib/bridge/getFeesForTransaction.js +12 -7
  35. package/lib/bridge/getFeesForTransaction.js.map +1 -1
  36. package/lib/bridge/getTransactionStatus.d.ts.map +1 -1
  37. package/lib/bridge/getTransactionStatus.js +28 -14
  38. package/lib/bridge/getTransactionStatus.js.map +1 -1
  39. package/lib/bridge/logic.d.ts +13 -8
  40. package/lib/bridge/logic.d.ts.map +1 -1
  41. package/lib/bridge/logic.js +152 -54
  42. package/lib/bridge/logic.js.map +1 -1
  43. package/lib/bridge/prepareTransaction.d.ts.map +1 -1
  44. package/lib/bridge/prepareTransaction.js +2 -2
  45. package/lib/bridge/prepareTransaction.js.map +1 -1
  46. package/lib/bridge/signOperation.d.ts.map +1 -1
  47. package/lib/bridge/signOperation.js +17 -3
  48. package/lib/bridge/signOperation.js.map +1 -1
  49. package/lib/bridge/synchronisation.d.ts +15 -0
  50. package/lib/bridge/synchronisation.d.ts.map +1 -1
  51. package/lib/bridge/synchronisation.js +127 -4
  52. package/lib/bridge/synchronisation.js.map +1 -1
  53. package/lib/constants.d.ts +5 -1
  54. package/lib/constants.d.ts.map +1 -1
  55. package/lib/constants.js +6 -2
  56. package/lib/constants.js.map +1 -1
  57. package/lib/test/bot-specs.d.ts.map +1 -1
  58. package/lib/test/bot-specs.js +40 -1
  59. package/lib/test/bot-specs.js.map +1 -1
  60. package/lib/test/bridgeDatasetTest.d.ts.map +1 -1
  61. package/lib/test/bridgeDatasetTest.js +43 -62
  62. package/lib/test/bridgeDatasetTest.js.map +1 -1
  63. package/lib/test/speculos-deviceActions.d.ts +1 -0
  64. package/lib/test/speculos-deviceActions.d.ts.map +1 -1
  65. package/lib/test/speculos-deviceActions.js +37 -5
  66. package/lib/test/speculos-deviceActions.js.map +1 -1
  67. package/lib/types/index.d.ts +18 -7
  68. package/lib/types/index.d.ts.map +1 -1
  69. package/lib-es/__tests__/api/index.test.js +61 -5
  70. package/lib-es/__tests__/api/index.test.js.map +1 -1
  71. package/lib-es/__tests__/bridge/buildTransaction.test.js +58 -3
  72. package/lib-es/__tests__/bridge/buildTransaction.test.js.map +1 -1
  73. package/lib-es/__tests__/bridge/getFeesForTransaction.test.js +110 -9
  74. package/lib-es/__tests__/bridge/getFeesForTransaction.test.js.map +1 -1
  75. package/lib-es/__tests__/bridge/getTransactionStatus.test.js +177 -39
  76. package/lib-es/__tests__/bridge/getTransactionStatus.test.js.map +1 -1
  77. package/lib-es/__tests__/bridge/logic.test.js +891 -117
  78. package/lib-es/__tests__/bridge/logic.test.js.map +1 -1
  79. package/lib-es/__tests__/bridge/signOperation.test.js +128 -2
  80. package/lib-es/__tests__/bridge/signOperation.test.js.map +1 -1
  81. package/lib-es/__tests__/bridge/synchronisation.test.js +1213 -69
  82. package/lib-es/__tests__/bridge/synchronisation.test.js.map +1 -1
  83. package/lib-es/api/graphql/queries.js +6 -6
  84. package/lib-es/api/graphql/types.d.ts +9 -9
  85. package/lib-es/api/graphql/types.d.ts.map +1 -1
  86. package/lib-es/api/index.d.ts +5 -2
  87. package/lib-es/api/index.d.ts.map +1 -1
  88. package/lib-es/api/index.js +30 -4
  89. package/lib-es/api/index.js.map +1 -1
  90. package/lib-es/bridge/bridge.fixture.d.ts +2 -0
  91. package/lib-es/bridge/bridge.fixture.d.ts.map +1 -1
  92. package/lib-es/bridge/bridge.fixture.js +82 -12
  93. package/lib-es/bridge/bridge.fixture.js.map +1 -1
  94. package/lib-es/bridge/buildTransaction.d.ts.map +1 -1
  95. package/lib-es/bridge/buildTransaction.js +30 -4
  96. package/lib-es/bridge/buildTransaction.js.map +1 -1
  97. package/lib-es/bridge/estimateMaxSpendable.js +1 -1
  98. package/lib-es/bridge/estimateMaxSpendable.js.map +1 -1
  99. package/lib-es/bridge/getFeesForTransaction.d.ts.map +1 -1
  100. package/lib-es/bridge/getFeesForTransaction.js +13 -8
  101. package/lib-es/bridge/getFeesForTransaction.js.map +1 -1
  102. package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -1
  103. package/lib-es/bridge/getTransactionStatus.js +28 -14
  104. package/lib-es/bridge/getTransactionStatus.js.map +1 -1
  105. package/lib-es/bridge/logic.d.ts +13 -8
  106. package/lib-es/bridge/logic.d.ts.map +1 -1
  107. package/lib-es/bridge/logic.js +146 -52
  108. package/lib-es/bridge/logic.js.map +1 -1
  109. package/lib-es/bridge/prepareTransaction.d.ts.map +1 -1
  110. package/lib-es/bridge/prepareTransaction.js +2 -2
  111. package/lib-es/bridge/prepareTransaction.js.map +1 -1
  112. package/lib-es/bridge/signOperation.d.ts.map +1 -1
  113. package/lib-es/bridge/signOperation.js +17 -3
  114. package/lib-es/bridge/signOperation.js.map +1 -1
  115. package/lib-es/bridge/synchronisation.d.ts +15 -0
  116. package/lib-es/bridge/synchronisation.d.ts.map +1 -1
  117. package/lib-es/bridge/synchronisation.js +123 -3
  118. package/lib-es/bridge/synchronisation.js.map +1 -1
  119. package/lib-es/constants.d.ts +5 -1
  120. package/lib-es/constants.d.ts.map +1 -1
  121. package/lib-es/constants.js +5 -1
  122. package/lib-es/constants.js.map +1 -1
  123. package/lib-es/test/bot-specs.d.ts.map +1 -1
  124. package/lib-es/test/bot-specs.js +41 -2
  125. package/lib-es/test/bot-specs.js.map +1 -1
  126. package/lib-es/test/bridgeDatasetTest.d.ts.map +1 -1
  127. package/lib-es/test/bridgeDatasetTest.js +43 -59
  128. package/lib-es/test/bridgeDatasetTest.js.map +1 -1
  129. package/lib-es/test/speculos-deviceActions.d.ts +1 -0
  130. package/lib-es/test/speculos-deviceActions.d.ts.map +1 -1
  131. package/lib-es/test/speculos-deviceActions.js +36 -4
  132. package/lib-es/test/speculos-deviceActions.js.map +1 -1
  133. package/lib-es/types/index.d.ts +18 -7
  134. package/lib-es/types/index.d.ts.map +1 -1
  135. package/package.json +9 -8
  136. package/src/__tests__/api/index.test.ts +75 -5
  137. package/src/__tests__/bridge/buildTransaction.test.ts +85 -3
  138. package/src/__tests__/bridge/getFeesForTransaction.test.ts +144 -9
  139. package/src/__tests__/bridge/getTransactionStatus.test.ts +217 -38
  140. package/src/__tests__/bridge/logic.test.ts +922 -118
  141. package/src/__tests__/bridge/signOperation.test.ts +141 -2
  142. package/src/__tests__/bridge/synchronisation.test.ts +1265 -71
  143. package/src/api/graphql/queries.ts +6 -6
  144. package/src/api/graphql/types.ts +9 -9
  145. package/src/api/index.ts +32 -5
  146. package/src/bridge/bridge.fixture.ts +91 -12
  147. package/src/bridge/buildTransaction.ts +39 -6
  148. package/src/bridge/estimateMaxSpendable.ts +1 -1
  149. package/src/bridge/getFeesForTransaction.ts +14 -9
  150. package/src/bridge/getTransactionStatus.ts +35 -13
  151. package/src/bridge/logic.ts +202 -63
  152. package/src/bridge/prepareTransaction.ts +4 -3
  153. package/src/bridge/signOperation.ts +19 -3
  154. package/src/bridge/synchronisation.ts +170 -3
  155. package/src/constants.ts +12 -1
  156. package/src/test/bot-specs.ts +63 -3
  157. package/src/test/bridgeDatasetTest.ts +45 -59
  158. package/src/test/speculos-deviceActions.ts +40 -4
  159. package/src/types/index.ts +15 -1
@@ -5,6 +5,9 @@ import { createFixtureAccount, createFixtureTransaction } from "../../bridge/bri
5
5
  import buildSignOperation, { getAddress } from "../../bridge/signOperation";
6
6
  import { AptosSigner } from "../../types";
7
7
  import { signTransaction } from "../../network";
8
+ import { TokenAccount } from "@ledgerhq/types-live";
9
+ import { faker } from "@faker-js/faker";
10
+ import { emptyHistoryCache } from "@ledgerhq/coin-framework/account/index";
8
11
 
9
12
  jest.mock("../../api", () => {
10
13
  return {
@@ -104,6 +107,7 @@ describe("buildSignOperation", () => {
104
107
  accountId: "js:2:aptos:0x000:",
105
108
  date,
106
109
  transactionSequenceNumber: 789,
110
+ subOperations: [],
107
111
  },
108
112
  signature: "7369676e65645478",
109
113
  },
@@ -125,7 +129,130 @@ describe("buildSignOperation", () => {
125
129
  jest.useFakeTimers().setSystemTime(date);
126
130
 
127
131
  const account = createFixtureAccount();
128
- const transaction = createFixtureTransaction();
132
+ const transaction = createFixtureTransaction({ amount: BigNumber(5) });
133
+
134
+ account.balance = new BigNumber(40);
135
+ transaction.fees = new BigNumber(30);
136
+ transaction.useAllAmount = true;
137
+
138
+ account.id = "js:2:aptos:0x000:";
139
+ transaction.mode = "send";
140
+
141
+ const observable = await buildSignOperation({} as unknown as SignerContext<AptosSigner>)({
142
+ account,
143
+ deviceId: "1",
144
+ transaction,
145
+ });
146
+
147
+ expect(observable).toBeInstanceOf(Observable);
148
+
149
+ const expectedValues = [
150
+ { type: "device-signature-requested" },
151
+ { type: "device-signature-granted" },
152
+ {
153
+ type: "signed",
154
+ signedOperation: {
155
+ operation: {
156
+ id: "js:2:aptos:0x000:--OUT",
157
+ hash: "",
158
+ type: "OUT",
159
+ value: new BigNumber(35),
160
+ fee: transaction.fees,
161
+ extra: {},
162
+ blockHash: null,
163
+ blockHeight: null,
164
+ senders: [account.freshAddress],
165
+ recipients: [transaction.recipient],
166
+ accountId: "js:2:aptos:0x000:",
167
+ date,
168
+ transactionSequenceNumber: 789,
169
+ subOperations: [],
170
+ },
171
+ signature: "7369676e65645478",
172
+ },
173
+ },
174
+ ];
175
+
176
+ let i = 0;
177
+
178
+ observable.forEach(signOperationEvent => {
179
+ expect(signOperationEvent).toEqual(expectedValues[i]);
180
+ i++;
181
+ });
182
+ });
183
+
184
+ it("should have sub operations if it has subaccount", async () => {
185
+ mockedSignTransaction.mockReturnValue("signedTx");
186
+
187
+ const date = new Date("2020-01-01");
188
+ jest.useFakeTimers().setSystemTime(date);
189
+
190
+ const id = faker.string.uuid();
191
+ const account = createFixtureAccount({
192
+ id,
193
+ subAccounts: [
194
+ {
195
+ type: "TokenAccount",
196
+ id: "subAccountId",
197
+ parentId: id,
198
+ token: {
199
+ type: "TokenCurrency",
200
+ id: "aptos/coin/dstapt_0xd11107bdf0d6d7040c6c0bfbdecb6545191fdf13e8d8d259952f53e1713f61b5::staked_coin::stakedaptos",
201
+ contractAddress:
202
+ "0xd11107bdf0d6d7040c6c0bfbdecb6545191fdf13e8d8d259952f53e1713f61b5::staked_coin::StakedAptos",
203
+ parentCurrency: {
204
+ type: "CryptoCurrency",
205
+ id: "aptos",
206
+ coinType: 637,
207
+ name: "Aptos",
208
+ managerAppName: "Aptos",
209
+ ticker: "APT",
210
+ scheme: "aptos",
211
+ color: "#231F20",
212
+ family: "aptos",
213
+ units: [
214
+ {
215
+ name: "APT",
216
+ code: "APT",
217
+ magnitude: 8,
218
+ },
219
+ ],
220
+ explorerViews: [
221
+ {
222
+ address: "https://explorer.aptoslabs.com/account/$address?network=mainnet",
223
+ tx: "https://explorer.aptoslabs.com/txn/$hash?network=mainnet",
224
+ },
225
+ ],
226
+ },
227
+ name: "dstAPT",
228
+ tokenType: "coin",
229
+ ticker: "dstAPT",
230
+ disableCountervalue: false,
231
+ delisted: false,
232
+ units: [
233
+ {
234
+ name: "dstAPT",
235
+ code: "dstAPT",
236
+ magnitude: 8,
237
+ },
238
+ ],
239
+ },
240
+ balance: BigNumber(100),
241
+ spendableBalance: BigNumber(100),
242
+ creationDate: date,
243
+ operationsCount: 0,
244
+ operations: [],
245
+ pendingOperations: [],
246
+ balanceHistoryCache: emptyHistoryCache,
247
+ swapHistory: [],
248
+ },
249
+ ] as TokenAccount[],
250
+ });
251
+
252
+ const transaction = createFixtureTransaction({
253
+ amount: BigNumber(5),
254
+ subAccountId: "subAccountId",
255
+ });
129
256
 
130
257
  account.balance = new BigNumber(40);
131
258
  transaction.fees = new BigNumber(30);
@@ -152,7 +279,7 @@ describe("buildSignOperation", () => {
152
279
  id: "js:2:aptos:0x000:--OUT",
153
280
  hash: "",
154
281
  type: "OUT",
155
- value: new BigNumber(10),
282
+ value: new BigNumber(30),
156
283
  fee: transaction.fees,
157
284
  extra: {},
158
285
  blockHash: null,
@@ -162,6 +289,18 @@ describe("buildSignOperation", () => {
162
289
  accountId: "js:2:aptos:0x000:",
163
290
  date,
164
291
  transactionSequenceNumber: 789,
292
+ subOperations: [
293
+ {
294
+ accountId: "subAccountId",
295
+ date: new Date("2020-01-01"),
296
+ fee: BigNumber(30),
297
+ id: "subAccountId--OUT",
298
+ recipients: ["recipient"],
299
+ senders: ["address"],
300
+ type: "OUT",
301
+ value: BigNumber(5),
302
+ },
303
+ ],
165
304
  },
166
305
  signature: "7369676e65645478",
167
306
  },