@ledgerhq/coin-aptos 1.4.0-nightly.3 → 1.4.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 (146) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/CHANGELOG.md +15 -22
  3. package/lib/__tests__/api/index.test.js +92 -67
  4. package/lib/__tests__/api/index.test.js.map +1 -1
  5. package/lib/__tests__/bridge/broadcast.test.js +17 -11
  6. package/lib/__tests__/bridge/broadcast.test.js.map +1 -1
  7. package/lib/__tests__/bridge/buildTransaction.test.js +12 -3
  8. package/lib/__tests__/bridge/buildTransaction.test.js.map +1 -1
  9. package/lib/__tests__/bridge/createTransaction.test.js +11 -2
  10. package/lib/__tests__/bridge/createTransaction.test.js.map +1 -1
  11. package/lib/__tests__/bridge/estimateMaxSpendable.test.js +21 -12
  12. package/lib/__tests__/bridge/estimateMaxSpendable.test.js.map +1 -1
  13. package/lib/__tests__/bridge/getFeesForTransaction.test.js +22 -13
  14. package/lib/__tests__/bridge/getFeesForTransaction.test.js.map +1 -1
  15. package/lib/__tests__/bridge/getTransactionStatus.test.js +27 -18
  16. package/lib/__tests__/bridge/getTransactionStatus.test.js.map +1 -1
  17. package/lib/__tests__/bridge/index.test.js +12 -3
  18. package/lib/__tests__/bridge/index.test.js.map +1 -1
  19. package/lib/__tests__/bridge/prepareTransaction.test.js +35 -22
  20. package/lib/__tests__/bridge/prepareTransaction.test.js.map +1 -1
  21. package/lib/__tests__/bridge/signOperation.test.js +18 -9
  22. package/lib/__tests__/bridge/signOperation.test.js.map +1 -1
  23. package/lib/__tests__/bridge/synchronisation.test.js +65 -46
  24. package/lib/__tests__/bridge/synchronisation.test.js.map +1 -1
  25. package/lib/__tests__/bridge/transaction.test.js +23 -14
  26. package/lib/__tests__/bridge/transaction.test.js.map +1 -1
  27. package/lib/__tests__/network/index.test.js +16 -10
  28. package/lib/__tests__/network/index.test.js.map +1 -1
  29. package/lib/__tests__/signer/index.test.js +17 -6
  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 +0 -1
  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 +142 -119
  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 +12 -3
  40. package/lib/bridge/broadcast.js.map +1 -1
  41. package/lib/bridge/buildTransaction.js +12 -3
  42. package/lib/bridge/buildTransaction.js.map +1 -1
  43. package/lib/bridge/estimateMaxSpendable.js +12 -3
  44. package/lib/bridge/estimateMaxSpendable.js.map +1 -1
  45. package/lib/bridge/getFeesForTransaction.js +17 -8
  46. package/lib/bridge/getFeesForTransaction.js.map +1 -1
  47. package/lib/bridge/getTransactionStatus.js +11 -2
  48. package/lib/bridge/getTransactionStatus.js.map +1 -1
  49. package/lib/bridge/logic.js +20 -17
  50. package/lib/bridge/logic.js.map +1 -1
  51. package/lib/bridge/prepareTransaction.js +13 -7
  52. package/lib/bridge/prepareTransaction.js.map +1 -1
  53. package/lib/bridge/signOperation.js +53 -42
  54. package/lib/bridge/signOperation.js.map +1 -1
  55. package/lib/bridge/synchronisation.js +17 -7
  56. package/lib/bridge/synchronisation.js.map +1 -1
  57. package/lib/bridge/transaction.js +2 -16
  58. package/lib/bridge/transaction.js.map +1 -1
  59. package/lib/network/index.js +30 -19
  60. package/lib/network/index.js.map +1 -1
  61. package/lib/signer/index.js +12 -3
  62. package/lib/signer/index.js.map +1 -1
  63. package/lib/test/bot-specs.d.ts +2 -2
  64. package/lib/test/bot-specs.d.ts.map +1 -1
  65. package/lib/test/bot-specs.js +26 -32
  66. package/lib/test/bot-specs.js.map +1 -1
  67. package/lib/test/cli.js +1 -5
  68. package/lib/test/cli.js.map +1 -1
  69. package/lib/test/speculos-deviceActions.d.ts.map +1 -1
  70. package/lib/test/speculos-deviceActions.js +20 -19
  71. package/lib/test/speculos-deviceActions.js.map +1 -1
  72. package/lib-es/__tests__/api/index.test.js +92 -67
  73. package/lib-es/__tests__/api/index.test.js.map +1 -1
  74. package/lib-es/__tests__/bridge/broadcast.test.js +17 -11
  75. package/lib-es/__tests__/bridge/broadcast.test.js.map +1 -1
  76. package/lib-es/__tests__/bridge/buildTransaction.test.js +12 -3
  77. package/lib-es/__tests__/bridge/buildTransaction.test.js.map +1 -1
  78. package/lib-es/__tests__/bridge/createTransaction.test.js +11 -2
  79. package/lib-es/__tests__/bridge/createTransaction.test.js.map +1 -1
  80. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.js +21 -12
  81. package/lib-es/__tests__/bridge/estimateMaxSpendable.test.js.map +1 -1
  82. package/lib-es/__tests__/bridge/getFeesForTransaction.test.js +22 -13
  83. package/lib-es/__tests__/bridge/getFeesForTransaction.test.js.map +1 -1
  84. package/lib-es/__tests__/bridge/getTransactionStatus.test.js +27 -18
  85. package/lib-es/__tests__/bridge/getTransactionStatus.test.js.map +1 -1
  86. package/lib-es/__tests__/bridge/index.test.js +12 -3
  87. package/lib-es/__tests__/bridge/index.test.js.map +1 -1
  88. package/lib-es/__tests__/bridge/prepareTransaction.test.js +35 -22
  89. package/lib-es/__tests__/bridge/prepareTransaction.test.js.map +1 -1
  90. package/lib-es/__tests__/bridge/signOperation.test.js +18 -9
  91. package/lib-es/__tests__/bridge/signOperation.test.js.map +1 -1
  92. package/lib-es/__tests__/bridge/synchronisation.test.js +65 -46
  93. package/lib-es/__tests__/bridge/synchronisation.test.js.map +1 -1
  94. package/lib-es/__tests__/bridge/transaction.test.js +23 -14
  95. package/lib-es/__tests__/bridge/transaction.test.js.map +1 -1
  96. package/lib-es/__tests__/network/index.test.js +16 -10
  97. package/lib-es/__tests__/network/index.test.js.map +1 -1
  98. package/lib-es/__tests__/signer/index.test.js +17 -6
  99. package/lib-es/__tests__/signer/index.test.js.map +1 -1
  100. package/lib-es/api/graphql/queries.d.ts.map +1 -1
  101. package/lib-es/api/graphql/queries.js +0 -1
  102. package/lib-es/api/graphql/queries.js.map +1 -1
  103. package/lib-es/api/index.d.ts.map +1 -1
  104. package/lib-es/api/index.js +142 -119
  105. package/lib-es/api/index.js.map +1 -1
  106. package/lib-es/bridge/bridge.fixture.js +13 -13
  107. package/lib-es/bridge/bridge.fixture.js.map +1 -1
  108. package/lib-es/bridge/broadcast.js +12 -3
  109. package/lib-es/bridge/broadcast.js.map +1 -1
  110. package/lib-es/bridge/buildTransaction.js +12 -3
  111. package/lib-es/bridge/buildTransaction.js.map +1 -1
  112. package/lib-es/bridge/estimateMaxSpendable.js +12 -3
  113. package/lib-es/bridge/estimateMaxSpendable.js.map +1 -1
  114. package/lib-es/bridge/getFeesForTransaction.js +17 -8
  115. package/lib-es/bridge/getFeesForTransaction.js.map +1 -1
  116. package/lib-es/bridge/getTransactionStatus.js +11 -2
  117. package/lib-es/bridge/getTransactionStatus.js.map +1 -1
  118. package/lib-es/bridge/logic.js +20 -17
  119. package/lib-es/bridge/logic.js.map +1 -1
  120. package/lib-es/bridge/prepareTransaction.js +13 -7
  121. package/lib-es/bridge/prepareTransaction.js.map +1 -1
  122. package/lib-es/bridge/signOperation.js +53 -42
  123. package/lib-es/bridge/signOperation.js.map +1 -1
  124. package/lib-es/bridge/synchronisation.js +17 -7
  125. package/lib-es/bridge/synchronisation.js.map +1 -1
  126. package/lib-es/bridge/transaction.js +2 -16
  127. package/lib-es/bridge/transaction.js.map +1 -1
  128. package/lib-es/network/index.js +30 -19
  129. package/lib-es/network/index.js.map +1 -1
  130. package/lib-es/signer/index.js +12 -3
  131. package/lib-es/signer/index.js.map +1 -1
  132. package/lib-es/test/bot-specs.d.ts +2 -2
  133. package/lib-es/test/bot-specs.d.ts.map +1 -1
  134. package/lib-es/test/bot-specs.js +27 -33
  135. package/lib-es/test/bot-specs.js.map +1 -1
  136. package/lib-es/test/cli.js +1 -5
  137. package/lib-es/test/cli.js.map +1 -1
  138. package/lib-es/test/speculos-deviceActions.d.ts.map +1 -1
  139. package/lib-es/test/speculos-deviceActions.js +21 -20
  140. package/lib-es/test/speculos-deviceActions.js.map +1 -1
  141. package/package.json +5 -6
  142. package/src/api/graphql/queries.ts +0 -1
  143. package/src/api/index.ts +0 -1
  144. package/src/test/bot-specs.ts +33 -39
  145. package/src/test/speculos-deviceActions.ts +27 -20
  146. package/tsconfig.json +2 -3
@@ -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;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
+ {"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 +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;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAE3D,eAAO,MAAM,iBAAiB,EAAE,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAuC1E,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;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,4 +1,14 @@
1
- import { deviceActionFlow, SpeculosButton } from "@ledgerhq/coin-framework/bot/specs";
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
+ };
2
12
  export const acceptTransaction = deviceActionFlow({
3
13
  steps: [
4
14
  {
@@ -6,35 +16,26 @@ export const acceptTransaction = deviceActionFlow({
6
16
  button: SpeculosButton.RIGHT,
7
17
  },
8
18
  {
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)",
19
+ title: "Type",
26
20
  button: SpeculosButton.RIGHT,
21
+ expectedValue: ({ transaction }) => {
22
+ return typeWording[transaction.mode];
23
+ },
27
24
  },
28
25
  {
29
26
  title: "Amount",
30
27
  button: SpeculosButton.RIGHT,
28
+ expectedValue: ({ account, status }) => formatDeviceAmount(account.currency, status.amount, {
29
+ forceFloating: true,
30
+ }),
31
31
  },
32
32
  {
33
- title: "Gas Fee",
33
+ title: "Address",
34
34
  button: SpeculosButton.RIGHT,
35
+ expectedValue: ({ transaction }) => transaction.recipient,
35
36
  },
36
37
  {
37
- title: "Approve",
38
+ title: "Accept",
38
39
  button: SpeculosButton.BOTH,
39
40
  },
40
41
  ],
@@ -1 +1 @@
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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/coin-aptos",
3
- "version": "1.4.0-nightly.3",
3
+ "version": "1.4.0",
4
4
  "description": "Ledger Aptos Coin integration",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -87,17 +87,16 @@
87
87
  "bignumber.js": "^9.1.2",
88
88
  "graphql": "^16.10.0",
89
89
  "invariant": "^2.2.4",
90
- "expect": "^27.4.6",
91
90
  "lodash": "^4.17.21",
92
91
  "rxjs": "^7.8.1",
93
- "@ledgerhq/coin-framework": "^0.24.1-nightly.0",
94
- "@ledgerhq/cryptoassets": "^13.10.0-nightly.1",
92
+ "@ledgerhq/coin-framework": "^0.25.0",
93
+ "@ledgerhq/cryptoassets": "^13.10.0",
95
94
  "@ledgerhq/devices": "8.4.4",
96
95
  "@ledgerhq/errors": "^6.19.1",
97
96
  "@ledgerhq/live-env": "^2.5.0",
98
97
  "@ledgerhq/live-network": "^2.0.4",
99
98
  "@ledgerhq/logs": "^6.12.0",
100
- "@ledgerhq/types-live": "^6.58.0"
99
+ "@ledgerhq/types-live": "^6.59.0"
101
100
  },
102
101
  "devDependencies": {
103
102
  "@faker-js/faker": "^9.4.0",
@@ -112,7 +111,7 @@
112
111
  },
113
112
  "scripts": {
114
113
  "clean": "rimraf lib lib-es",
115
- "build": "tsc --outDir lib --module commonjs --moduleResolution node10 && tsc -m ES6 --outDir lib-es",
114
+ "build": "tsc && tsc -m ES6 --outDir lib-es",
116
115
  "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",
117
116
  "prewatch": "pnpm build",
118
117
  "watch": "tsc --watch",
@@ -1,4 +1,3 @@
1
- // We need to target CJS for the CJS build of the lib
2
1
  import { gql } from "@apollo/client";
3
2
 
4
3
  export const GetDelegatedStakingActivities = gql`
package/src/api/index.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { ApolloClient, InMemoryCache } from "@apollo/client";
2
-
3
2
  import {
4
3
  AccountData,
5
4
  Aptos,
@@ -1,28 +1,28 @@
1
1
  import invariant from "invariant";
2
- import expect from "expect";
3
2
  import { DeviceModelId } from "@ledgerhq/devices";
4
- import BigNumber from "bignumber.js";
5
- import type { Transaction } from "../types";
6
3
  import { getCryptoCurrencyById } from "@ledgerhq/cryptoassets/currencies";
7
- import { genericTestDestination, pickSiblings, botTest } from "@ledgerhq/coin-framework/bot/specs";
4
+ import { parseCurrencyUnit } from "@ledgerhq/coin-framework/currencies/index";
5
+ import { botTest, genericTestDestination, pickSiblings } from "@ledgerhq/coin-framework/bot/specs";
8
6
  import type { AppSpec } from "@ledgerhq/coin-framework/bot/types";
9
7
  import { acceptTransaction } from "./speculos-deviceActions";
8
+ import type { Transaction } from "../types";
10
9
 
11
- const MIN_SAFE = new BigNumber(0.0001);
12
- const maxAccount = 6;
10
+ const currency = getCryptoCurrencyById("aptos");
11
+ const minBalanceNewAccount = parseCurrencyUnit(currency.units[0], "0.0001");
12
+ const maxAccountSiblings = 4;
13
13
 
14
- const aptosSpecs: AppSpec<Transaction> = {
14
+ const aptos: AppSpec<Transaction> = {
15
15
  name: "Aptos",
16
- currency: getCryptoCurrencyById("aptos"),
16
+ currency,
17
17
  appQuery: {
18
18
  model: DeviceModelId.nanoSP,
19
19
  appName: "Aptos",
20
20
  },
21
21
  genericDeviceAction: acceptTransaction,
22
- testTimeout: 6 * 60 * 1000,
23
- minViableAmount: MIN_SAFE,
22
+ testTimeout: 5 * 60 * 1000,
23
+ minViableAmount: minBalanceNewAccount,
24
24
  transactionCheck: ({ maxSpendable }) => {
25
- invariant(maxSpendable.gt(MIN_SAFE), "balance is too low");
25
+ invariant(maxSpendable.gt(minBalanceNewAccount), "balance is too low");
26
26
  },
27
27
  mutations: [
28
28
  {
@@ -31,8 +31,9 @@ const aptosSpecs: AppSpec<Transaction> = {
31
31
  maxRun: 1,
32
32
  testDestination: genericTestDestination,
33
33
  transaction: ({ account, siblings, bridge, maxSpendable }) => {
34
- invariant(maxSpendable.gt(MIN_SAFE), "balance is too low");
35
- const sibling = pickSiblings(siblings, maxAccount);
34
+ invariant(maxSpendable.gt(minBalanceNewAccount), "balance is too low");
35
+
36
+ const sibling = pickSiblings(siblings, maxAccountSiblings);
36
37
  const recipient = sibling.freshAddress;
37
38
  const amount = maxSpendable.div(2).integerValue();
38
39
 
@@ -49,44 +50,37 @@ const aptosSpecs: AppSpec<Transaction> = {
49
50
  updates,
50
51
  };
51
52
  },
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),
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(),
57
57
  ),
58
58
  );
59
59
  },
60
60
  },
61
61
  {
62
- name: "Transfer Max",
63
- feature: "sendMax",
64
- maxRun: 1,
62
+ name: "Send max",
63
+ maxRun: 2,
64
+ testDestination: genericTestDestination,
65
65
  transaction: ({ account, siblings, bridge }) => {
66
- const updates: Array<Partial<Transaction>> = [
67
- {
68
- recipient: pickSiblings(siblings, maxAccount).freshAddress,
69
- },
70
- {
71
- useAllAmount: true,
72
- },
73
- ];
66
+ const sibling = pickSiblings(siblings, 4);
67
+ const recipient = sibling.freshAddress;
68
+ const transaction = bridge.createTransaction(account);
74
69
 
75
70
  return {
76
- transaction: bridge.createTransaction(account),
77
- updates,
71
+ transaction,
72
+ updates: [{ recipient }, { useAllAmount: true }],
78
73
  };
79
74
  },
80
- testDestination: genericTestDestination,
81
- test: ({ account }) => {
82
- botTest("account spendable balance is zero", () =>
83
- expect(account.spendableBalance.toString()).toBe("0"),
84
- );
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
+ });
85
81
  },
86
82
  },
87
83
  ],
88
84
  };
89
85
 
90
- export default {
91
- aptosSpecs,
92
- };
86
+ export default { aptos };
@@ -1,8 +1,23 @@
1
1
  import type { DeviceAction } from "@ledgerhq/coin-framework/bot/types";
2
2
  import type { Transaction } from "../types";
3
- import { deviceActionFlow, SpeculosButton } from "@ledgerhq/coin-framework/bot/specs";
3
+ import {
4
+ deviceActionFlow,
5
+ formatDeviceAmount,
6
+ SpeculosButton,
7
+ } from "@ledgerhq/coin-framework/bot/specs";
4
8
  import { State } from "@ledgerhq/coin-framework/bot/types";
5
9
 
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
+
6
21
  export const acceptTransaction: DeviceAction<Transaction, State<Transaction>> = deviceActionFlow({
7
22
  steps: [
8
23
  {
@@ -10,35 +25,27 @@ export const acceptTransaction: DeviceAction<Transaction, State<Transaction>> =
10
25
  button: SpeculosButton.RIGHT,
11
26
  },
12
27
  {
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)",
28
+ title: "Type",
30
29
  button: SpeculosButton.RIGHT,
30
+ expectedValue: ({ transaction }) => {
31
+ return typeWording[transaction.mode as keyof typeof typeWording];
32
+ },
31
33
  },
32
34
  {
33
35
  title: "Amount",
34
36
  button: SpeculosButton.RIGHT,
37
+ expectedValue: ({ account, status }) =>
38
+ formatDeviceAmount(account.currency, status.amount, {
39
+ forceFloating: true,
40
+ }),
35
41
  },
36
42
  {
37
- title: "Gas Fee",
43
+ title: "Address",
38
44
  button: SpeculosButton.RIGHT,
45
+ expectedValue: ({ transaction }) => transaction.recipient,
39
46
  },
40
47
  {
41
- title: "Approve",
48
+ title: "Accept",
42
49
  button: SpeculosButton.BOTH,
43
50
  },
44
51
  ],
package/tsconfig.json CHANGED
@@ -3,13 +3,12 @@
3
3
  "compilerOptions": {
4
4
  "declaration": true,
5
5
  "declarationMap": true,
6
+ "module": "commonjs",
6
7
  "downlevelIteration": true,
7
8
  "lib": ["es2020", "dom"],
8
9
  "rootDir": "./src",
9
10
  "outDir": "lib",
10
- "exactOptionalPropertyTypes": true,
11
- "module": "esnext",
12
- "moduleResolution": "bundler",
11
+ "exactOptionalPropertyTypes": true
13
12
  },
14
13
  "include": ["src/**/*", "deviceTransactionConfig.ts", "transaction.ts"]
15
14
  }