@ledgerhq/live-common 34.51.0-nightly.8 → 34.51.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 (253) hide show
  1. package/lib/bridge/generic-alpaca/estimateMaxSpendable.js +1 -1
  2. package/lib/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
  3. package/lib/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  4. package/lib/bridge/generic-alpaca/prepareTransaction.js +45 -37
  5. package/lib/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  6. package/lib/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  7. package/lib/bridge/generic-alpaca/signOperation.js +20 -0
  8. package/lib/bridge/generic-alpaca/signOperation.js.map +1 -1
  9. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js +88 -186
  10. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  11. package/lib/bridge/generic-alpaca/utils.js +1 -1
  12. package/lib/bridge/generic-alpaca/utils.js.map +1 -1
  13. package/lib/bridge/generic-alpaca/utils.test.js +2 -2
  14. package/lib/bridge/generic-alpaca/utils.test.js.map +1 -1
  15. package/lib/dada-client/state-manager/api.d.ts.map +1 -1
  16. package/lib/dada-client/state-manager/api.js +5 -10
  17. package/lib/dada-client/state-manager/api.js.map +1 -1
  18. package/lib/dada-client/state-manager/types.d.ts +0 -1
  19. package/lib/dada-client/state-manager/types.d.ts.map +1 -1
  20. package/lib/device/use-cases/getAppsCatalogForDevice.d.ts +1 -1
  21. package/lib/device/use-cases/getAppsCatalogForDevice.d.ts.map +1 -1
  22. package/lib/e2e/data/deviceLabelsData.d.ts.map +1 -1
  23. package/lib/e2e/data/deviceLabelsData.js +4 -2
  24. package/lib/e2e/data/deviceLabelsData.js.map +1 -1
  25. package/lib/e2e/enum/Device.d.ts +4 -5
  26. package/lib/e2e/enum/Device.d.ts.map +1 -1
  27. package/lib/e2e/enum/Device.js +4 -6
  28. package/lib/e2e/enum/Device.js.map +1 -1
  29. package/lib/e2e/families/bitcoin.d.ts.map +1 -1
  30. package/lib/e2e/families/bitcoin.js +3 -4
  31. package/lib/e2e/families/bitcoin.js.map +1 -1
  32. package/lib/e2e/families/cardano.js +2 -2
  33. package/lib/e2e/families/cardano.js.map +1 -1
  34. package/lib/e2e/families/evm.d.ts.map +1 -1
  35. package/lib/e2e/families/evm.js +2 -3
  36. package/lib/e2e/families/evm.js.map +1 -1
  37. package/lib/e2e/families/solana.d.ts.map +1 -1
  38. package/lib/e2e/families/solana.js +5 -2
  39. package/lib/e2e/families/solana.js.map +1 -1
  40. package/lib/e2e/families/tezos.d.ts.map +1 -1
  41. package/lib/e2e/families/tezos.js +1 -2
  42. package/lib/e2e/families/tezos.js.map +1 -1
  43. package/lib/e2e/index.d.ts +2 -7
  44. package/lib/e2e/index.d.ts.map +1 -1
  45. package/lib/e2e/speculos.d.ts +1 -1
  46. package/lib/e2e/speculos.d.ts.map +1 -1
  47. package/lib/e2e/speculos.js +60 -53
  48. package/lib/e2e/speculos.js.map +1 -1
  49. package/lib/env.react.d.ts +1 -1
  50. package/lib/env.react.d.ts.map +1 -1
  51. package/lib/exchange/swap/hooks/usePickDefaultAccount.js +1 -1
  52. package/lib/exchange/swap/hooks/usePickDefaultAccount.js.map +1 -1
  53. package/lib/exchange/swap/hooks/useSwapTransaction.d.ts +2 -3
  54. package/lib/exchange/swap/hooks/useSwapTransaction.d.ts.map +1 -1
  55. package/lib/exchange/swap/hooks/useSwapTransaction.js +9 -14
  56. package/lib/exchange/swap/hooks/useSwapTransaction.js.map +1 -1
  57. package/lib/exchange/swap/transactionStrategies.d.ts +1 -2
  58. package/lib/exchange/swap/transactionStrategies.d.ts.map +1 -1
  59. package/lib/exchange/swap/transactionStrategies.js +1 -3
  60. package/lib/exchange/swap/transactionStrategies.js.map +1 -1
  61. package/lib/exchange/swap/types.d.ts +0 -1
  62. package/lib/exchange/swap/types.d.ts.map +1 -1
  63. package/lib/families/evm/walletApiAdapter.d.ts.map +1 -1
  64. package/lib/families/evm/walletApiAdapter.js +0 -5
  65. package/lib/families/evm/walletApiAdapter.js.map +1 -1
  66. package/lib/featureFlags/defaultFeatures.d.ts +3 -0
  67. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  68. package/lib/featureFlags/defaultFeatures.js +1 -10
  69. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  70. package/lib/featureFlags/useFeature.d.ts +1 -1
  71. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  72. package/lib/load/speculos.d.ts.map +1 -1
  73. package/lib/load/speculos.js +0 -1
  74. package/lib/load/speculos.js.map +1 -1
  75. package/lib/modularDrawer/hooks/__tests__/useDetailedAccountsCore.test.d.ts.map +1 -0
  76. package/lib/modularDrawer/hooks/__tests__/useDetailedAccountsCore.test.js.map +1 -0
  77. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
  78. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +3 -0
  79. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
  80. package/lib/wallet-api/Exchange/server.d.ts +0 -1
  81. package/lib/wallet-api/Exchange/server.d.ts.map +1 -1
  82. package/lib/wallet-api/Exchange/server.js +2 -5
  83. package/lib/wallet-api/Exchange/server.js.map +1 -1
  84. package/lib/wallet-api/react.d.ts.map +1 -1
  85. package/lib/wallet-api/react.js +1 -5
  86. package/lib/wallet-api/react.js.map +1 -1
  87. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js +1 -1
  88. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
  89. package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  90. package/lib-es/bridge/generic-alpaca/prepareTransaction.js +45 -37
  91. package/lib-es/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  92. package/lib-es/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  93. package/lib-es/bridge/generic-alpaca/signOperation.js +17 -0
  94. package/lib-es/bridge/generic-alpaca/signOperation.js.map +1 -1
  95. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js +88 -163
  96. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  97. package/lib-es/bridge/generic-alpaca/utils.js +1 -1
  98. package/lib-es/bridge/generic-alpaca/utils.js.map +1 -1
  99. package/lib-es/bridge/generic-alpaca/utils.test.js +2 -2
  100. package/lib-es/bridge/generic-alpaca/utils.test.js.map +1 -1
  101. package/lib-es/dada-client/state-manager/api.d.ts.map +1 -1
  102. package/lib-es/dada-client/state-manager/api.js +5 -10
  103. package/lib-es/dada-client/state-manager/api.js.map +1 -1
  104. package/lib-es/dada-client/state-manager/types.d.ts +0 -1
  105. package/lib-es/dada-client/state-manager/types.d.ts.map +1 -1
  106. package/lib-es/device/use-cases/getAppsCatalogForDevice.d.ts +1 -1
  107. package/lib-es/device/use-cases/getAppsCatalogForDevice.d.ts.map +1 -1
  108. package/lib-es/e2e/data/deviceLabelsData.d.ts.map +1 -1
  109. package/lib-es/e2e/data/deviceLabelsData.js +4 -2
  110. package/lib-es/e2e/data/deviceLabelsData.js.map +1 -1
  111. package/lib-es/e2e/enum/Device.d.ts +4 -5
  112. package/lib-es/e2e/enum/Device.d.ts.map +1 -1
  113. package/lib-es/e2e/enum/Device.js +4 -6
  114. package/lib-es/e2e/enum/Device.js.map +1 -1
  115. package/lib-es/e2e/families/bitcoin.d.ts.map +1 -1
  116. package/lib-es/e2e/families/bitcoin.js +3 -4
  117. package/lib-es/e2e/families/bitcoin.js.map +1 -1
  118. package/lib-es/e2e/families/cardano.js +2 -2
  119. package/lib-es/e2e/families/cardano.js.map +1 -1
  120. package/lib-es/e2e/families/evm.d.ts.map +1 -1
  121. package/lib-es/e2e/families/evm.js +2 -3
  122. package/lib-es/e2e/families/evm.js.map +1 -1
  123. package/lib-es/e2e/families/solana.d.ts.map +1 -1
  124. package/lib-es/e2e/families/solana.js +6 -3
  125. package/lib-es/e2e/families/solana.js.map +1 -1
  126. package/lib-es/e2e/families/tezos.d.ts.map +1 -1
  127. package/lib-es/e2e/families/tezos.js +1 -2
  128. package/lib-es/e2e/families/tezos.js.map +1 -1
  129. package/lib-es/e2e/index.d.ts +2 -7
  130. package/lib-es/e2e/index.d.ts.map +1 -1
  131. package/lib-es/e2e/speculos.d.ts +1 -1
  132. package/lib-es/e2e/speculos.d.ts.map +1 -1
  133. package/lib-es/e2e/speculos.js +25 -19
  134. package/lib-es/e2e/speculos.js.map +1 -1
  135. package/lib-es/env.react.d.ts +1 -1
  136. package/lib-es/env.react.d.ts.map +1 -1
  137. package/lib-es/exchange/swap/hooks/usePickDefaultAccount.js +2 -2
  138. package/lib-es/exchange/swap/hooks/usePickDefaultAccount.js.map +1 -1
  139. package/lib-es/exchange/swap/hooks/useSwapTransaction.d.ts +2 -3
  140. package/lib-es/exchange/swap/hooks/useSwapTransaction.d.ts.map +1 -1
  141. package/lib-es/exchange/swap/hooks/useSwapTransaction.js +9 -14
  142. package/lib-es/exchange/swap/hooks/useSwapTransaction.js.map +1 -1
  143. package/lib-es/exchange/swap/transactionStrategies.d.ts +1 -2
  144. package/lib-es/exchange/swap/transactionStrategies.d.ts.map +1 -1
  145. package/lib-es/exchange/swap/transactionStrategies.js +1 -3
  146. package/lib-es/exchange/swap/transactionStrategies.js.map +1 -1
  147. package/lib-es/exchange/swap/types.d.ts +0 -1
  148. package/lib-es/exchange/swap/types.d.ts.map +1 -1
  149. package/lib-es/families/evm/walletApiAdapter.d.ts.map +1 -1
  150. package/lib-es/families/evm/walletApiAdapter.js +0 -5
  151. package/lib-es/families/evm/walletApiAdapter.js.map +1 -1
  152. package/lib-es/featureFlags/defaultFeatures.d.ts +3 -0
  153. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  154. package/lib-es/featureFlags/defaultFeatures.js +1 -10
  155. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  156. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  157. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  158. package/lib-es/load/speculos.d.ts.map +1 -1
  159. package/lib-es/load/speculos.js +0 -1
  160. package/lib-es/load/speculos.js.map +1 -1
  161. package/lib-es/modularDrawer/hooks/__tests__/useDetailedAccountsCore.test.d.ts.map +1 -0
  162. package/lib-es/modularDrawer/hooks/__tests__/useDetailedAccountsCore.test.js.map +1 -0
  163. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
  164. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +3 -0
  165. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
  166. package/lib-es/wallet-api/Exchange/server.d.ts +0 -1
  167. package/lib-es/wallet-api/Exchange/server.d.ts.map +1 -1
  168. package/lib-es/wallet-api/Exchange/server.js +2 -5
  169. package/lib-es/wallet-api/Exchange/server.js.map +1 -1
  170. package/lib-es/wallet-api/react.d.ts.map +1 -1
  171. package/lib-es/wallet-api/react.js +1 -5
  172. package/lib-es/wallet-api/react.js.map +1 -1
  173. package/package.json +78 -78
  174. package/src/bridge/generic-alpaca/estimateMaxSpendable.ts +1 -1
  175. package/src/bridge/generic-alpaca/prepareTransaction.ts +69 -46
  176. package/src/bridge/generic-alpaca/signOperation.ts +20 -0
  177. package/src/bridge/generic-alpaca/tests/prepareTransaction.test.ts +109 -191
  178. package/src/bridge/generic-alpaca/utils.test.ts +15 -12
  179. package/src/bridge/generic-alpaca/utils.ts +1 -1
  180. package/src/dada-client/state-manager/api.ts +5 -10
  181. package/src/dada-client/state-manager/types.ts +0 -1
  182. package/src/e2e/data/deviceLabelsData.ts +4 -2
  183. package/src/e2e/enum/Device.ts +4 -7
  184. package/src/e2e/families/bitcoin.ts +9 -4
  185. package/src/e2e/families/cardano.ts +2 -2
  186. package/src/e2e/families/evm.ts +8 -3
  187. package/src/e2e/families/solana.ts +7 -2
  188. package/src/e2e/families/tezos.ts +7 -2
  189. package/src/e2e/speculos.ts +27 -22
  190. package/src/exchange/swap/hooks/usePickDefaultAccount.ts +2 -2
  191. package/src/exchange/swap/hooks/useSwapTransaction.ts +7 -20
  192. package/src/exchange/swap/transactionStrategies.ts +0 -4
  193. package/src/exchange/swap/types.ts +0 -1
  194. package/src/families/evm/walletApiAdapter.ts +0 -6
  195. package/src/featureFlags/defaultFeatures.ts +1 -10
  196. package/src/load/speculos.ts +0 -1
  197. package/src/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.ts +3 -0
  198. package/src/wallet-api/Exchange/server.ts +3 -12
  199. package/src/wallet-api/react.ts +1 -7
  200. package/lib/e2e/speculosAppVersion.d.ts +0 -7
  201. package/lib/e2e/speculosAppVersion.d.ts.map +0 -1
  202. package/lib/e2e/speculosAppVersion.js +0 -104
  203. package/lib/e2e/speculosAppVersion.js.map +0 -1
  204. package/lib/modularDrawer/hooks/__test__/useAssetAccountCounts.test.d.ts +0 -2
  205. package/lib/modularDrawer/hooks/__test__/useAssetAccountCounts.test.d.ts.map +0 -1
  206. package/lib/modularDrawer/hooks/__test__/useAssetAccountCounts.test.js +0 -38
  207. package/lib/modularDrawer/hooks/__test__/useAssetAccountCounts.test.js.map +0 -1
  208. package/lib/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.d.ts +0 -2
  209. package/lib/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.d.ts.map +0 -1
  210. package/lib/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.js +0 -50
  211. package/lib/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.js.map +0 -1
  212. package/lib/modularDrawer/hooks/__test__/useDetailedAccountsCore.test.d.ts.map +0 -1
  213. package/lib/modularDrawer/hooks/__test__/useDetailedAccountsCore.test.js.map +0 -1
  214. package/lib/modularDrawer/modules/__test__/createAssetConfiguration.test.d.ts +0 -19
  215. package/lib/modularDrawer/modules/__test__/createAssetConfiguration.test.d.ts.map +0 -1
  216. package/lib/modularDrawer/modules/__test__/createAssetConfiguration.test.js +0 -209
  217. package/lib/modularDrawer/modules/__test__/createAssetConfiguration.test.js.map +0 -1
  218. package/lib/modularDrawer/modules/__test__/createNetworkConfiguration.test.d.ts +0 -5
  219. package/lib/modularDrawer/modules/__test__/createNetworkConfiguration.test.d.ts.map +0 -1
  220. package/lib/modularDrawer/modules/__test__/createNetworkConfiguration.test.js +0 -248
  221. package/lib/modularDrawer/modules/__test__/createNetworkConfiguration.test.js.map +0 -1
  222. package/lib-es/e2e/speculosAppVersion.d.ts +0 -7
  223. package/lib-es/e2e/speculosAppVersion.d.ts.map +0 -1
  224. package/lib-es/e2e/speculosAppVersion.js +0 -74
  225. package/lib-es/e2e/speculosAppVersion.js.map +0 -1
  226. package/lib-es/modularDrawer/hooks/__test__/useAssetAccountCounts.test.d.ts +0 -2
  227. package/lib-es/modularDrawer/hooks/__test__/useAssetAccountCounts.test.d.ts.map +0 -1
  228. package/lib-es/modularDrawer/hooks/__test__/useAssetAccountCounts.test.js +0 -36
  229. package/lib-es/modularDrawer/hooks/__test__/useAssetAccountCounts.test.js.map +0 -1
  230. package/lib-es/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.d.ts +0 -2
  231. package/lib-es/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.d.ts.map +0 -1
  232. package/lib-es/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.js +0 -45
  233. package/lib-es/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.js.map +0 -1
  234. package/lib-es/modularDrawer/hooks/__test__/useDetailedAccountsCore.test.d.ts.map +0 -1
  235. package/lib-es/modularDrawer/hooks/__test__/useDetailedAccountsCore.test.js.map +0 -1
  236. package/lib-es/modularDrawer/modules/__test__/createAssetConfiguration.test.d.ts +0 -19
  237. package/lib-es/modularDrawer/modules/__test__/createAssetConfiguration.test.d.ts.map +0 -1
  238. package/lib-es/modularDrawer/modules/__test__/createAssetConfiguration.test.js +0 -202
  239. package/lib-es/modularDrawer/modules/__test__/createAssetConfiguration.test.js.map +0 -1
  240. package/lib-es/modularDrawer/modules/__test__/createNetworkConfiguration.test.d.ts +0 -5
  241. package/lib-es/modularDrawer/modules/__test__/createNetworkConfiguration.test.d.ts.map +0 -1
  242. package/lib-es/modularDrawer/modules/__test__/createNetworkConfiguration.test.js +0 -246
  243. package/lib-es/modularDrawer/modules/__test__/createNetworkConfiguration.test.js.map +0 -1
  244. package/src/e2e/speculosAppVersion.ts +0 -86
  245. package/src/modularDrawer/hooks/__test__/useAssetAccountCounts.test.ts +0 -40
  246. package/src/modularDrawer/hooks/__test__/useCurrenciesUnderFeatureFlag.test.ts +0 -59
  247. package/src/modularDrawer/modules/__test__/createAssetConfiguration.test.tsx +0 -250
  248. package/src/modularDrawer/modules/__test__/createNetworkConfiguration.test.ts +0 -349
  249. /package/lib/modularDrawer/hooks/{__test__ → __tests__}/useDetailedAccountsCore.test.d.ts +0 -0
  250. /package/lib/modularDrawer/hooks/{__test__ → __tests__}/useDetailedAccountsCore.test.js +0 -0
  251. /package/lib-es/modularDrawer/hooks/{__test__ → __tests__}/useDetailedAccountsCore.test.d.ts +0 -0
  252. /package/lib-es/modularDrawer/hooks/{__test__ → __tests__}/useDetailedAccountsCore.test.js +0 -0
  253. /package/src/modularDrawer/hooks/{__test__ → __tests__}/useDetailedAccountsCore.test.ts +0 -0
@@ -27,7 +27,7 @@ function genericEstimateMaxSpendable(network, kind) {
27
27
  fees = (await alpacaApi.estimateFees((0, utils_1.transactionToIntent)(mainAccount, draftTransaction, alpacaApi.computeIntentType))).value;
28
28
  }
29
29
  const { amount } = await alpacaApi.validateIntent((0, utils_1.transactionToIntent)(account, { ...draftTransaction }, alpacaApi.computeIntentType), { value: transaction?.fees ? BigInt(transaction.fees.toString()) : 0n });
30
- if (network === "stellar") {
30
+ if (["stellar", "tezos"].includes(network)) {
31
31
  return amount > 0 ? new bignumber_js_1.default(amount.toString()) : new bignumber_js_1.default(0);
32
32
  }
33
33
  const bnFee = (0, bignumber_js_1.default)(fees.toString());
@@ -1 +1 @@
1
- {"version":3,"file":"estimateMaxSpendable.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/estimateMaxSpendable.ts"],"names":[],"mappings":";;;;;;AACA,2CAA+C;AAC/C,qCAAwC;AACxC,2DAAwD;AACxD,mCAA8C;AAC9C,gEAAqC;AAErC,SAAgB,2BAA2B,CACzC,OAAO,EACP,IAAI;IAEJ,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE;QACvD,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE;YACnC,OAAO,OAAO,CAAC,gBAAgB,CAAC;SACjC;QACD,MAAM,WAAW,GAAG,IAAA,wBAAc,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,gBAAgB,GAAG;YACvB,GAAG,IAAA,qCAAiB,EAAC,OAAO,CAAC;YAC7B,GAAG,WAAW;YACd,MAAM,EAAE,WAAW,CAAC,gBAAgB;YACpC,YAAY,EAAE,IAAI;SACnB,CAAC;QAEF,IAAI,IAAI,GAAG,WAAW,EAAE,IAAI,CAAC;QAC7B,IAAI,WAAW,EAAE,IAAI,KAAK,IAAI,IAAI,WAAW,EAAE,IAAI,KAAK,SAAS,EAAE;YACjE,IAAI,GAAG,CACL,MAAM,SAAS,CAAC,YAAY,CAC1B,IAAA,2BAAmB,EAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAChF,CACF,CAAC,KAAK,CAAC;SACT;QACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,cAAc,CAC/C,IAAA,2BAAmB,EAAC,OAAO,EAAE,EAAE,GAAG,gBAAgB,EAAE,EAAE,SAAS,CAAC,iBAAiB,CAAC,EAClF,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CACxE,CAAC;QACF,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,sBAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;SACzE;QACD,MAAM,KAAK,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,OAAO,sBAAS,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC;AACJ,CAAC;AAnCD,kEAmCC"}
1
+ {"version":3,"file":"estimateMaxSpendable.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/estimateMaxSpendable.ts"],"names":[],"mappings":";;;;;;AACA,2CAA+C;AAC/C,qCAAwC;AACxC,2DAAwD;AACxD,mCAA8C;AAC9C,gEAAqC;AAErC,SAAgB,2BAA2B,CACzC,OAAO,EACP,IAAI;IAEJ,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE;QACvD,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE;YACnC,OAAO,OAAO,CAAC,gBAAgB,CAAC;SACjC;QACD,MAAM,WAAW,GAAG,IAAA,wBAAc,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,gBAAgB,GAAG;YACvB,GAAG,IAAA,qCAAiB,EAAC,OAAO,CAAC;YAC7B,GAAG,WAAW;YACd,MAAM,EAAE,WAAW,CAAC,gBAAgB;YACpC,YAAY,EAAE,IAAI;SACnB,CAAC;QAEF,IAAI,IAAI,GAAG,WAAW,EAAE,IAAI,CAAC;QAC7B,IAAI,WAAW,EAAE,IAAI,KAAK,IAAI,IAAI,WAAW,EAAE,IAAI,KAAK,SAAS,EAAE;YACjE,IAAI,GAAG,CACL,MAAM,SAAS,CAAC,YAAY,CAC1B,IAAA,2BAAmB,EAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAChF,CACF,CAAC,KAAK,CAAC;SACT;QACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,cAAc,CAC/C,IAAA,2BAAmB,EAAC,OAAO,EAAE,EAAE,GAAG,gBAAgB,EAAE,EAAE,SAAS,CAAC,iBAAiB,CAAC,EAClF,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CACxE,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC1C,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,sBAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;SACzE;QACD,MAAM,KAAK,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,OAAO,sBAAS,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC;AACJ,CAAC;AAnCD,kEAmCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"prepareTransaction.d.ts","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/prepareTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI9D,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAY7C,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,IAAI,KAAA,GACH,aAAa,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAgElE;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,kBAAkB,EACtB,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,GACpE;IACD,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,CAcA"}
1
+ {"version":3,"file":"prepareTransaction.d.ts","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/prepareTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI9D,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAgB7C,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,IAAI,KAAA,GACH,aAAa,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAmFlE;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,kBAAkB,EACtB,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,GACpE;IACD,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,CAcA"}
@@ -8,6 +8,9 @@ const alpaca_1 = require("./alpaca");
8
8
  const utils_1 = require("./utils");
9
9
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
10
10
  const index_1 = require("@ledgerhq/coin-framework/account/index");
11
+ function bnEq(a, b) {
12
+ return !a && !b ? true : !a || !b ? false : a.eq(b);
13
+ }
11
14
  function assetInfosFallback(transaction) {
12
15
  return {
13
16
  assetReference: transaction.assetReference ?? "",
@@ -16,50 +19,55 @@ function assetInfosFallback(transaction) {
16
19
  }
17
20
  function genericPrepareTransaction(network, kind) {
18
21
  return async (account, transaction) => {
19
- const { getAssetFromToken, computeIntentType, estimateFees } = (0, alpaca_1.getAlpacaApi)(account.currency.id, kind);
22
+ const { getAssetFromToken, computeIntentType, estimateFees, validateIntent } = (0, alpaca_1.getAlpacaApi)(account.currency.id, kind);
20
23
  const { assetReference, assetOwner } = getAssetFromToken
21
24
  ? getAssetInfos(transaction, account.freshAddress, getAssetFromToken)
22
25
  : assetInfosFallback(transaction);
23
- const next = {
24
- ...transaction,
25
- assetOwner,
26
- assetReference,
27
- };
28
- const useAllAmount = !!next.useAllAmount || ["stake", "unstake"].includes(next.mode ?? "");
29
- // Anticipate use cases where token amounts impact fee calculuses
30
- if (useAllAmount && next.subAccountId) {
31
- const subAccount = account.subAccounts?.find(sub => sub.id === next.subAccountId);
32
- next.amount = subAccount?.spendableBalance ?? new bignumber_js_1.default(0);
33
- }
34
- const intent = (0, utils_1.transactionToIntent)(account, next, computeIntentType);
35
- const estimation = await estimateFees(intent);
36
- const customFeesValue = next.customFees?.parameters?.fees; // e.g. Stellar
37
- next.fees = customFeesValue ?? new bignumber_js_1.default(estimation.value.toString());
38
- const fieldsToPropagate = ["storageLimit"];
39
- for (const field of fieldsToPropagate) {
40
- const parameter = estimation.parameters?.[field];
41
- if (typeof parameter === "bigint" ||
42
- typeof parameter === "number" ||
43
- typeof parameter === "string") {
44
- next[field] = new bignumber_js_1.default(parameter.toString());
45
- }
26
+ const customParametersFees = transaction.customFees?.parameters?.fees;
27
+ let fees = customParametersFees || null;
28
+ if (fees === null) {
29
+ fees = (await estimateFees((0, utils_1.transactionToIntent)(account, {
30
+ ...transaction,
31
+ }, computeIntentType))).value;
46
32
  }
47
- // Fees are now fixed, compute max spendable native
48
- if (useAllAmount && !next.subAccountId) {
49
- // Check if the estimation has been done for a custom amount
50
- const estimatedAmount = estimation.parameters?.amount;
51
- if (typeof estimatedAmount === "bigint" ||
52
- typeof estimatedAmount === "number" ||
53
- typeof estimatedAmount === "string") {
54
- next.amount = new bignumber_js_1.default(estimatedAmount.toString());
33
+ if (!bnEq(transaction.fees, new bignumber_js_1.default(fees.toString()))) {
34
+ const next = {
35
+ ...transaction,
36
+ fees: new bignumber_js_1.default(fees.toString()),
37
+ assetReference,
38
+ assetOwner,
39
+ customFees: {
40
+ parameters: {
41
+ fees: customParametersFees ? new bignumber_js_1.default(customParametersFees.toString()) : undefined,
42
+ },
43
+ },
44
+ };
45
+ // propagate storageLimit fee parameter when present (ex: tezos)
46
+ const feeEstimation = await estimateFees((0, utils_1.transactionToIntent)(account, {
47
+ ...transaction,
48
+ }, computeIntentType));
49
+ const params = feeEstimation?.parameters;
50
+ if (params) {
51
+ const storageLimit = params["storageLimit"];
52
+ if (storageLimit !== undefined &&
53
+ (typeof storageLimit === "bigint" ||
54
+ typeof storageLimit === "number" ||
55
+ typeof storageLimit === "string")) {
56
+ next.storageLimit = new bignumber_js_1.default(storageLimit.toString());
57
+ }
55
58
  }
56
- else {
57
- next.amount = account.spendableBalance.gt(next.fees)
58
- ? account.spendableBalance.minus(next.fees)
59
- : new bignumber_js_1.default(0);
59
+ // align with stellar/xrp: when send max (or staking intents), reflect validated amount in UI
60
+ if (transaction.useAllAmount ||
61
+ transaction["mode"] === "stake" ||
62
+ transaction["mode"] === "unstake") {
63
+ const { amount } = await validateIntent((0, utils_1.transactionToIntent)(account, {
64
+ ...transaction,
65
+ }, computeIntentType));
66
+ next.amount = new bignumber_js_1.default(amount.toString());
60
67
  }
68
+ return next;
61
69
  }
62
- return next;
70
+ return transaction;
63
71
  };
64
72
  }
65
73
  exports.genericPrepareTransaction = genericPrepareTransaction;
@@ -1 +1 @@
1
- {"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/prepareTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/prepareTransaction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/signOperation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAyC,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAQjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAyD7C;;GAEG;AACH,eAAO,MAAM,oBAAoB,+CAEf,cAAc,GAAG,CAAC,KAAG,cAAc,kBAAkB,CAAC,CAAC,eAAe,CA0ElF,CAAC"}
1
+ {"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/signOperation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAyC,aAAa,EAAE,MAAM,sBAAsB,CAAC;AASjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAyD7C;;GAEG;AACH,eAAO,MAAM,oBAAoB,+CAEf,cAAc,GAAG,CAAC,KAAG,cAAc,kBAAkB,CAAC,CAAC,eAAe,CA6FlF,CAAC"}
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.genericSignOperation = void 0;
4
7
  const rxjs_1 = require("rxjs");
@@ -6,6 +9,7 @@ const alpaca_1 = require("./alpaca");
6
9
  const utils_1 = require("./utils");
7
10
  const errors_1 = require("@ledgerhq/errors");
8
11
  const logs_1 = require("@ledgerhq/logs");
12
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
13
  /**
10
14
  * Applies memo information to transaction intent
11
15
  * Handles both destination tags (XRP-like) and Stellar-style memos
@@ -54,6 +58,22 @@ const genericSignOperation = (network, kind) => (signerContext) => ({ account, t
54
58
  if (!transaction.fees)
55
59
  throw new errors_1.FeeNotLoaded();
56
60
  const fees = BigInt(transaction.fees?.toString() || "0");
61
+ if (transaction.useAllAmount) {
62
+ const draftTransaction = {
63
+ mode: transaction.mode,
64
+ recipient: transaction.recipient,
65
+ amount: transaction.amount ?? 0,
66
+ useAllAmount: !!transaction.useAllAmount,
67
+ assetReference: transaction?.assetReference || "",
68
+ assetOwner: transaction?.assetOwner || "",
69
+ subAccountId: transaction.subAccountId || "",
70
+ family: transaction.family,
71
+ feesStrategy: transaction.feesStrategy,
72
+ data: transaction.data,
73
+ };
74
+ const { amount } = await alpacaApi.validateIntent((0, utils_1.transactionToIntent)(account, draftTransaction, alpacaApi.computeIntentType), { value: fees });
75
+ transaction.amount = new bignumber_js_1.default(amount.toString());
76
+ }
57
77
  const signedInfo = await signerContext(deviceId, async (signer) => {
58
78
  const derivationPath = account.freshAddressPath;
59
79
  const { publicKey } = (await signer.getAddress(derivationPath));
@@ -1 +1 @@
1
- {"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/signOperation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/signOperation.ts"],"names":[],"mappings":"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"}
@@ -1,233 +1,135 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
6
  const prepareTransaction_1 = require("../prepareTransaction");
30
7
  const alpaca_1 = require("../alpaca");
8
+ const utils_1 = require("../utils");
31
9
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
32
- const accountModule = __importStar(require("@ledgerhq/coin-framework/account/index"));
33
10
  jest.mock("../alpaca", () => ({
34
11
  getAlpacaApi: jest.fn(),
35
12
  }));
13
+ jest.mock("../utils", () => ({
14
+ transactionToIntent: jest.fn(),
15
+ }));
36
16
  describe("genericPrepareTransaction", () => {
37
17
  const network = "testnet";
38
18
  const kind = "local";
19
+ const account = {
20
+ id: "test-account",
21
+ address: "0xabc",
22
+ currency: { id: "ethereum" },
23
+ };
24
+ const baseTransaction = {
25
+ amount: new bignumber_js_1.default(100_000),
26
+ fees: new bignumber_js_1.default(500),
27
+ recipient: "0xrecipient",
28
+ family: "family",
29
+ };
30
+ const txIntent = { mock: "intent" };
39
31
  beforeEach(() => {
40
32
  jest.clearAllMocks();
33
+ utils_1.transactionToIntent.mockReturnValue(txIntent);
41
34
  });
42
- it("embeds assets info, if existing", async () => {
35
+ it("updates fees if they differ", async () => {
36
+ const newFee = new bignumber_js_1.default(700);
43
37
  alpaca_1.getAlpacaApi.mockReturnValue({
44
- estimateFees: jest.fn().mockResolvedValue({ value: 500n }),
45
- getAssetFromToken: jest.fn().mockImplementation((token, owner) => {
46
- return {
47
- assetOwner: owner,
48
- assetReference: token.contractAddress,
49
- };
50
- }),
51
- });
52
- jest.spyOn(accountModule, "decodeTokenAccountId").mockImplementation(accountId => {
53
- const token = accountId === "ethereum_usdc_sub_account"
54
- ? { contractAddress: "usdc_contract" }
55
- : undefined;
56
- return { accountId, token };
38
+ estimateFees: jest.fn().mockResolvedValue({ value: newFee }),
57
39
  });
58
40
  const prepareTransaction = (0, prepareTransaction_1.genericPrepareTransaction)(network, kind);
59
- const resultUsdcToken = await prepareTransaction({ currency: { id: "ethereum", units: [{}] }, freshAddress: "0xabc" }, {
60
- amount: new bignumber_js_1.default(100_000),
61
- fees: new bignumber_js_1.default(500),
62
- recipient: "0xrecipient",
63
- family: "family",
64
- subAccountId: "ethereum_usdc_sub_account",
65
- });
66
- expect(resultUsdcToken).toEqual({
67
- amount: new bignumber_js_1.default(100_000),
68
- fees: new bignumber_js_1.default(500),
69
- recipient: "0xrecipient",
70
- family: "family",
71
- assetReference: "usdc_contract",
72
- assetOwner: "0xabc",
73
- subAccountId: "ethereum_usdc_sub_account",
74
- });
75
- const resultUnknownToken = await prepareTransaction({ currency: { id: "ethereum", units: [{}] } }, {
76
- amount: new bignumber_js_1.default(100_000),
77
- fees: new bignumber_js_1.default(500),
78
- recipient: "0xrecipient",
79
- family: "family",
80
- subAccountId: "ethereum_unknown_sub_account",
81
- });
82
- expect(resultUnknownToken).toEqual({
83
- amount: new bignumber_js_1.default(100_000),
84
- fees: new bignumber_js_1.default(500),
85
- recipient: "0xrecipient",
86
- family: "family",
87
- assetReference: "",
88
- assetOwner: "",
89
- subAccountId: "ethereum_unknown_sub_account",
90
- });
41
+ const result = await prepareTransaction(account, { ...baseTransaction });
42
+ expect(result.fees.toString()).toBe(newFee.toString());
43
+ expect(utils_1.transactionToIntent).toHaveBeenCalledWith(account, expect.objectContaining(baseTransaction), undefined);
91
44
  });
92
- it.each([
93
- ["all native amount", { useAllAmount: true }, new bignumber_js_1.default(42)],
94
- ["all native amount on staking scenarios", { mode: "stake" }, new bignumber_js_1.default(42)],
95
- ["all native amount on unstaking scenarios", { mode: "unstake" }, new bignumber_js_1.default(42)],
96
- [
97
- "all token amount",
98
- { subAccountId: "ethereum_usdc_sub_account", useAllAmount: true },
99
- new bignumber_js_1.default(5),
100
- ],
101
- [
102
- "all token amount on staking scenarios",
103
- { subAccountId: "ethereum_usdc_sub_account", mode: "stake" },
104
- new bignumber_js_1.default(5),
105
- ],
106
- [
107
- "all token amount on unstaking scenarios",
108
- { subAccountId: "ethereum_usdc_sub_account", mode: "unstake" },
109
- new bignumber_js_1.default(5),
110
- ],
111
- ])("uses %s, updating the amount", async (_s, partialTransaction, expectedAmount) => {
45
+ it("returns original transaction if fees are the same", async () => {
46
+ const sameFee = baseTransaction.fees;
112
47
  alpaca_1.getAlpacaApi.mockReturnValue({
113
- estimateFees: jest.fn().mockResolvedValue({ value: 8n }),
114
- getAssetFromToken: jest.fn().mockImplementation((token, owner) => {
115
- return {
116
- assetOwner: owner,
117
- assetReference: token.contractAddress,
118
- };
119
- }),
120
- });
121
- jest.spyOn(accountModule, "decodeTokenAccountId").mockImplementation(accountId => {
122
- const token = accountId === "ethereum_usdc_sub_account"
123
- ? { contractAddress: "usdc_contract" }
124
- : undefined;
125
- return { accountId, token };
48
+ estimateFees: jest.fn().mockResolvedValue({ value: sameFee }),
126
49
  });
127
50
  const prepareTransaction = (0, prepareTransaction_1.genericPrepareTransaction)(network, kind);
128
- const result = await prepareTransaction({
129
- currency: { id: "ethereum", units: [{}] },
130
- spendableBalance: new bignumber_js_1.default(50),
131
- subAccounts: [{ id: "ethereum_usdc_sub_account", spendableBalance: new bignumber_js_1.default(5) }],
132
- }, {
133
- amount: new bignumber_js_1.default(0),
134
- recipient: "0xrecipient",
135
- family: "family",
136
- ...partialTransaction,
137
- });
138
- expect(result).toMatchObject({
139
- amount: expectedAmount,
140
- fees: new bignumber_js_1.default(8),
141
- recipient: "0xrecipient",
142
- family: "family",
143
- });
51
+ const result = await prepareTransaction(account, baseTransaction);
52
+ expect(result).toBe(baseTransaction);
144
53
  });
145
- it("updates fees from the estimation", async () => {
54
+ it("sets fee if original fees are undefined", async () => {
55
+ const newFee = new bignumber_js_1.default(1234);
146
56
  alpaca_1.getAlpacaApi.mockReturnValue({
147
- estimateFees: jest.fn().mockResolvedValue({ value: 700n }),
57
+ estimateFees: jest.fn().mockResolvedValue({ value: newFee }),
148
58
  });
59
+ const txWithoutFees = { ...baseTransaction, fees: undefined };
149
60
  const prepareTransaction = (0, prepareTransaction_1.genericPrepareTransaction)(network, kind);
150
- const result = await prepareTransaction({ currency: { id: "ethereum", units: [{}] } }, {
151
- amount: new bignumber_js_1.default(100_000),
152
- fees: new bignumber_js_1.default(500),
153
- recipient: "0xrecipient",
154
- family: "family",
155
- });
156
- expect(result).toEqual({
157
- amount: new bignumber_js_1.default(100_000),
158
- fees: new bignumber_js_1.default(700),
159
- recipient: "0xrecipient",
160
- family: "family",
161
- assetReference: "",
162
- assetOwner: "",
163
- });
61
+ const result = await prepareTransaction(account, txWithoutFees);
62
+ expect(result.fees.toString()).toBe(newFee.toString());
63
+ expect(result).not.toBe(txWithoutFees);
164
64
  });
165
- it("updates fees from the existing custom", async () => {
65
+ it("returns original if fees are BigNumber-equal but different instance", async () => {
66
+ const sameValue = new bignumber_js_1.default(baseTransaction.fees.toString()); // different instance
166
67
  alpaca_1.getAlpacaApi.mockReturnValue({
167
- estimateFees: jest.fn().mockResolvedValue({ value: 700n }),
68
+ estimateFees: jest.fn().mockResolvedValue({ value: sameValue }),
168
69
  });
169
70
  const prepareTransaction = (0, prepareTransaction_1.genericPrepareTransaction)(network, kind);
170
- const result = await prepareTransaction({ currency: { id: "ethereum", units: [{}] } }, {
171
- amount: new bignumber_js_1.default(100_000),
172
- fees: new bignumber_js_1.default(500),
173
- recipient: "0xrecipient",
174
- family: "family",
175
- customFees: { parameters: { fees: new bignumber_js_1.default(600) } },
71
+ const result = await prepareTransaction(account, baseTransaction);
72
+ expect(result).toBe(baseTransaction); // still same reference
73
+ });
74
+ it("propagates storageLimit from second estimation", async () => {
75
+ const estimatedFee = new bignumber_js_1.default(491);
76
+ const estimateFeesFirstCall = jest.fn().mockResolvedValue({
77
+ value: estimatedFee,
78
+ parameters: { storageLimit: 300 },
176
79
  });
177
- expect(result).toEqual({
178
- amount: new bignumber_js_1.default(100_000),
179
- fees: new bignumber_js_1.default(600),
180
- customFees: { parameters: { fees: new bignumber_js_1.default(600) } },
181
- recipient: "0xrecipient",
182
- family: "family",
183
- assetReference: "",
184
- assetOwner: "",
80
+ const estimateFeesSecondCall = jest.fn().mockResolvedValue({
81
+ value: estimatedFee,
82
+ parameters: { storageLimit: 0 },
185
83
  });
186
- });
187
- it("propagates estimated 'storageLimit'", async () => {
188
84
  alpaca_1.getAlpacaApi.mockReturnValue({
189
85
  estimateFees: jest
190
86
  .fn()
191
- .mockResolvedValue({ value: 700n, parameters: { storageLimit: 277n } }),
87
+ .mockImplementationOnce(() => estimateFeesFirstCall())
88
+ .mockImplementationOnce(() => estimateFeesSecondCall()),
192
89
  });
90
+ const txWithoutCustomFees = { ...baseTransaction, customFees: undefined };
193
91
  const prepareTransaction = (0, prepareTransaction_1.genericPrepareTransaction)(network, kind);
194
- const result = await prepareTransaction({ currency: { id: "ethereum", units: [{}] } }, {
195
- amount: new bignumber_js_1.default(100_000),
196
- fees: new bignumber_js_1.default(500),
197
- recipient: "0xrecipient",
198
- family: "family",
92
+ const result = await prepareTransaction(account, txWithoutCustomFees);
93
+ expect(result).toEqual(expect.objectContaining({
94
+ fees: estimatedFee,
95
+ storageLimit: new bignumber_js_1.default(0),
96
+ customFees: {
97
+ parameters: {
98
+ fees: undefined,
99
+ },
100
+ },
101
+ }));
102
+ expect(alpaca_1.getAlpacaApi().estimateFees).toHaveBeenCalledTimes(2);
103
+ });
104
+ it("propagates storageLimit showing new account scenario", async () => {
105
+ const estimatedFee = new bignumber_js_1.default(491);
106
+ const estimateFeesFirstCall = jest.fn().mockResolvedValue({
107
+ value: estimatedFee,
108
+ parameters: { storageLimit: 300 },
199
109
  });
200
- expect(result).toEqual({
201
- amount: new bignumber_js_1.default(100_000),
202
- fees: new bignumber_js_1.default(700),
203
- storageLimit: new bignumber_js_1.default(277),
204
- recipient: "0xrecipient",
205
- family: "family",
206
- assetReference: "",
207
- assetOwner: "",
110
+ const estimateFeesSecondCall = jest.fn().mockResolvedValue({
111
+ value: estimatedFee,
112
+ parameters: { storageLimit: 277 },
208
113
  });
209
- });
210
- it("keeps the amount used during the estimation when using all native amount", async () => {
211
114
  alpaca_1.getAlpacaApi.mockReturnValue({
212
- estimateFees: jest.fn().mockResolvedValue({ value: 700n, parameters: { amount: 1000n } }),
115
+ estimateFees: jest
116
+ .fn()
117
+ .mockImplementationOnce(() => estimateFeesFirstCall())
118
+ .mockImplementationOnce(() => estimateFeesSecondCall()),
213
119
  });
120
+ const txWithoutCustomFees = { ...baseTransaction, customFees: undefined };
214
121
  const prepareTransaction = (0, prepareTransaction_1.genericPrepareTransaction)(network, kind);
215
- const result = await prepareTransaction({ currency: { id: "ethereum", units: [{}] } }, {
216
- amount: new bignumber_js_1.default(0),
217
- fees: new bignumber_js_1.default(500),
218
- recipient: "0xrecipient",
219
- family: "family",
220
- useAllAmount: true,
221
- });
222
- expect(result).toEqual({
223
- amount: new bignumber_js_1.default(1000),
224
- fees: new bignumber_js_1.default(700),
225
- recipient: "0xrecipient",
226
- family: "family",
227
- assetReference: "",
228
- assetOwner: "",
229
- useAllAmount: true,
230
- });
122
+ const result = await prepareTransaction(account, txWithoutCustomFees);
123
+ expect(result).toEqual(expect.objectContaining({
124
+ fees: estimatedFee,
125
+ storageLimit: new bignumber_js_1.default(277),
126
+ customFees: {
127
+ parameters: {
128
+ fees: undefined,
129
+ },
130
+ },
131
+ }));
132
+ expect(alpaca_1.getAlpacaApi().estimateFees).toHaveBeenCalledTimes(2);
231
133
  });
232
134
  });
233
135
  //# sourceMappingURL=prepareTransaction.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prepareTransaction.test.js","sourceRoot":"","sources":["../../../../src/bridge/generic-alpaca/tests/prepareTransaction.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepareTransaction.test.js","sourceRoot":"","sources":["../../../../src/bridge/generic-alpaca/tests/prepareTransaction.test.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ function adaptCoreOperationToLiveOperation(accountId, op) {
45
45
  hash: op.tx.hash,
46
46
  accountId,
47
47
  type: opType,
48
- value: op.asset.type === "native" && ["OUT", "FEES"].includes(opType)
48
+ value: op.asset.type === "native" && ["OUT", "FEES", "DELEGATE", "UNDELEGATE"].includes(opType)
49
49
  ? new bignumber_js_1.default(op.value.toString()).plus(bnFees)
50
50
  : new bignumber_js_1.default(op.value.toString()),
51
51
  fee: bnFees,