@ledgerhq/coin-aptos 1.4.0 → 1.4.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 (158) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +6 -0
  3. package/lib/__tests__/api/index.test.js +67 -92
  4. package/lib/__tests__/api/index.test.js.map +1 -1
  5. package/lib/__tests__/bridge/broadcast.test.js +11 -17
  6. package/lib/__tests__/bridge/broadcast.test.js.map +1 -1
  7. package/lib/__tests__/bridge/buildTransaction.test.js +3 -12
  8. package/lib/__tests__/bridge/buildTransaction.test.js.map +1 -1
  9. package/lib/__tests__/bridge/createTransaction.test.js +2 -11
  10. package/lib/__tests__/bridge/createTransaction.test.js.map +1 -1
  11. package/lib/__tests__/bridge/estimateMaxSpendable.test.js +12 -21
  12. package/lib/__tests__/bridge/estimateMaxSpendable.test.js.map +1 -1
  13. package/lib/__tests__/bridge/getFeesForTransaction.test.js +13 -22
  14. package/lib/__tests__/bridge/getFeesForTransaction.test.js.map +1 -1
  15. package/lib/__tests__/bridge/getTransactionStatus.test.js +18 -27
  16. package/lib/__tests__/bridge/getTransactionStatus.test.js.map +1 -1
  17. package/lib/__tests__/bridge/index.test.js +3 -12
  18. package/lib/__tests__/bridge/index.test.js.map +1 -1
  19. package/lib/__tests__/bridge/prepareTransaction.test.js +22 -35
  20. package/lib/__tests__/bridge/prepareTransaction.test.js.map +1 -1
  21. package/lib/__tests__/bridge/signOperation.test.js +9 -18
  22. package/lib/__tests__/bridge/signOperation.test.js.map +1 -1
  23. package/lib/__tests__/bridge/synchronisation.test.js +46 -65
  24. package/lib/__tests__/bridge/synchronisation.test.js.map +1 -1
  25. package/lib/__tests__/bridge/transaction.test.js +14 -24
  26. package/lib/__tests__/bridge/transaction.test.js.map +1 -1
  27. package/lib/__tests__/network/index.test.js +10 -16
  28. package/lib/__tests__/network/index.test.js.map +1 -1
  29. package/lib/__tests__/signer/index.test.js +6 -17
  30. package/lib/__tests__/signer/index.test.js.map +1 -1
  31. package/lib/api/graphql/queries.d.ts.map +1 -1
  32. package/lib/api/graphql/queries.js +1 -0
  33. package/lib/api/graphql/queries.js.map +1 -1
  34. package/lib/api/index.d.ts.map +1 -1
  35. package/lib/api/index.js +119 -142
  36. package/lib/api/index.js.map +1 -1
  37. package/lib/bridge/bridge.fixture.js +13 -13
  38. package/lib/bridge/bridge.fixture.js.map +1 -1
  39. package/lib/bridge/broadcast.js +3 -12
  40. package/lib/bridge/broadcast.js.map +1 -1
  41. package/lib/bridge/buildTransaction.js +3 -12
  42. package/lib/bridge/buildTransaction.js.map +1 -1
  43. package/lib/bridge/estimateMaxSpendable.js +3 -12
  44. package/lib/bridge/estimateMaxSpendable.js.map +1 -1
  45. package/lib/bridge/getFeesForTransaction.d.ts.map +1 -1
  46. package/lib/bridge/getFeesForTransaction.js +9 -20
  47. package/lib/bridge/getFeesForTransaction.js.map +1 -1
  48. package/lib/bridge/getTransactionStatus.js +2 -11
  49. package/lib/bridge/getTransactionStatus.js.map +1 -1
  50. package/lib/bridge/logic.js +17 -20
  51. package/lib/bridge/logic.js.map +1 -1
  52. package/lib/bridge/prepareTransaction.js +7 -13
  53. package/lib/bridge/prepareTransaction.js.map +1 -1
  54. package/lib/bridge/signOperation.js +42 -53
  55. package/lib/bridge/signOperation.js.map +1 -1
  56. package/lib/bridge/synchronisation.js +7 -17
  57. package/lib/bridge/synchronisation.js.map +1 -1
  58. package/lib/bridge/transaction.js +16 -2
  59. package/lib/bridge/transaction.js.map +1 -1
  60. package/lib/network/index.js +19 -30
  61. package/lib/network/index.js.map +1 -1
  62. package/lib/signer/index.js +3 -12
  63. package/lib/signer/index.js.map +1 -1
  64. package/lib/test/bot-specs.d.ts +2 -2
  65. package/lib/test/bot-specs.d.ts.map +1 -1
  66. package/lib/test/bot-specs.js +32 -26
  67. package/lib/test/bot-specs.js.map +1 -1
  68. package/lib/test/bridgeDatasetTest.d.ts.map +1 -1
  69. package/lib/test/bridgeDatasetTest.js +46 -15
  70. package/lib/test/bridgeDatasetTest.js.map +1 -1
  71. package/lib/test/cli.js +5 -1
  72. package/lib/test/cli.js.map +1 -1
  73. package/lib/test/speculos-deviceActions.d.ts.map +1 -1
  74. package/lib/test/speculos-deviceActions.js +19 -20
  75. package/lib/test/speculos-deviceActions.js.map +1 -1
  76. package/lib-es/__tests__/api/index.test.js +67 -92
  77. package/lib-es/__tests__/api/index.test.js.map +1 -1
  78. package/lib-es/__tests__/bridge/broadcast.test.js +11 -17
  79. package/lib-es/__tests__/bridge/broadcast.test.js.map +1 -1
  80. package/lib-es/__tests__/bridge/buildTransaction.test.js +3 -12
  81. package/lib-es/__tests__/bridge/buildTransaction.test.js.map +1 -1
  82. package/lib-es/__tests__/bridge/createTransaction.test.js +2 -11
  83. package/lib-es/__tests__/bridge/createTransaction.test.js.map +1 -1
  84. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.js +12 -21
  85. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.js.map +1 -1
  86. package/lib-es/__tests__/bridge/getFeesForTransaction.test.js +13 -22
  87. package/lib-es/__tests__/bridge/getFeesForTransaction.test.js.map +1 -1
  88. package/lib-es/__tests__/bridge/getTransactionStatus.test.js +18 -27
  89. package/lib-es/__tests__/bridge/getTransactionStatus.test.js.map +1 -1
  90. package/lib-es/__tests__/bridge/index.test.js +3 -12
  91. package/lib-es/__tests__/bridge/index.test.js.map +1 -1
  92. package/lib-es/__tests__/bridge/prepareTransaction.test.js +22 -35
  93. package/lib-es/__tests__/bridge/prepareTransaction.test.js.map +1 -1
  94. package/lib-es/__tests__/bridge/signOperation.test.js +9 -18
  95. package/lib-es/__tests__/bridge/signOperation.test.js.map +1 -1
  96. package/lib-es/__tests__/bridge/synchronisation.test.js +46 -65
  97. package/lib-es/__tests__/bridge/synchronisation.test.js.map +1 -1
  98. package/lib-es/__tests__/bridge/transaction.test.js +14 -24
  99. package/lib-es/__tests__/bridge/transaction.test.js.map +1 -1
  100. package/lib-es/__tests__/network/index.test.js +10 -16
  101. package/lib-es/__tests__/network/index.test.js.map +1 -1
  102. package/lib-es/__tests__/signer/index.test.js +6 -17
  103. package/lib-es/__tests__/signer/index.test.js.map +1 -1
  104. package/lib-es/api/graphql/queries.d.ts.map +1 -1
  105. package/lib-es/api/graphql/queries.js +1 -0
  106. package/lib-es/api/graphql/queries.js.map +1 -1
  107. package/lib-es/api/index.d.ts.map +1 -1
  108. package/lib-es/api/index.js +119 -142
  109. package/lib-es/api/index.js.map +1 -1
  110. package/lib-es/bridge/bridge.fixture.js +13 -13
  111. package/lib-es/bridge/bridge.fixture.js.map +1 -1
  112. package/lib-es/bridge/broadcast.js +3 -12
  113. package/lib-es/bridge/broadcast.js.map +1 -1
  114. package/lib-es/bridge/buildTransaction.js +3 -12
  115. package/lib-es/bridge/buildTransaction.js.map +1 -1
  116. package/lib-es/bridge/estimateMaxSpendable.js +3 -12
  117. package/lib-es/bridge/estimateMaxSpendable.js.map +1 -1
  118. package/lib-es/bridge/getFeesForTransaction.d.ts.map +1 -1
  119. package/lib-es/bridge/getFeesForTransaction.js +9 -20
  120. package/lib-es/bridge/getFeesForTransaction.js.map +1 -1
  121. package/lib-es/bridge/getTransactionStatus.js +2 -11
  122. package/lib-es/bridge/getTransactionStatus.js.map +1 -1
  123. package/lib-es/bridge/logic.js +17 -20
  124. package/lib-es/bridge/logic.js.map +1 -1
  125. package/lib-es/bridge/prepareTransaction.js +7 -13
  126. package/lib-es/bridge/prepareTransaction.js.map +1 -1
  127. package/lib-es/bridge/signOperation.js +42 -53
  128. package/lib-es/bridge/signOperation.js.map +1 -1
  129. package/lib-es/bridge/synchronisation.js +7 -17
  130. package/lib-es/bridge/synchronisation.js.map +1 -1
  131. package/lib-es/bridge/transaction.js +16 -2
  132. package/lib-es/bridge/transaction.js.map +1 -1
  133. package/lib-es/network/index.js +19 -30
  134. package/lib-es/network/index.js.map +1 -1
  135. package/lib-es/signer/index.js +3 -12
  136. package/lib-es/signer/index.js.map +1 -1
  137. package/lib-es/test/bot-specs.d.ts +2 -2
  138. package/lib-es/test/bot-specs.d.ts.map +1 -1
  139. package/lib-es/test/bot-specs.js +33 -27
  140. package/lib-es/test/bot-specs.js.map +1 -1
  141. package/lib-es/test/bridgeDatasetTest.d.ts.map +1 -1
  142. package/lib-es/test/bridgeDatasetTest.js +46 -15
  143. package/lib-es/test/bridgeDatasetTest.js.map +1 -1
  144. package/lib-es/test/cli.js +5 -1
  145. package/lib-es/test/cli.js.map +1 -1
  146. package/lib-es/test/speculos-deviceActions.d.ts.map +1 -1
  147. package/lib-es/test/speculos-deviceActions.js +20 -21
  148. package/lib-es/test/speculos-deviceActions.js.map +1 -1
  149. package/package.json +3 -2
  150. package/src/__tests__/bridge/transaction.test.ts +0 -1
  151. package/src/api/graphql/queries.ts +1 -0
  152. package/src/api/index.ts +1 -0
  153. package/src/bridge/getFeesForTransaction.ts +1 -3
  154. package/src/bridge/transaction.ts +2 -2
  155. package/src/test/bot-specs.ts +39 -33
  156. package/src/test/bridgeDatasetTest.ts +46 -15
  157. package/src/test/speculos-deviceActions.ts +20 -27
  158. package/tsconfig.json +3 -2
@@ -6,13 +6,13 @@ const aptos = {
6
6
  name: "aptos seed 1",
7
7
  apdus: `
8
8
  => 5b0500000d038000002c8000027d80000000
9
- <= 210430cfd94a543eca9ba9d26eafe07f6c28e1e43e4768f3c0bad32efeced8662f8720b44227ab88ddefa2ff5deb5e366c70e8b703aec381de39b103dd50eabf8d9d119000
9
+ <= 2104d6816f4f22f867b56cf9304b776f452a16d107835d73ee8a33c4ced210300583204bb135642f160c72c323d57ad509b904ff44d9f2b983e8b90468e19b6f431ea79000
10
10
  => 5b05000015058000002c8000027d800000008000000080000000
11
- <= 21044b16bdc2f72ea4502a8c4879c72e71d4d1a8ec46c43620e00a6f46e0b7569c6b20ba21e074c2bd6b307a35c85afd6ad40dc8319af9ec11660c588ffd3e413773259000
11
+ <= 2104d1a8c6a1cdd52dd40c7ea61ee4571fb51fcae440a594c1eca18636928f1d3956200d8d6cf19a090a8080768d07a848acc333775e5327d2da8a4022301f7dbb88ff9000
12
12
  => 5b05000015058000002c8000027d800000018000000080000000
13
- <= 21049aec773c4b645bba274924e2e8aeea525ba37051c94bfd922b60c87b1692091e207fa1d1caa1209d35fafe59393bc820bb7b0b81f3a808dd3728e0b1347bfff40e9000
13
+ <= 21046a7712fdac0cb4ed27076c707e7798be52cf6c93a2d43d5cf9b874d0a45a111e208e72477f799c2d3b2899b32b114988ab3d1af02dd0d3562196eccded2936f8449000
14
14
  => 5b05000015058000002c8000027d800000028000000080000000
15
- <= 21041fb77263c646810574525025561e4559c338b571f57f1b513d75b1609d5fa5f6205e9117d152b467fac631d742ddbc31ea3cbcaac51273c1e931058a56e983d9f59000
15
+ <= 21048ffc0c2e141ead220f05b30fa01ce9a3783c5a157219f922b02ec194308b1b452084cf4bdff7814f8c3d08bfceb9d2615bf8c6850b208477528f8376c4250e4b5a9000
16
16
  `,
17
17
  },
18
18
  ],
@@ -26,19 +26,51 @@ const aptos = {
26
26
  index: 0,
27
27
  freshAddress: "0x445fa0013887abd1a0c14acdec6e48090e0ad3fed3e08202aac15ca14f3be26b",
28
28
  freshAddressPath: "44'/637'/0'/0/0",
29
- blockHeight: 266360751,
29
+ blockHeight: 286066372,
30
30
  creationDate: "2024-12-18T12:26:31.070Z",
31
31
  operationsCount: 5,
32
32
  operations: [],
33
33
  pendingOperations: [],
34
34
  currencyId: "aptos",
35
- lastSyncDate: "2024-12-18T15:20:55.097Z",
35
+ lastSyncDate: "2025-02-04T14:00:46.693Z",
36
36
  balance: "30100",
37
37
  spendableBalance: "30100",
38
38
  balanceHistoryCache: {
39
- HOUR: { balances: [0, 50000, 50000, 30100], latestDate: 1734534000000 },
40
- DAY: { balances: [0], latestDate: 1734480000000 },
41
- WEEK: { balances: [0], latestDate: 1734220800000 },
39
+ HOUR: {
40
+ balances: [
41
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
42
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
43
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
44
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
45
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
46
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
47
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
48
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
49
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
50
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
51
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
52
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
53
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
54
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
55
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
56
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
57
+ 30100,
58
+ ],
59
+ latestDate: 1738677600000,
60
+ },
61
+ DAY: {
62
+ balances: [
63
+ 0, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
64
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
65
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
66
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
67
+ ],
68
+ latestDate: 1738627200000,
69
+ },
70
+ WEEK: {
71
+ balances: [0, 30100, 30100, 30100, 30100, 30100, 30100, 30100],
72
+ latestDate: 1738454400000,
73
+ },
42
74
  },
43
75
  xpub: "d1a8c6a1cdd52dd40c7ea61ee4571fb51fcae440a594c1eca18636928f1d3956",
44
76
  swapHistory: [],
@@ -47,13 +79,14 @@ const aptos = {
47
79
  {
48
80
  name: "NO_NAME",
49
81
  transaction: fromTransactionRaw({
50
- amount: "20000",
82
+ amount: "1000",
51
83
  recipient: "0xd20fa44192f94ba086ab16bfdf57e43ff118ada69b4c66fa9b9a9223cbc068c1",
52
84
  useAllAmount: false,
85
+ subAccountId: null,
53
86
  family: "aptos",
54
87
  mode: "send",
55
- fees: "1100",
56
- options: '{ "maxGasAmount": "11", "gasUnitPrice": "100" }',
88
+ fees: "900",
89
+ options: '{"maxGasAmount":"9","gasUnitPrice":"100"}',
57
90
  errors: "{}",
58
91
  }),
59
92
  expectedStatus: () =>
@@ -61,9 +94,7 @@ const aptos = {
61
94
  ({
62
95
  errors: {},
63
96
  warnings: {},
64
- estimatedFees: BigNumber("900"),
65
- amount: BigNumber("20000"),
66
- totalSpent: BigNumber("20900"),
97
+ amount: BigNumber("1000"),
67
98
  }),
68
99
  },
69
100
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeDatasetTest.js","sourceRoot":"","sources":["../../src/test/bridgeDatasetTest.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,MAAM,KAAK,GAAgC;IACzC,YAAY,EAAE;QACZ;YACE,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE;;;;;;;;;OASN;SACF;KACF;IACD,QAAQ,EAAE;QACR;YACE,GAAG,EAAE;gBACH,EAAE,EAAE,8EAA8E;gBAClF,cAAc,EAAE,kEAAkE;gBAClF,IAAI,EAAE,IAAI;gBACV,cAAc,EAAE,EAAE;gBAClB,KAAK,EAAE,CAAC;gBACR,YAAY,EAAE,oEAAoE;gBAClF,gBAAgB,EAAE,iBAAiB;gBACnC,WAAW,EAAE,SAAS;gBACtB,YAAY,EAAE,0BAA0B;gBACxC,eAAe,EAAE,CAAC;gBAClB,UAAU,EAAE,EAAE;gBACd,iBAAiB,EAAE,EAAE;gBACrB,UAAU,EAAE,OAAO;gBACnB,YAAY,EAAE,0BAA0B;gBACxC,OAAO,EAAE,OAAO;gBAChB,gBAAgB,EAAE,OAAO;gBACzB,mBAAmB,EAAE;oBACnB,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE;oBACvE,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE;oBACjD,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE;iBACnD;gBACD,IAAI,EAAE,kEAAkE;gBACxE,WAAW,EAAE,EAAE;aAChB;YACD,YAAY,EAAE;gBACZ;oBACE,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,kBAAkB,CAAC;wBAC9B,MAAM,EAAE,OAAO;wBACf,SAAS,EAAE,oEAAoE;wBAC/E,YAAY,EAAE,KAAK;wBACnB,MAAM,EAAE,OAAO;wBACf,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,iDAAiD;wBAC1D,MAAM,EAAE,IAAI;qBACb,CAAC;oBACF,cAAc,EAAE,GAAG,EAAE;oBACnB,+EAA+E;oBAC/E,CAAC;wBACC,MAAM,EAAE,EAAE;wBACV,QAAQ,EAAE,EAAE;wBACZ,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC;wBAC/B,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;wBAC1B,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC;qBAC/B,CAAC;iBACL;aACF;SACF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAA6B;IAC/C,eAAe,EAAE,CAAC,IAAI,CAAC;IACvB,UAAU,EAAE;QACV,KAAK;KACN;CACF,CAAC"}
1
+ {"version":3,"file":"bridgeDatasetTest.js","sourceRoot":"","sources":["../../src/test/bridgeDatasetTest.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D,MAAM,KAAK,GAAgC;IACzC,YAAY,EAAE;QACZ;YACE,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE;;;;;;;;;OASN;SACF;KACF;IACD,QAAQ,EAAE;QACR;YACE,GAAG,EAAE;gBACH,EAAE,EAAE,8EAA8E;gBAClF,cAAc,EAAE,kEAAkE;gBAClF,IAAI,EAAE,IAAI;gBACV,cAAc,EAAE,EAAE;gBAClB,KAAK,EAAE,CAAC;gBACR,YAAY,EAAE,oEAAoE;gBAClF,gBAAgB,EAAE,iBAAiB;gBACnC,WAAW,EAAE,SAAS;gBACtB,YAAY,EAAE,0BAA0B;gBACxC,eAAe,EAAE,CAAC;gBAClB,UAAU,EAAE,EAAE;gBACd,iBAAiB,EAAE,EAAE;gBACrB,UAAU,EAAE,OAAO;gBACnB,YAAY,EAAE,0BAA0B;gBACxC,OAAO,EAAE,OAAO;gBAChB,gBAAgB,EAAE,OAAO;gBACzB,mBAAmB,EAAE;oBACnB,IAAI,EAAE;wBACJ,QAAQ,EAAE;4BACR,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK;yBACN;wBACD,UAAU,EAAE,aAAa;qBAC1B;oBACD,GAAG,EAAE;wBACH,QAAQ,EAAE;4BACR,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BACrF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;4BAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;yBACnF;wBACD,UAAU,EAAE,aAAa;qBAC1B;oBACD,IAAI,EAAE;wBACJ,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;wBAC9D,UAAU,EAAE,aAAa;qBAC1B;iBACF;gBACD,IAAI,EAAE,kEAAkE;gBACxE,WAAW,EAAE,EAAE;aAChB;YACD,YAAY,EAAE;gBACZ;oBACE,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,kBAAkB,CAAC;wBAC9B,MAAM,EAAE,MAAM;wBACd,SAAS,EAAE,oEAAoE;wBAC/E,YAAY,EAAE,KAAK;wBACnB,YAAY,EAAE,IAAI;wBAClB,MAAM,EAAE,OAAO;wBACf,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,2CAA2C;wBACpD,MAAM,EAAE,IAAI;qBACb,CAAC;oBACF,cAAc,EAAE,GAAG,EAAE;oBACnB,+EAA+E;oBAC/E,CAAC;wBACC,MAAM,EAAE,EAAE;wBACV,QAAQ,EAAE,EAAE;wBACZ,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;qBAC1B,CAAC;iBACL;aACF;SACF;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAA6B;IAC/C,eAAe,EAAE,CAAC,IAAI,CAAC;IACvB,UAAU,EAAE;QACV,KAAK;KACN;CACF,CAAC"}
@@ -40,7 +40,11 @@ function inferTransactions(transactions) {
40
40
  const isDelisted = account.token.delisted === true;
41
41
  invariant(!isDelisted, "token is delisted");
42
42
  }
43
- return Object.assign(Object.assign({}, transaction), { family: "aptos", subAccountId: account.type === AccountType.TokenAccount ? account.id : null });
43
+ return {
44
+ ...transaction,
45
+ family: "aptos",
46
+ subAccountId: account.type === AccountType.TokenAccount ? account.id : null,
47
+ };
44
48
  });
45
49
  }
46
50
  export default function makeCliTools() {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/test/cli.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,OAAO,GAAG;IACd;QACE,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,8CAA8C;KACrD;CACF,CAAC;AAEF,SAAS,aAAa,CAAC,OAAgB,EAAE,IAAyB;IAChE,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,cAAc,CAAC,CAAC;IAE/D,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAc,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAEzB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IAE9C,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACtC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACvC,OAAO,CACL,KAAK,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAE,CAC7F,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,iBAAiB;gBACf,KAAK;gBACL,0BAA0B;gBAC1B,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChE,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,iBAAiB,CACxB,YAGE;IAEF,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;QACxD,SAAS,CAAC,WAAW,CAAC,MAAM,KAAK,OAAO,EAAE,cAAc,CAAC,CAAC;QAE1D,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,YAAY,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;YACnD,SAAS,CAAC,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,gCACF,WAAW,KACd,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAC7D,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,OAAO;QACL,OAAO;QACP,aAAa;QACb,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/test/cli.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,OAAO,GAAG;IACd;QACE,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,8CAA8C;KACrD;CACF,CAAC;AAEF,SAAS,aAAa,CAAC,OAAgB,EAAE,IAAyB;IAChE,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,cAAc,CAAC,CAAC;IAE/D,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAc,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAEzB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IAE9C,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACtC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACvC,OAAO,CACL,KAAK,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAE,CAC7F,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,iBAAiB;gBACf,KAAK;gBACL,0BAA0B;gBAC1B,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChE,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,iBAAiB,CACxB,YAGE;IAEF,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;QACxD,SAAS,CAAC,WAAW,CAAC,MAAM,KAAK,OAAO,EAAE,cAAc,CAAC,CAAC;QAE1D,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,YAAY,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;YACnD,SAAS,CAAC,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO;YACL,GAAG,WAAW;YACd,MAAM,EAAE,OAAO;YACf,YAAY,EAAE,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;SAC7D,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,OAAO;QACL,OAAO;QACP,aAAa;QACb,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"speculos-deviceActions.d.ts","sourceRoot":"","sources":["../../src/test/speculos-deviceActions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAM5C,OAAO,EAAE,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAa3D,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CA+B1E,CAAC"}
1
+ {"version":3,"file":"speculos-deviceActions.d.ts","sourceRoot":"","sources":["../../src/test/speculos-deviceActions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAE3D,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAuC1E,CAAC"}
@@ -1,14 +1,4 @@
1
- import { deviceActionFlow, formatDeviceAmount, SpeculosButton, } from "@ledgerhq/coin-framework/bot/specs";
2
- const typeWording = {
3
- send: "Send",
4
- lock: "Lock",
5
- unlock: "Unlock",
6
- withdraw: "Withdraw",
7
- vote: "Vote",
8
- revoke: "Revoke",
9
- activate: "Activate",
10
- register: "Create Account",
11
- };
1
+ import { deviceActionFlow, SpeculosButton } from "@ledgerhq/coin-framework/bot/specs";
12
2
  export const acceptTransaction = deviceActionFlow({
13
3
  steps: [
14
4
  {
@@ -16,26 +6,35 @@ export const acceptTransaction = deviceActionFlow({
16
6
  button: SpeculosButton.RIGHT,
17
7
  },
18
8
  {
19
- title: "Type",
9
+ title: "Transaction",
10
+ button: SpeculosButton.RIGHT,
11
+ },
12
+ {
13
+ title: "Function",
14
+ button: SpeculosButton.RIGHT,
15
+ },
16
+ {
17
+ title: "Coin Type",
18
+ button: SpeculosButton.RIGHT,
19
+ },
20
+ {
21
+ title: "Receiver (1/2)",
22
+ button: SpeculosButton.RIGHT,
23
+ },
24
+ {
25
+ title: "Receiver (2/2)",
20
26
  button: SpeculosButton.RIGHT,
21
- expectedValue: ({ transaction }) => {
22
- return typeWording[transaction.mode];
23
- },
24
27
  },
25
28
  {
26
29
  title: "Amount",
27
30
  button: SpeculosButton.RIGHT,
28
- expectedValue: ({ account, status }) => formatDeviceAmount(account.currency, status.amount, {
29
- forceFloating: true,
30
- }),
31
31
  },
32
32
  {
33
- title: "Address",
33
+ title: "Gas Fee",
34
34
  button: SpeculosButton.RIGHT,
35
- expectedValue: ({ transaction }) => transaction.recipient,
36
35
  },
37
36
  {
38
- title: "Accept",
37
+ title: "Approve",
39
38
  button: SpeculosButton.BOTH,
40
39
  },
41
40
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"speculos-deviceActions.js","sourceRoot":"","sources":["../../src/test/speculos-deviceActions.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,GACf,MAAM,oCAAoC,CAAC;AAG5C,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,gBAAgB;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAkD,gBAAgB,CAAC;IAC/F,KAAK,EAAE;QACL;YACE,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,cAAc,CAAC,KAAK;YAC5B,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;gBACjC,OAAO,WAAW,CAAC,WAAW,CAAC,IAAgC,CAAC,CAAC;YACnE,CAAC;SACF;QACD;YACE,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,cAAc,CAAC,KAAK;YAC5B,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CACrC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;gBAClD,aAAa,EAAE,IAAI;aACpB,CAAC;SACL;QACD;YACE,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,cAAc,CAAC,KAAK;YAC5B,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS;SAC1D;QACD;YACE,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"speculos-deviceActions.js","sourceRoot":"","sources":["../../src/test/speculos-deviceActions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGtF,MAAM,CAAC,MAAM,iBAAiB,GAAkD,gBAAgB,CAAC;IAC/F,KAAK,EAAE;QACL;YACE,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,cAAc,CAAC,KAAK;SAC7B;QACD;YACE,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,cAAc,CAAC,IAAI;SAC5B;KACF;CACF,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/coin-aptos",
3
- "version": "1.4.0",
3
+ "version": "1.4.1-nightly.0",
4
4
  "description": "Ledger Aptos Coin integration",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -87,6 +87,7 @@
87
87
  "bignumber.js": "^9.1.2",
88
88
  "graphql": "^16.10.0",
89
89
  "invariant": "^2.2.4",
90
+ "expect": "^27.4.6",
90
91
  "lodash": "^4.17.21",
91
92
  "rxjs": "^7.8.1",
92
93
  "@ledgerhq/coin-framework": "^0.25.0",
@@ -111,7 +112,7 @@
111
112
  },
112
113
  "scripts": {
113
114
  "clean": "rimraf lib lib-es",
114
- "build": "tsc && tsc -m ES6 --outDir lib-es",
115
+ "build": "tsc --outDir lib --module commonjs --moduleResolution node10 && tsc -m ES6 --outDir lib-es",
115
116
  "coverage": "jest --coverage --testPathIgnorePatterns='/bridge.integration.test.ts|node_modules|lib-es|lib/' --coveragePathIgnorePatterns='src/test|src/types|src/index.ts|src/bridge/bridge.fixture.ts' --passWithNoTests && mv coverage/coverage-final.json coverage/coverage-aptos.json",
116
117
  "prewatch": "pnpm build",
117
118
  "watch": "tsc --watch",
@@ -216,7 +216,6 @@ with fees=0.00000001`;
216
216
  const expected = {
217
217
  family: "aptos",
218
218
  mode: "send",
219
- fees: null,
220
219
  options: "{}",
221
220
  amount: "0.5",
222
221
  recipient: "0xff00",
@@ -1,3 +1,4 @@
1
+ // We need to target CJS for the CJS build of the lib
1
2
  import { gql } from "@apollo/client";
2
3
 
3
4
  export const GetDelegatedStakingActivities = gql`
package/src/api/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { ApolloClient, InMemoryCache } from "@apollo/client";
2
+
2
3
  import {
3
4
  AccountData,
4
5
  Aptos,
@@ -72,9 +72,7 @@ export const getFee = async (
72
72
 
73
73
  const CACHE = makeLRUCache(
74
74
  getFee,
75
- (_account: Account, transaction: Transaction, _aptosClient: AptosAPI) => {
76
- return transaction.amount.toString();
77
- },
75
+ (account: Account, transaction: Transaction) => `${account.id}-${transaction.amount.toString()}}`,
78
76
  seconds(30),
79
77
  );
80
78
 
@@ -45,9 +45,9 @@ export const toTransactionRaw = (t: Transaction): TransactionRaw => {
45
45
  ...common,
46
46
  family: t.family,
47
47
  mode: t.mode,
48
- fees: t.fees ? t.fees.toString() : null,
49
48
  options: JSON.stringify(t.options),
50
- errors: JSON.stringify(t.errors),
49
+ ...(t.fees && { fees: t.fees.toString() }),
50
+ ...(t.errors && { errors: JSON.stringify(t.errors) }),
51
51
  };
52
52
  };
53
53
 
@@ -1,28 +1,28 @@
1
1
  import invariant from "invariant";
2
+ import expect from "expect";
2
3
  import { DeviceModelId } from "@ledgerhq/devices";
4
+ import BigNumber from "bignumber.js";
5
+ import type { Transaction } from "../types";
3
6
  import { getCryptoCurrencyById } from "@ledgerhq/cryptoassets/currencies";
4
- import { parseCurrencyUnit } from "@ledgerhq/coin-framework/currencies/index";
5
- import { botTest, genericTestDestination, pickSiblings } from "@ledgerhq/coin-framework/bot/specs";
7
+ import { genericTestDestination, pickSiblings, botTest } from "@ledgerhq/coin-framework/bot/specs";
6
8
  import type { AppSpec } from "@ledgerhq/coin-framework/bot/types";
7
9
  import { acceptTransaction } from "./speculos-deviceActions";
8
- import type { Transaction } from "../types";
9
10
 
10
- const currency = getCryptoCurrencyById("aptos");
11
- const minBalanceNewAccount = parseCurrencyUnit(currency.units[0], "0.0001");
12
- const maxAccountSiblings = 4;
11
+ const MIN_SAFE = new BigNumber(0.0001);
12
+ const maxAccount = 6;
13
13
 
14
- const aptos: AppSpec<Transaction> = {
14
+ const aptosSpecs: AppSpec<Transaction> = {
15
15
  name: "Aptos",
16
- currency,
16
+ currency: getCryptoCurrencyById("aptos"),
17
17
  appQuery: {
18
18
  model: DeviceModelId.nanoSP,
19
19
  appName: "Aptos",
20
20
  },
21
21
  genericDeviceAction: acceptTransaction,
22
- testTimeout: 5 * 60 * 1000,
23
- minViableAmount: minBalanceNewAccount,
22
+ testTimeout: 6 * 60 * 1000,
23
+ minViableAmount: MIN_SAFE,
24
24
  transactionCheck: ({ maxSpendable }) => {
25
- invariant(maxSpendable.gt(minBalanceNewAccount), "balance is too low");
25
+ invariant(maxSpendable.gt(MIN_SAFE), "balance is too low");
26
26
  },
27
27
  mutations: [
28
28
  {
@@ -31,9 +31,8 @@ const aptos: AppSpec<Transaction> = {
31
31
  maxRun: 1,
32
32
  testDestination: genericTestDestination,
33
33
  transaction: ({ account, siblings, bridge, maxSpendable }) => {
34
- invariant(maxSpendable.gt(minBalanceNewAccount), "balance is too low");
35
-
36
- const sibling = pickSiblings(siblings, maxAccountSiblings);
34
+ invariant(maxSpendable.gt(MIN_SAFE), "balance is too low");
35
+ const sibling = pickSiblings(siblings, maxAccount);
37
36
  const recipient = sibling.freshAddress;
38
37
  const amount = maxSpendable.div(2).integerValue();
39
38
 
@@ -50,37 +49,44 @@ const aptos: AppSpec<Transaction> = {
50
49
  updates,
51
50
  };
52
51
  },
53
- test: ({ account, accountBeforeTransaction, operation }) => {
54
- botTest("account balance moved with operation.value", () =>
55
- expect(account.balance.toString()).toBe(
56
- accountBeforeTransaction.balance.minus(operation.value).toString(),
52
+
53
+ test: ({ accountBeforeTransaction, operation, account }) => {
54
+ botTest("account spendable balance decreased with operation", () =>
55
+ expect(account.spendableBalance).toEqual(
56
+ accountBeforeTransaction.spendableBalance.minus(operation.value),
57
57
  ),
58
58
  );
59
59
  },
60
60
  },
61
61
  {
62
- name: "Send max",
63
- maxRun: 2,
64
- testDestination: genericTestDestination,
62
+ name: "Transfer Max",
63
+ feature: "sendMax",
64
+ maxRun: 1,
65
65
  transaction: ({ account, siblings, bridge }) => {
66
- const sibling = pickSiblings(siblings, 4);
67
- const recipient = sibling.freshAddress;
68
- const transaction = bridge.createTransaction(account);
66
+ const updates: Array<Partial<Transaction>> = [
67
+ {
68
+ recipient: pickSiblings(siblings, maxAccount).freshAddress,
69
+ },
70
+ {
71
+ useAllAmount: true,
72
+ },
73
+ ];
69
74
 
70
75
  return {
71
- transaction,
72
- updates: [{ recipient }, { useAllAmount: true }],
76
+ transaction: bridge.createTransaction(account),
77
+ updates,
73
78
  };
74
79
  },
75
- test: ({ account, accountBeforeTransaction, operation }) => {
76
- botTest("Account balance should have decreased", () => {
77
- expect(account.balance.toNumber()).toEqual(
78
- accountBeforeTransaction.balance.minus(operation.value).toNumber(),
79
- );
80
- });
80
+ testDestination: genericTestDestination,
81
+ test: ({ account }) => {
82
+ botTest("account spendable balance is zero", () =>
83
+ expect(account.spendableBalance.toString()).toBe("0"),
84
+ );
81
85
  },
82
86
  },
83
87
  ],
84
88
  };
85
89
 
86
- export default { aptos };
90
+ export default {
91
+ aptosSpecs,
92
+ };
@@ -9,13 +9,13 @@ const aptos: CurrenciesData<Transaction> = {
9
9
  name: "aptos seed 1",
10
10
  apdus: `
11
11
  => 5b0500000d038000002c8000027d80000000
12
- <= 210430cfd94a543eca9ba9d26eafe07f6c28e1e43e4768f3c0bad32efeced8662f8720b44227ab88ddefa2ff5deb5e366c70e8b703aec381de39b103dd50eabf8d9d119000
12
+ <= 2104d6816f4f22f867b56cf9304b776f452a16d107835d73ee8a33c4ced210300583204bb135642f160c72c323d57ad509b904ff44d9f2b983e8b90468e19b6f431ea79000
13
13
  => 5b05000015058000002c8000027d800000008000000080000000
14
- <= 21044b16bdc2f72ea4502a8c4879c72e71d4d1a8ec46c43620e00a6f46e0b7569c6b20ba21e074c2bd6b307a35c85afd6ad40dc8319af9ec11660c588ffd3e413773259000
14
+ <= 2104d1a8c6a1cdd52dd40c7ea61ee4571fb51fcae440a594c1eca18636928f1d3956200d8d6cf19a090a8080768d07a848acc333775e5327d2da8a4022301f7dbb88ff9000
15
15
  => 5b05000015058000002c8000027d800000018000000080000000
16
- <= 21049aec773c4b645bba274924e2e8aeea525ba37051c94bfd922b60c87b1692091e207fa1d1caa1209d35fafe59393bc820bb7b0b81f3a808dd3728e0b1347bfff40e9000
16
+ <= 21046a7712fdac0cb4ed27076c707e7798be52cf6c93a2d43d5cf9b874d0a45a111e208e72477f799c2d3b2899b32b114988ab3d1af02dd0d3562196eccded2936f8449000
17
17
  => 5b05000015058000002c8000027d800000028000000080000000
18
- <= 21041fb77263c646810574525025561e4559c338b571f57f1b513d75b1609d5fa5f6205e9117d152b467fac631d742ddbc31ea3cbcaac51273c1e931058a56e983d9f59000
18
+ <= 21048ffc0c2e141ead220f05b30fa01ce9a3783c5a157219f922b02ec194308b1b452084cf4bdff7814f8c3d08bfceb9d2615bf8c6850b208477528f8376c4250e4b5a9000
19
19
  `,
20
20
  },
21
21
  ],
@@ -29,19 +29,51 @@ const aptos: CurrenciesData<Transaction> = {
29
29
  index: 0,
30
30
  freshAddress: "0x445fa0013887abd1a0c14acdec6e48090e0ad3fed3e08202aac15ca14f3be26b",
31
31
  freshAddressPath: "44'/637'/0'/0/0",
32
- blockHeight: 266360751,
32
+ blockHeight: 286066372,
33
33
  creationDate: "2024-12-18T12:26:31.070Z",
34
34
  operationsCount: 5,
35
35
  operations: [],
36
36
  pendingOperations: [],
37
37
  currencyId: "aptos",
38
- lastSyncDate: "2024-12-18T15:20:55.097Z",
38
+ lastSyncDate: "2025-02-04T14:00:46.693Z",
39
39
  balance: "30100",
40
40
  spendableBalance: "30100",
41
41
  balanceHistoryCache: {
42
- HOUR: { balances: [0, 50000, 50000, 30100], latestDate: 1734534000000 },
43
- DAY: { balances: [0], latestDate: 1734480000000 },
44
- WEEK: { balances: [0], latestDate: 1734220800000 },
42
+ HOUR: {
43
+ balances: [
44
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
45
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
46
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
47
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
48
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
49
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
50
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
51
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
52
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
53
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
54
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
55
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
56
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
57
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
58
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
59
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
60
+ 30100,
61
+ ],
62
+ latestDate: 1738677600000,
63
+ },
64
+ DAY: {
65
+ balances: [
66
+ 0, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
67
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
68
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
69
+ 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100, 30100,
70
+ ],
71
+ latestDate: 1738627200000,
72
+ },
73
+ WEEK: {
74
+ balances: [0, 30100, 30100, 30100, 30100, 30100, 30100, 30100],
75
+ latestDate: 1738454400000,
76
+ },
45
77
  },
46
78
  xpub: "d1a8c6a1cdd52dd40c7ea61ee4571fb51fcae440a594c1eca18636928f1d3956",
47
79
  swapHistory: [],
@@ -50,13 +82,14 @@ const aptos: CurrenciesData<Transaction> = {
50
82
  {
51
83
  name: "NO_NAME",
52
84
  transaction: fromTransactionRaw({
53
- amount: "20000",
85
+ amount: "1000",
54
86
  recipient: "0xd20fa44192f94ba086ab16bfdf57e43ff118ada69b4c66fa9b9a9223cbc068c1",
55
87
  useAllAmount: false,
88
+ subAccountId: null,
56
89
  family: "aptos",
57
90
  mode: "send",
58
- fees: "1100",
59
- options: '{ "maxGasAmount": "11", "gasUnitPrice": "100" }',
91
+ fees: "900",
92
+ options: '{"maxGasAmount":"9","gasUnitPrice":"100"}',
60
93
  errors: "{}",
61
94
  }),
62
95
  expectedStatus: () =>
@@ -64,9 +97,7 @@ const aptos: CurrenciesData<Transaction> = {
64
97
  ({
65
98
  errors: {},
66
99
  warnings: {},
67
- estimatedFees: BigNumber("900"),
68
- amount: BigNumber("20000"),
69
- totalSpent: BigNumber("20900"),
100
+ amount: BigNumber("1000"),
70
101
  }),
71
102
  },
72
103
  ],
@@ -1,23 +1,8 @@
1
1
  import type { DeviceAction } from "@ledgerhq/coin-framework/bot/types";
2
2
  import type { Transaction } from "../types";
3
- import {
4
- deviceActionFlow,
5
- formatDeviceAmount,
6
- SpeculosButton,
7
- } from "@ledgerhq/coin-framework/bot/specs";
3
+ import { deviceActionFlow, SpeculosButton } from "@ledgerhq/coin-framework/bot/specs";
8
4
  import { State } from "@ledgerhq/coin-framework/bot/types";
9
5
 
10
- const typeWording = {
11
- send: "Send",
12
- lock: "Lock",
13
- unlock: "Unlock",
14
- withdraw: "Withdraw",
15
- vote: "Vote",
16
- revoke: "Revoke",
17
- activate: "Activate",
18
- register: "Create Account",
19
- };
20
-
21
6
  export const acceptTransaction: DeviceAction<Transaction, State<Transaction>> = deviceActionFlow({
22
7
  steps: [
23
8
  {
@@ -25,27 +10,35 @@ export const acceptTransaction: DeviceAction<Transaction, State<Transaction>> =
25
10
  button: SpeculosButton.RIGHT,
26
11
  },
27
12
  {
28
- title: "Type",
13
+ title: "Transaction",
14
+ button: SpeculosButton.RIGHT,
15
+ },
16
+ {
17
+ title: "Function",
18
+ button: SpeculosButton.RIGHT,
19
+ },
20
+ {
21
+ title: "Coin Type",
22
+ button: SpeculosButton.RIGHT,
23
+ },
24
+ {
25
+ title: "Receiver (1/2)",
26
+ button: SpeculosButton.RIGHT,
27
+ },
28
+ {
29
+ title: "Receiver (2/2)",
29
30
  button: SpeculosButton.RIGHT,
30
- expectedValue: ({ transaction }) => {
31
- return typeWording[transaction.mode as keyof typeof typeWording];
32
- },
33
31
  },
34
32
  {
35
33
  title: "Amount",
36
34
  button: SpeculosButton.RIGHT,
37
- expectedValue: ({ account, status }) =>
38
- formatDeviceAmount(account.currency, status.amount, {
39
- forceFloating: true,
40
- }),
41
35
  },
42
36
  {
43
- title: "Address",
37
+ title: "Gas Fee",
44
38
  button: SpeculosButton.RIGHT,
45
- expectedValue: ({ transaction }) => transaction.recipient,
46
39
  },
47
40
  {
48
- title: "Accept",
41
+ title: "Approve",
49
42
  button: SpeculosButton.BOTH,
50
43
  },
51
44
  ],
package/tsconfig.json CHANGED
@@ -3,12 +3,13 @@
3
3
  "compilerOptions": {
4
4
  "declaration": true,
5
5
  "declarationMap": true,
6
- "module": "commonjs",
7
6
  "downlevelIteration": true,
8
7
  "lib": ["es2020", "dom"],
9
8
  "rootDir": "./src",
10
9
  "outDir": "lib",
11
- "exactOptionalPropertyTypes": true
10
+ "exactOptionalPropertyTypes": true,
11
+ "module": "esnext",
12
+ "moduleResolution": "bundler",
12
13
  },
13
14
  "include": ["src/**/*", "deviceTransactionConfig.ts", "transaction.ts"]
14
15
  }