@ledgerhq/live-common 34.45.0-nightly.1 → 34.45.0-nightly.3

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 (291) hide show
  1. package/lib/__tests__/test-helpers/bridge.d.ts.map +1 -1
  2. package/lib/__tests__/test-helpers/bridge.js +3 -1
  3. package/lib/__tests__/test-helpers/bridge.js.map +1 -1
  4. package/lib/braze/anonymousUsers.d.ts +1 -0
  5. package/lib/braze/anonymousUsers.d.ts.map +1 -1
  6. package/lib/braze/anonymousUsers.js +7 -5
  7. package/lib/braze/anonymousUsers.js.map +1 -1
  8. package/lib/bridge/generic-alpaca/accountBridge.d.ts +1 -1
  9. package/lib/bridge/generic-alpaca/accountBridge.d.ts.map +1 -1
  10. package/lib/bridge/generic-alpaca/accountBridge.js.map +1 -1
  11. package/lib/bridge/generic-alpaca/alpaca/index.d.ts +1 -1
  12. package/lib/bridge/generic-alpaca/alpaca/index.d.ts.map +1 -1
  13. package/lib/bridge/generic-alpaca/alpaca/index.js +4 -2
  14. package/lib/bridge/generic-alpaca/alpaca/index.js.map +1 -1
  15. package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts +4 -4
  16. package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts.map +1 -1
  17. package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.js +10 -10
  18. package/lib/bridge/generic-alpaca/alpaca/network/network-alpaca.js.map +1 -1
  19. package/lib/bridge/generic-alpaca/broadcast.d.ts +1 -1
  20. package/lib/bridge/generic-alpaca/broadcast.d.ts.map +1 -1
  21. package/lib/bridge/generic-alpaca/broadcast.js.map +1 -1
  22. package/lib/bridge/generic-alpaca/buildSubAccounts.d.ts +17 -0
  23. package/lib/bridge/generic-alpaca/buildSubAccounts.d.ts.map +1 -0
  24. package/lib/bridge/generic-alpaca/buildSubAccounts.js +75 -0
  25. package/lib/bridge/generic-alpaca/buildSubAccounts.js.map +1 -0
  26. package/lib/bridge/generic-alpaca/createTransaction.d.ts +17 -9
  27. package/lib/bridge/generic-alpaca/createTransaction.d.ts.map +1 -1
  28. package/lib/bridge/generic-alpaca/createTransaction.js +36 -10
  29. package/lib/bridge/generic-alpaca/createTransaction.js.map +1 -1
  30. package/lib/bridge/generic-alpaca/currencyBridge.d.ts +1 -1
  31. package/lib/bridge/generic-alpaca/currencyBridge.d.ts.map +1 -1
  32. package/lib/bridge/generic-alpaca/currencyBridge.js.map +1 -1
  33. package/lib/bridge/generic-alpaca/estimateMaxSpendable.d.ts +1 -1
  34. package/lib/bridge/generic-alpaca/estimateMaxSpendable.d.ts.map +1 -1
  35. package/lib/bridge/generic-alpaca/estimateMaxSpendable.js +9 -0
  36. package/lib/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
  37. package/lib/bridge/generic-alpaca/getAccountShape.d.ts +1 -1
  38. package/lib/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
  39. package/lib/bridge/generic-alpaca/getAccountShape.js +66 -37
  40. package/lib/bridge/generic-alpaca/getAccountShape.js.map +1 -1
  41. package/lib/bridge/generic-alpaca/getTransactionStatus.d.ts +1 -1
  42. package/lib/bridge/generic-alpaca/getTransactionStatus.d.ts.map +1 -1
  43. package/lib/bridge/generic-alpaca/getTransactionStatus.js +27 -15
  44. package/lib/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
  45. package/lib/bridge/generic-alpaca/prepareTransaction.d.ts +5 -1
  46. package/lib/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  47. package/lib/bridge/generic-alpaca/prepareTransaction.js +28 -5
  48. package/lib/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  49. package/lib/bridge/generic-alpaca/signOperation.d.ts +1 -1
  50. package/lib/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  51. package/lib/bridge/generic-alpaca/signOperation.js +68 -13
  52. package/lib/bridge/generic-alpaca/signOperation.js.map +1 -1
  53. package/lib/bridge/generic-alpaca/signer/index.d.ts +1 -1
  54. package/lib/bridge/generic-alpaca/signer/index.d.ts.map +1 -1
  55. package/lib/bridge/generic-alpaca/signer/index.js +38 -5
  56. package/lib/bridge/generic-alpaca/signer/index.js.map +1 -1
  57. package/lib/bridge/generic-alpaca/signer/signTransaction.d.ts +2 -0
  58. package/lib/bridge/generic-alpaca/signer/signTransaction.d.ts.map +1 -1
  59. package/lib/bridge/generic-alpaca/signer/signTransaction.js +8 -1
  60. package/lib/bridge/generic-alpaca/signer/signTransaction.js.map +1 -1
  61. package/lib/bridge/generic-alpaca/signer/types.d.ts +3 -0
  62. package/lib/bridge/generic-alpaca/signer/types.d.ts.map +1 -1
  63. package/lib/bridge/generic-alpaca/tests/estimateMaxSpendable.test.js +70 -46
  64. package/lib/bridge/generic-alpaca/tests/estimateMaxSpendable.test.js.map +1 -1
  65. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js +1 -1
  66. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  67. package/lib/bridge/generic-alpaca/tests/signOperation.test.js +25 -22
  68. package/lib/bridge/generic-alpaca/tests/signOperation.test.js.map +1 -1
  69. package/lib/bridge/generic-alpaca/tests/utils.test.d.ts.map +1 -0
  70. package/lib/bridge/generic-alpaca/{utils.test.js → tests/utils.test.js} +1 -1
  71. package/lib/bridge/generic-alpaca/tests/utils.test.js.map +1 -0
  72. package/lib/bridge/generic-alpaca/utils.d.ts +36 -1
  73. package/lib/bridge/generic-alpaca/utils.d.ts.map +1 -1
  74. package/lib/bridge/generic-alpaca/utils.js +130 -14
  75. package/lib/bridge/generic-alpaca/utils.js.map +1 -1
  76. package/lib/bridge/impl.d.ts.map +1 -1
  77. package/lib/bridge/impl.js +5 -4
  78. package/lib/bridge/impl.js.map +1 -1
  79. package/lib/e2e/enum/Account.js +4 -4
  80. package/lib/e2e/enum/Account.js.map +1 -1
  81. package/lib/e2e/enum/AppInfos.d.ts +1 -1
  82. package/lib/e2e/enum/AppInfos.d.ts.map +1 -1
  83. package/lib/e2e/enum/AppInfos.js +1 -1
  84. package/lib/e2e/enum/AppInfos.js.map +1 -1
  85. package/lib/e2e/enum/Currency.d.ts.map +1 -1
  86. package/lib/e2e/enum/Currency.js +3 -3
  87. package/lib/e2e/enum/Currency.js.map +1 -1
  88. package/lib/e2e/speculos.js +2 -2
  89. package/lib/e2e/speculos.js.map +1 -1
  90. package/lib/families/stellar/bridge/logic.d.ts +1 -1
  91. package/lib/families/stellar/bridge/logic.d.ts.map +1 -1
  92. package/lib/families/stellar/bridge/logic.js +1 -1
  93. package/lib/families/stellar/bridge/logic.js.map +1 -1
  94. package/lib/families/stellar/bridge/mock.js +2 -2
  95. package/lib/families/stellar/bridge/mock.js.map +1 -1
  96. package/lib/families/stellar/setup.d.ts +3 -6
  97. package/lib/families/stellar/setup.d.ts.map +1 -1
  98. package/lib/families/stellar/setup.js +3 -12
  99. package/lib/families/stellar/setup.js.map +1 -1
  100. package/lib/families/xrp/bridge/mock.js +2 -2
  101. package/lib/families/xrp/bridge/mock.js.map +1 -1
  102. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  103. package/lib/featureFlags/defaultFeatures.js +4 -2
  104. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  105. package/lib/generated/bridge/js.d.ts +0 -1
  106. package/lib/generated/bridge/js.d.ts.map +1 -1
  107. package/lib/generated/bridge/js.js +12 -14
  108. package/lib/generated/bridge/js.js.map +1 -1
  109. package/lib/generated/transaction.d.ts +1 -1
  110. package/lib/modularDrawer/__test__/useModularDrawerVisibility.test.js +229 -14
  111. package/lib/modularDrawer/__test__/useModularDrawerVisibility.test.js.map +1 -1
  112. package/lib/modularDrawer/enums.d.ts +0 -1
  113. package/lib/modularDrawer/enums.d.ts.map +1 -1
  114. package/lib/modularDrawer/enums.js +0 -1
  115. package/lib/modularDrawer/enums.js.map +1 -1
  116. package/lib/modularDrawer/useModularDrawerVisibility.d.ts +7 -1
  117. package/lib/modularDrawer/useModularDrawerVisibility.d.ts.map +1 -1
  118. package/lib/modularDrawer/useModularDrawerVisibility.js +18 -2
  119. package/lib/modularDrawer/useModularDrawerVisibility.js.map +1 -1
  120. package/lib-es/__tests__/test-helpers/bridge.d.ts.map +1 -1
  121. package/lib-es/__tests__/test-helpers/bridge.js +3 -1
  122. package/lib-es/__tests__/test-helpers/bridge.js.map +1 -1
  123. package/lib-es/braze/anonymousUsers.d.ts +1 -0
  124. package/lib-es/braze/anonymousUsers.d.ts.map +1 -1
  125. package/lib-es/braze/anonymousUsers.js +5 -4
  126. package/lib-es/braze/anonymousUsers.js.map +1 -1
  127. package/lib-es/bridge/generic-alpaca/accountBridge.d.ts +1 -1
  128. package/lib-es/bridge/generic-alpaca/accountBridge.d.ts.map +1 -1
  129. package/lib-es/bridge/generic-alpaca/accountBridge.js.map +1 -1
  130. package/lib-es/bridge/generic-alpaca/alpaca/index.d.ts +1 -1
  131. package/lib-es/bridge/generic-alpaca/alpaca/index.d.ts.map +1 -1
  132. package/lib-es/bridge/generic-alpaca/alpaca/index.js +4 -2
  133. package/lib-es/bridge/generic-alpaca/alpaca/index.js.map +1 -1
  134. package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts +4 -4
  135. package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.d.ts.map +1 -1
  136. package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.js +10 -10
  137. package/lib-es/bridge/generic-alpaca/alpaca/network/network-alpaca.js.map +1 -1
  138. package/lib-es/bridge/generic-alpaca/broadcast.d.ts +1 -1
  139. package/lib-es/bridge/generic-alpaca/broadcast.d.ts.map +1 -1
  140. package/lib-es/bridge/generic-alpaca/broadcast.js.map +1 -1
  141. package/lib-es/bridge/generic-alpaca/buildSubAccounts.d.ts +17 -0
  142. package/lib-es/bridge/generic-alpaca/buildSubAccounts.d.ts.map +1 -0
  143. package/lib-es/bridge/generic-alpaca/buildSubAccounts.js +65 -0
  144. package/lib-es/bridge/generic-alpaca/buildSubAccounts.js.map +1 -0
  145. package/lib-es/bridge/generic-alpaca/createTransaction.d.ts +17 -9
  146. package/lib-es/bridge/generic-alpaca/createTransaction.d.ts.map +1 -1
  147. package/lib-es/bridge/generic-alpaca/createTransaction.js +35 -9
  148. package/lib-es/bridge/generic-alpaca/createTransaction.js.map +1 -1
  149. package/lib-es/bridge/generic-alpaca/currencyBridge.d.ts +1 -1
  150. package/lib-es/bridge/generic-alpaca/currencyBridge.d.ts.map +1 -1
  151. package/lib-es/bridge/generic-alpaca/currencyBridge.js.map +1 -1
  152. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.d.ts +1 -1
  153. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.d.ts.map +1 -1
  154. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js +9 -0
  155. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
  156. package/lib-es/bridge/generic-alpaca/getAccountShape.d.ts +1 -1
  157. package/lib-es/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
  158. package/lib-es/bridge/generic-alpaca/getAccountShape.js +66 -37
  159. package/lib-es/bridge/generic-alpaca/getAccountShape.js.map +1 -1
  160. package/lib-es/bridge/generic-alpaca/getTransactionStatus.d.ts +1 -1
  161. package/lib-es/bridge/generic-alpaca/getTransactionStatus.d.ts.map +1 -1
  162. package/lib-es/bridge/generic-alpaca/getTransactionStatus.js +27 -15
  163. package/lib-es/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
  164. package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts +5 -1
  165. package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  166. package/lib-es/bridge/generic-alpaca/prepareTransaction.js +26 -4
  167. package/lib-es/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  168. package/lib-es/bridge/generic-alpaca/signOperation.d.ts +1 -1
  169. package/lib-es/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  170. package/lib-es/bridge/generic-alpaca/signOperation.js +65 -13
  171. package/lib-es/bridge/generic-alpaca/signOperation.js.map +1 -1
  172. package/lib-es/bridge/generic-alpaca/signer/index.d.ts +1 -1
  173. package/lib-es/bridge/generic-alpaca/signer/index.d.ts.map +1 -1
  174. package/lib-es/bridge/generic-alpaca/signer/index.js +39 -6
  175. package/lib-es/bridge/generic-alpaca/signer/index.js.map +1 -1
  176. package/lib-es/bridge/generic-alpaca/signer/signTransaction.d.ts +2 -0
  177. package/lib-es/bridge/generic-alpaca/signer/signTransaction.d.ts.map +1 -1
  178. package/lib-es/bridge/generic-alpaca/signer/signTransaction.js +6 -0
  179. package/lib-es/bridge/generic-alpaca/signer/signTransaction.js.map +1 -1
  180. package/lib-es/bridge/generic-alpaca/signer/types.d.ts +3 -0
  181. package/lib-es/bridge/generic-alpaca/signer/types.d.ts.map +1 -1
  182. package/lib-es/bridge/generic-alpaca/tests/estimateMaxSpendable.test.js +70 -46
  183. package/lib-es/bridge/generic-alpaca/tests/estimateMaxSpendable.test.js.map +1 -1
  184. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js +1 -1
  185. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  186. package/lib-es/bridge/generic-alpaca/tests/signOperation.test.js +25 -22
  187. package/lib-es/bridge/generic-alpaca/tests/signOperation.test.js.map +1 -1
  188. package/lib-es/bridge/generic-alpaca/tests/utils.test.d.ts.map +1 -0
  189. package/lib-es/bridge/generic-alpaca/{utils.test.js → tests/utils.test.js} +1 -1
  190. package/lib-es/bridge/generic-alpaca/tests/utils.test.js.map +1 -0
  191. package/lib-es/bridge/generic-alpaca/utils.d.ts +36 -1
  192. package/lib-es/bridge/generic-alpaca/utils.d.ts.map +1 -1
  193. package/lib-es/bridge/generic-alpaca/utils.js +130 -14
  194. package/lib-es/bridge/generic-alpaca/utils.js.map +1 -1
  195. package/lib-es/bridge/impl.d.ts.map +1 -1
  196. package/lib-es/bridge/impl.js +5 -4
  197. package/lib-es/bridge/impl.js.map +1 -1
  198. package/lib-es/e2e/enum/Account.js +4 -4
  199. package/lib-es/e2e/enum/Account.js.map +1 -1
  200. package/lib-es/e2e/enum/AppInfos.d.ts +1 -1
  201. package/lib-es/e2e/enum/AppInfos.d.ts.map +1 -1
  202. package/lib-es/e2e/enum/AppInfos.js +1 -1
  203. package/lib-es/e2e/enum/AppInfos.js.map +1 -1
  204. package/lib-es/e2e/enum/Currency.d.ts.map +1 -1
  205. package/lib-es/e2e/enum/Currency.js +3 -3
  206. package/lib-es/e2e/enum/Currency.js.map +1 -1
  207. package/lib-es/e2e/speculos.js +2 -2
  208. package/lib-es/e2e/speculos.js.map +1 -1
  209. package/lib-es/families/stellar/bridge/logic.d.ts +1 -1
  210. package/lib-es/families/stellar/bridge/logic.d.ts.map +1 -1
  211. package/lib-es/families/stellar/bridge/logic.js +1 -1
  212. package/lib-es/families/stellar/bridge/logic.js.map +1 -1
  213. package/lib-es/families/stellar/bridge/mock.js +2 -2
  214. package/lib-es/families/stellar/bridge/mock.js.map +1 -1
  215. package/lib-es/families/stellar/setup.d.ts +3 -6
  216. package/lib-es/families/stellar/setup.d.ts.map +1 -1
  217. package/lib-es/families/stellar/setup.js +2 -10
  218. package/lib-es/families/stellar/setup.js.map +1 -1
  219. package/lib-es/families/xrp/bridge/mock.js +2 -2
  220. package/lib-es/families/xrp/bridge/mock.js.map +1 -1
  221. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  222. package/lib-es/featureFlags/defaultFeatures.js +4 -2
  223. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  224. package/lib-es/generated/bridge/js.d.ts +0 -1
  225. package/lib-es/generated/bridge/js.d.ts.map +1 -1
  226. package/lib-es/generated/bridge/js.js +0 -2
  227. package/lib-es/generated/bridge/js.js.map +1 -1
  228. package/lib-es/generated/transaction.d.ts +1 -1
  229. package/lib-es/modularDrawer/__test__/useModularDrawerVisibility.test.js +229 -14
  230. package/lib-es/modularDrawer/__test__/useModularDrawerVisibility.test.js.map +1 -1
  231. package/lib-es/modularDrawer/enums.d.ts +0 -1
  232. package/lib-es/modularDrawer/enums.d.ts.map +1 -1
  233. package/lib-es/modularDrawer/enums.js +0 -1
  234. package/lib-es/modularDrawer/enums.js.map +1 -1
  235. package/lib-es/modularDrawer/useModularDrawerVisibility.d.ts +7 -1
  236. package/lib-es/modularDrawer/useModularDrawerVisibility.d.ts.map +1 -1
  237. package/lib-es/modularDrawer/useModularDrawerVisibility.js +18 -2
  238. package/lib-es/modularDrawer/useModularDrawerVisibility.js.map +1 -1
  239. package/package.json +50 -48
  240. package/src/__tests__/test-helpers/bridge.ts +3 -1
  241. package/src/braze/anonymousUsers.ts +7 -4
  242. package/src/bridge/generic-alpaca/accountBridge.ts +1 -4
  243. package/src/bridge/generic-alpaca/alpaca/index.ts +7 -2
  244. package/src/bridge/generic-alpaca/alpaca/network/network-alpaca.ts +17 -22
  245. package/src/bridge/generic-alpaca/broadcast.ts +1 -4
  246. package/src/bridge/generic-alpaca/buildSubAccounts.ts +110 -0
  247. package/src/bridge/generic-alpaca/createTransaction.ts +48 -18
  248. package/src/bridge/generic-alpaca/currencyBridge.ts +1 -1
  249. package/src/bridge/generic-alpaca/estimateMaxSpendable.ts +13 -4
  250. package/src/bridge/generic-alpaca/getAccountShape.ts +84 -46
  251. package/src/bridge/generic-alpaca/getTransactionStatus.ts +46 -22
  252. package/src/bridge/generic-alpaca/prepareTransaction.ts +41 -7
  253. package/src/bridge/generic-alpaca/signOperation.ts +88 -18
  254. package/src/bridge/generic-alpaca/signer/index.ts +43 -7
  255. package/src/bridge/generic-alpaca/signer/signTransaction.ts +11 -0
  256. package/src/bridge/generic-alpaca/signer/types.ts +1 -0
  257. package/src/bridge/generic-alpaca/tests/estimateMaxSpendable.test.ts +72 -47
  258. package/src/bridge/generic-alpaca/tests/prepareTransaction.test.ts +1 -1
  259. package/src/bridge/generic-alpaca/tests/signOperation.test.ts +28 -26
  260. package/src/bridge/generic-alpaca/{utils.test.ts → tests/utils.test.ts} +1 -1
  261. package/src/bridge/generic-alpaca/utils.ts +158 -18
  262. package/src/bridge/impl.ts +5 -4
  263. package/src/e2e/enum/Account.ts +4 -4
  264. package/src/e2e/enum/AppInfos.ts +1 -1
  265. package/src/e2e/enum/Currency.ts +3 -13
  266. package/src/e2e/speculos.ts +2 -2
  267. package/src/families/stellar/__snapshots__/bridge.integration.test.ts.snap +569 -2068
  268. package/src/families/stellar/bridge/logic.ts +1 -1
  269. package/src/families/stellar/bridge/mock.ts +2 -2
  270. package/src/families/stellar/setup.ts +2 -22
  271. package/src/families/xrp/bridge/mock.ts +2 -2
  272. package/src/featureFlags/defaultFeatures.ts +4 -2
  273. package/src/generated/bridge/js.ts +0 -2
  274. package/src/modularDrawer/__test__/useModularDrawerVisibility.test.ts +345 -14
  275. package/src/modularDrawer/enums.ts +0 -1
  276. package/src/modularDrawer/useModularDrawerVisibility.ts +26 -2
  277. package/lib/bridge/generic-alpaca/utils.test.d.ts.map +0 -1
  278. package/lib/bridge/generic-alpaca/utils.test.js.map +0 -1
  279. package/lib/families/canton/bridge.integration.test.d.ts +0 -2
  280. package/lib/families/canton/bridge.integration.test.d.ts.map +0 -1
  281. package/lib/families/canton/bridge.integration.test.js +0 -7
  282. package/lib/families/canton/bridge.integration.test.js.map +0 -1
  283. package/lib-es/bridge/generic-alpaca/utils.test.d.ts.map +0 -1
  284. package/lib-es/bridge/generic-alpaca/utils.test.js.map +0 -1
  285. package/lib-es/families/canton/bridge.integration.test.d.ts +0 -2
  286. package/lib-es/families/canton/bridge.integration.test.d.ts.map +0 -1
  287. package/lib-es/families/canton/bridge.integration.test.js +0 -5
  288. package/lib-es/families/canton/bridge.integration.test.js.map +0 -1
  289. package/src/families/canton/bridge.integration.test.ts +0 -6
  290. /package/lib/bridge/generic-alpaca/{utils.test.d.ts → tests/utils.test.d.ts} +0 -0
  291. /package/lib-es/bridge/generic-alpaca/{utils.test.d.ts → tests/utils.test.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"estimateMaxSpendable.d.ts","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/estimateMaxSpendable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAOrD,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,GAAG,QAAQ,GACvB,aAAa,CAAC,GAAG,CAAC,CAAC,sBAAsB,CAAC,CAgB5C"}
1
+ {"version":3,"file":"estimateMaxSpendable.d.ts","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/estimateMaxSpendable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAOrD,wBAAgB,2BAA2B,CACzC,OAAO,KAAA,EACP,IAAI,KAAA,GACH,aAAa,CAAC,GAAG,CAAC,CAAC,sBAAsB,CAAC,CAyB5C"}
@@ -5,13 +5,22 @@ import { transactionToIntent } from "./utils";
5
5
  import BigNumber from "bignumber.js";
6
6
  export function genericEstimateMaxSpendable(network, kind) {
7
7
  return async ({ account, parentAccount, transaction }) => {
8
+ if (account.type === "TokenAccount") {
9
+ return account.spendableBalance;
10
+ }
8
11
  const mainAccount = getMainAccount(account, parentAccount);
9
12
  const draftTransaction = {
10
13
  ...createTransaction(account),
11
14
  ...transaction,
12
15
  amount: mainAccount.spendableBalance,
16
+ useAllAmount: true,
17
+ fees: transaction?.fees ? BigInt(transaction.fees.toString()) : 0n,
13
18
  };
14
19
  const fees = await getAlpacaApi(network, kind).estimateFees(transactionToIntent(mainAccount, draftTransaction));
20
+ const { amount } = await getAlpacaApi(network, kind).validateIntent(transactionToIntent(account, { ...draftTransaction }));
21
+ if (network === "stellar") {
22
+ return amount > 0 ? new BigNumber(amount.toString()) : new BigNumber(0);
23
+ }
15
24
  const bnFee = BigNumber(fees.value.toString());
16
25
  return BigNumber.max(0, account.spendableBalance.minus(bnFee));
17
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"estimateMaxSpendable.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/estimateMaxSpendable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,MAAM,UAAU,2BAA2B,CACzC,OAAe,EACf,IAAwB;IAExB,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE;QACvD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAE3D,MAAM,gBAAgB,GAAG;YACvB,GAAG,iBAAiB,CAAC,OAAc,CAAC;YACpC,GAAG,WAAW;YACd,MAAM,EAAE,WAAW,CAAC,gBAAgB;SACrC,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,YAAY,CACzD,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CACnD,CAAC;QAEF,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"estimateMaxSpendable.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/estimateMaxSpendable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,MAAM,UAAU,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,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG;YACvB,GAAG,iBAAiB,CAAC,OAAc,CAAC;YACpC,GAAG,WAAW;YACd,MAAM,EAAE,WAAW,CAAC,gBAAgB;YACpC,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;SACnE,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,YAAY,CACzD,mBAAmB,CAAC,WAAW,EAAE,gBAAgB,CAAC,CACnD,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,cAAc,CACjE,mBAAmB,CAAC,OAAO,EAAE,EAAE,GAAG,gBAAgB,EAAE,CAAC,CACtD,CAAC;QACF,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;SACzE;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { GetAccountShape } from "@ledgerhq/coin-framework/bridge/jsHelpers";
2
- export declare function genericGetAccountShape(network: string, kind: "local" | "remote"): GetAccountShape;
2
+ export declare function genericGetAccountShape(network: string, kind: string): GetAccountShape;
3
3
  //# sourceMappingURL=getAccountShape.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getAccountShape.d.ts","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/getAccountShape.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAY,MAAM,2CAA2C,CAAC;AAKtF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,eAAe,CAsDjG"}
1
+ {"version":3,"file":"getAccountShape.d.ts","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/getAccountShape.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAY,MAAM,2CAA2C,CAAC;AAQtF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAyFrF"}
@@ -3,48 +3,77 @@ import { mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
3
3
  import BigNumber from "bignumber.js";
4
4
  import { getAlpacaApi } from "./alpaca";
5
5
  import { adaptCoreOperationToLiveOperation, extractBalance } from "./utils";
6
+ import { inferSubOperations } from "@ledgerhq/coin-framework/serialization";
7
+ import { findToken } from "./buildSubAccounts";
8
+ import { buildSubAccounts } from "./buildSubAccounts";
6
9
  export function genericGetAccountShape(network, kind) {
7
- return async (info) => {
8
- try {
9
- const { address, initialAccount, currency, derivationMode } = info;
10
- const accountId = encodeAccountId({
11
- type: "js",
12
- version: "2",
13
- currencyId: currency.id,
14
- xpubOrAddress: address,
15
- derivationMode,
16
- });
17
- const blockInfo = await getAlpacaApi(network, kind).lastBlock();
18
- const balances = await getAlpacaApi(network, kind).getBalance(address);
19
- const nativeBalance = extractBalance(balances, "native");
20
- const balance = BigNumber(nativeBalance.value.toString());
21
- let spendableBalance;
22
- if (nativeBalance.locked) {
23
- spendableBalance = BigNumber.max(balance.minus(BigNumber(nativeBalance.locked.toString())), BigNumber(0));
10
+ return async (info, syncConfig) => {
11
+ const { address, initialAccount, currency, derivationMode } = info;
12
+ const alpacaApi = getAlpacaApi(network, kind);
13
+ if (alpacaApi.getChainSpecificRules) {
14
+ const chainSpecificValidation = alpacaApi.getChainSpecificRules();
15
+ if (chainSpecificValidation.getAccountShape) {
16
+ chainSpecificValidation.getAccountShape(address);
24
17
  }
25
- else {
26
- spendableBalance = initialAccount?.spendableBalance || balance;
18
+ }
19
+ const accountId = encodeAccountId({
20
+ type: "js",
21
+ version: "2",
22
+ currencyId: currency.id,
23
+ xpubOrAddress: address,
24
+ derivationMode,
25
+ });
26
+ const blockInfo = await alpacaApi.lastBlock();
27
+ const balanceRes = await alpacaApi.getBalance(address);
28
+ const nativeAsset = extractBalance(balanceRes, "native");
29
+ const assetsBalance = balanceRes
30
+ .filter(b => b.asset.type !== "native")
31
+ .filter(b => findToken(currency, b));
32
+ const nativeBalance = BigInt(nativeAsset?.value ?? "0");
33
+ const spendableBalance = BigInt(nativeBalance - BigInt(nativeAsset?.locked ?? "0"));
34
+ const oldOps = (initialAccount?.operations || []);
35
+ const lastPagingToken = oldOps[0]?.extra?.pagingToken || "";
36
+ const blockHeight = oldOps.length ? (oldOps[0].blockHeight ?? 0) + 1 : 0;
37
+ const paginationParams = { minHeight: blockHeight };
38
+ if (lastPagingToken) {
39
+ paginationParams.lastPagingToken = lastPagingToken;
40
+ }
41
+ const [newCoreOps] = await alpacaApi.listOperations(address, paginationParams);
42
+ const newOps = newCoreOps.map(op => adaptCoreOperationToLiveOperation(accountId, op));
43
+ const mergedOps = mergeOps(oldOps, newOps);
44
+ const assetOperations = [];
45
+ mergedOps.forEach(operation => {
46
+ if (operation?.extra?.assetReference &&
47
+ operation?.extra?.assetOwner &&
48
+ !["OPT_IN", "OPT_OUT"].includes(operation.type)) {
49
+ assetOperations.push(operation);
27
50
  }
28
- const oldOperations = initialAccount?.operations || [];
29
- const blockHeight = oldOperations.length ? (oldOperations[0].blockHeight ?? 0) + 1 : 0;
30
- const [newOperations] = await getAlpacaApi(network, kind).listOperations(address, {
31
- minHeight: blockHeight,
32
- });
33
- const operations = mergeOps(oldOperations, newOperations.map(op => adaptCoreOperationToLiveOperation(accountId, op)));
51
+ });
52
+ const subAccounts = buildSubAccounts({
53
+ currency,
54
+ accountId,
55
+ assetsBalance,
56
+ syncConfig,
57
+ operations: assetOperations,
58
+ }) || [];
59
+ const operationsWithSubs = mergedOps.map(op => {
60
+ const subOperations = inferSubOperations(op.hash, subAccounts);
34
61
  return {
35
- id: accountId,
36
- xpub: address,
37
- blockHeight: operations.length === 0 ? 0 : blockInfo.height || initialAccount?.blockHeight,
38
- balance,
39
- spendableBalance,
40
- operations,
41
- operationsCount: operations.length,
62
+ ...op,
63
+ subOperations,
42
64
  };
43
- }
44
- catch (e) {
45
- console.error("Error in getAccountShape", e);
46
- throw e;
47
- }
65
+ });
66
+ const res = {
67
+ id: accountId,
68
+ xpub: address,
69
+ blockHeight: operationsWithSubs.length === 0 ? 0 : blockInfo.height || initialAccount?.blockHeight,
70
+ balance: new BigNumber(nativeBalance.toString()),
71
+ spendableBalance: new BigNumber(spendableBalance.toString()),
72
+ operations: operationsWithSubs,
73
+ subAccounts,
74
+ operationsCount: operationsWithSubs.length,
75
+ };
76
+ return res;
48
77
  };
49
78
  }
50
79
  //# sourceMappingURL=getAccountShape.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getAccountShape.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/getAccountShape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAmB,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,iCAAiC,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE5E,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,IAAwB;IAC9E,OAAO,KAAK,EAAC,IAAI,EAAC,EAAE;QAClB,IAAI;YACF,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;YACnE,MAAM,SAAS,GAAG,eAAe,CAAC;gBAChC,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,GAAG;gBACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACvB,aAAa,EAAE,OAAO;gBACtB,cAAc;aACf,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAEhE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACvE,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE1D,IAAI,gBAA2B,CAAC;YAChC,IAAI,aAAa,CAAC,MAAM,EAAE;gBACxB,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAC9B,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EACzD,SAAS,CAAC,CAAC,CAAC,CACb,CAAC;aACH;iBAAM;gBACL,gBAAgB,GAAG,cAAc,EAAE,gBAAgB,IAAI,OAAO,CAAC;aAChE;YACD,MAAM,aAAa,GAAG,cAAc,EAAE,UAAU,IAAI,EAAE,CAAC;YAEvD,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvF,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE;gBAChF,SAAS,EAAE,WAAW;aACvB,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,QAAQ,CACzB,aAAa,EACb,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,iCAAiC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAC1E,CAAC;YAEF,OAAO;gBACL,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,cAAc,EAAE,WAAW;gBAC1F,OAAO;gBACP,gBAAgB;gBAChB,UAAU;gBACV,eAAe,EAAE,UAAU,CAAC,MAAM;aACnC,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,CAAC;SACT;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getAccountShape.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/getAccountShape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAmB,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,iCAAiC,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AAEvE,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,IAAY;IAClE,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;QAChC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QACnE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE9C,IAAI,SAAS,CAAC,qBAAqB,EAAE;YACnC,MAAM,uBAAuB,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;YAClE,IAAI,uBAAuB,CAAC,eAAe,EAAE;gBAC3C,uBAAuB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;aAClD;SACF;QAED,MAAM,SAAS,GAAG,eAAe,CAAC;YAChC,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,GAAG;YACZ,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,aAAa,EAAE,OAAO;YACtB,cAAc;SACf,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEzD,MAAM,aAAa,GAAG,UAAU;aAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;aACtC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvC,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC;QAExD,MAAM,gBAAgB,GAAG,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,WAAW,EAAE,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC;QAEpF,MAAM,MAAM,GAAG,CAAC,cAAc,EAAE,UAAU,IAAI,EAAE,CAAsB,CAAC;QACvE,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC;QAE5D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,gBAAgB,GAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;QACzD,IAAI,eAAe,EAAE;YACnB,gBAAgB,CAAC,eAAe,GAAG,eAAe,CAAC;SACpD;QAED,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CACjC,iCAAiC,CAAC,SAAS,EAAE,EAAE,CAAC,CAC5B,CAAC;QACvB,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAsB,CAAC;QAEhE,MAAM,eAAe,GAAsB,EAAE,CAAC;QAC9C,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC5B,IACE,SAAS,EAAE,KAAK,EAAE,cAAc;gBAChC,SAAS,EAAE,KAAK,EAAE,UAAU;gBAC5B,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAC/C;gBACA,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACjC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GACf,gBAAgB,CAAC;YACf,QAAQ;YACR,SAAS;YACT,aAAa;YACb,UAAU;YACV,UAAU,EAAE,eAAe;SAC5B,CAAC,IAAI,EAAE,CAAC;QAEX,MAAM,kBAAkB,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC5C,MAAM,aAAa,GAAG,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAE/D,OAAO;gBACL,GAAG,EAAE;gBACL,aAAa;aACd,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG;YACV,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,OAAO;YACb,WAAW,EACT,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,cAAc,EAAE,WAAW;YACvF,OAAO,EAAE,IAAI,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAChD,gBAAgB,EAAE,IAAI,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC5D,UAAU,EAAE,kBAAkB;YAC9B,WAAW;YACX,eAAe,EAAE,kBAAkB,CAAC,MAAM;SAC3C,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { AccountBridge } from "@ledgerhq/types-live";
2
- export declare function genericGetTransactionStatus(network: string, kind: "local" | "remote"): AccountBridge<any>["getTransactionStatus"];
2
+ export declare function genericGetTransactionStatus(network: any, kind: any): AccountBridge<any>["getTransactionStatus"];
3
3
  //# sourceMappingURL=getTransactionStatus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getTransactionStatus.d.ts","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/getTransactionStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqB,MAAM,sBAAsB,CAAC;AAKxE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,GAAG,QAAQ,GACvB,aAAa,CAAC,GAAG,CAAC,CAAC,sBAAsB,CAAC,CA6B5C"}
1
+ {"version":3,"file":"getTransactionStatus.d.ts","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/getTransactionStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqB,MAAM,sBAAsB,CAAC;AAOxE,wBAAgB,2BAA2B,CACzC,OAAO,KAAA,EACP,IAAI,KAAA,GACH,aAAa,CAAC,GAAG,CAAC,CAAC,sBAAsB,CAAC,CAmD5C"}
@@ -1,28 +1,40 @@
1
+ import { AccountAwaitingSendPendingOperations } from "@ledgerhq/errors";
1
2
  import BigNumber from "bignumber.js";
2
3
  import { getAlpacaApi } from "./alpaca";
4
+ import { transactionToIntent } from "./utils";
3
5
  // => alpaca validateIntent
4
6
  export function genericGetTransactionStatus(network, kind) {
5
7
  return async (account, transaction) => {
6
- const { freshAddress, balance, currency } = account;
7
8
  const alpacaApi = getAlpacaApi(network, kind);
8
- const { errors, warnings } = await alpacaApi.validateIntent({
9
- currencyName: currency.name,
10
- address: freshAddress,
11
- balance: BigInt(balance.toString()),
12
- currencyUnit: currency.units[0],
13
- }, {
14
- type: "PAYMENT",
9
+ const draftTransaction = {
10
+ mode: transaction?.mode,
15
11
  recipient: transaction.recipient,
16
- amount: BigInt(transaction.amount?.toString() ?? "0"),
17
- fee: BigInt(transaction.fees?.toString() ?? "0"),
18
- });
19
- const estimatedFees = transaction.fees || new BigNumber(0);
12
+ amount: transaction.amount ?? new BigNumber(0),
13
+ fees: transaction.fees ? BigInt(transaction.fees.toString()) : 0n,
14
+ useAllAmount: !!transaction.useAllAmount,
15
+ assetReference: transaction.assetReference || "",
16
+ assetOwner: transaction.assetOwner || "",
17
+ subAccountId: transaction.subAccountId || "",
18
+ memoType: transaction.memoType || "",
19
+ memoValue: transaction.memoValue || "",
20
+ };
21
+ if (alpacaApi.getChainSpecificRules) {
22
+ const chainSpecificValidation = alpacaApi.getChainSpecificRules();
23
+ if (chainSpecificValidation.getTransactionStatus.throwIfPendingOperation) {
24
+ if (account.pendingOperations.length > 0) {
25
+ throw new AccountAwaitingSendPendingOperations();
26
+ }
27
+ }
28
+ }
29
+ const { errors, warnings, estimatedFees, amount, totalSpent } = await alpacaApi.validateIntent(transactionToIntent(account, draftTransaction));
20
30
  return Promise.resolve({
21
31
  errors,
22
32
  warnings,
23
- estimatedFees,
24
- amount: transaction.amount,
25
- totalSpent: transaction.amount.plus(transaction.fees),
33
+ estimatedFees: !transaction.fees || transaction.fees.isZero()
34
+ ? new BigNumber(estimatedFees.toString())
35
+ : transaction.fees,
36
+ amount: transaction.amount.eq(0) ? new BigNumber(amount.toString()) : transaction.amount,
37
+ totalSpent: new BigNumber(totalSpent.toString()),
26
38
  });
27
39
  };
28
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/getTransactionStatus.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,2BAA2B;AAC3B,MAAM,UAAU,2BAA2B,CACzC,OAAe,EACf,IAAwB;IAExB,OAAO,KAAK,EAAE,OAAO,EAAE,WAAoD,EAAE,EAAE;QAC7E,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QACpD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,SAAS,CAAC,cAAc,CACzD;YACE,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;SAChC,EACD;YACE,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC;YACrD,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC;SACjD,CACF,CAAC;QAEF,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;QAE3D,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,MAAM;YACN,QAAQ;YACR,aAAa;YACb,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;SACtD,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/getTransactionStatus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oCAAoC,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,2BAA2B;AAC3B,MAAM,UAAU,2BAA2B,CACzC,OAAO,EACP,IAAI;IAEJ,OAAO,KAAK,EACV,OAAO,EACP,WAQC,EACD,EAAE;QACF,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9C,MAAM,gBAAgB,GAAG;YACvB,IAAI,EAAE,WAAW,EAAE,IAAI;YACvB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,MAAM,EAAE,WAAW,CAAC,MAAM,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC;YAC9C,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;YACjE,YAAY,EAAE,CAAC,CAAC,WAAW,CAAC,YAAY;YACxC,cAAc,EAAE,WAAW,CAAC,cAAc,IAAI,EAAE;YAChD,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,EAAE;YACxC,YAAY,EAAE,WAAW,CAAC,YAAY,IAAI,EAAE;YAC5C,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,EAAE;YACpC,SAAS,EAAE,WAAW,CAAC,SAAS,IAAI,EAAE;SACvC,CAAC;QAEF,IAAI,SAAS,CAAC,qBAAqB,EAAE;YACnC,MAAM,uBAAuB,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;YAClE,IAAI,uBAAuB,CAAC,oBAAoB,CAAC,uBAAuB,EAAE;gBACxE,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxC,MAAM,IAAI,oCAAoC,EAAE,CAAC;iBAClD;aACF;SACF;QAED,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,SAAS,CAAC,cAAc,CAC5F,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAC/C,CAAC;QAEF,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,MAAM;YACN,QAAQ;YACR,aAAa,EACX,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC5C,CAAC,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;gBACzC,CAAC,CAAC,WAAW,CAAC,IAAI;YACtB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM;YACxF,UAAU,EAAE,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;SACjD,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -1,3 +1,7 @@
1
1
  import { Account, AccountBridge, TransactionCommon } from "@ledgerhq/types-live";
2
- export declare function genericPrepareTransaction(network: string, kind: "local" | "remote"): AccountBridge<TransactionCommon, Account, any, any>["prepareTransaction"];
2
+ export declare function genericPrepareTransaction(network: string, kind: any): AccountBridge<TransactionCommon, Account, any, any>["prepareTransaction"];
3
+ export declare function getAssetInfos(tr: TransactionCommon & {
4
+ assetReference?: string;
5
+ assetOwner?: string;
6
+ }): string[];
3
7
  //# sourceMappingURL=prepareTransaction.d.ts.map
@@ -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,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AASjF,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,OAAO,GAAG,QAAQ,GACvB,aAAa,CAAC,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,oBAAoB,CAAC,CAa3E"}
1
+ {"version":3,"file":"prepareTransaction.d.ts","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/prepareTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAUjF,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,IAAI,KAAA,GACH,aAAa,CAAC,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,oBAAoB,CAAC,CAoC3E;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,iBAAiB,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACvE,MAAM,EAAE,CAMV"}
@@ -6,12 +6,34 @@ function bnEq(a, b) {
6
6
  }
7
7
  export function genericPrepareTransaction(network, kind) {
8
8
  return async (account, transaction) => {
9
- const fees = await getAlpacaApi(network, kind).estimateFees(transactionToIntent(account, transaction));
10
- const bnFee = BigNumber(fees.value.toString());
11
- if (!bnEq(transaction.fees, bnFee)) {
12
- return { ...transaction, fees: bnFee };
9
+ const [assetReference, assetOwner] = getAssetInfos(transaction);
10
+ const fees = await getAlpacaApi(network, kind).estimateFees(transactionToIntent(account, {
11
+ ...transaction,
12
+ fees: transaction.fees ? BigInt(transaction.fees.toString()) : 0n,
13
+ }));
14
+ // NOTE: this is problematic, we should maybe have a method / object that lists what field warrant an update per chain
15
+ // for reference, stellar checked this:
16
+ // transaction.networkInfo !== networkInfo ||
17
+ // transaction.baseReserve !== baseReserve
18
+ if (!bnEq(transaction.fees, new BigNumber(fees.value.toString()))) {
19
+ return {
20
+ ...transaction,
21
+ fees: new BigNumber(fees.value.toString()),
22
+ assetReference,
23
+ assetOwner,
24
+ networkInfo: {
25
+ fees: new BigNumber(fees.value.toString()),
26
+ },
27
+ };
13
28
  }
14
29
  return transaction;
15
30
  };
16
31
  }
32
+ export function getAssetInfos(tr) {
33
+ if (tr.subAccountId) {
34
+ const assetString = tr.subAccountId.split("+")[1];
35
+ return assetString.split(":");
36
+ }
37
+ return [tr.assetReference || "", tr.assetOwner || ""];
38
+ }
17
39
  //# sourceMappingURL=prepareTransaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/prepareTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,SAAS,IAAI,CAAC,CAA+B,EAAE,CAA+B;IAC5E,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,IAAwB;IAExB,OAAO,KAAK,EAAE,OAAO,EAAE,WAAoD,EAAE,EAAE;QAC7E,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,YAAY,CACzD,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAC1C,CAAC;QACF,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE/C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;YAClC,OAAO,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;SACxC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../../../src/bridge/generic-alpaca/prepareTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,SAAS,IAAI,CAAC,CAA+B,EAAE,CAA+B;IAC5E,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,IAAI;IAEJ,OAAO,KAAK,EACV,OAAO,EACP,WAMC,EACD,EAAE;QACF,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,YAAY,CACzD,mBAAmB,CAAC,OAAO,EAAE;YAC3B,GAAG,WAAW;YACd,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;SAClE,CAAC,CACH,CAAC;QACF,sHAAsH;QACtH,uCAAuC;QACvC,6CAA6C;QAC7C,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE;YACjE,OAAO;gBACL,GAAG,WAAW;gBACd,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC1C,cAAc;gBACd,UAAU;gBACV,WAAW,EAAE;oBACX,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;iBAC3C;aACF,CAAC;SACH;QAED,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,EAAwE;IAExE,IAAI,EAAE,CAAC,YAAY,EAAE;QACnB,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAC/B;IACD,OAAO,CAAC,EAAE,CAAC,cAAc,IAAI,EAAE,EAAE,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC"}
@@ -3,5 +3,5 @@ import type { AccountBridge, TransactionCommon } from "@ledgerhq/types-live";
3
3
  /**
4
4
  * Sign Transaction with Ledger hardware
5
5
  */
6
- export declare const genericSignOperation: (network: string, kind: "local" | "remote") => (signerContext: SignerContext<any>) => AccountBridge<TransactionCommon>["signOperation"];
6
+ export declare const genericSignOperation: (network: any, kind: any) => (signerContext: SignerContext<any>) => AccountBridge<TransactionCommon>["signOperation"];
7
7
  //# sourceMappingURL=signOperation.d.ts.map
@@ -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,EAIV,aAAa,EACb,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAO9B;;GAEG;AACH,eAAO,MAAM,oBAAoB,YACrB,MAAM,QAAQ,OAAO,GAAG,QAAQ,qBAC1B,cAAc,GAAG,CAAC,KAAG,cAAc,iBAAiB,CAAC,CAAC,eAAe,CA2EjF,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,EAIV,aAAa,EACb,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAiE9B;;GAEG;AACH,eAAO,MAAM,oBAAoB,+CAEf,cAAc,GAAG,CAAC,KAAG,cAAc,iBAAiB,CAAC,CAAC,eAAe,CAuFjF,CAAC"}
@@ -2,30 +2,79 @@ import { Observable } from "rxjs";
2
2
  import { getAlpacaApi } from "./alpaca";
3
3
  import { buildOptimisticOperation, transactionToIntent } from "./utils";
4
4
  import { FeeNotLoaded } from "@ledgerhq/errors";
5
+ import { log } from "@ledgerhq/logs";
6
+ import BigNumber from "bignumber.js";
7
+ /**
8
+ * Applies memo information to transaction intent
9
+ * Handles both destination tags (XRP-like) and Stellar-style memos
10
+ */
11
+ function applyMemoToIntent(transactionIntent, transaction) {
12
+ // Handle destination tag memo (for XRP-like chains)
13
+ if (transaction["tag"]) {
14
+ const txWithMemoTag = transactionIntent;
15
+ const txMemo = String(transaction["tag"]);
16
+ txWithMemoTag.memo = {
17
+ type: "map",
18
+ memos: new Map(),
19
+ };
20
+ txWithMemoTag.memo.memos.set("destinationTag", txMemo);
21
+ return txWithMemoTag;
22
+ }
23
+ // Handle Stellar-style memo
24
+ if (transaction["memoType"] && transaction["memoValue"]) {
25
+ const txWithMemo = transactionIntent;
26
+ const txMemoType = String(transaction["memoType"]);
27
+ const txMemoValue = String(transaction["memoValue"]);
28
+ txWithMemo.memo = {
29
+ type: txMemoType,
30
+ value: txMemoValue,
31
+ };
32
+ return txWithMemo;
33
+ }
34
+ return transactionIntent;
35
+ }
36
+ /**
37
+ * Enriches transaction intent with memo and asset information
38
+ */
39
+ function enrichTransactionIntent(transactionIntent, transaction, publicKey) {
40
+ // Set sender public key
41
+ transactionIntent.senderPublicKey = publicKey;
42
+ // Apply memo information
43
+ transactionIntent = applyMemoToIntent(transactionIntent, transaction);
44
+ return transactionIntent;
45
+ }
5
46
  /**
6
47
  * Sign Transaction with Ledger hardware
7
48
  */
8
49
  export const genericSignOperation = (network, kind) => (signerContext) => ({ account, transaction, deviceId, }) => new Observable(o => {
9
50
  async function main() {
51
+ // NOTE: checking field that's not inside TransactionCommon, improve
10
52
  if (!transaction["fees"])
11
53
  throw new FeeNotLoaded();
54
+ const fees = BigInt(transaction["fees"]?.toString() || "0");
55
+ if (transaction["useAllAmount"]) {
56
+ const draftTransaction = {
57
+ recipient: transaction.recipient,
58
+ amount: transaction.amount ?? 0,
59
+ fees: fees,
60
+ useAllAmount: !!transaction.useAllAmount,
61
+ assetReference: transaction?.["assetReference"] || "",
62
+ assetOwner: transaction?.["assetOwner"] || "",
63
+ subAccountId: transaction.subAccountId || "",
64
+ };
65
+ const { amount } = await getAlpacaApi(network, kind).validateIntent(transactionToIntent(account, draftTransaction));
66
+ transaction.amount = new BigNumber(amount.toString());
67
+ }
12
68
  const signedInfo = await signerContext(deviceId, async (signer) => {
13
69
  const derivationPath = account.freshAddressPath;
14
70
  const { publicKey } = (await signer.getAddress(derivationPath));
15
- const transactionIntent = transactionToIntent(account, transaction);
71
+ let transactionIntent = transactionToIntent(account, { ...transaction, fees });
16
72
  transactionIntent.senderPublicKey = publicKey;
17
- // NOTE: is setting the memo here instead of transactionToIntent sensible?
18
- const txWithMemo = transactionIntent;
19
- if (transaction["tag"]) {
20
- const txMemo = String(transaction["tag"]);
21
- txWithMemo.memo = {
22
- type: "map",
23
- memos: new Map(),
24
- };
25
- txWithMemo.memo.memos.set("destinationTag", txMemo);
26
- }
27
- const accountInfo = await getAlpacaApi(network, kind).getAccountInfo(transactionIntent.sender);
28
- transactionIntent.sequence = accountInfo.sequence;
73
+ // Enrich with memo and asset information
74
+ transactionIntent = enrichTransactionIntent(transactionIntent, transaction, publicKey);
75
+ // TODO: should compute it and pass it down to craftTransaction (duplicate call right now)
76
+ const sequenceNumber = await getAlpacaApi(network, kind).getSequence(transactionIntent.sender);
77
+ transactionIntent.sequence = sequenceNumber;
29
78
  /* Craft unsigned blob via Alpaca */
30
79
  const unsigned = await getAlpacaApi(network, kind).craftTransaction(transactionIntent);
31
80
  /* Notify UI that the device is now showing the tx */
@@ -41,6 +90,9 @@ export const genericSignOperation = (network, kind) => (signerContext) => ({ acc
41
90
  /* Combine payload + signature for broadcast */
42
91
  const combined = await getAlpacaApi(network, kind).combine(signedInfo.unsigned, signedInfo.txnSig, signedInfo.publicKey);
43
92
  const operation = buildOptimisticOperation(account, transaction, signedInfo.sequence);
93
+ if (!operation.id) {
94
+ log("Generic alpaca", "buildOptimisticOperation", operation);
95
+ }
44
96
  // NOTE: we set the transactionSequenceNumber before on the operation
45
97
  // now that we create it in craftTransaction, we might need to return it back from craftTransaction also
46
98
  o.next({
@@ -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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"}
@@ -7,5 +7,5 @@ export type AlpacaSigner = {
7
7
  signMessage?: (message: string) => Promise<string>;
8
8
  context: SignerContext<any>;
9
9
  };
10
- export declare function getSigner(network: string): AlpacaSigner;
10
+ export declare function getSigner(network: any): AlpacaSigner;
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bridge/generic-alpaca/signer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAC;AAOjF,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,YAAY,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;CAC7B,CAAC;AAEF,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAevD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bridge/generic-alpaca/signer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAC;AASjF,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAGjD,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,YAAY,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;CAC7B,CAAC;AA+BF,wBAAgB,SAAS,CAAC,OAAO,KAAA,GAAG,YAAY,CAmB/C"}
@@ -1,18 +1,51 @@
1
1
  import xrpGetAddress from "@ledgerhq/coin-xrp/signer/getAddress";
2
+ import stellarGetAddress from "@ledgerhq/coin-stellar/signer/getAddress";
2
3
  import { executeWithSigner } from "../../setup";
3
4
  import Xrp from "@ledgerhq/hw-app-xrp";
4
- import { signTransaction } from "./signTransaction";
5
+ import Stellar from "@ledgerhq/hw-app-str";
6
+ import { signTransaction, stellarSignTransaction } from "./signTransaction";
7
+ import { StrKey } from "@stellar/stellar-sdk";
8
+ const createSignerXrp = (transport) => {
9
+ return new Xrp(transport);
10
+ };
11
+ const signerContextXrp = executeWithSigner(createSignerXrp);
12
+ const createSignerStellar = (transport) => {
13
+ const stellar = new Stellar(transport);
14
+ const originalSignTransaction = stellar.signTransaction;
15
+ // Return the original Stellar instance with overridden methods
16
+ return Object.assign(stellar, {
17
+ signTransaction: async (path, transaction) => {
18
+ const unsignedPayload = Buffer.from(transaction, "base64");
19
+ const { signature } = await originalSignTransaction(path, unsignedPayload);
20
+ return signature.toString("base64");
21
+ },
22
+ getAddress: async (path, verify) => {
23
+ const { rawPublicKey } = await stellar.getPublicKey(path, verify);
24
+ const publicKey = StrKey.encodeEd25519PublicKey(rawPublicKey);
25
+ return {
26
+ path,
27
+ address: publicKey,
28
+ publicKey: publicKey,
29
+ };
30
+ },
31
+ });
32
+ };
33
+ const signerContextStellar = executeWithSigner(createSignerStellar);
5
34
  export function getSigner(network) {
6
35
  switch (network) {
7
36
  case "ripple":
8
37
  case "xrp": {
9
- const createSigner = (transport) => {
10
- return new Xrp(transport);
38
+ return {
39
+ getAddress: xrpGetAddress(signerContextXrp),
40
+ signTransaction: signTransaction(signerContextXrp),
41
+ context: signerContextXrp,
11
42
  };
43
+ }
44
+ case "stellar": {
12
45
  return {
13
- getAddress: xrpGetAddress(executeWithSigner(createSigner)),
14
- signTransaction: signTransaction(executeWithSigner(createSigner)),
15
- context: executeWithSigner(createSigner),
46
+ getAddress: stellarGetAddress(signerContextStellar),
47
+ signTransaction: stellarSignTransaction(signerContextStellar),
48
+ context: signerContextStellar,
16
49
  };
17
50
  }
18
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/bridge/generic-alpaca/signer/index.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,GAAG,MAAM,sBAAsB,CAAC;AAGvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAWpD,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,QAAQ,OAAO,EAAE;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,KAAK,CAAC,CAAC;YACV,MAAM,YAAY,GAAsB,CAAC,SAAoB,EAAE,EAAE;gBAC/D,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5B,CAAC,CAAC;YACF,OAAO;gBACL,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;gBAC1D,eAAe,EAAE,eAAe,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;gBACjE,OAAO,EAAE,iBAAiB,CAAC,YAAY,CAAC;aACzC,CAAC;SACH;KACF;IACD,MAAM,IAAI,KAAK,CAAC,cAAc,OAAO,kBAAkB,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/bridge/generic-alpaca/signer/index.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,iBAAiB,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,GAAG,MAAM,sBAAsB,CAAC;AACvC,OAAO,OAAO,MAAM,sBAAsB,CAAC;AAG3C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAG5E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAS9C,MAAM,eAAe,GAAsB,CAAC,SAAoB,EAAE,EAAE;IAClE,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAC;AAE5D,MAAM,mBAAmB,GAA0B,CAAC,SAAoB,EAAE,EAAE;IAC1E,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,uBAAuB,GAAG,OAAO,CAAC,eAAe,CAAC;IACxD,+DAA+D;IAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QAC5B,eAAe,EAAE,KAAK,EAAE,IAAY,EAAE,WAAmB,EAAE,EAAE;YAC3D,MAAM,eAAe,GAAW,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACnE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,uBAAuB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAC3E,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,IAAY,EAAE,MAAgB,EAAE,EAAE;YACnD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,SAAS,GAAG,MAAM,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;YAC9D,OAAO;gBACL,IAAI;gBACJ,OAAO,EAAE,SAAS;gBAClB,SAAS,EAAE,SAAS;aACrB,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AAEpE,MAAM,UAAU,SAAS,CAAC,OAAO;IAC/B,QAAQ,OAAO,EAAE;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,KAAK,CAAC,CAAC;YACV,OAAO;gBACL,UAAU,EAAE,aAAa,CAAC,gBAAgB,CAAC;gBAC3C,eAAe,EAAE,eAAe,CAAC,gBAAgB,CAAC;gBAClD,OAAO,EAAE,gBAAgB;aAC1B,CAAC;SACH;QACD,KAAK,SAAS,CAAC,CAAC;YACd,OAAO;gBACL,UAAU,EAAE,iBAAiB,CAAC,oBAAoB,CAAC;gBACnD,eAAe,EAAE,sBAAsB,CAAC,oBAAoB,CAAC;gBAC7D,OAAO,EAAE,oBAAoB;aAC9B,CAAC;SACH;KACF;IACD,MAAM,IAAI,KAAK,CAAC,cAAc,OAAO,kBAAkB,CAAC,CAAC;AAC3D,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import { SignerContext } from "@ledgerhq/coin-framework/signer";
2
2
  import { XrpSigner } from "@ledgerhq/coin-xrp/index";
3
3
  import { SignTransactionOptions } from "./types";
4
+ import { StellarSigner } from "@ledgerhq/coin-stellar/types/signer";
4
5
  export declare const signTransaction: (signerContext: SignerContext<XrpSigner>) => (deviceId: string, { path, rawTxHex }: SignTransactionOptions) => Promise<string>;
6
+ export declare const stellarSignTransaction: (signerContext: SignerContext<StellarSigner>) => (deviceId: string, { path, transaction }: SignTransactionOptions) => Promise<string>;
5
7
  //# sourceMappingURL=signTransaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../src/bridge/generic-alpaca/signer/signTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD,eAAO,MAAM,eAAe,kBAAmB,cAAc,SAAS,CAAC,gBAC7C,MAAM,sBAAsB,sBAAsB,oBAO3E,CAAC"}
1
+ {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../src/bridge/generic-alpaca/signer/signTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,eAAO,MAAM,eAAe,kBAAmB,cAAc,SAAS,CAAC,gBAC7C,MAAM,sBAAsB,sBAAsB,oBAO3E,CAAC;AAEF,eAAO,MAAM,sBAAsB,kBAAmB,cAAc,aAAa,CAAC,gBACxD,MAAM,yBAAyB,sBAAsB,oBAO9E,CAAC"}
@@ -4,4 +4,10 @@ export const signTransaction = (signerContext) => {
4
4
  return signedTx;
5
5
  };
6
6
  };
7
+ export const stellarSignTransaction = (signerContext) => {
8
+ return async (deviceId, { path, transaction }) => {
9
+ const signedTx = await signerContext(deviceId, signer => signer.signTransaction(path, transaction));
10
+ return signedTx.signature.toString("base64"); // It should return a Buffer
11
+ };
12
+ };
7
13
  //# sourceMappingURL=signTransaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../../src/bridge/generic-alpaca/signer/signTransaction.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,aAAuC,EAAE,EAAE;IACzE,OAAO,KAAK,EAAE,QAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAA0B,EAAE,EAAE;QAC5E,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CACtD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CACvC,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../../src/bridge/generic-alpaca/signer/signTransaction.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,aAAuC,EAAE,EAAE;IACzE,OAAO,KAAK,EAAE,QAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAA0B,EAAE,EAAE;QAC5E,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CACtD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CACvC,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,aAA2C,EAAE,EAAE;IACpF,OAAO,KAAK,EAAE,QAAgB,EAAE,EAAE,IAAI,EAAE,WAAW,EAA0B,EAAE,EAAE;QAC/E,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CACtD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAC1C,CAAC;QAEF,OAAO,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,4BAA4B;IAC5E,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -1,5 +1,8 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
1
3
  export type SignTransactionOptions = {
2
4
  rawTxHex: string;
3
5
  path: string;
6
+ transaction: Buffer;
4
7
  };
5
8
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/bridge/generic-alpaca/signer/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/bridge/generic-alpaca/signer/types.ts"],"names":[],"mappings":";;AAAA,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC"}