@ledgerhq/coin-canton 0.2.0-nightly.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/.env.integ.test.example +2 -0
  2. package/.eslintrc.js +22 -0
  3. package/.turbo/turbo-build.log +4 -0
  4. package/.unimportedrc.json +29 -0
  5. package/CHANGELOG.md +14 -0
  6. package/LICENSE.txt +21 -0
  7. package/jest.config.js +21 -0
  8. package/jest.integ.config.js +8 -0
  9. package/lib/api/index.d.ts +4 -0
  10. package/lib/api/index.d.ts.map +1 -0
  11. package/lib/api/index.js +44 -0
  12. package/lib/api/index.js.map +1 -0
  13. package/lib/api/index.test.d.ts +2 -0
  14. package/lib/api/index.test.d.ts.map +1 -0
  15. package/lib/api/index.test.js +16 -0
  16. package/lib/api/index.test.js.map +1 -0
  17. package/lib/bridge/broadcast.d.ts +4 -0
  18. package/lib/bridge/broadcast.d.ts.map +1 -0
  19. package/lib/bridge/broadcast.js +11 -0
  20. package/lib/bridge/broadcast.js.map +1 -0
  21. package/lib/bridge/broadcast.test.d.ts +2 -0
  22. package/lib/bridge/broadcast.test.d.ts.map +1 -0
  23. package/lib/bridge/broadcast.test.js +35 -0
  24. package/lib/bridge/broadcast.test.js.map +1 -0
  25. package/lib/bridge/createTransaction.d.ts +4 -0
  26. package/lib/bridge/createTransaction.d.ts.map +1 -0
  27. package/lib/bridge/createTransaction.js +19 -0
  28. package/lib/bridge/createTransaction.js.map +1 -0
  29. package/lib/bridge/createTransaction.test.d.ts +2 -0
  30. package/lib/bridge/createTransaction.test.d.ts.map +1 -0
  31. package/lib/bridge/createTransaction.test.js +12 -0
  32. package/lib/bridge/createTransaction.test.js.map +1 -0
  33. package/lib/bridge/deviceTransactionConfig.d.ts +11 -0
  34. package/lib/bridge/deviceTransactionConfig.d.ts.map +1 -0
  35. package/lib/bridge/deviceTransactionConfig.js +21 -0
  36. package/lib/bridge/deviceTransactionConfig.js.map +1 -0
  37. package/lib/bridge/deviceTransactionConfig.test.d.ts +2 -0
  38. package/lib/bridge/deviceTransactionConfig.test.d.ts.map +1 -0
  39. package/lib/bridge/deviceTransactionConfig.test.js +22 -0
  40. package/lib/bridge/deviceTransactionConfig.test.js.map +1 -0
  41. package/lib/bridge/estimateMaxSpendable.d.ts +4 -0
  42. package/lib/bridge/estimateMaxSpendable.d.ts.map +1 -0
  43. package/lib/bridge/estimateMaxSpendable.js +26 -0
  44. package/lib/bridge/estimateMaxSpendable.js.map +1 -0
  45. package/lib/bridge/getTransactionStatus.d.ts +4 -0
  46. package/lib/bridge/getTransactionStatus.d.ts.map +1 -0
  47. package/lib/bridge/getTransactionStatus.js +78 -0
  48. package/lib/bridge/getTransactionStatus.js.map +1 -0
  49. package/lib/bridge/index.d.ts +11 -0
  50. package/lib/bridge/index.d.ts.map +1 -0
  51. package/lib/bridge/index.js +51 -0
  52. package/lib/bridge/index.js.map +1 -0
  53. package/lib/bridge/index.test.d.ts +2 -0
  54. package/lib/bridge/index.test.d.ts.map +1 -0
  55. package/lib/bridge/index.test.js +31 -0
  56. package/lib/bridge/index.test.js.map +1 -0
  57. package/lib/bridge/prepareTransaction.d.ts +4 -0
  58. package/lib/bridge/prepareTransaction.d.ts.map +1 -0
  59. package/lib/bridge/prepareTransaction.js +20 -0
  60. package/lib/bridge/prepareTransaction.js.map +1 -0
  61. package/lib/bridge/prepareTransaction.test.d.ts +2 -0
  62. package/lib/bridge/prepareTransaction.test.d.ts.map +1 -0
  63. package/lib/bridge/prepareTransaction.test.js +30 -0
  64. package/lib/bridge/prepareTransaction.test.js.map +1 -0
  65. package/lib/bridge/signOperation.d.ts +5 -0
  66. package/lib/bridge/signOperation.d.ts.map +1 -0
  67. package/lib/bridge/signOperation.js +71 -0
  68. package/lib/bridge/signOperation.js.map +1 -0
  69. package/lib/bridge/sync.d.ts +3 -0
  70. package/lib/bridge/sync.d.ts.map +1 -0
  71. package/lib/bridge/sync.js +86 -0
  72. package/lib/bridge/sync.js.map +1 -0
  73. package/lib/bridge/transaction.d.ts +15 -0
  74. package/lib/bridge/transaction.d.ts.map +1 -0
  75. package/lib/bridge/transaction.js +50 -0
  76. package/lib/bridge/transaction.js.map +1 -0
  77. package/lib/bridge/updateTransaction.d.ts +4 -0
  78. package/lib/bridge/updateTransaction.d.ts.map +1 -0
  79. package/lib/bridge/updateTransaction.js +17 -0
  80. package/lib/bridge/updateTransaction.js.map +1 -0
  81. package/lib/common-logic/account/getBalance.d.ts +3 -0
  82. package/lib/common-logic/account/getBalance.d.ts.map +1 -0
  83. package/lib/common-logic/account/getBalance.js +10 -0
  84. package/lib/common-logic/account/getBalance.js.map +1 -0
  85. package/lib/common-logic/account/getNextSequence.d.ts +2 -0
  86. package/lib/common-logic/account/getNextSequence.d.ts.map +1 -0
  87. package/lib/common-logic/account/getNextSequence.js +9 -0
  88. package/lib/common-logic/account/getNextSequence.js.map +1 -0
  89. package/lib/common-logic/common.d.ts +3 -0
  90. package/lib/common-logic/common.d.ts.map +1 -0
  91. package/lib/common-logic/common.js +11 -0
  92. package/lib/common-logic/common.js.map +1 -0
  93. package/lib/common-logic/history/lastBlock.d.ts +3 -0
  94. package/lib/common-logic/history/lastBlock.d.ts.map +1 -0
  95. package/lib/common-logic/history/lastBlock.js +13 -0
  96. package/lib/common-logic/history/lastBlock.js.map +1 -0
  97. package/lib/common-logic/history/listOperations.d.ts +11 -0
  98. package/lib/common-logic/history/listOperations.d.ts.map +1 -0
  99. package/lib/common-logic/history/listOperations.js +52 -0
  100. package/lib/common-logic/history/listOperations.js.map +1 -0
  101. package/lib/common-logic/index.d.ts +11 -0
  102. package/lib/common-logic/index.d.ts.map +1 -0
  103. package/lib/common-logic/index.js +24 -0
  104. package/lib/common-logic/index.js.map +1 -0
  105. package/lib/common-logic/transaction/broadcast.d.ts +2 -0
  106. package/lib/common-logic/transaction/broadcast.d.ts.map +1 -0
  107. package/lib/common-logic/transaction/broadcast.js +9 -0
  108. package/lib/common-logic/transaction/broadcast.js.map +1 -0
  109. package/lib/common-logic/transaction/combine.d.ts +2 -0
  110. package/lib/common-logic/transaction/combine.d.ts.map +1 -0
  111. package/lib/common-logic/transaction/combine.js +9 -0
  112. package/lib/common-logic/transaction/combine.js.map +1 -0
  113. package/lib/common-logic/transaction/craftTransaction.d.ts +15 -0
  114. package/lib/common-logic/transaction/craftTransaction.d.ts.map +1 -0
  115. package/lib/common-logic/transaction/craftTransaction.js +20 -0
  116. package/lib/common-logic/transaction/craftTransaction.js.map +1 -0
  117. package/lib/common-logic/transaction/estimateFees.d.ts +2 -0
  118. package/lib/common-logic/transaction/estimateFees.d.ts.map +1 -0
  119. package/lib/common-logic/transaction/estimateFees.js +21 -0
  120. package/lib/common-logic/transaction/estimateFees.js.map +1 -0
  121. package/lib/common-logic/utils.d.ts +6 -0
  122. package/lib/common-logic/utils.d.ts.map +1 -0
  123. package/lib/common-logic/utils.js +22 -0
  124. package/lib/common-logic/utils.js.map +1 -0
  125. package/lib/config.d.ts +12 -0
  126. package/lib/config.d.ts.map +1 -0
  127. package/lib/config.js +9 -0
  128. package/lib/config.js.map +1 -0
  129. package/lib/index.d.ts +4 -0
  130. package/lib/index.d.ts.map +1 -0
  131. package/lib/index.js +21 -0
  132. package/lib/index.js.map +1 -0
  133. package/lib/network/indexer.d.ts +6 -0
  134. package/lib/network/indexer.d.ts.map +1 -0
  135. package/lib/network/indexer.js +19 -0
  136. package/lib/network/indexer.js.map +1 -0
  137. package/lib/network/mock-network.d.ts +5 -0
  138. package/lib/network/mock-network.d.ts.map +1 -0
  139. package/lib/network/mock-network.js +29 -0
  140. package/lib/network/mock-network.js.map +1 -0
  141. package/lib/network/node.d.ts +12 -0
  142. package/lib/network/node.d.ts.map +1 -0
  143. package/lib/network/node.js +92 -0
  144. package/lib/network/node.js.map +1 -0
  145. package/lib/network/types.d.ts +47 -0
  146. package/lib/network/types.d.ts.map +1 -0
  147. package/lib/network/types.js +7 -0
  148. package/lib/network/types.js.map +1 -0
  149. package/lib/signer/getAddress.d.ts +6 -0
  150. package/lib/signer/getAddress.d.ts.map +1 -0
  151. package/lib/signer/getAddress.js +14 -0
  152. package/lib/signer/getAddress.js.map +1 -0
  153. package/lib/signer/index.d.ts +6 -0
  154. package/lib/signer/index.d.ts.map +1 -0
  155. package/lib/signer/index.js +11 -0
  156. package/lib/signer/index.js.map +1 -0
  157. package/lib/test/bot-deviceActions.d.ts +4 -0
  158. package/lib/test/bot-deviceActions.d.ts.map +1 -0
  159. package/lib/test/bot-deviceActions.js +44 -0
  160. package/lib/test/bot-deviceActions.js.map +1 -0
  161. package/lib/test/bot-specs.d.ts +2 -0
  162. package/lib/test/bot-specs.d.ts.map +1 -0
  163. package/lib/test/bot-specs.js +79 -0
  164. package/lib/test/bot-specs.js.map +1 -0
  165. package/lib/test/bridgeDatasetTest.d.ts +5 -0
  166. package/lib/test/bridgeDatasetTest.d.ts.map +1 -0
  167. package/lib/test/bridgeDatasetTest.js +148 -0
  168. package/lib/test/bridgeDatasetTest.js.map +1 -0
  169. package/lib/test/cli.d.ts +26 -0
  170. package/lib/test/cli.d.ts.map +1 -0
  171. package/lib/test/cli.js +36 -0
  172. package/lib/test/cli.js.map +1 -0
  173. package/lib/test/index.d.ts +5 -0
  174. package/lib/test/index.d.ts.map +1 -0
  175. package/lib/test/index.js +26 -0
  176. package/lib/test/index.js.map +1 -0
  177. package/lib/types/bridge.d.ts +23 -0
  178. package/lib/types/bridge.d.ts.map +1 -0
  179. package/lib/types/bridge.js +3 -0
  180. package/lib/types/bridge.js.map +1 -0
  181. package/lib/types/errors.d.ts +4 -0
  182. package/lib/types/errors.d.ts.map +1 -0
  183. package/lib/types/errors.js +6 -0
  184. package/lib/types/errors.js.map +1 -0
  185. package/lib/types/index.d.ts +13 -0
  186. package/lib/types/index.d.ts.map +1 -0
  187. package/lib/types/index.js +19 -0
  188. package/lib/types/index.js.map +1 -0
  189. package/lib/types/signer.d.ts +10 -0
  190. package/lib/types/signer.d.ts.map +1 -0
  191. package/lib/types/signer.js +3 -0
  192. package/lib/types/signer.js.map +1 -0
  193. package/lib-es/api/index.d.ts +4 -0
  194. package/lib-es/api/index.d.ts.map +1 -0
  195. package/lib-es/api/index.js +38 -0
  196. package/lib-es/api/index.js.map +1 -0
  197. package/lib-es/api/index.test.d.ts +2 -0
  198. package/lib-es/api/index.test.d.ts.map +1 -0
  199. package/lib-es/api/index.test.js +14 -0
  200. package/lib-es/api/index.test.js.map +1 -0
  201. package/lib-es/bridge/broadcast.d.ts +4 -0
  202. package/lib-es/bridge/broadcast.d.ts.map +1 -0
  203. package/lib-es/bridge/broadcast.js +7 -0
  204. package/lib-es/bridge/broadcast.js.map +1 -0
  205. package/lib-es/bridge/broadcast.test.d.ts +2 -0
  206. package/lib-es/bridge/broadcast.test.d.ts.map +1 -0
  207. package/lib-es/bridge/broadcast.test.js +33 -0
  208. package/lib-es/bridge/broadcast.test.js.map +1 -0
  209. package/lib-es/bridge/createTransaction.d.ts +4 -0
  210. package/lib-es/bridge/createTransaction.d.ts.map +1 -0
  211. package/lib-es/bridge/createTransaction.js +12 -0
  212. package/lib-es/bridge/createTransaction.js.map +1 -0
  213. package/lib-es/bridge/createTransaction.test.d.ts +2 -0
  214. package/lib-es/bridge/createTransaction.test.d.ts.map +1 -0
  215. package/lib-es/bridge/createTransaction.test.js +10 -0
  216. package/lib-es/bridge/createTransaction.test.js.map +1 -0
  217. package/lib-es/bridge/deviceTransactionConfig.d.ts +11 -0
  218. package/lib-es/bridge/deviceTransactionConfig.d.ts.map +1 -0
  219. package/lib-es/bridge/deviceTransactionConfig.js +19 -0
  220. package/lib-es/bridge/deviceTransactionConfig.js.map +1 -0
  221. package/lib-es/bridge/deviceTransactionConfig.test.d.ts +2 -0
  222. package/lib-es/bridge/deviceTransactionConfig.test.d.ts.map +1 -0
  223. package/lib-es/bridge/deviceTransactionConfig.test.js +17 -0
  224. package/lib-es/bridge/deviceTransactionConfig.test.js.map +1 -0
  225. package/lib-es/bridge/estimateMaxSpendable.d.ts +4 -0
  226. package/lib-es/bridge/estimateMaxSpendable.d.ts.map +1 -0
  227. package/lib-es/bridge/estimateMaxSpendable.js +19 -0
  228. package/lib-es/bridge/estimateMaxSpendable.js.map +1 -0
  229. package/lib-es/bridge/getTransactionStatus.d.ts +4 -0
  230. package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -0
  231. package/lib-es/bridge/getTransactionStatus.js +71 -0
  232. package/lib-es/bridge/getTransactionStatus.js.map +1 -0
  233. package/lib-es/bridge/index.d.ts +11 -0
  234. package/lib-es/bridge/index.d.ts.map +1 -0
  235. package/lib-es/bridge/index.js +45 -0
  236. package/lib-es/bridge/index.js.map +1 -0
  237. package/lib-es/bridge/index.test.d.ts +2 -0
  238. package/lib-es/bridge/index.test.d.ts.map +1 -0
  239. package/lib-es/bridge/index.test.js +29 -0
  240. package/lib-es/bridge/index.test.js.map +1 -0
  241. package/lib-es/bridge/prepareTransaction.d.ts +4 -0
  242. package/lib-es/bridge/prepareTransaction.d.ts.map +1 -0
  243. package/lib-es/bridge/prepareTransaction.js +13 -0
  244. package/lib-es/bridge/prepareTransaction.js.map +1 -0
  245. package/lib-es/bridge/prepareTransaction.test.d.ts +2 -0
  246. package/lib-es/bridge/prepareTransaction.test.d.ts.map +1 -0
  247. package/lib-es/bridge/prepareTransaction.test.js +25 -0
  248. package/lib-es/bridge/prepareTransaction.test.js.map +1 -0
  249. package/lib-es/bridge/signOperation.d.ts +5 -0
  250. package/lib-es/bridge/signOperation.d.ts.map +1 -0
  251. package/lib-es/bridge/signOperation.js +67 -0
  252. package/lib-es/bridge/signOperation.js.map +1 -0
  253. package/lib-es/bridge/sync.d.ts +3 -0
  254. package/lib-es/bridge/sync.d.ts.map +1 -0
  255. package/lib-es/bridge/sync.js +79 -0
  256. package/lib-es/bridge/sync.js.map +1 -0
  257. package/lib-es/bridge/transaction.d.ts +15 -0
  258. package/lib-es/bridge/transaction.d.ts.map +1 -0
  259. package/lib-es/bridge/transaction.js +44 -0
  260. package/lib-es/bridge/transaction.js.map +1 -0
  261. package/lib-es/bridge/updateTransaction.d.ts +4 -0
  262. package/lib-es/bridge/updateTransaction.d.ts.map +1 -0
  263. package/lib-es/bridge/updateTransaction.js +13 -0
  264. package/lib-es/bridge/updateTransaction.js.map +1 -0
  265. package/lib-es/common-logic/account/getBalance.d.ts +3 -0
  266. package/lib-es/common-logic/account/getBalance.d.ts.map +1 -0
  267. package/lib-es/common-logic/account/getBalance.js +7 -0
  268. package/lib-es/common-logic/account/getBalance.js.map +1 -0
  269. package/lib-es/common-logic/account/getNextSequence.d.ts +2 -0
  270. package/lib-es/common-logic/account/getNextSequence.d.ts.map +1 -0
  271. package/lib-es/common-logic/account/getNextSequence.js +6 -0
  272. package/lib-es/common-logic/account/getNextSequence.js.map +1 -0
  273. package/lib-es/common-logic/common.d.ts +3 -0
  274. package/lib-es/common-logic/common.d.ts.map +1 -0
  275. package/lib-es/common-logic/common.js +7 -0
  276. package/lib-es/common-logic/common.js.map +1 -0
  277. package/lib-es/common-logic/history/lastBlock.d.ts +3 -0
  278. package/lib-es/common-logic/history/lastBlock.d.ts.map +1 -0
  279. package/lib-es/common-logic/history/lastBlock.js +10 -0
  280. package/lib-es/common-logic/history/lastBlock.js.map +1 -0
  281. package/lib-es/common-logic/history/listOperations.d.ts +11 -0
  282. package/lib-es/common-logic/history/listOperations.d.ts.map +1 -0
  283. package/lib-es/common-logic/history/listOperations.js +49 -0
  284. package/lib-es/common-logic/history/listOperations.js.map +1 -0
  285. package/lib-es/common-logic/index.d.ts +11 -0
  286. package/lib-es/common-logic/index.d.ts.map +1 -0
  287. package/lib-es/common-logic/index.js +11 -0
  288. package/lib-es/common-logic/index.js.map +1 -0
  289. package/lib-es/common-logic/transaction/broadcast.d.ts +2 -0
  290. package/lib-es/common-logic/transaction/broadcast.d.ts.map +1 -0
  291. package/lib-es/common-logic/transaction/broadcast.js +6 -0
  292. package/lib-es/common-logic/transaction/broadcast.js.map +1 -0
  293. package/lib-es/common-logic/transaction/combine.d.ts +2 -0
  294. package/lib-es/common-logic/transaction/combine.d.ts.map +1 -0
  295. package/lib-es/common-logic/transaction/combine.js +6 -0
  296. package/lib-es/common-logic/transaction/combine.js.map +1 -0
  297. package/lib-es/common-logic/transaction/craftTransaction.d.ts +15 -0
  298. package/lib-es/common-logic/transaction/craftTransaction.d.ts.map +1 -0
  299. package/lib-es/common-logic/transaction/craftTransaction.js +17 -0
  300. package/lib-es/common-logic/transaction/craftTransaction.js.map +1 -0
  301. package/lib-es/common-logic/transaction/estimateFees.d.ts +2 -0
  302. package/lib-es/common-logic/transaction/estimateFees.d.ts.map +1 -0
  303. package/lib-es/common-logic/transaction/estimateFees.js +18 -0
  304. package/lib-es/common-logic/transaction/estimateFees.js.map +1 -0
  305. package/lib-es/common-logic/utils.d.ts +6 -0
  306. package/lib-es/common-logic/utils.d.ts.map +1 -0
  307. package/lib-es/common-logic/utils.js +13 -0
  308. package/lib-es/common-logic/utils.js.map +1 -0
  309. package/lib-es/config.d.ts +12 -0
  310. package/lib-es/config.d.ts.map +1 -0
  311. package/lib-es/config.js +4 -0
  312. package/lib-es/config.js.map +1 -0
  313. package/lib-es/index.d.ts +4 -0
  314. package/lib-es/index.d.ts.map +1 -0
  315. package/lib-es/index.js +3 -0
  316. package/lib-es/index.js.map +1 -0
  317. package/lib-es/network/indexer.d.ts +6 -0
  318. package/lib-es/network/indexer.d.ts.map +1 -0
  319. package/lib-es/network/indexer.js +12 -0
  320. package/lib-es/network/indexer.js.map +1 -0
  321. package/lib-es/network/mock-network.d.ts +5 -0
  322. package/lib-es/network/mock-network.d.ts.map +1 -0
  323. package/lib-es/network/mock-network.js +25 -0
  324. package/lib-es/network/mock-network.js.map +1 -0
  325. package/lib-es/network/node.d.ts +12 -0
  326. package/lib-es/network/node.d.ts.map +1 -0
  327. package/lib-es/network/node.js +80 -0
  328. package/lib-es/network/node.js.map +1 -0
  329. package/lib-es/network/types.d.ts +47 -0
  330. package/lib-es/network/types.d.ts.map +1 -0
  331. package/lib-es/network/types.js +4 -0
  332. package/lib-es/network/types.js.map +1 -0
  333. package/lib-es/signer/getAddress.d.ts +6 -0
  334. package/lib-es/signer/getAddress.d.ts.map +1 -0
  335. package/lib-es/signer/getAddress.js +12 -0
  336. package/lib-es/signer/getAddress.js.map +1 -0
  337. package/lib-es/signer/index.d.ts +6 -0
  338. package/lib-es/signer/index.d.ts.map +1 -0
  339. package/lib-es/signer/index.js +6 -0
  340. package/lib-es/signer/index.js.map +1 -0
  341. package/lib-es/test/bot-deviceActions.d.ts +4 -0
  342. package/lib-es/test/bot-deviceActions.d.ts.map +1 -0
  343. package/lib-es/test/bot-deviceActions.js +41 -0
  344. package/lib-es/test/bot-deviceActions.js.map +1 -0
  345. package/lib-es/test/bot-specs.d.ts +1 -0
  346. package/lib-es/test/bot-specs.d.ts.map +1 -0
  347. package/lib-es/test/bot-specs.js +78 -0
  348. package/lib-es/test/bot-specs.js.map +1 -0
  349. package/lib-es/test/bridgeDatasetTest.d.ts +5 -0
  350. package/lib-es/test/bridgeDatasetTest.d.ts.map +1 -0
  351. package/lib-es/test/bridgeDatasetTest.js +142 -0
  352. package/lib-es/test/bridgeDatasetTest.js.map +1 -0
  353. package/lib-es/test/cli.d.ts +26 -0
  354. package/lib-es/test/cli.d.ts.map +1 -0
  355. package/lib-es/test/cli.js +30 -0
  356. package/lib-es/test/cli.js.map +1 -0
  357. package/lib-es/test/index.d.ts +5 -0
  358. package/lib-es/test/index.d.ts.map +1 -0
  359. package/lib-es/test/index.js +6 -0
  360. package/lib-es/test/index.js.map +1 -0
  361. package/lib-es/types/bridge.d.ts +23 -0
  362. package/lib-es/types/bridge.d.ts.map +1 -0
  363. package/lib-es/types/bridge.js +2 -0
  364. package/lib-es/types/bridge.js.map +1 -0
  365. package/lib-es/types/errors.d.ts +4 -0
  366. package/lib-es/types/errors.d.ts.map +1 -0
  367. package/lib-es/types/errors.js +3 -0
  368. package/lib-es/types/errors.js.map +1 -0
  369. package/lib-es/types/index.d.ts +13 -0
  370. package/lib-es/types/index.d.ts.map +1 -0
  371. package/lib-es/types/index.js +3 -0
  372. package/lib-es/types/index.js.map +1 -0
  373. package/lib-es/types/signer.d.ts +10 -0
  374. package/lib-es/types/signer.d.ts.map +1 -0
  375. package/lib-es/types/signer.js +2 -0
  376. package/lib-es/types/signer.js.map +1 -0
  377. package/package.json +137 -0
  378. package/src/api/index.test.ts +15 -0
  379. package/src/api/index.ts +65 -0
  380. package/src/bridge/broadcast.test.ts +36 -0
  381. package/src/bridge/broadcast.ts +11 -0
  382. package/src/bridge/createTransaction.test.ts +12 -0
  383. package/src/bridge/createTransaction.ts +14 -0
  384. package/src/bridge/deviceTransactionConfig.test.ts +22 -0
  385. package/src/bridge/deviceTransactionConfig.ts +34 -0
  386. package/src/bridge/estimateMaxSpendable.ts +25 -0
  387. package/src/bridge/getTransactionStatus.ts +88 -0
  388. package/src/bridge/index.test.ts +31 -0
  389. package/src/bridge/index.ts +62 -0
  390. package/src/bridge/prepareTransaction.test.ts +29 -0
  391. package/src/bridge/prepareTransaction.ts +25 -0
  392. package/src/bridge/signOperation.ts +93 -0
  393. package/src/bridge/sync.ts +106 -0
  394. package/src/bridge/transaction.ts +61 -0
  395. package/src/bridge/updateTransaction.ts +17 -0
  396. package/src/common-logic/account/getBalance.ts +8 -0
  397. package/src/common-logic/account/getNextSequence.ts +6 -0
  398. package/src/common-logic/common.ts +9 -0
  399. package/src/common-logic/history/lastBlock.ts +11 -0
  400. package/src/common-logic/history/listOperations.ts +64 -0
  401. package/src/common-logic/index.ts +11 -0
  402. package/src/common-logic/transaction/broadcast.ts +6 -0
  403. package/src/common-logic/transaction/combine.ts +6 -0
  404. package/src/common-logic/transaction/craftTransaction.ts +36 -0
  405. package/src/common-logic/transaction/estimateFees.ts +16 -0
  406. package/src/common-logic/utils.ts +18 -0
  407. package/src/config.ts +12 -0
  408. package/src/index.ts +4 -0
  409. package/src/network/indexer.ts +17 -0
  410. package/src/network/mock-network.ts +25 -0
  411. package/src/network/node.ts +94 -0
  412. package/src/network/types.ts +51 -0
  413. package/src/signer/getAddress.ts +20 -0
  414. package/src/signer/index.ts +7 -0
  415. package/src/test/bot-deviceActions.ts +48 -0
  416. package/src/test/bot-specs.ts +76 -0
  417. package/src/test/bridgeDatasetTest.ts +147 -0
  418. package/src/test/cli.ts +44 -0
  419. package/src/test/index.ts +6 -0
  420. package/src/types/bridge.ts +33 -0
  421. package/src/types/errors.ts +3 -0
  422. package/src/types/index.ts +13 -0
  423. package/src/types/signer.ts +11 -0
  424. package/tsconfig.json +12 -0
@@ -0,0 +1,67 @@
1
+ import { Observable } from "rxjs";
2
+ import { FeeNotLoaded } from "@ledgerhq/errors";
3
+ import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
4
+ import { combine, craftTransaction, getNextValidSequence } from "../common-logic";
5
+ export const buildSignOperation = (signerContext) => ({ account, deviceId, transaction }) => new Observable(o => {
6
+ async function main() {
7
+ const { fee } = transaction;
8
+ if (!fee)
9
+ throw new FeeNotLoaded();
10
+ try {
11
+ // o observables allows to define steps of the signing process with the device
12
+ o.next({
13
+ type: "device-signature-requested",
14
+ });
15
+ const nextSequenceNumber = await getNextValidSequence(account.freshAddress);
16
+ const signature = await signerContext(deviceId, async (signer) => {
17
+ const { freshAddressPath: derivationPath } = account;
18
+ const { publicKey } = await signer.getAddress(derivationPath);
19
+ const { nativeTransaction, serializedTransaction } = await craftTransaction({
20
+ address: account.freshAddress,
21
+ publicKey,
22
+ }, {
23
+ recipient: transaction.recipient,
24
+ amount: transaction.amount,
25
+ fee: fee,
26
+ });
27
+ const transactionSignature = await signer.signTransaction(derivationPath, serializedTransaction);
28
+ return combine(serializedTransaction, transactionSignature, publicKey);
29
+ });
30
+ o.next({
31
+ type: "device-signature-granted",
32
+ });
33
+ // We create an optimistic operation here, the framework will then replace this transaction with the one returned by the indexer
34
+ const hash = "";
35
+ const operation = {
36
+ id: encodeOperationId(account.id, hash, "OUT"),
37
+ hash,
38
+ accountId: account.id,
39
+ type: "OUT",
40
+ value: transaction.amount,
41
+ fee,
42
+ blockHash: null,
43
+ blockHeight: null,
44
+ senders: [account.freshAddress],
45
+ recipients: [transaction.recipient],
46
+ date: new Date(),
47
+ transactionSequenceNumber: nextSequenceNumber,
48
+ extra: {},
49
+ };
50
+ o.next({
51
+ type: "signed",
52
+ signedOperation: {
53
+ operation,
54
+ signature,
55
+ },
56
+ });
57
+ }
58
+ catch (e) {
59
+ if (e instanceof Error) {
60
+ throw new Error(e?.data?.resultMessage);
61
+ }
62
+ throw e;
63
+ }
64
+ }
65
+ main().then(() => o.complete(), e => o.error(e));
66
+ });
67
+ //# sourceMappingURL=signOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../../src/bridge/signOperation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { GetAccountShape } from "@ledgerhq/coin-framework/bridge/jsHelpers";
2
+ export declare const getAccountShape: GetAccountShape;
3
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/bridge/sync.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAY,MAAM,2CAA2C,CAAC;AA4DtF,eAAO,MAAM,eAAe,EAAE,eA0C7B,CAAC"}
@@ -0,0 +1,79 @@
1
+ import BigNumber from "bignumber.js";
2
+ import { encodeAccountId } from "@ledgerhq/coin-framework/account/index";
3
+ import { mergeOps } from "@ledgerhq/coin-framework/bridge/jsHelpers";
4
+ import { getTransactions } from "../network/indexer";
5
+ import { getAccountInfo, getBlockHeight } from "../network/node";
6
+ import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
7
+ import coinConfig from "../config";
8
+ const operationAdapter = (accountId, address) => ({ meta: { delivered_amount }, tx: { Fee, hash, inLedger, date, Account, Destination, Sequence }, }) => {
9
+ const type = Account === address ? "OUT" : "IN";
10
+ let value = delivered_amount && typeof delivered_amount === "string"
11
+ ? new BigNumber(delivered_amount)
12
+ : new BigNumber(0);
13
+ const feeValue = new BigNumber(Fee);
14
+ if (type === "OUT") {
15
+ if (!Number.isNaN(feeValue)) {
16
+ value = value.plus(feeValue);
17
+ }
18
+ }
19
+ const op = {
20
+ id: encodeOperationId(accountId, hash, type),
21
+ hash: hash,
22
+ accountId,
23
+ type,
24
+ value,
25
+ fee: feeValue,
26
+ blockHash: null,
27
+ blockHeight: inLedger,
28
+ senders: [Account],
29
+ recipients: [Destination],
30
+ date: new Date(),
31
+ transactionSequenceNumber: Sequence,
32
+ extra: {},
33
+ };
34
+ return op;
35
+ };
36
+ const filterOperations = (transactions, accountId, address) => {
37
+ return transactions
38
+ .filter(({ tx, meta }) => tx.TransactionType === "Payment" && typeof meta.delivered_amount === "string")
39
+ .map(operationAdapter(accountId, address))
40
+ .filter((op) => Boolean(op));
41
+ };
42
+ export const getAccountShape = async (info) => {
43
+ const { address, initialAccount, currency, derivationMode } = info;
44
+ const accountId = encodeAccountId({
45
+ type: "js",
46
+ version: "2",
47
+ currencyId: currency.id,
48
+ xpubOrAddress: address,
49
+ derivationMode,
50
+ });
51
+ // blockheight retrieval
52
+ const blockHeight = await getBlockHeight();
53
+ // Account info retrieval + spendable balance calculation
54
+ const accountInfo = await getAccountInfo(address);
55
+ const balance = new BigNumber(accountInfo.account_data.Balance);
56
+ const reserveMin = coinConfig.getCoinConfig().minReserve;
57
+ const spendableBalance = new BigNumber(accountInfo.account_data.Balance).minus(reserveMin);
58
+ // Tx history fetching
59
+ const oldOperations = initialAccount?.operations || [];
60
+ const startAt = oldOperations.length ? (oldOperations[0].blockHeight || 0) + 1 : 0;
61
+ const newTransactions = await getTransactions(address, {
62
+ from: startAt,
63
+ size: 100,
64
+ });
65
+ const newOperations = filterOperations(newTransactions, accountId, address);
66
+ const operations = mergeOps(oldOperations, newOperations);
67
+ // We return the new account shape
68
+ const shape = {
69
+ id: accountId,
70
+ xpub: address,
71
+ blockHeight,
72
+ balance,
73
+ spendableBalance,
74
+ operations,
75
+ operationsCount: operations.length,
76
+ };
77
+ return shape;
78
+ };
79
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/bridge/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Transaction, TransactionRaw } from "../types";
2
+ import type { Account } from "@ledgerhq/types-live";
3
+ export declare const formatTransaction: ({ amount, recipient, fee, useAllAmount }: Transaction, account: Account) => string;
4
+ export declare const fromTransactionRaw: (tr: TransactionRaw) => Transaction;
5
+ export declare const toTransactionRaw: (t: Transaction) => TransactionRaw;
6
+ declare const _default: {
7
+ formatTransaction: ({ amount, recipient, fee, useAllAmount }: Transaction, account: Account) => string;
8
+ fromTransactionRaw: (tr: TransactionRaw) => Transaction;
9
+ toTransactionRaw: (t: Transaction) => TransactionRaw;
10
+ fromTransactionStatusRaw: (ts: import("@ledgerhq/types-live").TransactionStatusCommonRaw) => import("@ledgerhq/types-live").TransactionStatusCommon;
11
+ toTransactionStatusRaw: (ts: import("@ledgerhq/types-live").TransactionStatusCommon) => import("@ledgerhq/types-live").TransactionStatusCommonRaw;
12
+ formatTransactionStatus: (t: import("@ledgerhq/types-live").TransactionCommon, { errors, warnings, estimatedFees, amount, totalSpent }: import("@ledgerhq/types-live").TransactionStatusCommon, mainAccount: Account) => string;
13
+ };
14
+ export default _default;
15
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/bridge/transaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAQ5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAIpD,eAAO,MAAM,iBAAiB,GAC5B,0CAA0C,WAAW,EACrD,SAAS,OAAO,KACf,MAiBD,CAAC;AAEH,eAAO,MAAM,kBAAkB,GAAI,IAAI,cAAc,KAAG,WAOvD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,GAAG,WAAW,KAAG,cAOjD,CAAC;;kEArC0C,WAAW,WAC5C,OAAO,KACf,MAAM;6BAmB8B,cAAc,KAAG,WAAW;0BAS/B,WAAW,KAAG,cAAc;;;;;AAShE,wBAOE"}
@@ -0,0 +1,44 @@
1
+ import { BigNumber } from "bignumber.js";
2
+ import { formatTransactionStatus } from "@ledgerhq/coin-framework/formatters";
3
+ import { fromTransactionCommonRaw, fromTransactionStatusRawCommon as fromTransactionStatusRaw, toTransactionCommonRaw, toTransactionStatusRawCommon as toTransactionStatusRaw, } from "@ledgerhq/coin-framework/serialization/transaction";
4
+ import { getAccountCurrency } from "@ledgerhq/coin-framework/account/index";
5
+ import { formatCurrencyUnit } from "@ledgerhq/coin-framework/currencies/index";
6
+ export const formatTransaction = ({ amount, recipient, fee, useAllAmount }, account) => `
7
+ SEND ${useAllAmount
8
+ ? "MAX"
9
+ : formatCurrencyUnit(getAccountCurrency(account).units[0], amount, {
10
+ showCode: true,
11
+ disableRounding: true,
12
+ })}
13
+ TO ${recipient}
14
+ with fee=${!fee
15
+ ? "?"
16
+ : formatCurrencyUnit(getAccountCurrency(account).units[0], fee, {
17
+ showCode: true,
18
+ disableRounding: true,
19
+ })}`;
20
+ export const fromTransactionRaw = (tr) => {
21
+ const common = fromTransactionCommonRaw(tr);
22
+ return {
23
+ ...common,
24
+ family: tr.family,
25
+ fee: tr.fee ? new BigNumber(tr.fee) : null,
26
+ };
27
+ };
28
+ export const toTransactionRaw = (t) => {
29
+ const common = toTransactionCommonRaw(t);
30
+ return {
31
+ ...common,
32
+ family: t.family,
33
+ fee: t.fee ? t.fee.toString() : null,
34
+ };
35
+ };
36
+ export default {
37
+ formatTransaction,
38
+ fromTransactionRaw,
39
+ toTransactionRaw,
40
+ fromTransactionStatusRaw,
41
+ toTransactionStatusRaw,
42
+ formatTransactionStatus,
43
+ };
44
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/bridge/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EACL,wBAAwB,EACxB,8BAA8B,IAAI,wBAAwB,EAC1D,sBAAsB,EACtB,4BAA4B,IAAI,sBAAsB,GACvD,MAAM,oDAAoD,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAe,EACrD,OAAgB,EACR,EAAE,CAAC;OAEX,YAAY;IACV,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE;QAC/D,QAAQ,EAAE,IAAI;QACd,eAAe,EAAE,IAAI;KACtB,CACP;KACK,SAAS;WAEZ,CAAC,GAAG;IACF,CAAC,CAAC,GAAG;IACL,CAAC,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;QAC5D,QAAQ,EAAE,IAAI;QACd,eAAe,EAAE,IAAI;KACtB,CACP,EAAE,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAkB,EAAe,EAAE;IACpE,MAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAC5C,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;KAC3C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAc,EAAkB,EAAE;IACjE,MAAM,MAAM,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;KACrC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe;IACb,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,wBAAwB;IACxB,sBAAsB;IACtB,uBAAuB;CACxB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { AccountBridge } from "@ledgerhq/types-live";
2
+ import type { Transaction } from "../types";
3
+ export declare const updateTransaction: AccountBridge<Transaction>["updateTransaction"];
4
+ //# sourceMappingURL=updateTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateTransaction.d.ts","sourceRoot":"","sources":["../../src/bridge/updateTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAO5C,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,mBAAmB,CAO7E,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { updateTransaction as defaultUpdateTransaction } from "@ledgerhq/coin-framework/bridge/jsHelpers";
2
+ // NOTE: this method is optional, use defaultUpdateTransaction
3
+ // acts as a middleware to update the transaction patch object
4
+ // NOTE: here is an example transaction updater function
5
+ // in this case, it resets fee to null depending on the patch content
6
+ export const updateTransaction = (tx, patch) => {
7
+ // eslint-disable-next-line no-constant-condition
8
+ if (patch.recipient === "boilerplate1" || true) {
9
+ patch = { ...patch, fee: null };
10
+ }
11
+ return defaultUpdateTransaction(tx, patch);
12
+ };
13
+ //# sourceMappingURL=updateTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateTransaction.js","sourceRoot":"","sources":["../../src/bridge/updateTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,IAAI,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAI1G,8DAA8D;AAC9D,8DAA8D;AAE9D,wDAAwD;AACxD,qEAAqE;AACrE,MAAM,CAAC,MAAM,iBAAiB,GAAoD,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;IAC9F,iDAAiD;IACjD,IAAI,KAAK,CAAC,SAAS,KAAK,cAAc,IAAI,IAAI,EAAE,CAAC;QAC/C,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,wBAAwB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAC7C,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Balance } from "@ledgerhq/coin-framework/api/types";
2
+ export declare function getBalance(address: string): Promise<Balance[]>;
3
+ //# sourceMappingURL=getBalance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../../src/common-logic/account/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAI7D,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAGpE"}
@@ -0,0 +1,7 @@
1
+ import { getAccountInfo } from "../../network/node";
2
+ // Could be getAccountInfo so it is used in both bridge and api
3
+ export async function getBalance(address) {
4
+ const accountInfo = await getAccountInfo(address);
5
+ return [{ asset: { type: "native" }, value: BigInt(accountInfo.account_data.Balance) }];
6
+ }
7
+ //# sourceMappingURL=getBalance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../../src/common-logic/account/getBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,+DAA+D;AAC/D,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC1F,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function getNextValidSequence(address: string): Promise<number>;
2
+ //# sourceMappingURL=getNextSequence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getNextSequence.d.ts","sourceRoot":"","sources":["../../../src/common-logic/account/getNextSequence.ts"],"names":[],"mappings":"AAGA,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE3E"}
@@ -0,0 +1,6 @@
1
+ import { getNextSequence } from "../../network/node";
2
+ // Could be getAccountInfo so it is used in both bridge and api
3
+ export async function getNextValidSequence(address) {
4
+ return await getNextSequence(address);
5
+ }
6
+ //# sourceMappingURL=getNextSequence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getNextSequence.js","sourceRoot":"","sources":["../../../src/common-logic/account/getNextSequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,+DAA+D;AAC/D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAe;IACxD,OAAO,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { BigNumber } from "bignumber.js";
2
+ export declare const parseAPIValue: (value: string) => BigNumber;
3
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/common-logic/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAOzC,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,SACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { parseCurrencyUnit } from "@ledgerhq/coin-framework/currencies";
2
+ import { getCryptoCurrencyById } from "@ledgerhq/cryptoassets/currencies";
3
+ // NOTE: replace ripple by your currency id, it should be found in
4
+ // libs/ledgerjs/packages/cryptoassets/src/currencies.ts
5
+ const boilerplateUnit = getCryptoCurrencyById("ripple").units[0];
6
+ export const parseAPIValue = (value) => parseCurrencyUnit(boilerplateUnit, value);
7
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/common-logic/common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,kEAAkE;AAClE,wDAAwD;AACxD,MAAM,eAAe,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAa,EAAE,CACxD,iBAAiB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { BlockInfo } from "@ledgerhq/coin-framework/api/index";
2
+ export declare function lastBlock(): Promise<BlockInfo>;
3
+ //# sourceMappingURL=lastBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lastBlock.d.ts","sourceRoot":"","sources":["../../../src/common-logic/history/lastBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAGpE,wBAAsB,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,CAOpD"}
@@ -0,0 +1,10 @@
1
+ import { getLastBlock } from "../../network/node";
2
+ export async function lastBlock() {
3
+ const result = await getLastBlock();
4
+ return {
5
+ height: result.blockHeight,
6
+ hash: result.blockHash,
7
+ time: new Date(result.timestamp),
8
+ };
9
+ }
10
+ //# sourceMappingURL=lastBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lastBlock.js","sourceRoot":"","sources":["../../../src/common-logic/history/lastBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,WAAW;QAC1B,IAAI,EAAE,MAAM,CAAC,SAAS;QACtB,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;KACjC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Operation, Pagination } from "@ledgerhq/coin-framework/api/index";
2
+ /**
3
+ * Returns list of operations associated to an account.
4
+ * @param address Account address
5
+ * @param pagination Pagination options
6
+ * @returns Operations found and the next "id" or "index" to use for pagination (i.e. `start` property).\
7
+ * If `0` is returns, no pagination needed.
8
+ * This "id" or "index" value, thus it has functional meaning, is different for each blockchain.
9
+ */
10
+ export declare function listOperations(address: string, page: Pagination): Promise<[Operation[], string]>;
11
+ //# sourceMappingURL=listOperations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listOperations.d.ts","sourceRoot":"","sources":["../../../src/common-logic/history/listOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAIhF;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,CAGhC"}
@@ -0,0 +1,49 @@
1
+ import { getTransactions } from "../../network/indexer";
2
+ /**
3
+ * Returns list of operations associated to an account.
4
+ * @param address Account address
5
+ * @param pagination Pagination options
6
+ * @returns Operations found and the next "id" or "index" to use for pagination (i.e. `start` property).\
7
+ * If `0` is returns, no pagination needed.
8
+ * This "id" or "index" value, thus it has functional meaning, is different for each blockchain.
9
+ */
10
+ export async function listOperations(address, page) {
11
+ const transactions = await getTransactions(address, { from: page.minHeight });
12
+ return [transactions.map(convertToCoreOperation(address)), ""];
13
+ }
14
+ const convertToCoreOperation = (address) => (operation) => {
15
+ const { meta: { delivered_amount }, tx: { Fee, hash, inLedger, date, Account, Destination }, } = operation;
16
+ const type = Account === address ? "OUT" : "IN";
17
+ let value = delivered_amount && typeof delivered_amount === "string"
18
+ ? BigInt(delivered_amount)
19
+ : BigInt(0);
20
+ const feeValue = BigInt(Fee);
21
+ if (type === "OUT") {
22
+ if (!Number.isNaN(feeValue)) {
23
+ value = value + feeValue;
24
+ }
25
+ }
26
+ return {
27
+ /**
28
+ * Note: The operation ID must be concatenated with another
29
+ * value if the transaction hash is not enough to identify it
30
+ */
31
+ id: hash,
32
+ asset: { type: "native" },
33
+ tx: {
34
+ hash,
35
+ fees: feeValue,
36
+ date: new Date(date),
37
+ block: {
38
+ height: inLedger,
39
+ hash,
40
+ time: new Date(date),
41
+ },
42
+ },
43
+ type,
44
+ value,
45
+ senders: [Account],
46
+ recipients: [Destination],
47
+ };
48
+ };
49
+ //# sourceMappingURL=listOperations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../../src/common-logic/history/listOperations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,IAAgB;IAEhB,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9E,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,sBAAsB,GAC1B,CAAC,OAAe,EAAE,EAAE,CACpB,CAAC,SAA+B,EAAa,EAAE;IAC7C,MAAM,EACJ,IAAI,EAAE,EAAE,gBAAgB,EAAE,EAC1B,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GACxD,GAAG,SAAS,CAAC;IAEd,MAAM,IAAI,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,IAAI,KAAK,GACP,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ;QACtD,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAC1B,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEhB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO;QACL;;;WAGG;QACH,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,EAAE,EAAE;YACF,IAAI;YACJ,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC;YACpB,KAAK,EAAE;gBACL,MAAM,EAAE,QAAQ;gBAChB,IAAI;gBACJ,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC;aACrB;SACF;QACD,IAAI;QACJ,KAAK;QACL,OAAO,EAAE,CAAC,OAAO,CAAC;QAClB,UAAU,EAAE,CAAC,WAAW,CAAC;KAC1B,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { broadcast } from "./transaction/broadcast";
2
+ export { combine } from "./transaction/combine";
3
+ export { craftTransaction } from "./transaction/craftTransaction";
4
+ export { estimateFees } from "./transaction/estimateFees";
5
+ export { getBalance } from "./account/getBalance";
6
+ export { lastBlock } from "./history/lastBlock";
7
+ export { listOperations } from "./history/listOperations";
8
+ export { isRecipientValid } from "./utils";
9
+ export { getNextValidSequence } from "./account/getNextSequence";
10
+ export { parseAPIValue } from "./common";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common-logic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { broadcast } from "./transaction/broadcast";
2
+ export { combine } from "./transaction/combine";
3
+ export { craftTransaction } from "./transaction/craftTransaction";
4
+ export { estimateFees } from "./transaction/estimateFees";
5
+ export { getBalance } from "./account/getBalance";
6
+ export { lastBlock } from "./history/lastBlock";
7
+ export { listOperations } from "./history/listOperations";
8
+ export { isRecipientValid } from "./utils";
9
+ export { getNextValidSequence } from "./account/getNextSequence";
10
+ export { parseAPIValue } from "./common";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common-logic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function broadcast(signedTx: string): Promise<string>;
2
+ //# sourceMappingURL=broadcast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../../src/common-logic/transaction/broadcast.ts"],"names":[],"mappings":"AAEA,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGjE"}
@@ -0,0 +1,6 @@
1
+ import { submit } from "../../network/node";
2
+ export async function broadcast(signedTx) {
3
+ const submittedPayment = await submit(signedTx);
4
+ return submittedPayment.tx_hash;
5
+ }
6
+ //# sourceMappingURL=broadcast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../../src/common-logic/transaction/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB;IAC9C,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChD,OAAO,gBAAgB,CAAC,OAAO,CAAC;AAClC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function combine(transaction: string, signature: string, publicKey?: string): string;
2
+ //# sourceMappingURL=combine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combine.d.ts","sourceRoot":"","sources":["../../../src/common-logic/transaction/combine.ts"],"names":[],"mappings":"AAGA,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1F"}
@@ -0,0 +1,6 @@
1
+ import { encode } from "../utils";
2
+ // Combines signature with raw transaction
3
+ export function combine(transaction, signature, publicKey) {
4
+ return encode(transaction, signature, publicKey || "");
5
+ }
6
+ //# sourceMappingURL=combine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combine.js","sourceRoot":"","sources":["../../../src/common-logic/transaction/combine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,0CAA0C;AAC1C,MAAM,UAAU,OAAO,CAAC,WAAmB,EAAE,SAAiB,EAAE,SAAkB;IAChF,OAAO,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,15 @@
1
+ import BigNumber from "bignumber.js";
2
+ import { BoilerplateNativeTransaction } from "../../types";
3
+ export declare function craftTransaction(account: {
4
+ address: string;
5
+ nextSequenceNumber?: number;
6
+ publicKey?: string;
7
+ }, transaction: {
8
+ recipient?: string;
9
+ amount: BigNumber;
10
+ fee?: BigNumber;
11
+ }): Promise<{
12
+ nativeTransaction: BoilerplateNativeTransaction;
13
+ serializedTransaction: string;
14
+ }>;
15
+ //# sourceMappingURL=craftTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"craftTransaction.d.ts","sourceRoot":"","sources":["../../../src/common-logic/transaction/craftTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAI3D,wBAAsB,gBAAgB,CACpC,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,EACD,WAAW,EAAE;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB,GACA,OAAO,CAAC;IACT,iBAAiB,EAAE,4BAA4B,CAAC;IAChD,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC,CAgBD"}
@@ -0,0 +1,17 @@
1
+ const encodeNativeTx = (nativeTx) => JSON.stringify(nativeTx);
2
+ export async function craftTransaction(account, transaction) {
3
+ const nativeTransaction = {
4
+ TransactionType: "Payment",
5
+ Account: account.address,
6
+ Amount: transaction.amount.toString(),
7
+ Destination: transaction.recipient || "",
8
+ Fee: transaction.fee?.toString() || "0",
9
+ Sequence: account.nextSequenceNumber || 0,
10
+ };
11
+ const serializedTransaction = encodeNativeTx(nativeTransaction);
12
+ return {
13
+ nativeTransaction,
14
+ serializedTransaction,
15
+ };
16
+ }
17
+ //# sourceMappingURL=craftTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"craftTransaction.js","sourceRoot":"","sources":["../../../src/common-logic/transaction/craftTransaction.ts"],"names":[],"mappings":"AAGA,MAAM,cAAc,GAAG,CAAC,QAAsC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE5F,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAIC,EACD,WAIC;IAKD,MAAM,iBAAiB,GAAiC;QACtD,eAAe,EAAE,SAAS;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE;QACrC,WAAW,EAAE,WAAW,CAAC,SAAS,IAAI,EAAE;QACxC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAG;QACvC,QAAQ,EAAE,OAAO,CAAC,kBAAkB,IAAI,CAAC;KAC1C,CAAC;IAEF,MAAM,qBAAqB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAEhE,OAAO;QACL,iBAAiB;QACjB,qBAAqB;KACtB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function estimateFees(serializedTransaction: string): Promise<bigint>;
2
+ //# sourceMappingURL=estimateFees.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateFees.d.ts","sourceRoot":"","sources":["../../../src/common-logic/transaction/estimateFees.ts"],"names":[],"mappings":"AAGA,wBAAsB,YAAY,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYjF"}
@@ -0,0 +1,18 @@
1
+ import { simulate } from "../../network/node";
2
+ import { SimulationError } from "../../types/errors";
3
+ export async function estimateFees(serializedTransaction) {
4
+ try {
5
+ // We call the node to do a dry run and estimate fees
6
+ return BigInt(await simulate(serializedTransaction));
7
+ }
8
+ catch (e) {
9
+ // default value is required in case of simulation error, else user will encounter an error in the flow
10
+ if (e instanceof SimulationError) {
11
+ return BigInt(1000);
12
+ }
13
+ else {
14
+ throw new Error("Unexpected error while estimating fees.");
15
+ }
16
+ }
17
+ }
18
+ //# sourceMappingURL=estimateFees.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateFees.js","sourceRoot":"","sources":["../../../src/common-logic/transaction/estimateFees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,qBAA6B;IAC9D,IAAI,CAAC;QACH,qDAAqD;QACrD,OAAO,MAAM,CAAC,MAAM,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,uGAAuG;QACvG,IAAI,CAAC,YAAY,eAAe,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import BigNumber from "bignumber.js";
2
+ export declare const UINT32_MAX: BigNumber;
3
+ export declare const validateTag: (tag: BigNumber) => boolean;
4
+ export declare function isRecipientValid(recipient: string): boolean;
5
+ export declare const encode: (transaction: string, signature: string, publicKey?: string) => string;
6
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/common-logic/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,eAAO,MAAM,UAAU,WAAoC,CAAC;AAE5D,eAAO,MAAM,WAAW,GAAI,KAAK,SAAS,YAIzC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,eAAO,MAAM,MAAM,GAAI,aAAa,MAAM,EAAE,WAAW,MAAM,EAAE,YAAY,MAAM,WAGhF,CAAC"}
@@ -0,0 +1,13 @@
1
+ import BigNumber from "bignumber.js";
2
+ export const UINT32_MAX = new BigNumber(2).pow(32).minus(1);
3
+ export const validateTag = (tag) => {
4
+ return (!tag.isNaN() && tag.isFinite() && tag.isInteger() && tag.isPositive() && tag.lte(UINT32_MAX));
5
+ };
6
+ export function isRecipientValid(recipient) {
7
+ return recipient.length > 0;
8
+ }
9
+ export const encode = (transaction, signature, publicKey) => {
10
+ // sample encoding
11
+ return `${transaction}${publicKey}${signature}encodedTx`;
12
+ };
13
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/common-logic/utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAc,EAAE,EAAE;IAC5C,OAAO,CACL,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAC7F,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAE,SAAiB,EAAE,SAAkB,EAAE,EAAE;IACnF,kBAAkB;IAClB,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,WAAW,CAAC;AAC3D,CAAC,CAAC"}