@ledgerhq/coin-hedera 1.15.0-nightly.20251126023856 → 1.15.0-nightly.20251126160702

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 (280) hide show
  1. package/CHANGELOG.md +10 -8
  2. package/lib/api/index.d.ts.map +1 -1
  3. package/lib/api/index.js +6 -2
  4. package/lib/api/index.js.map +1 -1
  5. package/lib/bridge/broadcast.js +1 -1
  6. package/lib/bridge/broadcast.js.map +1 -1
  7. package/lib/bridge/buildOptimisticOperation.d.ts.map +1 -1
  8. package/lib/bridge/buildOptimisticOperation.js +80 -15
  9. package/lib/bridge/buildOptimisticOperation.js.map +1 -1
  10. package/lib/bridge/estimateMaxSpendable.js +5 -2
  11. package/lib/bridge/estimateMaxSpendable.js.map +1 -1
  12. package/lib/bridge/getTransactionStatus.d.ts.map +1 -1
  13. package/lib/bridge/getTransactionStatus.js +70 -13
  14. package/lib/bridge/getTransactionStatus.js.map +1 -1
  15. package/lib/bridge/index.js +1 -1
  16. package/lib/bridge/index.js.map +1 -1
  17. package/lib/bridge/prepareTransaction.d.ts.map +1 -1
  18. package/lib/bridge/prepareTransaction.js +40 -7
  19. package/lib/bridge/prepareTransaction.js.map +1 -1
  20. package/lib/bridge/signOperation.d.ts.map +1 -1
  21. package/lib/bridge/signOperation.js +19 -2
  22. package/lib/bridge/signOperation.js.map +1 -1
  23. package/lib/bridge/synchronisation.d.ts +2 -0
  24. package/lib/bridge/synchronisation.d.ts.map +1 -1
  25. package/lib/bridge/synchronisation.js +101 -30
  26. package/lib/bridge/synchronisation.js.map +1 -1
  27. package/lib/bridge/utils.d.ts +35 -2
  28. package/lib/bridge/utils.d.ts.map +1 -1
  29. package/lib/bridge/utils.js +215 -16
  30. package/lib/bridge/utils.js.map +1 -1
  31. package/lib/constants.d.ts +22 -2
  32. package/lib/constants.d.ts.map +1 -1
  33. package/lib/constants.js +42 -2
  34. package/lib/constants.js.map +1 -1
  35. package/lib/deviceTransactionConfig.d.ts +1 -1
  36. package/lib/deviceTransactionConfig.d.ts.map +1 -1
  37. package/lib/deviceTransactionConfig.js +8 -0
  38. package/lib/deviceTransactionConfig.js.map +1 -1
  39. package/lib/errors.d.ts +3 -0
  40. package/lib/errors.d.ts.map +1 -1
  41. package/lib/errors.js +2 -1
  42. package/lib/errors.js.map +1 -1
  43. package/lib/logic/craftTransaction.d.ts +4 -4
  44. package/lib/logic/craftTransaction.d.ts.map +1 -1
  45. package/lib/logic/craftTransaction.js +46 -5
  46. package/lib/logic/craftTransaction.js.map +1 -1
  47. package/lib/logic/estimateFees.d.ts +2 -4
  48. package/lib/logic/estimateFees.d.ts.map +1 -1
  49. package/lib/logic/estimateFees.js +45 -5
  50. package/lib/logic/estimateFees.js.map +1 -1
  51. package/lib/logic/listOperations.d.ts.map +1 -1
  52. package/lib/logic/listOperations.js +7 -3
  53. package/lib/logic/listOperations.js.map +1 -1
  54. package/lib/logic/utils.d.ts +24 -2
  55. package/lib/logic/utils.d.ts.map +1 -1
  56. package/lib/logic/utils.js +66 -13
  57. package/lib/logic/utils.js.map +1 -1
  58. package/lib/network/api.d.ts +12 -1
  59. package/lib/network/api.d.ts.map +1 -1
  60. package/lib/network/api.js +91 -19
  61. package/lib/network/api.js.map +1 -1
  62. package/lib/network/rpc.d.ts.map +1 -1
  63. package/lib/network/rpc.js +1 -0
  64. package/lib/network/rpc.js.map +1 -1
  65. package/lib/network/thirdweb.d.ts +21 -0
  66. package/lib/network/thirdweb.d.ts.map +1 -0
  67. package/lib/network/thirdweb.js +72 -0
  68. package/lib/network/thirdweb.js.map +1 -0
  69. package/lib/network/utils.d.ts +4 -1
  70. package/lib/network/utils.d.ts.map +1 -1
  71. package/lib/network/utils.js +53 -1
  72. package/lib/network/utils.js.map +1 -1
  73. package/lib/test/bridgeDatasetTest.d.ts.map +1 -1
  74. package/lib/test/bridgeDatasetTest.js +4 -4
  75. package/lib/test/bridgeDatasetTest.js.map +1 -1
  76. package/lib/test/fixtures/account.fixture.js +1 -1
  77. package/lib/test/fixtures/account.fixture.js.map +1 -1
  78. package/lib/test/fixtures/common.fixture.d.ts +12 -0
  79. package/lib/test/fixtures/common.fixture.d.ts.map +1 -0
  80. package/lib/test/fixtures/common.fixture.js +66 -0
  81. package/lib/test/fixtures/common.fixture.js.map +1 -0
  82. package/lib/test/fixtures/currency.fixture.d.ts +3 -1
  83. package/lib/test/fixtures/currency.fixture.d.ts.map +1 -1
  84. package/lib/test/fixtures/currency.fixture.js +63 -16
  85. package/lib/test/fixtures/currency.fixture.js.map +1 -1
  86. package/lib/test/fixtures/mirror.fixture.d.ts +3 -1
  87. package/lib/test/fixtures/mirror.fixture.d.ts.map +1 -1
  88. package/lib/test/fixtures/mirror.fixture.js +12 -1
  89. package/lib/test/fixtures/mirror.fixture.js.map +1 -1
  90. package/lib/test/fixtures/thirdweb.fixture.d.ts +3 -0
  91. package/lib/test/fixtures/thirdweb.fixture.d.ts.map +1 -0
  92. package/lib/test/fixtures/thirdweb.fixture.js +34 -0
  93. package/lib/test/fixtures/thirdweb.fixture.js.map +1 -0
  94. package/lib/transaction.d.ts.map +1 -1
  95. package/lib/transaction.js +2 -0
  96. package/lib/transaction.js.map +1 -1
  97. package/lib/types/alpaca.d.ts +5 -1
  98. package/lib/types/alpaca.d.ts.map +1 -1
  99. package/lib/types/bridge.d.ts +6 -1
  100. package/lib/types/bridge.d.ts.map +1 -1
  101. package/lib/types/index.d.ts +2 -0
  102. package/lib/types/index.d.ts.map +1 -1
  103. package/lib/types/index.js +2 -0
  104. package/lib/types/index.js.map +1 -1
  105. package/lib/types/logic.d.ts +39 -0
  106. package/lib/types/logic.d.ts.map +1 -0
  107. package/lib/types/logic.js +3 -0
  108. package/lib/types/logic.js.map +1 -0
  109. package/lib/types/mirror.d.ts +29 -0
  110. package/lib/types/mirror.d.ts.map +1 -1
  111. package/lib/types/thirdweb.d.ts +34 -0
  112. package/lib/types/thirdweb.d.ts.map +1 -0
  113. package/lib/types/thirdweb.js +3 -0
  114. package/lib/types/thirdweb.js.map +1 -0
  115. package/lib-es/api/index.d.ts.map +1 -1
  116. package/lib-es/api/index.js +7 -3
  117. package/lib-es/api/index.js.map +1 -1
  118. package/lib-es/bridge/broadcast.js +2 -2
  119. package/lib-es/bridge/broadcast.js.map +1 -1
  120. package/lib-es/bridge/buildOptimisticOperation.d.ts.map +1 -1
  121. package/lib-es/bridge/buildOptimisticOperation.js +83 -18
  122. package/lib-es/bridge/buildOptimisticOperation.js.map +1 -1
  123. package/lib-es/bridge/estimateMaxSpendable.js +5 -2
  124. package/lib-es/bridge/estimateMaxSpendable.js.map +1 -1
  125. package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -1
  126. package/lib-es/bridge/getTransactionStatus.js +73 -16
  127. package/lib-es/bridge/getTransactionStatus.js.map +1 -1
  128. package/lib-es/bridge/index.js +2 -2
  129. package/lib-es/bridge/index.js.map +1 -1
  130. package/lib-es/bridge/prepareTransaction.d.ts.map +1 -1
  131. package/lib-es/bridge/prepareTransaction.js +42 -9
  132. package/lib-es/bridge/prepareTransaction.js.map +1 -1
  133. package/lib-es/bridge/signOperation.d.ts.map +1 -1
  134. package/lib-es/bridge/signOperation.js +21 -4
  135. package/lib-es/bridge/signOperation.js.map +1 -1
  136. package/lib-es/bridge/synchronisation.d.ts +2 -0
  137. package/lib-es/bridge/synchronisation.d.ts.map +1 -1
  138. package/lib-es/bridge/synchronisation.js +97 -27
  139. package/lib-es/bridge/synchronisation.js.map +1 -1
  140. package/lib-es/bridge/utils.d.ts +35 -2
  141. package/lib-es/bridge/utils.d.ts.map +1 -1
  142. package/lib-es/bridge/utils.js +211 -16
  143. package/lib-es/bridge/utils.js.map +1 -1
  144. package/lib-es/constants.d.ts +22 -2
  145. package/lib-es/constants.d.ts.map +1 -1
  146. package/lib-es/constants.js +38 -1
  147. package/lib-es/constants.js.map +1 -1
  148. package/lib-es/deviceTransactionConfig.d.ts +1 -1
  149. package/lib-es/deviceTransactionConfig.d.ts.map +1 -1
  150. package/lib-es/deviceTransactionConfig.js +8 -0
  151. package/lib-es/deviceTransactionConfig.js.map +1 -1
  152. package/lib-es/errors.d.ts +3 -0
  153. package/lib-es/errors.d.ts.map +1 -1
  154. package/lib-es/errors.js +1 -0
  155. package/lib-es/errors.js.map +1 -1
  156. package/lib-es/logic/craftTransaction.d.ts +4 -4
  157. package/lib-es/logic/craftTransaction.d.ts.map +1 -1
  158. package/lib-es/logic/craftTransaction.js +48 -7
  159. package/lib-es/logic/craftTransaction.js.map +1 -1
  160. package/lib-es/logic/estimateFees.d.ts +2 -4
  161. package/lib-es/logic/estimateFees.d.ts.map +1 -1
  162. package/lib-es/logic/estimateFees.js +47 -7
  163. package/lib-es/logic/estimateFees.js.map +1 -1
  164. package/lib-es/logic/listOperations.d.ts.map +1 -1
  165. package/lib-es/logic/listOperations.js +7 -3
  166. package/lib-es/logic/listOperations.js.map +1 -1
  167. package/lib-es/logic/utils.d.ts +24 -2
  168. package/lib-es/logic/utils.d.ts.map +1 -1
  169. package/lib-es/logic/utils.js +63 -13
  170. package/lib-es/logic/utils.js.map +1 -1
  171. package/lib-es/network/api.d.ts +12 -1
  172. package/lib-es/network/api.d.ts.map +1 -1
  173. package/lib-es/network/api.js +91 -19
  174. package/lib-es/network/api.js.map +1 -1
  175. package/lib-es/network/rpc.d.ts.map +1 -1
  176. package/lib-es/network/rpc.js +1 -0
  177. package/lib-es/network/rpc.js.map +1 -1
  178. package/lib-es/network/thirdweb.d.ts +21 -0
  179. package/lib-es/network/thirdweb.d.ts.map +1 -0
  180. package/lib-es/network/thirdweb.js +66 -0
  181. package/lib-es/network/thirdweb.js.map +1 -0
  182. package/lib-es/network/utils.d.ts +4 -1
  183. package/lib-es/network/utils.d.ts.map +1 -1
  184. package/lib-es/network/utils.js +49 -0
  185. package/lib-es/network/utils.js.map +1 -1
  186. package/lib-es/test/bridgeDatasetTest.d.ts.map +1 -1
  187. package/lib-es/test/bridgeDatasetTest.js +4 -4
  188. package/lib-es/test/bridgeDatasetTest.js.map +1 -1
  189. package/lib-es/test/fixtures/account.fixture.js +2 -2
  190. package/lib-es/test/fixtures/account.fixture.js.map +1 -1
  191. package/lib-es/test/fixtures/common.fixture.d.ts +12 -0
  192. package/lib-es/test/fixtures/common.fixture.d.ts.map +1 -0
  193. package/lib-es/test/fixtures/common.fixture.js +57 -0
  194. package/lib-es/test/fixtures/common.fixture.js.map +1 -0
  195. package/lib-es/test/fixtures/currency.fixture.d.ts +3 -1
  196. package/lib-es/test/fixtures/currency.fixture.d.ts.map +1 -1
  197. package/lib-es/test/fixtures/currency.fixture.js +59 -14
  198. package/lib-es/test/fixtures/currency.fixture.js.map +1 -1
  199. package/lib-es/test/fixtures/mirror.fixture.d.ts +3 -1
  200. package/lib-es/test/fixtures/mirror.fixture.d.ts.map +1 -1
  201. package/lib-es/test/fixtures/mirror.fixture.js +9 -0
  202. package/lib-es/test/fixtures/mirror.fixture.js.map +1 -1
  203. package/lib-es/test/fixtures/thirdweb.fixture.d.ts +3 -0
  204. package/lib-es/test/fixtures/thirdweb.fixture.d.ts.map +1 -0
  205. package/lib-es/test/fixtures/thirdweb.fixture.js +30 -0
  206. package/lib-es/test/fixtures/thirdweb.fixture.js.map +1 -0
  207. package/lib-es/transaction.d.ts.map +1 -1
  208. package/lib-es/transaction.js +2 -0
  209. package/lib-es/transaction.js.map +1 -1
  210. package/lib-es/types/alpaca.d.ts +5 -1
  211. package/lib-es/types/alpaca.d.ts.map +1 -1
  212. package/lib-es/types/bridge.d.ts +6 -1
  213. package/lib-es/types/bridge.d.ts.map +1 -1
  214. package/lib-es/types/index.d.ts +2 -0
  215. package/lib-es/types/index.d.ts.map +1 -1
  216. package/lib-es/types/index.js +2 -0
  217. package/lib-es/types/index.js.map +1 -1
  218. package/lib-es/types/logic.d.ts +39 -0
  219. package/lib-es/types/logic.d.ts.map +1 -0
  220. package/lib-es/types/logic.js +2 -0
  221. package/lib-es/types/logic.js.map +1 -0
  222. package/lib-es/types/mirror.d.ts +29 -0
  223. package/lib-es/types/mirror.d.ts.map +1 -1
  224. package/lib-es/types/thirdweb.d.ts +34 -0
  225. package/lib-es/types/thirdweb.d.ts.map +1 -0
  226. package/lib-es/types/thirdweb.js +2 -0
  227. package/lib-es/types/thirdweb.js.map +1 -0
  228. package/package.json +9 -8
  229. package/src/api/index.integ.test.ts +11 -8
  230. package/src/api/index.ts +10 -3
  231. package/src/bridge/broadcast.ts +2 -2
  232. package/src/bridge/buildOptimisticOperation.integration.test.ts +70 -19
  233. package/src/bridge/buildOptimisticOperation.ts +98 -20
  234. package/src/bridge/estimateMaxSpendable.ts +5 -5
  235. package/src/bridge/getTransactionStatus.test.ts +57 -12
  236. package/src/bridge/getTransactionStatus.ts +88 -15
  237. package/src/bridge/index.ts +2 -2
  238. package/src/bridge/js-estimateMaxSpendable.integration.test.ts +12 -9
  239. package/src/bridge/prepareTransaction.test.ts +3 -1
  240. package/src/bridge/prepareTransaction.ts +45 -10
  241. package/src/bridge/signOperation.ts +23 -5
  242. package/src/bridge/synchronisation.test.ts +67 -0
  243. package/src/bridge/synchronisation.ts +114 -34
  244. package/src/bridge/utils.integration.test.ts +486 -180
  245. package/src/bridge/utils.test.ts +404 -0
  246. package/src/bridge/utils.ts +330 -27
  247. package/src/constants.ts +47 -2
  248. package/src/deviceTransactionConfig.ts +10 -1
  249. package/src/errors.ts +3 -0
  250. package/src/logic/craftTransaction.test.ts +49 -9
  251. package/src/logic/craftTransaction.ts +76 -11
  252. package/src/logic/estimateFees.test.ts +180 -31
  253. package/src/logic/estimateFees.ts +68 -7
  254. package/src/logic/getAssetFromToken.test.ts +2 -2
  255. package/src/logic/getBalance.test.ts +18 -57
  256. package/src/logic/getTokenFromAsset.test.ts +2 -2
  257. package/src/logic/listOperations.ts +9 -5
  258. package/src/logic/utils.test.ts +157 -69
  259. package/src/logic/utils.ts +75 -13
  260. package/src/network/api.test.ts +211 -3
  261. package/src/network/api.ts +118 -24
  262. package/src/network/rpc.test.ts +1 -0
  263. package/src/network/rpc.ts +1 -0
  264. package/src/network/thirdweb.test.ts +188 -0
  265. package/src/network/thirdweb.ts +101 -0
  266. package/src/network/utils.test.ts +364 -164
  267. package/src/network/utils.ts +83 -1
  268. package/src/test/bridgeDatasetTest.ts +4 -5
  269. package/src/test/fixtures/account.fixture.ts +2 -2
  270. package/src/test/fixtures/common.fixture.ts +74 -0
  271. package/src/test/fixtures/currency.fixture.ts +66 -14
  272. package/src/test/fixtures/mirror.fixture.ts +23 -1
  273. package/src/test/fixtures/thirdweb.fixture.ts +33 -0
  274. package/src/transaction.ts +2 -0
  275. package/src/types/alpaca.ts +8 -1
  276. package/src/types/bridge.ts +6 -1
  277. package/src/types/index.ts +2 -0
  278. package/src/types/logic.ts +44 -0
  279. package/src/types/mirror.ts +35 -0
  280. package/src/types/thirdweb.ts +36 -0
@@ -1 +1 @@
1
- {"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAYhE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE1D,eAAO,MAAM,kBAAkB,kBAEZ,cAAc,YAAY,CAAC,KACzC,cAAc,WAAW,EAAE,OAAO,CAAC,CAAC,eAAe,CA0FlD,CAAC"}
1
+ {"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAYhE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAgB,MAAM,UAAU,CAAC;AAExE,eAAO,MAAM,kBAAkB,kBAEZ,cAAc,YAAY,CAAC,KACzC,cAAc,WAAW,EAAE,OAAO,CAAC,CAAC,eAAe,CA4GlD,CAAC"}
@@ -16,10 +16,14 @@ const buildSignOperation = (signerContext) => ({ account, transaction, deviceId
16
16
  });
17
17
  let type;
18
18
  let asset;
19
+ let data;
19
20
  const accountAddress = account.freshAddress;
20
21
  const accountPublicKey = account.seedIdentifier;
21
22
  const subAccount = (0, helpers_1.findSubAccountById)(account, transaction.subAccountId || "");
22
- const isTokenTransaction = (0, helpers_1.isTokenAccount)(subAccount);
23
+ const isHTSTokenTransaction = transaction.mode === constants_1.HEDERA_TRANSACTION_MODES.Send &&
24
+ subAccount?.token.tokenType === "hts";
25
+ const isERC20TokenTransaction = transaction.mode === constants_1.HEDERA_TRANSACTION_MODES.Send &&
26
+ subAccount?.token.tokenType === "erc20";
23
27
  if ((0, utils_1.isTokenAssociateTransaction)(transaction)) {
24
28
  type = constants_1.HEDERA_TRANSACTION_MODES.TokenAssociate;
25
29
  asset = {
@@ -27,7 +31,7 @@ const buildSignOperation = (signerContext) => ({ account, transaction, deviceId
27
31
  assetReference: transaction.properties.token.contractAddress,
28
32
  };
29
33
  }
30
- else if (isTokenTransaction) {
34
+ else if (isHTSTokenTransaction) {
31
35
  type = constants_1.HEDERA_TRANSACTION_MODES.Send;
32
36
  asset = {
33
37
  type: subAccount.token.tokenType,
@@ -35,6 +39,18 @@ const buildSignOperation = (signerContext) => ({ account, transaction, deviceId
35
39
  assetOwner: accountAddress,
36
40
  };
37
41
  }
42
+ else if (isERC20TokenTransaction) {
43
+ type = constants_1.HEDERA_TRANSACTION_MODES.Send;
44
+ asset = {
45
+ type: subAccount.token.tokenType,
46
+ assetReference: subAccount.token.contractAddress,
47
+ assetOwner: accountAddress,
48
+ };
49
+ data = {
50
+ type: "erc20",
51
+ gasLimit: BigInt((transaction.gasLimit ?? constants_1.DEFAULT_GAS_LIMIT).toString()),
52
+ };
53
+ }
38
54
  else {
39
55
  type = constants_1.HEDERA_TRANSACTION_MODES.Send;
40
56
  asset = {
@@ -57,6 +73,7 @@ const buildSignOperation = (signerContext) => ({ account, transaction, deviceId
57
73
  type: "string",
58
74
  value: transaction.memo ?? "",
59
75
  },
76
+ ...(data && { data }),
60
77
  }, customFees);
61
78
  const txBodyBytes = (0, utils_1.getHederaTransactionBodyBytes)(tx);
62
79
  const signatureBytes = await signer.signTransaction(txBodyBytes);
@@ -1 +1 @@
1
- {"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import type { GetAccountShape, IterateResultBuilder } from "@ledgerhq/coin-framework/bridge/jsHelpers";
2
+ import type { Account } from "@ledgerhq/types-live";
2
3
  import type { HederaAccount } from "../types";
3
4
  export declare const getAccountShape: GetAccountShape<HederaAccount>;
4
5
  export declare const buildIterateResult: IterateResultBuilder;
6
+ export declare const postSync: (_initial: Account, synced: Account) => Account;
5
7
  //# sourceMappingURL=synchronisation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACrB,MAAM,2CAA2C,CAAC;AAKnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,aAAa,CAuF1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,oBAqBhC,CAAC"}
1
+ {"version":3,"file":"synchronisation.d.ts","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACrB,MAAM,2CAA2C,CAAC;AAGnD,OAAO,KAAK,EAAE,OAAO,EAAa,MAAM,sBAAsB,CAAC;AAM/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAS9C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,aAAa,CA0I1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,oBAqBhC,CAAC;AAGF,eAAO,MAAM,QAAQ,aAAc,OAAO,UAAU,OAAO,KAAG,OAgB7D,CAAC"}
@@ -3,18 +3,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.buildIterateResult = exports.getAccountShape = void 0;
6
+ exports.postSync = exports.buildIterateResult = exports.getAccountShape = void 0;
7
7
  const bignumber_js_1 = require("bignumber.js");
8
8
  const invariant_1 = __importDefault(require("invariant"));
9
9
  const derivation_1 = require("@ledgerhq/coin-framework/derivation");
10
10
  const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
11
11
  const account_1 = require("@ledgerhq/coin-framework/account");
12
- const listOperations_1 = require("../logic/listOperations");
12
+ const utils_1 = require("../logic/utils");
13
+ const logic_1 = require("../logic");
13
14
  const api_1 = require("../network/api");
14
- const utils_1 = require("./utils");
15
+ const thirdweb_1 = require("../network/thirdweb");
16
+ const utils_2 = require("../network/utils");
17
+ const utils_3 = require("./utils");
15
18
  const getAccountShape = async (info, { blacklistedTokenIds }) => {
16
19
  const { currency, derivationMode, address, initialAccount } = info;
17
- (0, invariant_1.default)(address, "an hedera address is expected");
20
+ (0, invariant_1.default)(address, "hedera: address is expected");
21
+ const evmAddress = (0, utils_1.toEVMAddress)(address);
22
+ (0, invariant_1.default)(evmAddress, "hedera: evm address is missing");
18
23
  const liveAccountId = (0, account_1.encodeAccountId)({
19
24
  type: "js",
20
25
  version: "2",
@@ -25,41 +30,90 @@ const getAccountShape = async (info, { blacklistedTokenIds }) => {
25
30
  // get current account balance and tokens
26
31
  // tokens are fetched with separate requests to get "created_timestamp" for each token
27
32
  // based on this, ASSOCIATE_TOKEN operations can be connected with tokens
28
- const [mirrorAccount, mirrorTokens] = await Promise.all([
33
+ const [mirrorAccount, mirrorTokens, erc20TokenBalances] = await Promise.all([
29
34
  api_1.apiClient.getAccount(address),
30
35
  api_1.apiClient.getAccountTokens(address),
36
+ (0, utils_2.getERC20BalancesForAccount)(evmAddress),
31
37
  ]);
32
38
  const accountBalance = new bignumber_js_1.BigNumber(mirrorAccount.balance.balance);
33
39
  // we should sync again when new tokens are added or blacklist changes
34
40
  const syncHash = await (0, account_1.getSyncHash)(currency.id, blacklistedTokenIds);
35
41
  const shouldSyncFromScratch = !initialAccount || syncHash !== initialAccount?.syncHash;
36
- const oldOperations = initialAccount?.operations ?? [];
37
- const pendingOperations = initialAccount?.pendingOperations ?? [];
38
- // grab latest operation's consensus timestamp for incremental sync
42
+ const pendingOperations = shouldSyncFromScratch ? [] : initialAccount?.pendingOperations ?? [];
43
+ const oldOperations = shouldSyncFromScratch ? [] : initialAccount?.operations ?? [];
44
+ const oldERC20Operations = oldOperations.filter(item => item.standard === "erc20");
39
45
  const latestOperation = oldOperations[0];
40
- const latestOperationTimestamp = !shouldSyncFromScratch && latestOperation
41
- ? new bignumber_js_1.BigNumber(Math.floor(latestOperation.date.getTime() / 1000))
42
- : null;
43
- const latestAccountOperations = await (0, listOperations_1.listOperations)({
44
- currency,
45
- address,
46
- mirrorTokens,
47
- pagination: {
48
- minHeight: 0,
49
- ...(latestOperationTimestamp && { lastPagingToken: latestOperationTimestamp.toString() }),
50
- },
51
- fetchAllPages: true,
52
- skipFeesForTokenOperations: false,
53
- useEncodedHash: true,
54
- useSyntheticBlocks: false,
55
- });
56
- const newSubAccounts = await (0, utils_1.getSubAccounts)(liveAccountId, latestAccountOperations.tokenOperations, mirrorTokens);
57
- const subAccounts = (0, utils_1.mergeSubAccounts)(initialAccount, newSubAccounts);
58
- const newOperations = await (0, utils_1.prepareOperations)(latestAccountOperations.coinOperations, latestAccountOperations.tokenOperations);
59
- const enrichedNewOperations = (0, utils_1.applyPendingExtras)(newOperations, pendingOperations);
46
+ const erc20LatestOperation = oldERC20Operations[0];
47
+ const pendingOperationHashes = new Set(pendingOperations.map(op => op.hash));
48
+ const erc20OperationHashes = new Set(oldERC20Operations.map(op => op.hash));
49
+ // grab latest operation timestamps for incremental sync
50
+ let latestOperationTimestamp = null;
51
+ let erc20LatestOperationTimestamp = null;
52
+ if (!shouldSyncFromScratch && latestOperation) {
53
+ const timestamp = Math.floor(latestOperation.date.getTime() / 1000);
54
+ latestOperationTimestamp = new bignumber_js_1.BigNumber(timestamp).toString();
55
+ }
56
+ if (!shouldSyncFromScratch && erc20LatestOperation) {
57
+ const timestamp = Math.floor(erc20LatestOperation.date.getTime() / 1000);
58
+ erc20LatestOperationTimestamp = new bignumber_js_1.BigNumber(timestamp).toString();
59
+ }
60
+ const [latestAccountOperations, erc20Transactions] = await Promise.all([
61
+ (0, logic_1.listOperations)({
62
+ currency,
63
+ address,
64
+ mirrorTokens,
65
+ pagination: {
66
+ minHeight: 0,
67
+ ...(latestOperationTimestamp && { lastPagingToken: latestOperationTimestamp.toString() }),
68
+ },
69
+ fetchAllPages: true,
70
+ skipFeesForTokenOperations: false,
71
+ useEncodedHash: true,
72
+ useSyntheticBlocks: false,
73
+ }),
74
+ thirdweb_1.thirdwebClient.getERC20TransactionsForAccount({
75
+ address,
76
+ contractAddresses: erc20TokenBalances.map(token => token.token.contractAddress),
77
+ since: erc20LatestOperationTimestamp,
78
+ }),
79
+ ]);
80
+ const newOperations = await (0, utils_3.prepareOperations)(latestAccountOperations.coinOperations, latestAccountOperations.tokenOperations);
81
+ const enrichedNewOperations = (0, utils_3.applyPendingExtras)(newOperations, pendingOperations);
60
82
  const operations = shouldSyncFromScratch
61
83
  ? enrichedNewOperations
62
84
  : (0, jsHelpers_1.mergeOps)(oldOperations, enrichedNewOperations);
85
+ // how ERC20 operations are handled:
86
+ // - mirror node doesn't include "IN" erc20 token transactions
87
+ // - mirror node returns "CONTRACT_CALL" (OUT) erc20 token transactions made from given account address
88
+ // - mirror node doesn't return "CONTRACT_CALL" (OUT) erc20 token transactions made from 3rd party with allowance
89
+ //
90
+ // 1. mirror node transactions are already transformed into operations at this point + we have raw erc20 transactions fetched from thirdweb
91
+ // 2. related mirror node transaction must be fetched for each erc20 transaction (to get fee and consensus timestamp)
92
+ // 3. CONTRACTCALL operations must be removed if existing operations already include erc20 operation with the same tx.hash
93
+ // 4. ERC20 transactions must be classified into two groups: patchList and addList
94
+ // - patchList: transactions which are already present in mirror operations (we can have CONTRACT_CALL from mirror node that we can transform into "FEES")
95
+ // - addList should include transactions which are missing in mirror operations (e.g. "IN" erc20 token transaction and "OUT" made by 3rd party with allowance)
96
+ // 5. list of all operations must be updated based on prepared `patchList` and `addList`
97
+ // 6. sub accounts must get erc20 tokens and erc20 operations in addition to hts tokens and hts operations
98
+ // 7. postSync must remove pending operations that are already confirmed as erc20 operations
99
+ const { updatedOperations, newERC20TokenOperations } = await (0, utils_3.integrateERC20Operations)({
100
+ ledgerAccountId: liveAccountId,
101
+ address,
102
+ allOperations: operations,
103
+ latestERC20Transactions: erc20Transactions,
104
+ pendingOperationHashes,
105
+ erc20OperationHashes,
106
+ });
107
+ const newSubAccounts = await (0, utils_3.getSubAccounts)({
108
+ ledgerAccountId: liveAccountId,
109
+ latestHTSTokenOperations: latestAccountOperations.tokenOperations,
110
+ latestERC20TokenOperations: newERC20TokenOperations,
111
+ mirrorTokens,
112
+ erc20Tokens: erc20TokenBalances,
113
+ });
114
+ const subAccounts = shouldSyncFromScratch
115
+ ? newSubAccounts
116
+ : (0, utils_3.mergeSubAccounts)(initialAccount, newSubAccounts);
63
117
  return {
64
118
  id: liveAccountId,
65
119
  freshAddress: address,
@@ -67,8 +121,8 @@ const getAccountShape = async (info, { blacklistedTokenIds }) => {
67
121
  lastSyncDate: new Date(),
68
122
  balance: accountBalance,
69
123
  spendableBalance: accountBalance,
70
- operations,
71
- operationsCount: operations.length,
124
+ operations: updatedOperations,
125
+ operationsCount: updatedOperations.length,
72
126
  // NOTE: there are no "blocks" in hedera
73
127
  // Set a value just so that operations are considered confirmed according to isConfirmedOperation
74
128
  blockHeight: 10,
@@ -101,4 +155,21 @@ const buildIterateResult = async ({ result: rootResult }) => {
101
155
  };
102
156
  };
103
157
  exports.buildIterateResult = buildIterateResult;
158
+ // it might be necessary to remove pending operations after ERC20 patching done by `integrateERC20Operations`
159
+ const postSync = (_initial, synced) => {
160
+ const erc20Operations = synced.operations.filter(op => op.standard === "erc20");
161
+ const erc20Hashes = new Set(erc20Operations.map(op => op.hash));
162
+ const excludeConfirmedERC20Operations = (o) => !erc20Hashes.has(o.hash);
163
+ return {
164
+ ...synced,
165
+ pendingOperations: synced.pendingOperations.filter(excludeConfirmedERC20Operations),
166
+ subAccounts: (synced.subAccounts ?? []).map(subAccount => {
167
+ return {
168
+ ...subAccount,
169
+ pendingOperations: subAccount.pendingOperations.filter(excludeConfirmedERC20Operations),
170
+ };
171
+ }),
172
+ };
173
+ };
174
+ exports.postSync = postSync;
104
175
  //# sourceMappingURL=synchronisation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"synchronisation.js","sourceRoot":"","sources":["../../src/bridge/synchronisation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import BigNumber from "bignumber.js";
2
2
  import type { Account, Operation, TokenAccount } from "@ledgerhq/types-live";
3
- import type { HederaOperationExtra, Transaction, HederaMirrorToken } from "../types";
3
+ import type { HederaOperationExtra, Transaction, OperationERC20, HederaMirrorToken, HederaERC20TokenBalance, HederaThirdwebTransaction, ERC20OperationFields } from "../types";
4
4
  interface CalculateAmountResult {
5
5
  amount: BigNumber;
6
6
  totalSpent: BigNumber;
@@ -9,7 +9,13 @@ export declare const calculateAmount: ({ account, transaction, }: {
9
9
  account: Account;
10
10
  transaction: Transaction;
11
11
  }) => Promise<CalculateAmountResult>;
12
- export declare const getSubAccounts: (accountId: string, lastTokenOperations: Operation[], mirrorTokens: HederaMirrorToken[]) => Promise<TokenAccount[]>;
12
+ export declare const getSubAccounts: ({ ledgerAccountId, latestHTSTokenOperations, latestERC20TokenOperations, mirrorTokens, erc20Tokens, }: {
13
+ ledgerAccountId: string;
14
+ latestHTSTokenOperations: Operation[];
15
+ latestERC20TokenOperations: Operation[];
16
+ mirrorTokens: HederaMirrorToken[];
17
+ erc20Tokens: HederaERC20TokenBalance[];
18
+ }) => Promise<TokenAccount[]>;
13
19
  export declare const prepareOperations: (coinOperations: Operation<HederaOperationExtra>[], tokenOperations: Operation<HederaOperationExtra>[]) => Promise<Operation<HederaOperationExtra>[]>;
14
20
  /**
15
21
  * In charge of smartly merging sub accounts while maintaining references as much as possible
@@ -17,5 +23,32 @@ export declare const prepareOperations: (coinOperations: Operation<HederaOperati
17
23
  export declare const mergeSubAccounts: (initialAccount: Account | undefined, newSubAccounts: TokenAccount[]) => Array<TokenAccount>;
18
24
  export declare const applyPendingExtras: (existing: Operation[], pending: Operation[]) => Operation[];
19
25
  export declare function patchOperationWithExtra(operation: Operation, extra: HederaOperationExtra): Operation;
26
+ export declare const removeDuplicatedContractCallOperations: (operations: Operation[], pendingOperationHashes: Set<string>, erc20OperationHashes: Set<string>) => Operation[];
27
+ export declare const classifyERC20Operations: ({ latestERC20Operations, operationsByHash, evmAccountAddress, }: {
28
+ latestERC20Operations: OperationERC20[];
29
+ operationsByHash: Map<string, Operation>;
30
+ evmAccountAddress: string | null;
31
+ }) => {
32
+ erc20OperationsToPatch: Map<string, OperationERC20>;
33
+ erc20OperationsToAdd: Map<string, OperationERC20>;
34
+ };
35
+ export declare const patchContractCallOperation: ({ relatedExistingOperation, ledgerAccountId, hash, erc20Fields, tokenOperation, }: {
36
+ relatedExistingOperation: Operation;
37
+ ledgerAccountId: string;
38
+ hash: string;
39
+ erc20Fields: ERC20OperationFields;
40
+ tokenOperation: Operation;
41
+ }) => void;
42
+ export declare const integrateERC20Operations: ({ ledgerAccountId, address, allOperations, latestERC20Transactions, pendingOperationHashes, erc20OperationHashes, }: {
43
+ ledgerAccountId: string;
44
+ address: string;
45
+ allOperations: Operation[];
46
+ latestERC20Transactions: HederaThirdwebTransaction[];
47
+ pendingOperationHashes: Set<string>;
48
+ erc20OperationHashes: Set<string>;
49
+ }) => Promise<{
50
+ updatedOperations: Operation[];
51
+ newERC20TokenOperations: Operation[];
52
+ }>;
20
53
  export {};
21
54
  //# 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,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAgB7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAErF,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;AAEF,eAAO,MAAM,cAAc,cACd,MAAM,uBACI,SAAS,EAAE,gBAClB,iBAAiB,EAAE,KAChC,QAAQ,YAAY,EAAE,CAwFxB,CAAC;AAoCF,eAAO,MAAM,iBAAiB,mBACZ,UAAU,oBAAoB,CAAC,EAAE,mBAChC,UAAU,oBAAoB,CAAC,EAAE,KACjD,QAAQ,UAAU,oBAAoB,CAAC,EAAE,CAmC3C,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"}
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,EAAiB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAwB5F,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAElB,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;AAEF,eAAO,MAAM,cAAc;qBAOR,MAAM;8BACG,SAAS,EAAE;gCACT,SAAS,EAAE;kBACzB,iBAAiB,EAAE;iBACpB,uBAAuB,EAAE;MACpC,QAAQ,YAAY,EAAE,CAqGzB,CAAC;AAoCF,eAAO,MAAM,iBAAiB,mBACZ,UAAU,oBAAoB,CAAC,EAAE,mBAChC,UAAU,oBAAoB,CAAC,EAAE,KACjD,QAAQ,UAAU,oBAAoB,CAAC,EAAE,CAmC3C,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;AAGD,eAAO,MAAM,sCAAsC,eACrC,SAAS,EAAE,0BACC,IAAI,MAAM,CAAC,wBACb,IAAI,MAAM,CAAC,KAChC,SAAS,EAWX,CAAC;AAKF,eAAO,MAAM,uBAAuB;2BAKX,cAAc,EAAE;sBACrB,IAAI,MAAM,EAAE,SAAS,CAAC;uBACrB,MAAM,GAAG,IAAI;;4BAER,IAAI,MAAM,EAAE,cAAc,CAAC;0BAC7B,IAAI,MAAM,EAAE,cAAc,CAAC;CAuBlD,CAAC;AA6DF,eAAO,MAAM,0BAA0B;8BAOX,SAAS;qBAClB,MAAM;UACjB,MAAM;iBACC,oBAAoB;oBACjB,SAAS;MACvB,IAQH,CAAC;AAEF,eAAO,MAAM,wBAAwB;qBAQlB,MAAM;aACd,MAAM;mBACA,SAAS,EAAE;6BACD,yBAAyB,EAAE;4BAC5B,IAAI,MAAM,CAAC;0BACb,IAAI,MAAM,CAAC;;uBAEd,SAAS,EAAE;6BACL,SAAS,EAAE;EA+GrC,CAAC"}