@ledgerhq/coin-hedera 1.10.1 → 1.11.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 (249) hide show
  1. package/.eslintrc.js +1 -0
  2. package/.turbo/turbo-build.log +1 -1
  3. package/CHANGELOG.md +37 -12
  4. package/lib/api/mirror.d.ts +3 -20
  5. package/lib/api/mirror.d.ts.map +1 -1
  6. package/lib/api/mirror.js +32 -90
  7. package/lib/api/mirror.js.map +1 -1
  8. package/lib/api/mirror.test.js +59 -4
  9. package/lib/api/mirror.test.js.map +1 -1
  10. package/lib/api/network.d.ts +3 -3
  11. package/lib/api/network.d.ts.map +1 -1
  12. package/lib/api/network.js +46 -3
  13. package/lib/api/network.js.map +1 -1
  14. package/lib/api/types.d.ts +44 -0
  15. package/lib/api/types.d.ts.map +1 -0
  16. package/lib/api/types.js +3 -0
  17. package/lib/api/types.js.map +1 -0
  18. package/lib/api/utils.d.ts +8 -0
  19. package/lib/api/utils.d.ts.map +1 -0
  20. package/lib/api/utils.js +132 -0
  21. package/lib/api/utils.js.map +1 -0
  22. package/lib/bridge/broadcast.d.ts.map +1 -1
  23. package/lib/bridge/broadcast.js +2 -0
  24. package/lib/bridge/broadcast.js.map +1 -1
  25. package/lib/bridge/buildOptimisticOperation.d.ts +2 -2
  26. package/lib/bridge/buildOptimisticOperation.d.ts.map +1 -1
  27. package/lib/bridge/buildOptimisticOperation.integration.test.d.ts +2 -0
  28. package/lib/bridge/buildOptimisticOperation.integration.test.d.ts.map +1 -0
  29. package/lib/bridge/buildOptimisticOperation.integration.test.js +82 -0
  30. package/lib/bridge/buildOptimisticOperation.integration.test.js.map +1 -0
  31. package/lib/bridge/buildOptimisticOperation.js +87 -5
  32. package/lib/bridge/buildOptimisticOperation.js.map +1 -1
  33. package/lib/bridge/estimateMaxSpendable.d.ts.map +1 -1
  34. package/lib/bridge/estimateMaxSpendable.js +8 -2
  35. package/lib/bridge/estimateMaxSpendable.js.map +1 -1
  36. package/lib/bridge/getTransactionStatus.d.ts +3 -3
  37. package/lib/bridge/getTransactionStatus.d.ts.map +1 -1
  38. package/lib/bridge/getTransactionStatus.js +116 -23
  39. package/lib/bridge/getTransactionStatus.js.map +1 -1
  40. package/lib/bridge/getTransactionStatus.test.d.ts +2 -0
  41. package/lib/bridge/getTransactionStatus.test.d.ts.map +1 -0
  42. package/lib/bridge/getTransactionStatus.test.js +176 -0
  43. package/lib/bridge/getTransactionStatus.test.js.map +1 -0
  44. package/lib/bridge/index.d.ts +4 -4
  45. package/lib/bridge/index.d.ts.map +1 -1
  46. package/lib/bridge/index.js +9 -6
  47. package/lib/bridge/index.js.map +1 -1
  48. package/lib/bridge/js-estimateMaxSpendable.integration.test.js +28 -44
  49. package/lib/bridge/js-estimateMaxSpendable.integration.test.js.map +1 -1
  50. package/lib/bridge/js-transaction.test.js +10 -49
  51. package/lib/bridge/js-transaction.test.js.map +1 -1
  52. package/lib/bridge/prepareTransaction.d.ts +0 -1
  53. package/lib/bridge/prepareTransaction.d.ts.map +1 -1
  54. package/lib/bridge/prepareTransaction.js +0 -1
  55. package/lib/bridge/prepareTransaction.js.map +1 -1
  56. package/lib/bridge/serialization.d.ts +7 -0
  57. package/lib/bridge/serialization.d.ts.map +1 -0
  58. package/lib/bridge/serialization.js +36 -0
  59. package/lib/bridge/serialization.js.map +1 -0
  60. package/lib/bridge/serialization.test.d.ts +2 -0
  61. package/lib/bridge/serialization.test.d.ts.map +1 -0
  62. package/lib/bridge/serialization.test.js +27 -0
  63. package/lib/bridge/serialization.test.js.map +1 -0
  64. package/lib/bridge/synchronisation.d.ts +3 -3
  65. package/lib/bridge/synchronisation.d.ts.map +1 -1
  66. package/lib/bridge/synchronisation.js +37 -15
  67. package/lib/bridge/synchronisation.js.map +1 -1
  68. package/lib/bridge/transaction.test.js +18 -59
  69. package/lib/bridge/transaction.test.js.map +1 -1
  70. package/lib/bridge/utils.d.ts +22 -8
  71. package/lib/bridge/utils.d.ts.map +1 -1
  72. package/lib/bridge/utils.integration.test.js +415 -73
  73. package/lib/bridge/utils.integration.test.js.map +1 -1
  74. package/lib/bridge/utils.js +300 -15
  75. package/lib/bridge/utils.js.map +1 -1
  76. package/lib/constants.d.ts +32 -0
  77. package/lib/constants.d.ts.map +1 -0
  78. package/lib/constants.js +37 -0
  79. package/lib/constants.js.map +1 -0
  80. package/lib/deviceTransactionConfig.d.ts.map +1 -1
  81. package/lib/deviceTransactionConfig.js +17 -15
  82. package/lib/deviceTransactionConfig.js.map +1 -1
  83. package/lib/logic.d.ts +9 -3
  84. package/lib/logic.d.ts.map +1 -1
  85. package/lib/logic.js +31 -3
  86. package/lib/logic.js.map +1 -1
  87. package/lib/logic.test.js +103 -50
  88. package/lib/logic.test.js.map +1 -1
  89. package/lib/test/fixtures/account.fixture.d.ts +19 -0
  90. package/lib/test/fixtures/account.fixture.d.ts.map +1 -0
  91. package/lib/test/fixtures/account.fixture.js +116 -0
  92. package/lib/test/fixtures/account.fixture.js.map +1 -0
  93. package/lib/test/fixtures/currency.fixture.d.ts +5 -0
  94. package/lib/test/fixtures/currency.fixture.d.ts.map +1 -0
  95. package/lib/test/fixtures/currency.fixture.js +67 -0
  96. package/lib/test/fixtures/currency.fixture.js.map +1 -0
  97. package/lib/test/fixtures/mirror.fixture.d.ts +3 -0
  98. package/lib/test/fixtures/mirror.fixture.d.ts.map +1 -0
  99. package/lib/test/fixtures/mirror.fixture.js +17 -0
  100. package/lib/test/fixtures/mirror.fixture.js.map +1 -0
  101. package/lib/test/fixtures/operation.fixture.d.ts +3 -0
  102. package/lib/test/fixtures/operation.fixture.d.ts.map +1 -0
  103. package/lib/test/fixtures/operation.fixture.js +26 -0
  104. package/lib/test/fixtures/operation.fixture.js.map +1 -0
  105. package/lib/test/fixtures/transaction.fixture.d.ts +4 -0
  106. package/lib/test/fixtures/transaction.fixture.d.ts.map +1 -0
  107. package/lib/test/fixtures/transaction.fixture.js +28 -0
  108. package/lib/test/fixtures/transaction.fixture.js.map +1 -0
  109. package/lib/types/bridge.d.ts +25 -1
  110. package/lib/types/bridge.d.ts.map +1 -1
  111. package/lib-es/api/mirror.d.ts +3 -20
  112. package/lib-es/api/mirror.d.ts.map +1 -1
  113. package/lib-es/api/mirror.js +29 -88
  114. package/lib-es/api/mirror.js.map +1 -1
  115. package/lib-es/api/mirror.test.js +60 -5
  116. package/lib-es/api/mirror.test.js.map +1 -1
  117. package/lib-es/api/network.d.ts +3 -3
  118. package/lib-es/api/network.d.ts.map +1 -1
  119. package/lib-es/api/network.js +44 -4
  120. package/lib-es/api/network.js.map +1 -1
  121. package/lib-es/api/types.d.ts +44 -0
  122. package/lib-es/api/types.d.ts.map +1 -0
  123. package/lib-es/api/types.js +2 -0
  124. package/lib-es/api/types.js.map +1 -0
  125. package/lib-es/api/utils.d.ts +8 -0
  126. package/lib-es/api/utils.d.ts.map +1 -0
  127. package/lib-es/api/utils.js +124 -0
  128. package/lib-es/api/utils.js.map +1 -0
  129. package/lib-es/bridge/broadcast.d.ts.map +1 -1
  130. package/lib-es/bridge/broadcast.js +2 -0
  131. package/lib-es/bridge/broadcast.js.map +1 -1
  132. package/lib-es/bridge/buildOptimisticOperation.d.ts +2 -2
  133. package/lib-es/bridge/buildOptimisticOperation.d.ts.map +1 -1
  134. package/lib-es/bridge/buildOptimisticOperation.integration.test.d.ts +2 -0
  135. package/lib-es/bridge/buildOptimisticOperation.integration.test.d.ts.map +1 -0
  136. package/lib-es/bridge/buildOptimisticOperation.integration.test.js +77 -0
  137. package/lib-es/bridge/buildOptimisticOperation.integration.test.js.map +1 -0
  138. package/lib-es/bridge/buildOptimisticOperation.js +84 -5
  139. package/lib-es/bridge/buildOptimisticOperation.js.map +1 -1
  140. package/lib-es/bridge/estimateMaxSpendable.d.ts.map +1 -1
  141. package/lib-es/bridge/estimateMaxSpendable.js +8 -2
  142. package/lib-es/bridge/estimateMaxSpendable.js.map +1 -1
  143. package/lib-es/bridge/getTransactionStatus.d.ts +3 -3
  144. package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -1
  145. package/lib-es/bridge/getTransactionStatus.js +114 -24
  146. package/lib-es/bridge/getTransactionStatus.js.map +1 -1
  147. package/lib-es/bridge/getTransactionStatus.test.d.ts +2 -0
  148. package/lib-es/bridge/getTransactionStatus.test.d.ts.map +1 -0
  149. package/lib-es/bridge/getTransactionStatus.test.js +148 -0
  150. package/lib-es/bridge/getTransactionStatus.test.js.map +1 -0
  151. package/lib-es/bridge/index.d.ts +4 -4
  152. package/lib-es/bridge/index.d.ts.map +1 -1
  153. package/lib-es/bridge/index.js +9 -6
  154. package/lib-es/bridge/index.js.map +1 -1
  155. package/lib-es/bridge/js-estimateMaxSpendable.integration.test.js +28 -44
  156. package/lib-es/bridge/js-estimateMaxSpendable.integration.test.js.map +1 -1
  157. package/lib-es/bridge/js-transaction.test.js +10 -49
  158. package/lib-es/bridge/js-transaction.test.js.map +1 -1
  159. package/lib-es/bridge/prepareTransaction.d.ts +0 -1
  160. package/lib-es/bridge/prepareTransaction.d.ts.map +1 -1
  161. package/lib-es/bridge/prepareTransaction.js +0 -1
  162. package/lib-es/bridge/prepareTransaction.js.map +1 -1
  163. package/lib-es/bridge/serialization.d.ts +7 -0
  164. package/lib-es/bridge/serialization.d.ts.map +1 -0
  165. package/lib-es/bridge/serialization.js +29 -0
  166. package/lib-es/bridge/serialization.js.map +1 -0
  167. package/lib-es/bridge/serialization.test.d.ts +2 -0
  168. package/lib-es/bridge/serialization.test.d.ts.map +1 -0
  169. package/lib-es/bridge/serialization.test.js +25 -0
  170. package/lib-es/bridge/serialization.test.js.map +1 -0
  171. package/lib-es/bridge/synchronisation.d.ts +3 -3
  172. package/lib-es/bridge/synchronisation.d.ts.map +1 -1
  173. package/lib-es/bridge/synchronisation.js +39 -17
  174. package/lib-es/bridge/synchronisation.js.map +1 -1
  175. package/lib-es/bridge/transaction.test.js +18 -59
  176. package/lib-es/bridge/transaction.test.js.map +1 -1
  177. package/lib-es/bridge/utils.d.ts +22 -8
  178. package/lib-es/bridge/utils.d.ts.map +1 -1
  179. package/lib-es/bridge/utils.integration.test.js +416 -74
  180. package/lib-es/bridge/utils.integration.test.js.map +1 -1
  181. package/lib-es/bridge/utils.js +295 -15
  182. package/lib-es/bridge/utils.js.map +1 -1
  183. package/lib-es/constants.d.ts +32 -0
  184. package/lib-es/constants.d.ts.map +1 -0
  185. package/lib-es/constants.js +34 -0
  186. package/lib-es/constants.js.map +1 -0
  187. package/lib-es/deviceTransactionConfig.d.ts.map +1 -1
  188. package/lib-es/deviceTransactionConfig.js +17 -15
  189. package/lib-es/deviceTransactionConfig.js.map +1 -1
  190. package/lib-es/logic.d.ts +9 -3
  191. package/lib-es/logic.d.ts.map +1 -1
  192. package/lib-es/logic.js +26 -3
  193. package/lib-es/logic.js.map +1 -1
  194. package/lib-es/logic.test.js +104 -51
  195. package/lib-es/logic.test.js.map +1 -1
  196. package/lib-es/test/fixtures/account.fixture.d.ts +19 -0
  197. package/lib-es/test/fixtures/account.fixture.d.ts.map +1 -0
  198. package/lib-es/test/fixtures/account.fixture.js +107 -0
  199. package/lib-es/test/fixtures/account.fixture.js.map +1 -0
  200. package/lib-es/test/fixtures/currency.fixture.d.ts +5 -0
  201. package/lib-es/test/fixtures/currency.fixture.d.ts.map +1 -0
  202. package/lib-es/test/fixtures/currency.fixture.js +58 -0
  203. package/lib-es/test/fixtures/currency.fixture.js.map +1 -0
  204. package/lib-es/test/fixtures/mirror.fixture.d.ts +3 -0
  205. package/lib-es/test/fixtures/mirror.fixture.d.ts.map +1 -0
  206. package/lib-es/test/fixtures/mirror.fixture.js +13 -0
  207. package/lib-es/test/fixtures/mirror.fixture.js.map +1 -0
  208. package/lib-es/test/fixtures/operation.fixture.d.ts +3 -0
  209. package/lib-es/test/fixtures/operation.fixture.d.ts.map +1 -0
  210. package/lib-es/test/fixtures/operation.fixture.js +19 -0
  211. package/lib-es/test/fixtures/operation.fixture.js.map +1 -0
  212. package/lib-es/test/fixtures/transaction.fixture.d.ts +4 -0
  213. package/lib-es/test/fixtures/transaction.fixture.d.ts.map +1 -0
  214. package/lib-es/test/fixtures/transaction.fixture.js +20 -0
  215. package/lib-es/test/fixtures/transaction.fixture.js.map +1 -0
  216. package/lib-es/types/bridge.d.ts +25 -1
  217. package/lib-es/types/bridge.d.ts.map +1 -1
  218. package/package.json +12 -10
  219. package/src/api/mirror.test.ts +79 -5
  220. package/src/api/mirror.ts +30 -111
  221. package/src/api/network.ts +71 -4
  222. package/src/api/types.ts +48 -0
  223. package/src/api/utils.ts +150 -0
  224. package/src/bridge/broadcast.ts +2 -0
  225. package/src/bridge/buildOptimisticOperation.integration.test.ts +88 -0
  226. package/src/bridge/buildOptimisticOperation.ts +118 -7
  227. package/src/bridge/estimateMaxSpendable.ts +8 -2
  228. package/src/bridge/getTransactionStatus.test.ts +200 -0
  229. package/src/bridge/getTransactionStatus.ts +166 -32
  230. package/src/bridge/index.ts +13 -10
  231. package/src/bridge/js-estimateMaxSpendable.integration.test.ts +37 -46
  232. package/src/bridge/js-transaction.test.ts +13 -54
  233. package/src/bridge/prepareTransaction.ts +1 -2
  234. package/src/bridge/serialization.test.ts +39 -0
  235. package/src/bridge/serialization.ts +43 -0
  236. package/src/bridge/synchronisation.ts +65 -27
  237. package/src/bridge/transaction.test.ts +22 -64
  238. package/src/bridge/utils.integration.test.ts +525 -76
  239. package/src/bridge/utils.ts +423 -24
  240. package/src/constants.ts +35 -0
  241. package/src/deviceTransactionConfig.ts +16 -15
  242. package/src/logic.test.ts +147 -57
  243. package/src/logic.ts +58 -7
  244. package/src/test/fixtures/account.fixture.ts +123 -0
  245. package/src/test/fixtures/currency.fixture.ts +66 -0
  246. package/src/test/fixtures/mirror.fixture.ts +14 -0
  247. package/src/test/fixtures/operation.fixture.ts +20 -0
  248. package/src/test/fixtures/transaction.fixture.ts +22 -0
  249. package/src/types/bridge.ts +33 -0
@@ -4,14 +4,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.buildIterateResult = exports.getAccountShape = void 0;
7
+ const bignumber_js_1 = require("bignumber.js");
7
8
  const invariant_1 = __importDefault(require("invariant"));
8
9
  const derivation_1 = require("@ledgerhq/coin-framework/derivation");
9
- const bignumber_js_1 = require("bignumber.js");
10
- const mirror_1 = require("../api/mirror");
11
10
  const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
12
11
  const account_1 = require("@ledgerhq/coin-framework/account");
13
- const network_1 = require("../api/network");
14
- const getAccountShape = async (info) => {
12
+ const mirror_1 = require("../api/mirror");
13
+ const utils_1 = require("./utils");
14
+ const utils_2 = require("../api/utils");
15
+ const getAccountShape = async (info, { blacklistedTokenIds }) => {
15
16
  const { currency, derivationMode, address, initialAccount } = info;
16
17
  (0, invariant_1.default)(address, "an hedera address is expected");
17
18
  const liveAccountId = (0, account_1.encodeAccountId)({
@@ -21,32 +22,53 @@ const getAccountShape = async (info) => {
21
22
  xpubOrAddress: address,
22
23
  derivationMode,
23
24
  });
24
- // get current account balance
25
- const accountBalance = await (0, network_1.getAccountBalance)(address);
26
- // grab latest operation's consensus timestamp for incremental sync
25
+ // get current account balance and tokens
26
+ // tokens are fetched with separate requests to get "created_timestamp" for each token
27
+ // based on this, ASSOCIATE_TOKEN operations can be connected with tokens
28
+ const [mirrorAccount, mirrorTokens] = await Promise.all([
29
+ (0, mirror_1.getAccount)(address),
30
+ (0, mirror_1.getAccountTokens)(address),
31
+ ]);
32
+ // we should sync again when new tokens are added or blacklist changes
33
+ const syncHash = (0, utils_1.getSyncHash)(currency, blacklistedTokenIds);
34
+ const shouldSyncFromScratch = !initialAccount || syncHash !== initialAccount?.syncHash;
27
35
  const oldOperations = initialAccount?.operations ?? [];
28
- const latestOperationTimestamp = oldOperations[0]
36
+ const pendingOperations = initialAccount?.pendingOperations ?? [];
37
+ // grab latest operation's consensus timestamp for incremental sync
38
+ const latestOperationTimestamp = !shouldSyncFromScratch && oldOperations[0]
29
39
  ? new bignumber_js_1.BigNumber(Math.floor(oldOperations[0].date.getTime() / 1000))
30
40
  : null;
31
- // merge new operations w/ previously synced ones
32
- const newOperations = await (0, mirror_1.getOperationsForAccount)(liveAccountId, address, latestOperationTimestamp ? latestOperationTimestamp.toString() : null);
33
- const operations = (0, jsHelpers_1.mergeOps)(oldOperations, newOperations);
41
+ const latestAccountOperations = await (0, utils_2.getOperationsForAccount)(liveAccountId, address, latestOperationTimestamp ? latestOperationTimestamp.toString() : null);
42
+ const newSubAccounts = await (0, utils_1.getSubAccounts)(liveAccountId, latestAccountOperations.tokenOperations, mirrorTokens);
43
+ const subAccounts = (0, utils_1.mergeSubAccounts)(initialAccount, newSubAccounts);
44
+ const newOperations = (0, utils_1.prepareOperations)(latestAccountOperations.coinOperations, latestAccountOperations.tokenOperations, mirrorTokens);
45
+ const enrichedNewOperations = (0, utils_1.applyPendingExtras)(newOperations, pendingOperations);
46
+ const operations = shouldSyncFromScratch
47
+ ? enrichedNewOperations
48
+ : (0, jsHelpers_1.mergeOps)(oldOperations, enrichedNewOperations);
34
49
  return {
35
50
  id: liveAccountId,
36
51
  freshAddress: address,
37
- balance: accountBalance.balance,
38
- spendableBalance: accountBalance.balance,
52
+ syncHash,
53
+ lastSyncDate: new Date(),
54
+ balance: new bignumber_js_1.BigNumber(mirrorAccount.balance.balance),
55
+ spendableBalance: new bignumber_js_1.BigNumber(mirrorAccount.balance.balance),
39
56
  operations,
40
57
  operationsCount: operations.length,
41
58
  // NOTE: there are no "blocks" in hedera
42
59
  // Set a value just so that operations are considered confirmed according to isConfirmedOperation
43
60
  blockHeight: 10,
61
+ subAccounts,
62
+ hederaResources: {
63
+ maxAutomaticTokenAssociations: mirrorAccount.max_automatic_token_associations,
64
+ isAutoTokenAssociationEnabled: mirrorAccount.max_automatic_token_associations === -1,
65
+ },
44
66
  };
45
67
  };
46
68
  exports.getAccountShape = getAccountShape;
47
69
  const buildIterateResult = async ({ result: rootResult }) => {
48
- const accounts = await (0, mirror_1.getAccountsForPublicKey)(rootResult.publicKey);
49
- const addresses = accounts.map(a => a.accountId.toString());
70
+ const mirrorAccounts = await (0, mirror_1.getAccountsForPublicKey)(rootResult.publicKey);
71
+ const addresses = mirrorAccounts.map(a => a.account);
50
72
  return async ({ currency, derivationMode, index }) => {
51
73
  const derivationScheme = (0, derivation_1.getDerivationScheme)({
52
74
  derivationMode,
@@ -1 +1 @@
1
- {"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAClC,oEAI6C;AAC7C,+CAAyC;AAEzC,0CAAiF;AACjF,yEAImD;AACnD,8DAAmE;AACnE,4CAAmD;AAE5C,MAAM,eAAe,GAA6B,KAAK,EAC5D,IAAS,EACkB,EAAE;IAC7B,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAEnE,IAAA,mBAAS,EAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;IAEpD,MAAM,aAAa,GAAG,IAAA,yBAAe,EAAC;QACpC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,aAAa,EAAE,OAAO;QACtB,cAAc;KACf,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,cAAc,GAAG,MAAM,IAAA,2BAAiB,EAAC,OAAO,CAAC,CAAC;IAExD,mEAAmE;IACnE,MAAM,aAAa,GAAG,cAAc,EAAE,UAAU,IAAI,EAAE,CAAC;IACvD,MAAM,wBAAwB,GAAG,aAAa,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,IAAI,wBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QACnE,CAAC,CAAC,IAAI,CAAC;IAET,iDAAiD;IACjD,MAAM,aAAa,GAAG,MAAM,IAAA,gCAAuB,EACjD,aAAa,EACb,OAAO,EACP,wBAAwB,CAAC,CAAC,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CACtE,CAAC;IACF,MAAM,UAAU,GAAG,IAAA,oBAAQ,EAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAE1D,OAAO;QACL,EAAE,EAAE,aAAa;QACjB,YAAY,EAAE,OAAO;QACrB,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,gBAAgB,EAAE,cAAc,CAAC,OAAO;QACxC,UAAU;QACV,eAAe,EAAE,UAAU,CAAC,MAAM;QAClC,wCAAwC;QACxC,iGAAiG;QACjG,WAAW,EAAE,EAAE;KAChB,CAAC;AACJ,CAAC,CAAC;AA3CW,QAAA,eAAe,mBA2C1B;AAEK,MAAM,kBAAkB,GAAyB,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;IACvF,MAAM,QAAQ,GAAG,MAAM,IAAA,gCAAuB,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE5D,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE;QACnD,MAAM,gBAAgB,GAAG,IAAA,gCAAmB,EAAC;YAC3C,cAAc;YACd,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,IAAA,gCAAmB,EAAC,gBAAgB,EAAE,QAAQ,EAAE;YACvE,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,OAAO,SAAS,CAAC,KAAK,CAAC;YACrB,CAAC,CAAE;gBACC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;gBACzB,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC;gBAC3B,IAAI,EAAE,gBAAgB;aACZ;YACd,CAAC,CAAC,IAAI,CAAC;IACX,CAAC,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,kBAAkB,sBAoB7B"}
1
+ {"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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"}
@@ -5,73 +5,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
7
7
  const transaction_1 = require("../transaction");
8
- const account = {
9
- type: "Account",
10
- id: "",
11
- seedIdentifier: "",
12
- derivationMode: "",
13
- index: 0,
14
- freshAddress: "",
15
- freshAddressPath: "",
16
- used: false,
17
- balance: new bignumber_js_1.default(200000),
18
- spendableBalance: new bignumber_js_1.default(0),
19
- creationDate: new Date(),
20
- blockHeight: 0,
21
- currency: {
22
- type: "CryptoCurrency",
23
- id: "hedera",
24
- managerAppName: "",
25
- coinType: 0,
26
- scheme: "",
27
- color: "",
28
- family: "",
29
- explorerViews: [],
30
- name: "",
31
- ticker: "",
32
- units: [
33
- {
34
- name: "",
35
- code: "",
36
- magnitude: 0,
37
- },
38
- ],
39
- },
40
- operationsCount: 0,
41
- operations: [],
42
- pendingOperations: [],
43
- lastSyncDate: new Date(),
44
- balanceHistoryCache: {
45
- HOUR: { latestDate: null, balances: [] },
46
- DAY: { latestDate: null, balances: [] },
47
- WEEK: { latestDate: null, balances: [] },
48
- },
49
- swapHistory: [],
50
- };
51
- const transaction = {
52
- family: "hedera",
53
- amount: new bignumber_js_1.default(1),
54
- recipient: "0.0.3",
55
- };
56
- const transactionRaw = {
57
- family: "hedera",
58
- amount: "1",
59
- recipient: "0.0.3",
60
- };
8
+ const account_fixture_1 = require("../test/fixtures/account.fixture");
9
+ const transaction_fixture_1 = require("../test/fixtures/transaction.fixture");
61
10
  describe("transaction", () => {
11
+ const mockedAccount = (0, account_fixture_1.getMockedAccount)();
12
+ const mockedTransaction = (0, transaction_fixture_1.getMockedTransaction)({
13
+ amount: new bignumber_js_1.default(100000000),
14
+ recipient: "0.0.3",
15
+ });
16
+ const mockedTransactionRaw = (0, transaction_fixture_1.getMockedTransactionRaw)({
17
+ amount: "100000000",
18
+ recipient: "0.0.3",
19
+ });
62
20
  test("formatTransaction", () => {
63
- const result = (0, transaction_1.formatTransaction)(transaction, account);
64
- const string = `SEND 1\nTO 0.0.3`;
21
+ const result = (0, transaction_1.formatTransaction)(mockedTransaction, mockedAccount);
22
+ const nonBreakingSpace = String.fromCharCode(160);
23
+ const string = `SEND 1${nonBreakingSpace}HBAR\nTO 0.0.3`;
65
24
  expect(result).toEqual(string);
66
25
  });
67
26
  test("fromTransactionRaw", () => {
68
- const result = (0, transaction_1.fromTransactionRaw)(transactionRaw);
69
- const data = transaction;
27
+ const result = (0, transaction_1.fromTransactionRaw)(mockedTransactionRaw);
28
+ const data = mockedTransaction;
70
29
  expect(result).toEqual(data);
71
30
  });
72
31
  test("toTransactionRaw", () => {
73
- const result = (0, transaction_1.toTransactionRaw)(transaction);
74
- const data = transactionRaw;
32
+ const result = (0, transaction_1.toTransactionRaw)(mockedTransaction);
33
+ const data = mockedTransactionRaw;
75
34
  expect(result).toEqual(data);
76
35
  });
77
36
  });
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.test.js","sourceRoot":"","sources":["../../src/bridge/transaction.test.ts"],"names":[],"mappings":";;;;;AAAA,gEAAqC;AAGrC,gDAAyF;AAEzF,MAAM,OAAO,GAAY;IACvB,IAAI,EAAE,SAAS;IACf,EAAE,EAAE,EAAE;IACN,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,EAAE;IAClB,KAAK,EAAE,CAAC;IACR,YAAY,EAAE,EAAE;IAChB,gBAAgB,EAAE,EAAE;IACpB,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,IAAI,sBAAS,CAAC,MAAM,CAAC;IAC9B,gBAAgB,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;IAClC,YAAY,EAAE,IAAI,IAAI,EAAE;IACxB,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,EAAE,EAAE,QAAQ;QACZ,cAAc,EAAE,EAAE;QAClB,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,aAAa,EAAE,EAAE;QACjB,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;QACV,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE,EAAE;gBACR,SAAS,EAAE,CAAC;aACb;SACF;KACF;IACD,eAAe,EAAE,CAAC;IAClB,UAAU,EAAE,EAAE;IACd,iBAAiB,EAAE,EAAE;IACrB,YAAY,EAAE,IAAI,IAAI,EAAE;IACxB,mBAAmB,EAAE;QACnB,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QACxC,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QACvC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;KACzC;IACD,WAAW,EAAE,EAAE;CAChB,CAAC;AAEF,MAAM,WAAW,GAAgB;IAC/B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;IACxB,SAAS,EAAE,OAAO;CACnB,CAAC;AAEF,MAAM,cAAc,GAAmB;IACrC,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,GAAG;IACX,SAAS,EAAE,OAAO;CACnB,CAAC;AAEF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC7B,MAAM,MAAM,GAAG,IAAA,+BAAiB,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,kBAAkB,CAAC;QAElC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC9B,MAAM,MAAM,GAAG,IAAA,gCAAkB,EAAC,cAAc,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,WAAW,CAAC;QAEzB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC5B,MAAM,MAAM,GAAG,IAAA,8BAAgB,EAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,cAAc,CAAC;QAE5B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"transaction.test.js","sourceRoot":"","sources":["../../src/bridge/transaction.test.ts"],"names":[],"mappings":";;;;;AAAA,gEAAqC;AACrC,gDAAyF;AACzF,sEAAoE;AACpE,8EAG8C;AAE9C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,MAAM,aAAa,GAAG,IAAA,kCAAgB,GAAE,CAAC;IACzC,MAAM,iBAAiB,GAAG,IAAA,0CAAoB,EAAC;QAC7C,MAAM,EAAE,IAAI,sBAAS,CAAC,SAAS,CAAC;QAChC,SAAS,EAAE,OAAO;KACnB,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,IAAA,6CAAuB,EAAC;QACnD,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC7B,MAAM,MAAM,GAAG,IAAA,+BAAiB,EAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QACnE,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,SAAS,gBAAgB,gBAAgB,CAAC;QAEzD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC9B,MAAM,MAAM,GAAG,IAAA,gCAAkB,EAAC,oBAAoB,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,iBAAiB,CAAC;QAE/B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC5B,MAAM,MAAM,GAAG,IAAA,8BAAgB,EAAC,iBAAiB,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,oBAAoB,CAAC;QAElC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,15 +1,29 @@
1
1
  import BigNumber from "bignumber.js";
2
- import type { Account, Operation } from "@ledgerhq/types-live";
2
+ import type { Account, Operation, TokenAccount } from "@ledgerhq/types-live";
3
+ import type { CryptoCurrency, Currency } from "@ledgerhq/types-cryptoassets";
3
4
  import type { HederaOperationExtra, Transaction } from "../types";
4
- export declare const estimatedFeeSafetyRate = 2;
5
- export declare function getEstimatedFees(account: Account): Promise<BigNumber>;
6
- export declare function calculateAmount({ account, transaction, }: {
7
- account: Account;
8
- transaction: Transaction;
9
- }): Promise<{
5
+ import type { HederaMirrorToken } from "../api/types";
6
+ import { HEDERA_OPERATION_TYPES } from "../constants";
7
+ export declare const getCurrencyToUSDRate: import("@ledgerhq/live-network/cache").CacheRes<[currency: Currency], BigNumber | null>;
8
+ export declare const getEstimatedFees: (account: Account, operationType: HEDERA_OPERATION_TYPES) => Promise<BigNumber>;
9
+ interface CalculateAmountResult {
10
10
  amount: BigNumber;
11
11
  totalSpent: BigNumber;
12
- }>;
12
+ }
13
+ export declare const calculateAmount: ({ account, transaction, }: {
14
+ account: Account;
15
+ transaction: Transaction;
16
+ }) => Promise<CalculateAmountResult>;
13
17
  export declare function base64ToUrlSafeBase64(data: string): string;
18
+ export declare const getSyncHash: (currency: CryptoCurrency, blacklistedTokenIds?: string[]) => string;
19
+ export declare const getSubAccounts: (accountId: string, lastTokenOperations: Operation[], mirrorTokens: HederaMirrorToken[]) => Promise<TokenAccount[]>;
20
+ export declare const prepareOperations: (coinOperations: Operation[], tokenOperations: Operation[], mirrorTokens: HederaMirrorToken[]) => Operation[];
21
+ /**
22
+ * In charge of smartly merging sub accounts while maintaining references as much as possible
23
+ */
24
+ export declare const mergeSubAccounts: (initialAccount: Account | undefined, newSubAccounts: TokenAccount[]) => Array<TokenAccount>;
25
+ export declare const applyPendingExtras: (existing: Operation[], pending: Operation[]) => Operation[];
14
26
  export declare function patchOperationWithExtra(operation: Operation, extra: HederaOperationExtra): Operation;
27
+ export declare const checkAccountTokenAssociationStatus: import("@ledgerhq/live-network/cache").CacheRes<[accountId: string, tokenId: string], boolean>;
28
+ export {};
15
29
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAI/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAElE,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAsB3E;AAED,wBAAsB,eAAe,CAAC,EACpC,OAAO,EACP,WAAW,GACZ,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;CAC1B,GAAG,OAAO,CAAC;IACV,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC;CACvB,CAAC,CASD;AAGD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,oBAAoB,GAC1B,SAAS,CAOX"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAe7E,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAiB,MAAM,8BAA8B,CAAC;AAI5F,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAElE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAkC,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAKtF,eAAO,MAAM,oBAAoB,yFAoBhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,YAClB,OAAO,iBACD,sBAAsB,KACpC,QAAQ,SAAS,CAgBnB,CAAC;AAEF,UAAU,qBAAqB;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC;CACvB;AAyCD,eAAO,MAAM,eAAe;aAIjB,OAAO;iBACH,WAAW;MACtB,QAAQ,qBAAqB,CAahC,CAAC;AAGF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM1D;AAID,eAAO,MAAM,WAAW,aACZ,cAAc,wBACH,MAAM,EAAE,KAC5B,MAaF,CAAC;AAEF,eAAO,MAAM,cAAc,cACd,MAAM,uBACI,SAAS,EAAE,gBAClB,iBAAiB,EAAE,KAChC,QAAQ,YAAY,EAAE,CAwFxB,CAAC;AAmCF,eAAO,MAAM,iBAAiB,mBACZ,SAAS,EAAE,mBACV,SAAS,EAAE,gBACd,iBAAiB,EAAE,KAChC,SAAS,EAoDX,CAAC;AAaF;;GAEG;AACH,eAAO,MAAM,gBAAgB,mBACX,OAAO,GAAG,SAAS,kBACnB,YAAY,EAAE,KAC7B,MAAM,YAAY,CAmDpB,CAAC;AAEF,eAAO,MAAM,kBAAkB,aAAc,SAAS,EAAE,WAAW,SAAS,EAAE,gBAiB7E,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,oBAAoB,GAC1B,SAAS,CAOX;AAED,eAAO,MAAM,kCAAkC,gGAiB9C,CAAC"}