@ledgerhq/live-common 34.51.0-nightly.1 → 34.51.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 (266) hide show
  1. package/lib/bridge/generic-alpaca/accountBridge.d.ts.map +1 -1
  2. package/lib/bridge/generic-alpaca/accountBridge.js +2 -0
  3. package/lib/bridge/generic-alpaca/accountBridge.js.map +1 -1
  4. package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts +1 -0
  5. package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts.map +1 -1
  6. package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.js +3 -0
  7. package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.js.map +1 -1
  8. package/lib/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  9. package/lib/bridge/generic-alpaca/prepareTransaction.js +37 -45
  10. package/lib/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  11. package/lib/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  12. package/lib/bridge/generic-alpaca/signOperation.js +0 -20
  13. package/lib/bridge/generic-alpaca/signOperation.js.map +1 -1
  14. package/lib/bridge/generic-alpaca/signRawOperation.d.ts +8 -0
  15. package/lib/bridge/generic-alpaca/signRawOperation.d.ts.map +1 -0
  16. package/lib/bridge/generic-alpaca/signRawOperation.js +55 -0
  17. package/lib/bridge/generic-alpaca/signRawOperation.js.map +1 -0
  18. package/lib/bridge/generic-alpaca/tests/getAccountShape.test.js +1 -0
  19. package/lib/bridge/generic-alpaca/tests/getAccountShape.test.js.map +1 -1
  20. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js +186 -88
  21. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  22. package/lib/bridge/generic-alpaca/utils.d.ts.map +1 -1
  23. package/lib/bridge/generic-alpaca/utils.js +1 -0
  24. package/lib/bridge/generic-alpaca/utils.js.map +1 -1
  25. package/lib/bridge/mockHelpers.d.ts +1 -0
  26. package/lib/bridge/mockHelpers.d.ts.map +1 -1
  27. package/lib/bridge/mockHelpers.js +53 -1
  28. package/lib/bridge/mockHelpers.js.map +1 -1
  29. package/lib/bridge/react/BridgeSync.d.ts +1 -0
  30. package/lib/bridge/react/BridgeSync.d.ts.map +1 -1
  31. package/lib/bridge/react/BridgeSync.js +19 -16
  32. package/lib/bridge/react/BridgeSync.js.map +1 -1
  33. package/lib/bridge/react/BridgeSync.test.js +403 -66
  34. package/lib/bridge/react/BridgeSync.test.js.map +1 -1
  35. package/lib/dada-client/entities/index.d.ts +1 -1
  36. package/lib/dada-client/entities/index.d.ts.map +1 -1
  37. package/lib/e2e/index.d.ts +8 -0
  38. package/lib/e2e/index.d.ts.map +1 -1
  39. package/lib/families/algorand/bridge/mock.d.ts.map +1 -1
  40. package/lib/families/algorand/bridge/mock.js +1 -0
  41. package/lib/families/algorand/bridge/mock.js.map +1 -1
  42. package/lib/families/bitcoin/bridge/mock.d.ts.map +1 -1
  43. package/lib/families/bitcoin/bridge/mock.js +1 -0
  44. package/lib/families/bitcoin/bridge/mock.js.map +1 -1
  45. package/lib/families/canton/bridge/mock.d.ts.map +1 -1
  46. package/lib/families/canton/bridge/mock.js +3 -0
  47. package/lib/families/canton/bridge/mock.js.map +1 -1
  48. package/lib/families/cardano/bridge/mock.d.ts.map +1 -1
  49. package/lib/families/cardano/bridge/mock.js +1 -0
  50. package/lib/families/cardano/bridge/mock.js.map +1 -1
  51. package/lib/families/casper/bridge/mock.d.ts.map +1 -1
  52. package/lib/families/casper/bridge/mock.js +1 -0
  53. package/lib/families/casper/bridge/mock.js.map +1 -1
  54. package/lib/families/cosmos/bridge/mock.d.ts.map +1 -1
  55. package/lib/families/cosmos/bridge/mock.js +1 -0
  56. package/lib/families/cosmos/bridge/mock.js.map +1 -1
  57. package/lib/families/evm/bridge/mock.d.ts.map +1 -1
  58. package/lib/families/evm/bridge/mock.js +1 -0
  59. package/lib/families/evm/bridge/mock.js.map +1 -1
  60. package/lib/families/icon/bridge/mock.d.ts.map +1 -1
  61. package/lib/families/icon/bridge/mock.js +1 -0
  62. package/lib/families/icon/bridge/mock.js.map +1 -1
  63. package/lib/families/multiversx/bridge/mock.d.ts.map +1 -1
  64. package/lib/families/multiversx/bridge/mock.js +1 -0
  65. package/lib/families/multiversx/bridge/mock.js.map +1 -1
  66. package/lib/families/polkadot/bridge/mock.d.ts.map +1 -1
  67. package/lib/families/polkadot/bridge/mock.js +1 -0
  68. package/lib/families/polkadot/bridge/mock.js.map +1 -1
  69. package/lib/families/polkadot/config.d.ts.map +1 -1
  70. package/lib/families/polkadot/config.js +84 -0
  71. package/lib/families/polkadot/config.js.map +1 -1
  72. package/lib/families/polkadot/setup.d.ts.map +1 -1
  73. package/lib/families/polkadot/setup.js +5 -4
  74. package/lib/families/polkadot/setup.js.map +1 -1
  75. package/lib/families/solana/bridge/mock.d.ts +1 -0
  76. package/lib/families/solana/bridge/mock.d.ts.map +1 -1
  77. package/lib/families/stellar/bridge/mock.d.ts.map +1 -1
  78. package/lib/families/stellar/bridge/mock.js +1 -0
  79. package/lib/families/stellar/bridge/mock.js.map +1 -1
  80. package/lib/families/tezos/bridge/mock.d.ts.map +1 -1
  81. package/lib/families/tezos/bridge/mock.js +1 -0
  82. package/lib/families/tezos/bridge/mock.js.map +1 -1
  83. package/lib/families/tron/bridge/mock.d.ts.map +1 -1
  84. package/lib/families/tron/bridge/mock.js +1 -0
  85. package/lib/families/tron/bridge/mock.js.map +1 -1
  86. package/lib/families/xrp/bridge/mock.d.ts.map +1 -1
  87. package/lib/families/xrp/bridge/mock.js +1 -0
  88. package/lib/families/xrp/bridge/mock.js.map +1 -1
  89. package/lib/featureFlags/defaultFeatures.d.ts +3 -0
  90. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  91. package/lib/featureFlags/defaultFeatures.js +10 -1
  92. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  93. package/lib/featureFlags/useFeature.d.ts +1 -1
  94. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  95. package/lib/generated/bridge/mock.d.ts +1 -0
  96. package/lib/generated/bridge/mock.d.ts.map +1 -1
  97. package/lib/hw/actions/rawTransaction.d.ts +37 -0
  98. package/lib/hw/actions/rawTransaction.d.ts.map +1 -0
  99. package/lib/hw/actions/rawTransaction.js +107 -0
  100. package/lib/hw/actions/rawTransaction.js.map +1 -0
  101. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
  102. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +9 -0
  103. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
  104. package/lib/wallet-api/logic.d.ts +1 -0
  105. package/lib/wallet-api/logic.d.ts.map +1 -1
  106. package/lib/wallet-api/logic.js +21 -1
  107. package/lib/wallet-api/logic.js.map +1 -1
  108. package/lib/wallet-api/react.d.ts +9 -1
  109. package/lib/wallet-api/react.d.ts.map +1 -1
  110. package/lib/wallet-api/react.js +60 -2
  111. package/lib/wallet-api/react.js.map +1 -1
  112. package/lib/wallet-api/tracking.d.ts +3 -0
  113. package/lib/wallet-api/tracking.d.ts.map +1 -1
  114. package/lib/wallet-api/tracking.js +12 -0
  115. package/lib/wallet-api/tracking.js.map +1 -1
  116. package/lib-es/bridge/generic-alpaca/accountBridge.d.ts.map +1 -1
  117. package/lib-es/bridge/generic-alpaca/accountBridge.js +2 -0
  118. package/lib-es/bridge/generic-alpaca/accountBridge.js.map +1 -1
  119. package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts +1 -0
  120. package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts.map +1 -1
  121. package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.js +3 -0
  122. package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.js.map +1 -1
  123. package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  124. package/lib-es/bridge/generic-alpaca/prepareTransaction.js +37 -45
  125. package/lib-es/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  126. package/lib-es/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  127. package/lib-es/bridge/generic-alpaca/signOperation.js +0 -17
  128. package/lib-es/bridge/generic-alpaca/signOperation.js.map +1 -1
  129. package/lib-es/bridge/generic-alpaca/signRawOperation.d.ts +8 -0
  130. package/lib-es/bridge/generic-alpaca/signRawOperation.d.ts.map +1 -0
  131. package/lib-es/bridge/generic-alpaca/signRawOperation.js +48 -0
  132. package/lib-es/bridge/generic-alpaca/signRawOperation.js.map +1 -0
  133. package/lib-es/bridge/generic-alpaca/tests/getAccountShape.test.js +1 -0
  134. package/lib-es/bridge/generic-alpaca/tests/getAccountShape.test.js.map +1 -1
  135. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js +163 -88
  136. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  137. package/lib-es/bridge/generic-alpaca/utils.d.ts.map +1 -1
  138. package/lib-es/bridge/generic-alpaca/utils.js +1 -0
  139. package/lib-es/bridge/generic-alpaca/utils.js.map +1 -1
  140. package/lib-es/bridge/mockHelpers.d.ts +1 -0
  141. package/lib-es/bridge/mockHelpers.d.ts.map +1 -1
  142. package/lib-es/bridge/mockHelpers.js +51 -0
  143. package/lib-es/bridge/mockHelpers.js.map +1 -1
  144. package/lib-es/bridge/react/BridgeSync.d.ts +1 -0
  145. package/lib-es/bridge/react/BridgeSync.d.ts.map +1 -1
  146. package/lib-es/bridge/react/BridgeSync.js +17 -15
  147. package/lib-es/bridge/react/BridgeSync.js.map +1 -1
  148. package/lib-es/bridge/react/BridgeSync.test.js +382 -65
  149. package/lib-es/bridge/react/BridgeSync.test.js.map +1 -1
  150. package/lib-es/dada-client/entities/index.d.ts +1 -1
  151. package/lib-es/dada-client/entities/index.d.ts.map +1 -1
  152. package/lib-es/e2e/index.d.ts +8 -0
  153. package/lib-es/e2e/index.d.ts.map +1 -1
  154. package/lib-es/families/algorand/bridge/mock.d.ts.map +1 -1
  155. package/lib-es/families/algorand/bridge/mock.js +2 -1
  156. package/lib-es/families/algorand/bridge/mock.js.map +1 -1
  157. package/lib-es/families/bitcoin/bridge/mock.d.ts.map +1 -1
  158. package/lib-es/families/bitcoin/bridge/mock.js +2 -1
  159. package/lib-es/families/bitcoin/bridge/mock.js.map +1 -1
  160. package/lib-es/families/canton/bridge/mock.d.ts.map +1 -1
  161. package/lib-es/families/canton/bridge/mock.js +3 -0
  162. package/lib-es/families/canton/bridge/mock.js.map +1 -1
  163. package/lib-es/families/cardano/bridge/mock.d.ts.map +1 -1
  164. package/lib-es/families/cardano/bridge/mock.js +2 -1
  165. package/lib-es/families/cardano/bridge/mock.js.map +1 -1
  166. package/lib-es/families/casper/bridge/mock.d.ts.map +1 -1
  167. package/lib-es/families/casper/bridge/mock.js +2 -1
  168. package/lib-es/families/casper/bridge/mock.js.map +1 -1
  169. package/lib-es/families/cosmos/bridge/mock.d.ts.map +1 -1
  170. package/lib-es/families/cosmos/bridge/mock.js +2 -1
  171. package/lib-es/families/cosmos/bridge/mock.js.map +1 -1
  172. package/lib-es/families/evm/bridge/mock.d.ts.map +1 -1
  173. package/lib-es/families/evm/bridge/mock.js +2 -1
  174. package/lib-es/families/evm/bridge/mock.js.map +1 -1
  175. package/lib-es/families/icon/bridge/mock.d.ts.map +1 -1
  176. package/lib-es/families/icon/bridge/mock.js +2 -1
  177. package/lib-es/families/icon/bridge/mock.js.map +1 -1
  178. package/lib-es/families/multiversx/bridge/mock.d.ts.map +1 -1
  179. package/lib-es/families/multiversx/bridge/mock.js +2 -1
  180. package/lib-es/families/multiversx/bridge/mock.js.map +1 -1
  181. package/lib-es/families/polkadot/bridge/mock.d.ts.map +1 -1
  182. package/lib-es/families/polkadot/bridge/mock.js +2 -1
  183. package/lib-es/families/polkadot/bridge/mock.js.map +1 -1
  184. package/lib-es/families/polkadot/config.d.ts.map +1 -1
  185. package/lib-es/families/polkadot/config.js +84 -0
  186. package/lib-es/families/polkadot/config.js.map +1 -1
  187. package/lib-es/families/polkadot/setup.d.ts.map +1 -1
  188. package/lib-es/families/polkadot/setup.js +5 -4
  189. package/lib-es/families/polkadot/setup.js.map +1 -1
  190. package/lib-es/families/solana/bridge/mock.d.ts +1 -0
  191. package/lib-es/families/solana/bridge/mock.d.ts.map +1 -1
  192. package/lib-es/families/stellar/bridge/mock.d.ts.map +1 -1
  193. package/lib-es/families/stellar/bridge/mock.js +2 -1
  194. package/lib-es/families/stellar/bridge/mock.js.map +1 -1
  195. package/lib-es/families/tezos/bridge/mock.d.ts.map +1 -1
  196. package/lib-es/families/tezos/bridge/mock.js +2 -1
  197. package/lib-es/families/tezos/bridge/mock.js.map +1 -1
  198. package/lib-es/families/tron/bridge/mock.d.ts.map +1 -1
  199. package/lib-es/families/tron/bridge/mock.js +2 -1
  200. package/lib-es/families/tron/bridge/mock.js.map +1 -1
  201. package/lib-es/families/xrp/bridge/mock.d.ts.map +1 -1
  202. package/lib-es/families/xrp/bridge/mock.js +2 -1
  203. package/lib-es/families/xrp/bridge/mock.js.map +1 -1
  204. package/lib-es/featureFlags/defaultFeatures.d.ts +3 -0
  205. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  206. package/lib-es/featureFlags/defaultFeatures.js +10 -1
  207. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  208. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  209. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  210. package/lib-es/generated/bridge/mock.d.ts +1 -0
  211. package/lib-es/generated/bridge/mock.d.ts.map +1 -1
  212. package/lib-es/hw/actions/rawTransaction.d.ts +37 -0
  213. package/lib-es/hw/actions/rawTransaction.d.ts.map +1 -0
  214. package/lib-es/hw/actions/rawTransaction.js +103 -0
  215. package/lib-es/hw/actions/rawTransaction.js.map +1 -0
  216. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
  217. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +9 -0
  218. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
  219. package/lib-es/wallet-api/logic.d.ts +1 -0
  220. package/lib-es/wallet-api/logic.d.ts.map +1 -1
  221. package/lib-es/wallet-api/logic.js +19 -0
  222. package/lib-es/wallet-api/logic.js.map +1 -1
  223. package/lib-es/wallet-api/react.d.ts +9 -1
  224. package/lib-es/wallet-api/react.d.ts.map +1 -1
  225. package/lib-es/wallet-api/react.js +61 -3
  226. package/lib-es/wallet-api/react.js.map +1 -1
  227. package/lib-es/wallet-api/tracking.d.ts +3 -0
  228. package/lib-es/wallet-api/tracking.d.ts.map +1 -1
  229. package/lib-es/wallet-api/tracking.js +12 -0
  230. package/lib-es/wallet-api/tracking.js.map +1 -1
  231. package/package.json +51 -51
  232. package/src/bridge/generic-alpaca/accountBridge.ts +2 -0
  233. package/src/bridge/generic-alpaca/alpaca/network/network-alpaca.ts +8 -0
  234. package/src/bridge/generic-alpaca/prepareTransaction.ts +46 -69
  235. package/src/bridge/generic-alpaca/signOperation.ts +0 -20
  236. package/src/bridge/generic-alpaca/signRawOperation.ts +86 -0
  237. package/src/bridge/generic-alpaca/tests/getAccountShape.test.ts +1 -0
  238. package/src/bridge/generic-alpaca/tests/prepareTransaction.test.ts +191 -109
  239. package/src/bridge/generic-alpaca/utils.ts +1 -0
  240. package/src/bridge/mockHelpers.ts +57 -0
  241. package/src/bridge/react/BridgeSync.test.tsx +513 -82
  242. package/src/bridge/react/BridgeSync.tsx +18 -17
  243. package/src/dada-client/MIGRATION_GUIDE.md +215 -0
  244. package/src/dada-client/entities/index.ts +1 -1
  245. package/src/families/algorand/bridge/mock.ts +2 -0
  246. package/src/families/bitcoin/bridge/mock.ts +2 -0
  247. package/src/families/canton/bridge/mock.ts +3 -0
  248. package/src/families/cardano/bridge/mock.ts +2 -0
  249. package/src/families/casper/bridge/mock.ts +2 -0
  250. package/src/families/cosmos/bridge/mock.ts +2 -0
  251. package/src/families/evm/bridge/mock.ts +2 -0
  252. package/src/families/icon/bridge/mock.ts +2 -0
  253. package/src/families/multiversx/bridge/mock.ts +2 -0
  254. package/src/families/polkadot/bridge/mock.ts +2 -0
  255. package/src/families/polkadot/config.ts +84 -0
  256. package/src/families/polkadot/setup.ts +6 -4
  257. package/src/families/stellar/bridge/mock.ts +2 -0
  258. package/src/families/tezos/bridge/mock.ts +2 -0
  259. package/src/families/tron/bridge/mock.ts +2 -0
  260. package/src/families/xrp/bridge/mock.ts +2 -0
  261. package/src/featureFlags/defaultFeatures.ts +10 -1
  262. package/src/hw/actions/rawTransaction.ts +190 -0
  263. package/src/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.ts +9 -0
  264. package/src/wallet-api/logic.ts +35 -0
  265. package/src/wallet-api/react.ts +87 -1
  266. package/src/wallet-api/tracking.ts +15 -0
@@ -2,9 +2,6 @@ import { getAlpacaApi } from "./alpaca";
2
2
  import { transactionToIntent } from "./utils";
3
3
  import BigNumber from "bignumber.js";
4
4
  import { decodeTokenAccountId } from "@ledgerhq/coin-framework/account/index";
5
- function bnEq(a, b) {
6
- return !a && !b ? true : !a || !b ? false : a.eq(b);
7
- }
8
5
  function assetInfosFallback(transaction) {
9
6
  return {
10
7
  assetReference: transaction.assetReference ?? "",
@@ -13,55 +10,50 @@ function assetInfosFallback(transaction) {
13
10
  }
14
11
  export function genericPrepareTransaction(network, kind) {
15
12
  return async (account, transaction) => {
16
- const { getAssetFromToken, computeIntentType, estimateFees, validateIntent } = getAlpacaApi(account.currency.id, kind);
13
+ const { getAssetFromToken, computeIntentType, estimateFees } = getAlpacaApi(account.currency.id, kind);
17
14
  const { assetReference, assetOwner } = getAssetFromToken
18
15
  ? getAssetInfos(transaction, account.freshAddress, getAssetFromToken)
19
16
  : assetInfosFallback(transaction);
20
- const customParametersFees = transaction.customFees?.parameters?.fees;
21
- let fees = customParametersFees || null;
22
- if (fees === null) {
23
- fees = (await estimateFees(transactionToIntent(account, {
24
- ...transaction,
25
- }, computeIntentType))).value;
17
+ const next = {
18
+ ...transaction,
19
+ assetOwner,
20
+ assetReference,
21
+ };
22
+ const useAllAmount = !!next.useAllAmount || ["stake", "unstake"].includes(next.mode ?? "");
23
+ // Anticipate use cases where token amounts impact fee calculuses
24
+ if (useAllAmount && next.subAccountId) {
25
+ const subAccount = account.subAccounts?.find(sub => sub.id === next.subAccountId);
26
+ next.amount = subAccount?.spendableBalance ?? new BigNumber(0);
27
+ }
28
+ const intent = transactionToIntent(account, next, computeIntentType);
29
+ const estimation = await estimateFees(intent);
30
+ const customFeesValue = next.customFees?.parameters?.fees; // e.g. Stellar
31
+ next.fees = customFeesValue ?? new BigNumber(estimation.value.toString());
32
+ const fieldsToPropagate = ["storageLimit"];
33
+ for (const field of fieldsToPropagate) {
34
+ const parameter = estimation.parameters?.[field];
35
+ if (typeof parameter === "bigint" ||
36
+ typeof parameter === "number" ||
37
+ typeof parameter === "string") {
38
+ next[field] = new BigNumber(parameter.toString());
39
+ }
26
40
  }
27
- if (!bnEq(transaction.fees, new BigNumber(fees.toString()))) {
28
- const next = {
29
- ...transaction,
30
- fees: new BigNumber(fees.toString()),
31
- assetReference,
32
- assetOwner,
33
- customFees: {
34
- parameters: {
35
- fees: customParametersFees ? new BigNumber(customParametersFees.toString()) : undefined,
36
- },
37
- },
38
- };
39
- // propagate storageLimit fee parameter when present (ex: tezos)
40
- const feeEstimation = await estimateFees(transactionToIntent(account, {
41
- ...transaction,
42
- }, computeIntentType));
43
- const params = feeEstimation?.parameters;
44
- if (params) {
45
- const storageLimit = params["storageLimit"];
46
- if (storageLimit !== undefined &&
47
- (typeof storageLimit === "bigint" ||
48
- typeof storageLimit === "number" ||
49
- typeof storageLimit === "string")) {
50
- next.storageLimit = new BigNumber(storageLimit.toString());
51
- }
41
+ // Fees are now fixed, compute max spendable native
42
+ if (useAllAmount && !next.subAccountId) {
43
+ // Check if the estimation has been done for a custom amount
44
+ const estimatedAmount = estimation.parameters?.amount;
45
+ if (typeof estimatedAmount === "bigint" ||
46
+ typeof estimatedAmount === "number" ||
47
+ typeof estimatedAmount === "string") {
48
+ next.amount = new BigNumber(estimatedAmount.toString());
52
49
  }
53
- // align with stellar/xrp: when send max (or staking intents), reflect validated amount in UI
54
- if (transaction.useAllAmount ||
55
- transaction["mode"] === "stake" ||
56
- transaction["mode"] === "unstake") {
57
- const { amount } = await validateIntent(transactionToIntent(account, {
58
- ...transaction,
59
- }, computeIntentType));
60
- next.amount = new BigNumber(amount.toString());
50
+ else {
51
+ next.amount = account.spendableBalance.gt(next.fees)
52
+ ? account.spendableBalance.minus(next.fees)
53
+ : new BigNumber(0);
61
54
  }
62
- return next;
63
55
  }
64
- return transaction;
56
+ return next;
65
57
  };
66
58
  }
67
59
  export function getAssetInfos(tr, owner, getAssetFromToken) {
@@ -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;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
+ {"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"}
@@ -3,7 +3,6 @@ import { getAlpacaApi } from "./alpaca";
3
3
  import { buildOptimisticOperation, transactionToIntent } from "./utils";
4
4
  import { FeeNotLoaded } from "@ledgerhq/errors";
5
5
  import { log } from "@ledgerhq/logs";
6
- import BigNumber from "bignumber.js";
7
6
  /**
8
7
  * Applies memo information to transaction intent
9
8
  * Handles both destination tags (XRP-like) and Stellar-style memos
@@ -52,22 +51,6 @@ export const genericSignOperation = (network, kind) => (signerContext) => ({ acc
52
51
  if (!transaction.fees)
53
52
  throw new FeeNotLoaded();
54
53
  const fees = BigInt(transaction.fees?.toString() || "0");
55
- if (transaction.useAllAmount) {
56
- const draftTransaction = {
57
- mode: transaction.mode,
58
- recipient: transaction.recipient,
59
- amount: transaction.amount ?? 0,
60
- useAllAmount: !!transaction.useAllAmount,
61
- assetReference: transaction?.assetReference || "",
62
- assetOwner: transaction?.assetOwner || "",
63
- subAccountId: transaction.subAccountId || "",
64
- family: transaction.family,
65
- feesStrategy: transaction.feesStrategy,
66
- data: transaction.data,
67
- };
68
- const { amount } = await alpacaApi.validateIntent(transactionToIntent(account, draftTransaction, alpacaApi.computeIntentType), { value: fees });
69
- transaction.amount = new BigNumber(amount.toString());
70
- }
71
54
  const signedInfo = await signerContext(deviceId, async (signer) => {
72
55
  const derivationPath = account.freshAddressPath;
73
56
  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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"}
@@ -0,0 +1,8 @@
1
+ import { SignerContext } from "@ledgerhq/coin-framework/signer";
2
+ import type { AccountBridge } from "@ledgerhq/types-live";
3
+ import { GenericTransaction } from "./types";
4
+ /**
5
+ * Sign Transaction with Ledger hardware
6
+ */
7
+ export declare const genericSignRawOperation: (network: any, kind: any) => (signerContext: SignerContext<any>) => AccountBridge<GenericTransaction>["signRawOperation"];
8
+ //# sourceMappingURL=signRawOperation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signRawOperation.d.ts","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/signRawOperation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAyC,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAMjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,uBAAuB,+CAElB,cAAc,GAAG,CAAC,KAAG,cAAc,kBAAkB,CAAC,CAAC,kBAAkB,CAsErF,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { Observable } from "rxjs";
2
+ import { getAlpacaApi } from "./alpaca";
3
+ import { buildOptimisticOperation } from "./utils";
4
+ import { log } from "@ledgerhq/logs";
5
+ import BigNumber from "bignumber.js";
6
+ /**
7
+ * Sign Transaction with Ledger hardware
8
+ */
9
+ export const genericSignRawOperation = (network, kind) => (signerContext) => ({ account, transaction, deviceId, }) => new Observable(o => {
10
+ async function main() {
11
+ const alpacaApi = getAlpacaApi(account.currency.id, kind);
12
+ const signedInfo = await signerContext(deviceId, async (signer) => {
13
+ const derivationPath = account.freshAddressPath;
14
+ const { publicKey } = (await signer.getAddress(derivationPath));
15
+ const sender = account.freshAddress;
16
+ // TODO: should compute it and pass it down to craftTransaction (duplicate call right now)
17
+ const sequenceNumber = await alpacaApi.getSequence(sender);
18
+ /* Craft unsigned blob via Alpaca */
19
+ const { transaction: unsigned } = await alpacaApi.craftRawTransaction(transaction, sender, publicKey, sequenceNumber);
20
+ /* Notify UI that the device is now showing the tx */
21
+ o.next({ type: "device-signature-requested" });
22
+ /* Sign on Ledger device */
23
+ const txnSig = await signer.signTransaction(derivationPath, unsigned);
24
+ return { unsigned, txnSig, publicKey, sequence: sequenceNumber };
25
+ });
26
+ /* If the user cancelled inside signerContext */
27
+ if (!signedInfo)
28
+ return;
29
+ o.next({ type: "device-signature-granted" });
30
+ /* Combine payload + signature for broadcast */
31
+ const combined = await alpacaApi.combine(signedInfo.unsigned, signedInfo.txnSig, signedInfo.publicKey);
32
+ const operation = buildOptimisticOperation(account, { family: account.currency.family, amount: new BigNumber(0), recipient: "" }, signedInfo.sequence);
33
+ if (!operation.id) {
34
+ log("Generic alpaca", "buildOptimisticOperation", operation);
35
+ }
36
+ // NOTE: we set the transactionSequenceNumber before on the operation
37
+ // now that we create it in craftTransaction, we might need to return it back from craftTransaction also
38
+ o.next({
39
+ type: "signed",
40
+ signedOperation: {
41
+ operation,
42
+ signature: combined,
43
+ },
44
+ });
45
+ }
46
+ main().then(() => o.complete(), e => o.error(e));
47
+ });
48
+ //# sourceMappingURL=signRawOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signRawOperation.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/signRawOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAGlC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAClC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAClB,CAAC,aAAiC,EAAyD,EAAE,CAC7F,CAAC,EACC,OAAO,EACP,WAAW,EACX,QAAQ,GAKT,EAAkC,EAAE,CACnC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;IACjB,KAAK,UAAU,IAAI;QACjB,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;YAC9D,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAChD,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAW,CAAC;YAE1E,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YAEpC,0FAA0F;YAC1F,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAE3D,oCAAoC;YACpC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,MAAM,SAAS,CAAC,mBAAmB,CACnE,WAAW,EACX,MAAM,EACN,SAAS,EACT,cAAc,CACf,CAAC;YAEF,qDAAqD;YACrD,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;YAC/C,2BAA2B;YAC3B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,gDAAgD;QAChD,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;QAE7C,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,CACtC,UAAU,CAAC,QAAQ,EACnB,UAAU,CAAC,MAAM,EACjB,UAAU,CAAC,SAAS,CACrB,CAAC;QACF,MAAM,SAAS,GAAG,wBAAwB,CACxC,OAAO,EACP,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,EAC5E,UAAU,CAAC,QAAQ,CACpB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE;YACjB,GAAG,CAAC,gBAAgB,EAAE,0BAA0B,EAAE,SAAS,CAAC,CAAC;SAC9D;QACD,qEAAqE;QACrE,wGAAwG;QACxG,CAAC,CAAC,IAAI,CAAC;YACL,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE;gBACf,SAAS;gBACT,SAAS,EAAE,QAAQ;aACpB;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,EAAE,CAAC,IAAI,CACT,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,EAClB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAChB,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -41,6 +41,7 @@ jest.mock("../buildSubAccounts", () => ({
41
41
  const chains = [
42
42
  { currency: { id: "stellar", name: "Stellar" }, network: "testnet" },
43
43
  { currency: { id: "ripple", name: "XRP" }, network: "mainnet" },
44
+ { currency: { id: "tezos", name: "Tezos" }, network: "mainnet" },
44
45
  ];
45
46
  describe("genericGetAccountShape (stellar & xrp)", () => {
46
47
  beforeEach(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"getAccountShape.test.js","sourceRoot":"","sources":["../../../../src/bridge/generic-alpaca/tests/getAccountShape.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getAccountShape.test.js","sourceRoot":"","sources":["../../../../src/bridge/generic-alpaca/tests/getAccountShape.test.ts"],"names":[],"mappings":"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"}
@@ -1,130 +1,205 @@
1
1
  import { genericPrepareTransaction } from "../prepareTransaction";
2
2
  import { getAlpacaApi } from "../alpaca";
3
- import { transactionToIntent } from "../utils";
4
3
  import BigNumber from "bignumber.js";
4
+ import * as accountModule from "@ledgerhq/coin-framework/account/index";
5
5
  jest.mock("../alpaca", () => ({
6
6
  getAlpacaApi: jest.fn(),
7
7
  }));
8
- jest.mock("../utils", () => ({
9
- transactionToIntent: jest.fn(),
10
- }));
11
8
  describe("genericPrepareTransaction", () => {
12
9
  const network = "testnet";
13
10
  const kind = "local";
14
- const account = {
15
- id: "test-account",
16
- address: "0xabc",
17
- currency: { id: "ethereum" },
18
- };
19
- const baseTransaction = {
20
- amount: new BigNumber(100_000),
21
- fees: new BigNumber(500),
22
- recipient: "0xrecipient",
23
- family: "family",
24
- };
25
- const txIntent = { mock: "intent" };
26
11
  beforeEach(() => {
27
12
  jest.clearAllMocks();
28
- transactionToIntent.mockReturnValue(txIntent);
29
13
  });
30
- it("updates fees if they differ", async () => {
31
- const newFee = new BigNumber(700);
14
+ it("embeds assets info, if existing", async () => {
32
15
  getAlpacaApi.mockReturnValue({
33
- estimateFees: jest.fn().mockResolvedValue({ value: newFee }),
16
+ estimateFees: jest.fn().mockResolvedValue({ value: 500n }),
17
+ getAssetFromToken: jest.fn().mockImplementation((token, owner) => {
18
+ return {
19
+ assetOwner: owner,
20
+ assetReference: token.contractAddress,
21
+ };
22
+ }),
23
+ });
24
+ jest.spyOn(accountModule, "decodeTokenAccountId").mockImplementation(accountId => {
25
+ const token = accountId === "ethereum_usdc_sub_account"
26
+ ? { contractAddress: "usdc_contract" }
27
+ : undefined;
28
+ return { accountId, token };
34
29
  });
35
30
  const prepareTransaction = genericPrepareTransaction(network, kind);
36
- const result = await prepareTransaction(account, { ...baseTransaction });
37
- expect(result.fees.toString()).toBe(newFee.toString());
38
- expect(transactionToIntent).toHaveBeenCalledWith(account, expect.objectContaining(baseTransaction), undefined);
31
+ const resultUsdcToken = await prepareTransaction({ currency: { id: "ethereum", units: [{}] }, freshAddress: "0xabc" }, {
32
+ amount: new BigNumber(100_000),
33
+ fees: new BigNumber(500),
34
+ recipient: "0xrecipient",
35
+ family: "family",
36
+ subAccountId: "ethereum_usdc_sub_account",
37
+ });
38
+ expect(resultUsdcToken).toEqual({
39
+ amount: new BigNumber(100_000),
40
+ fees: new BigNumber(500),
41
+ recipient: "0xrecipient",
42
+ family: "family",
43
+ assetReference: "usdc_contract",
44
+ assetOwner: "0xabc",
45
+ subAccountId: "ethereum_usdc_sub_account",
46
+ });
47
+ const resultUnknownToken = await prepareTransaction({ currency: { id: "ethereum", units: [{}] } }, {
48
+ amount: new BigNumber(100_000),
49
+ fees: new BigNumber(500),
50
+ recipient: "0xrecipient",
51
+ family: "family",
52
+ subAccountId: "ethereum_unknown_sub_account",
53
+ });
54
+ expect(resultUnknownToken).toEqual({
55
+ amount: new BigNumber(100_000),
56
+ fees: new BigNumber(500),
57
+ recipient: "0xrecipient",
58
+ family: "family",
59
+ assetReference: "",
60
+ assetOwner: "",
61
+ subAccountId: "ethereum_unknown_sub_account",
62
+ });
39
63
  });
40
- it("returns original transaction if fees are the same", async () => {
41
- const sameFee = baseTransaction.fees;
64
+ it.each([
65
+ ["all native amount", { useAllAmount: true }, new BigNumber(42)],
66
+ ["all native amount on staking scenarios", { mode: "stake" }, new BigNumber(42)],
67
+ ["all native amount on unstaking scenarios", { mode: "unstake" }, new BigNumber(42)],
68
+ [
69
+ "all token amount",
70
+ { subAccountId: "ethereum_usdc_sub_account", useAllAmount: true },
71
+ new BigNumber(5),
72
+ ],
73
+ [
74
+ "all token amount on staking scenarios",
75
+ { subAccountId: "ethereum_usdc_sub_account", mode: "stake" },
76
+ new BigNumber(5),
77
+ ],
78
+ [
79
+ "all token amount on unstaking scenarios",
80
+ { subAccountId: "ethereum_usdc_sub_account", mode: "unstake" },
81
+ new BigNumber(5),
82
+ ],
83
+ ])("uses %s, updating the amount", async (_s, partialTransaction, expectedAmount) => {
42
84
  getAlpacaApi.mockReturnValue({
43
- estimateFees: jest.fn().mockResolvedValue({ value: sameFee }),
85
+ estimateFees: jest.fn().mockResolvedValue({ value: 8n }),
86
+ getAssetFromToken: jest.fn().mockImplementation((token, owner) => {
87
+ return {
88
+ assetOwner: owner,
89
+ assetReference: token.contractAddress,
90
+ };
91
+ }),
92
+ });
93
+ jest.spyOn(accountModule, "decodeTokenAccountId").mockImplementation(accountId => {
94
+ const token = accountId === "ethereum_usdc_sub_account"
95
+ ? { contractAddress: "usdc_contract" }
96
+ : undefined;
97
+ return { accountId, token };
44
98
  });
45
99
  const prepareTransaction = genericPrepareTransaction(network, kind);
46
- const result = await prepareTransaction(account, baseTransaction);
47
- expect(result).toBe(baseTransaction);
100
+ const result = await prepareTransaction({
101
+ currency: { id: "ethereum", units: [{}] },
102
+ spendableBalance: new BigNumber(50),
103
+ subAccounts: [{ id: "ethereum_usdc_sub_account", spendableBalance: new BigNumber(5) }],
104
+ }, {
105
+ amount: new BigNumber(0),
106
+ recipient: "0xrecipient",
107
+ family: "family",
108
+ ...partialTransaction,
109
+ });
110
+ expect(result).toMatchObject({
111
+ amount: expectedAmount,
112
+ fees: new BigNumber(8),
113
+ recipient: "0xrecipient",
114
+ family: "family",
115
+ });
48
116
  });
49
- it("sets fee if original fees are undefined", async () => {
50
- const newFee = new BigNumber(1234);
117
+ it("updates fees from the estimation", async () => {
51
118
  getAlpacaApi.mockReturnValue({
52
- estimateFees: jest.fn().mockResolvedValue({ value: newFee }),
119
+ estimateFees: jest.fn().mockResolvedValue({ value: 700n }),
53
120
  });
54
- const txWithoutFees = { ...baseTransaction, fees: undefined };
55
121
  const prepareTransaction = genericPrepareTransaction(network, kind);
56
- const result = await prepareTransaction(account, txWithoutFees);
57
- expect(result.fees.toString()).toBe(newFee.toString());
58
- expect(result).not.toBe(txWithoutFees);
122
+ const result = await prepareTransaction({ currency: { id: "ethereum", units: [{}] } }, {
123
+ amount: new BigNumber(100_000),
124
+ fees: new BigNumber(500),
125
+ recipient: "0xrecipient",
126
+ family: "family",
127
+ });
128
+ expect(result).toEqual({
129
+ amount: new BigNumber(100_000),
130
+ fees: new BigNumber(700),
131
+ recipient: "0xrecipient",
132
+ family: "family",
133
+ assetReference: "",
134
+ assetOwner: "",
135
+ });
59
136
  });
60
- it("returns original if fees are BigNumber-equal but different instance", async () => {
61
- const sameValue = new BigNumber(baseTransaction.fees.toString()); // different instance
137
+ it("updates fees from the existing custom", async () => {
62
138
  getAlpacaApi.mockReturnValue({
63
- estimateFees: jest.fn().mockResolvedValue({ value: sameValue }),
139
+ estimateFees: jest.fn().mockResolvedValue({ value: 700n }),
64
140
  });
65
141
  const prepareTransaction = genericPrepareTransaction(network, kind);
66
- const result = await prepareTransaction(account, baseTransaction);
67
- expect(result).toBe(baseTransaction); // still same reference
68
- });
69
- it("propagates storageLimit from second estimation", async () => {
70
- const estimatedFee = new BigNumber(491);
71
- const estimateFeesFirstCall = jest.fn().mockResolvedValue({
72
- value: estimatedFee,
73
- parameters: { storageLimit: 300 },
142
+ const result = await prepareTransaction({ currency: { id: "ethereum", units: [{}] } }, {
143
+ amount: new BigNumber(100_000),
144
+ fees: new BigNumber(500),
145
+ recipient: "0xrecipient",
146
+ family: "family",
147
+ customFees: { parameters: { fees: new BigNumber(600) } },
74
148
  });
75
- const estimateFeesSecondCall = jest.fn().mockResolvedValue({
76
- value: estimatedFee,
77
- parameters: { storageLimit: 0 },
149
+ expect(result).toEqual({
150
+ amount: new BigNumber(100_000),
151
+ fees: new BigNumber(600),
152
+ customFees: { parameters: { fees: new BigNumber(600) } },
153
+ recipient: "0xrecipient",
154
+ family: "family",
155
+ assetReference: "",
156
+ assetOwner: "",
78
157
  });
158
+ });
159
+ it("propagates estimated 'storageLimit'", async () => {
79
160
  getAlpacaApi.mockReturnValue({
80
161
  estimateFees: jest
81
162
  .fn()
82
- .mockImplementationOnce(() => estimateFeesFirstCall())
83
- .mockImplementationOnce(() => estimateFeesSecondCall()),
163
+ .mockResolvedValue({ value: 700n, parameters: { storageLimit: 277n } }),
84
164
  });
85
- const txWithoutCustomFees = { ...baseTransaction, customFees: undefined };
86
165
  const prepareTransaction = genericPrepareTransaction(network, kind);
87
- const result = await prepareTransaction(account, txWithoutCustomFees);
88
- expect(result).toEqual(expect.objectContaining({
89
- fees: estimatedFee,
90
- storageLimit: new BigNumber(0),
91
- customFees: {
92
- parameters: {
93
- fees: undefined,
94
- },
95
- },
96
- }));
97
- expect(getAlpacaApi().estimateFees).toHaveBeenCalledTimes(2);
98
- });
99
- it("propagates storageLimit showing new account scenario", async () => {
100
- const estimatedFee = new BigNumber(491);
101
- const estimateFeesFirstCall = jest.fn().mockResolvedValue({
102
- value: estimatedFee,
103
- parameters: { storageLimit: 300 },
166
+ const result = await prepareTransaction({ currency: { id: "ethereum", units: [{}] } }, {
167
+ amount: new BigNumber(100_000),
168
+ fees: new BigNumber(500),
169
+ recipient: "0xrecipient",
170
+ family: "family",
104
171
  });
105
- const estimateFeesSecondCall = jest.fn().mockResolvedValue({
106
- value: estimatedFee,
107
- parameters: { storageLimit: 277 },
172
+ expect(result).toEqual({
173
+ amount: new BigNumber(100_000),
174
+ fees: new BigNumber(700),
175
+ storageLimit: new BigNumber(277),
176
+ recipient: "0xrecipient",
177
+ family: "family",
178
+ assetReference: "",
179
+ assetOwner: "",
108
180
  });
181
+ });
182
+ it("keeps the amount used during the estimation when using all native amount", async () => {
109
183
  getAlpacaApi.mockReturnValue({
110
- estimateFees: jest
111
- .fn()
112
- .mockImplementationOnce(() => estimateFeesFirstCall())
113
- .mockImplementationOnce(() => estimateFeesSecondCall()),
184
+ estimateFees: jest.fn().mockResolvedValue({ value: 700n, parameters: { amount: 1000n } }),
114
185
  });
115
- const txWithoutCustomFees = { ...baseTransaction, customFees: undefined };
116
186
  const prepareTransaction = genericPrepareTransaction(network, kind);
117
- const result = await prepareTransaction(account, txWithoutCustomFees);
118
- expect(result).toEqual(expect.objectContaining({
119
- fees: estimatedFee,
120
- storageLimit: new BigNumber(277),
121
- customFees: {
122
- parameters: {
123
- fees: undefined,
124
- },
125
- },
126
- }));
127
- expect(getAlpacaApi().estimateFees).toHaveBeenCalledTimes(2);
187
+ const result = await prepareTransaction({ currency: { id: "ethereum", units: [{}] } }, {
188
+ amount: new BigNumber(0),
189
+ fees: new BigNumber(500),
190
+ recipient: "0xrecipient",
191
+ family: "family",
192
+ useAllAmount: true,
193
+ });
194
+ expect(result).toEqual({
195
+ amount: new BigNumber(1000),
196
+ fees: new BigNumber(700),
197
+ recipient: "0xrecipient",
198
+ family: "family",
199
+ assetReference: "",
200
+ assetOwner: "",
201
+ useAllAmount: true,
202
+ });
128
203
  });
129
204
  });
130
205
  //# sourceMappingURL=prepareTransaction.test.js.map