@ledgerhq/coin-sui 0.2.0-next.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 (459) hide show
  1. package/.eslintrc.js +23 -0
  2. package/.turbo/turbo-build.log +4 -0
  3. package/.unimportedrc.json +19 -0
  4. package/CHANGELOG.md +18 -0
  5. package/LICENSE.txt +21 -0
  6. package/jest.config.js +9 -0
  7. package/jest.integ.config.js +7 -0
  8. package/lib/api/chain/index.d.ts +16 -0
  9. package/lib/api/chain/index.d.ts.map +1 -0
  10. package/lib/api/chain/index.js +3 -0
  11. package/lib/api/chain/index.js.map +1 -0
  12. package/lib/bridge/bridge.integration.test.d.ts +4 -0
  13. package/lib/bridge/bridge.integration.test.d.ts.map +1 -0
  14. package/lib/bridge/bridge.integration.test.js +136 -0
  15. package/lib/bridge/bridge.integration.test.js.map +1 -0
  16. package/lib/bridge/broadcast.d.ts +12 -0
  17. package/lib/bridge/broadcast.d.ts.map +1 -0
  18. package/lib/bridge/broadcast.js +20 -0
  19. package/lib/bridge/broadcast.js.map +1 -0
  20. package/lib/bridge/broadcast.test.d.ts +2 -0
  21. package/lib/bridge/broadcast.test.d.ts.map +1 -0
  22. package/lib/bridge/broadcast.test.js +48 -0
  23. package/lib/bridge/broadcast.test.js.map +1 -0
  24. package/lib/bridge/buildOptimisticOperation.d.ts +4 -0
  25. package/lib/bridge/buildOptimisticOperation.d.ts.map +1 -0
  26. package/lib/bridge/buildOptimisticOperation.js +76 -0
  27. package/lib/bridge/buildOptimisticOperation.js.map +1 -0
  28. package/lib/bridge/buildOptimisticOperation.test.d.ts +2 -0
  29. package/lib/bridge/buildOptimisticOperation.test.d.ts.map +1 -0
  30. package/lib/bridge/buildOptimisticOperation.test.js +52 -0
  31. package/lib/bridge/buildOptimisticOperation.test.js.map +1 -0
  32. package/lib/bridge/buildTransaction.d.ts +9 -0
  33. package/lib/bridge/buildTransaction.d.ts.map +1 -0
  34. package/lib/bridge/buildTransaction.js +19 -0
  35. package/lib/bridge/buildTransaction.js.map +1 -0
  36. package/lib/bridge/buildTransaction.test.d.ts +2 -0
  37. package/lib/bridge/buildTransaction.test.d.ts.map +1 -0
  38. package/lib/bridge/buildTransaction.test.js +17 -0
  39. package/lib/bridge/buildTransaction.test.js.map +1 -0
  40. package/lib/bridge/createTransaction.d.ts +10 -0
  41. package/lib/bridge/createTransaction.d.ts.map +1 -0
  42. package/lib/bridge/createTransaction.js +24 -0
  43. package/lib/bridge/createTransaction.js.map +1 -0
  44. package/lib/bridge/estimateMaxSpendable.d.ts +14 -0
  45. package/lib/bridge/estimateMaxSpendable.d.ts.map +1 -0
  46. package/lib/bridge/estimateMaxSpendable.js +44 -0
  47. package/lib/bridge/estimateMaxSpendable.js.map +1 -0
  48. package/lib/bridge/estimateMaxSpendable.test.d.ts +2 -0
  49. package/lib/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
  50. package/lib/bridge/estimateMaxSpendable.test.js +25 -0
  51. package/lib/bridge/estimateMaxSpendable.test.js.map +1 -0
  52. package/lib/bridge/formatters.d.ts +10 -0
  53. package/lib/bridge/formatters.d.ts.map +1 -0
  54. package/lib/bridge/formatters.js +24 -0
  55. package/lib/bridge/formatters.js.map +1 -0
  56. package/lib/bridge/formatters.test.d.ts +2 -0
  57. package/lib/bridge/formatters.test.d.ts.map +1 -0
  58. package/lib/bridge/formatters.test.js +18 -0
  59. package/lib/bridge/formatters.test.js.map +1 -0
  60. package/lib/bridge/getFeesForTransaction.d.ts +15 -0
  61. package/lib/bridge/getFeesForTransaction.d.ts.map +1 -0
  62. package/lib/bridge/getFeesForTransaction.js +32 -0
  63. package/lib/bridge/getFeesForTransaction.js.map +1 -0
  64. package/lib/bridge/getFeesForTransaction.test.d.ts +2 -0
  65. package/lib/bridge/getFeesForTransaction.test.d.ts.map +1 -0
  66. package/lib/bridge/getFeesForTransaction.test.js +35 -0
  67. package/lib/bridge/getFeesForTransaction.test.js.map +1 -0
  68. package/lib/bridge/getTransactionStatus.d.ts +12 -0
  69. package/lib/bridge/getTransactionStatus.d.ts.map +1 -0
  70. package/lib/bridge/getTransactionStatus.js +59 -0
  71. package/lib/bridge/getTransactionStatus.js.map +1 -0
  72. package/lib/bridge/getTransactionStatus.test.d.ts +2 -0
  73. package/lib/bridge/getTransactionStatus.test.d.ts.map +1 -0
  74. package/lib/bridge/getTransactionStatus.test.js +48 -0
  75. package/lib/bridge/getTransactionStatus.test.js.map +1 -0
  76. package/lib/bridge/index.d.ts +10 -0
  77. package/lib/bridge/index.d.ts.map +1 -0
  78. package/lib/bridge/index.js +63 -0
  79. package/lib/bridge/index.js.map +1 -0
  80. package/lib/bridge/preload.d.ts +11 -0
  81. package/lib/bridge/preload.d.ts.map +1 -0
  82. package/lib/bridge/preload.js +41 -0
  83. package/lib/bridge/preload.js.map +1 -0
  84. package/lib/bridge/prepareTransaction.d.ts +13 -0
  85. package/lib/bridge/prepareTransaction.d.ts.map +1 -0
  86. package/lib/bridge/prepareTransaction.js +43 -0
  87. package/lib/bridge/prepareTransaction.js.map +1 -0
  88. package/lib/bridge/prepareTransaction.test.d.ts +2 -0
  89. package/lib/bridge/prepareTransaction.test.d.ts.map +1 -0
  90. package/lib/bridge/prepareTransaction.test.js +45 -0
  91. package/lib/bridge/prepareTransaction.test.js.map +1 -0
  92. package/lib/bridge/serialization.d.ts +7 -0
  93. package/lib/bridge/serialization.d.ts.map +1 -0
  94. package/lib/bridge/serialization.js +27 -0
  95. package/lib/bridge/serialization.js.map +1 -0
  96. package/lib/bridge/serialization.test.d.ts +2 -0
  97. package/lib/bridge/serialization.test.d.ts.map +1 -0
  98. package/lib/bridge/serialization.test.js +131 -0
  99. package/lib/bridge/serialization.test.js.map +1 -0
  100. package/lib/bridge/signOperation.d.ts +9 -0
  101. package/lib/bridge/signOperation.d.ts.map +1 -0
  102. package/lib/bridge/signOperation.js +72 -0
  103. package/lib/bridge/signOperation.js.map +1 -0
  104. package/lib/bridge/signOperation.test.d.ts +2 -0
  105. package/lib/bridge/signOperation.test.d.ts.map +1 -0
  106. package/lib/bridge/signOperation.test.js +76 -0
  107. package/lib/bridge/signOperation.test.js.map +1 -0
  108. package/lib/bridge/synchronisation.d.ts +21 -0
  109. package/lib/bridge/synchronisation.d.ts.map +1 -0
  110. package/lib/bridge/synchronisation.js +65 -0
  111. package/lib/bridge/synchronisation.js.map +1 -0
  112. package/lib/bridge/synchronisation.test.d.ts +2 -0
  113. package/lib/bridge/synchronisation.test.d.ts.map +1 -0
  114. package/lib/bridge/synchronisation.test.js +118 -0
  115. package/lib/bridge/synchronisation.test.js.map +1 -0
  116. package/lib/bridge/transaction.d.ts +15 -0
  117. package/lib/bridge/transaction.d.ts.map +1 -0
  118. package/lib/bridge/transaction.js +55 -0
  119. package/lib/bridge/transaction.js.map +1 -0
  120. package/lib/bridge/transaction.test.d.ts +2 -0
  121. package/lib/bridge/transaction.test.d.ts.map +1 -0
  122. package/lib/bridge/transaction.test.js +65 -0
  123. package/lib/bridge/transaction.test.js.map +1 -0
  124. package/lib/bridge/utils.d.ts +27 -0
  125. package/lib/bridge/utils.d.ts.map +1 -0
  126. package/lib/bridge/utils.js +57 -0
  127. package/lib/bridge/utils.js.map +1 -0
  128. package/lib/config.d.ts +15 -0
  129. package/lib/config.d.ts.map +1 -0
  130. package/lib/config.js +9 -0
  131. package/lib/config.js.map +1 -0
  132. package/lib/index.d.ts +3 -0
  133. package/lib/index.d.ts.map +1 -0
  134. package/lib/index.js +21 -0
  135. package/lib/index.js.map +1 -0
  136. package/lib/logic/broadcast.d.ts +9 -0
  137. package/lib/logic/broadcast.d.ts.map +1 -0
  138. package/lib/logic/broadcast.js +26 -0
  139. package/lib/logic/broadcast.js.map +1 -0
  140. package/lib/logic/craftTransaction.d.ts +17 -0
  141. package/lib/logic/craftTransaction.d.ts.map +1 -0
  142. package/lib/logic/craftTransaction.js +22 -0
  143. package/lib/logic/craftTransaction.js.map +1 -0
  144. package/lib/logic/estimateFees.d.ts +10 -0
  145. package/lib/logic/estimateFees.d.ts.map +1 -0
  146. package/lib/logic/estimateFees.js +20 -0
  147. package/lib/logic/estimateFees.js.map +1 -0
  148. package/lib/logic/index.d.ts +4 -0
  149. package/lib/logic/index.d.ts.map +1 -0
  150. package/lib/logic/index.js +10 -0
  151. package/lib/logic/index.js.map +1 -0
  152. package/lib/network/index.d.ts +18 -0
  153. package/lib/network/index.d.ts.map +1 -0
  154. package/lib/network/index.js +17 -0
  155. package/lib/network/index.js.map +1 -0
  156. package/lib/network/sdk.d.ts +61 -0
  157. package/lib/network/sdk.d.ts.map +1 -0
  158. package/lib/network/sdk.integration.test.d.ts +2 -0
  159. package/lib/network/sdk.integration.test.d.ts.map +1 -0
  160. package/lib/network/sdk.integration.test.js +70 -0
  161. package/lib/network/sdk.integration.test.js.map +1 -0
  162. package/lib/network/sdk.js +205 -0
  163. package/lib/network/sdk.js.map +1 -0
  164. package/lib/network/sdk.test.d.ts +2 -0
  165. package/lib/network/sdk.test.d.ts.map +1 -0
  166. package/lib/network/sdk.test.js +166 -0
  167. package/lib/network/sdk.test.js.map +1 -0
  168. package/lib/signer/getAddress.d.ts +6 -0
  169. package/lib/signer/getAddress.d.ts.map +1 -0
  170. package/lib/signer/getAddress.js +20 -0
  171. package/lib/signer/getAddress.js.map +1 -0
  172. package/lib/signer/getAddress.test.d.ts +2 -0
  173. package/lib/signer/getAddress.test.d.ts.map +1 -0
  174. package/lib/signer/getAddress.test.js +106 -0
  175. package/lib/signer/getAddress.test.js.map +1 -0
  176. package/lib/signer/index.d.ts +6 -0
  177. package/lib/signer/index.d.ts.map +1 -0
  178. package/lib/signer/index.js +11 -0
  179. package/lib/signer/index.js.map +1 -0
  180. package/lib/test/cli.d.ts +16 -0
  181. package/lib/test/cli.d.ts.map +1 -0
  182. package/lib/test/cli.js +16 -0
  183. package/lib/test/cli.js.map +1 -0
  184. package/lib/types/bridge.d.ts +72 -0
  185. package/lib/types/bridge.d.ts.map +1 -0
  186. package/lib/types/bridge.fixture.d.ts +30 -0
  187. package/lib/types/bridge.fixture.d.ts.map +1 -0
  188. package/lib/types/bridge.fixture.js +86 -0
  189. package/lib/types/bridge.fixture.js.map +1 -0
  190. package/lib/types/bridge.js +3 -0
  191. package/lib/types/bridge.js.map +1 -0
  192. package/lib/types/index.d.ts +4 -0
  193. package/lib/types/index.d.ts.map +1 -0
  194. package/lib/types/index.js +20 -0
  195. package/lib/types/index.js.map +1 -0
  196. package/lib/types/model.d.ts +6 -0
  197. package/lib/types/model.d.ts.map +1 -0
  198. package/lib/types/model.js +3 -0
  199. package/lib/types/model.js.map +1 -0
  200. package/lib/types/signer.d.ts +13 -0
  201. package/lib/types/signer.d.ts.map +1 -0
  202. package/lib/types/signer.js +3 -0
  203. package/lib/types/signer.js.map +1 -0
  204. package/lib/utils.d.ts +7 -0
  205. package/lib/utils.d.ts.map +1 -0
  206. package/lib/utils.js +13 -0
  207. package/lib/utils.js.map +1 -0
  208. package/lib-es/api/chain/index.d.ts +16 -0
  209. package/lib-es/api/chain/index.d.ts.map +1 -0
  210. package/lib-es/api/chain/index.js +2 -0
  211. package/lib-es/api/chain/index.js.map +1 -0
  212. package/lib-es/bridge/bridge.integration.test.d.ts +4 -0
  213. package/lib-es/bridge/bridge.integration.test.d.ts.map +1 -0
  214. package/lib-es/bridge/bridge.integration.test.js +130 -0
  215. package/lib-es/bridge/bridge.integration.test.js.map +1 -0
  216. package/lib-es/bridge/broadcast.d.ts +12 -0
  217. package/lib-es/bridge/broadcast.d.ts.map +1 -0
  218. package/lib-es/bridge/broadcast.js +16 -0
  219. package/lib-es/bridge/broadcast.js.map +1 -0
  220. package/lib-es/bridge/broadcast.test.d.ts +2 -0
  221. package/lib-es/bridge/broadcast.test.d.ts.map +1 -0
  222. package/lib-es/bridge/broadcast.test.js +46 -0
  223. package/lib-es/bridge/broadcast.test.js.map +1 -0
  224. package/lib-es/bridge/buildOptimisticOperation.d.ts +4 -0
  225. package/lib-es/bridge/buildOptimisticOperation.d.ts.map +1 -0
  226. package/lib-es/bridge/buildOptimisticOperation.js +69 -0
  227. package/lib-es/bridge/buildOptimisticOperation.js.map +1 -0
  228. package/lib-es/bridge/buildOptimisticOperation.test.d.ts +2 -0
  229. package/lib-es/bridge/buildOptimisticOperation.test.d.ts.map +1 -0
  230. package/lib-es/bridge/buildOptimisticOperation.test.js +47 -0
  231. package/lib-es/bridge/buildOptimisticOperation.test.js.map +1 -0
  232. package/lib-es/bridge/buildTransaction.d.ts +9 -0
  233. package/lib-es/bridge/buildTransaction.d.ts.map +1 -0
  234. package/lib-es/bridge/buildTransaction.js +11 -0
  235. package/lib-es/bridge/buildTransaction.js.map +1 -0
  236. package/lib-es/bridge/buildTransaction.test.d.ts +2 -0
  237. package/lib-es/bridge/buildTransaction.test.d.ts.map +1 -0
  238. package/lib-es/bridge/buildTransaction.test.js +15 -0
  239. package/lib-es/bridge/buildTransaction.test.js.map +1 -0
  240. package/lib-es/bridge/createTransaction.d.ts +10 -0
  241. package/lib-es/bridge/createTransaction.d.ts.map +1 -0
  242. package/lib-es/bridge/createTransaction.js +20 -0
  243. package/lib-es/bridge/createTransaction.js.map +1 -0
  244. package/lib-es/bridge/estimateMaxSpendable.d.ts +14 -0
  245. package/lib-es/bridge/estimateMaxSpendable.d.ts.map +1 -0
  246. package/lib-es/bridge/estimateMaxSpendable.js +37 -0
  247. package/lib-es/bridge/estimateMaxSpendable.js.map +1 -0
  248. package/lib-es/bridge/estimateMaxSpendable.test.d.ts +2 -0
  249. package/lib-es/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
  250. package/lib-es/bridge/estimateMaxSpendable.test.js +23 -0
  251. package/lib-es/bridge/estimateMaxSpendable.test.js.map +1 -0
  252. package/lib-es/bridge/formatters.d.ts +10 -0
  253. package/lib-es/bridge/formatters.d.ts.map +1 -0
  254. package/lib-es/bridge/formatters.js +19 -0
  255. package/lib-es/bridge/formatters.js.map +1 -0
  256. package/lib-es/bridge/formatters.test.d.ts +2 -0
  257. package/lib-es/bridge/formatters.test.d.ts.map +1 -0
  258. package/lib-es/bridge/formatters.test.js +16 -0
  259. package/lib-es/bridge/formatters.test.js.map +1 -0
  260. package/lib-es/bridge/getFeesForTransaction.d.ts +15 -0
  261. package/lib-es/bridge/getFeesForTransaction.d.ts.map +1 -0
  262. package/lib-es/bridge/getFeesForTransaction.js +29 -0
  263. package/lib-es/bridge/getFeesForTransaction.js.map +1 -0
  264. package/lib-es/bridge/getFeesForTransaction.test.d.ts +2 -0
  265. package/lib-es/bridge/getFeesForTransaction.test.d.ts.map +1 -0
  266. package/lib-es/bridge/getFeesForTransaction.test.js +30 -0
  267. package/lib-es/bridge/getFeesForTransaction.test.js.map +1 -0
  268. package/lib-es/bridge/getTransactionStatus.d.ts +12 -0
  269. package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -0
  270. package/lib-es/bridge/getTransactionStatus.js +55 -0
  271. package/lib-es/bridge/getTransactionStatus.js.map +1 -0
  272. package/lib-es/bridge/getTransactionStatus.test.d.ts +2 -0
  273. package/lib-es/bridge/getTransactionStatus.test.d.ts.map +1 -0
  274. package/lib-es/bridge/getTransactionStatus.test.js +43 -0
  275. package/lib-es/bridge/getTransactionStatus.test.js.map +1 -0
  276. package/lib-es/bridge/index.d.ts +10 -0
  277. package/lib-es/bridge/index.d.ts.map +1 -0
  278. package/lib-es/bridge/index.js +56 -0
  279. package/lib-es/bridge/index.js.map +1 -0
  280. package/lib-es/bridge/preload.d.ts +11 -0
  281. package/lib-es/bridge/preload.d.ts.map +1 -0
  282. package/lib-es/bridge/preload.js +32 -0
  283. package/lib-es/bridge/preload.js.map +1 -0
  284. package/lib-es/bridge/prepareTransaction.d.ts +13 -0
  285. package/lib-es/bridge/prepareTransaction.d.ts.map +1 -0
  286. package/lib-es/bridge/prepareTransaction.js +36 -0
  287. package/lib-es/bridge/prepareTransaction.js.map +1 -0
  288. package/lib-es/bridge/prepareTransaction.test.d.ts +2 -0
  289. package/lib-es/bridge/prepareTransaction.test.d.ts.map +1 -0
  290. package/lib-es/bridge/prepareTransaction.test.js +40 -0
  291. package/lib-es/bridge/prepareTransaction.test.js.map +1 -0
  292. package/lib-es/bridge/serialization.d.ts +7 -0
  293. package/lib-es/bridge/serialization.d.ts.map +1 -0
  294. package/lib-es/bridge/serialization.js +20 -0
  295. package/lib-es/bridge/serialization.js.map +1 -0
  296. package/lib-es/bridge/serialization.test.d.ts +2 -0
  297. package/lib-es/bridge/serialization.test.d.ts.map +1 -0
  298. package/lib-es/bridge/serialization.test.js +126 -0
  299. package/lib-es/bridge/serialization.test.js.map +1 -0
  300. package/lib-es/bridge/signOperation.d.ts +9 -0
  301. package/lib-es/bridge/signOperation.d.ts.map +1 -0
  302. package/lib-es/bridge/signOperation.js +68 -0
  303. package/lib-es/bridge/signOperation.js.map +1 -0
  304. package/lib-es/bridge/signOperation.test.d.ts +2 -0
  305. package/lib-es/bridge/signOperation.test.d.ts.map +1 -0
  306. package/lib-es/bridge/signOperation.test.js +71 -0
  307. package/lib-es/bridge/signOperation.test.js.map +1 -0
  308. package/lib-es/bridge/synchronisation.d.ts +21 -0
  309. package/lib-es/bridge/synchronisation.d.ts.map +1 -0
  310. package/lib-es/bridge/synchronisation.js +61 -0
  311. package/lib-es/bridge/synchronisation.js.map +1 -0
  312. package/lib-es/bridge/synchronisation.test.d.ts +2 -0
  313. package/lib-es/bridge/synchronisation.test.d.ts.map +1 -0
  314. package/lib-es/bridge/synchronisation.test.js +113 -0
  315. package/lib-es/bridge/synchronisation.test.js.map +1 -0
  316. package/lib-es/bridge/transaction.d.ts +15 -0
  317. package/lib-es/bridge/transaction.d.ts.map +1 -0
  318. package/lib-es/bridge/transaction.js +49 -0
  319. package/lib-es/bridge/transaction.js.map +1 -0
  320. package/lib-es/bridge/transaction.test.d.ts +2 -0
  321. package/lib-es/bridge/transaction.test.d.ts.map +1 -0
  322. package/lib-es/bridge/transaction.test.js +63 -0
  323. package/lib-es/bridge/transaction.test.js.map +1 -0
  324. package/lib-es/bridge/utils.d.ts +27 -0
  325. package/lib-es/bridge/utils.d.ts.map +1 -0
  326. package/lib-es/bridge/utils.js +51 -0
  327. package/lib-es/bridge/utils.js.map +1 -0
  328. package/lib-es/config.d.ts +15 -0
  329. package/lib-es/config.d.ts.map +1 -0
  330. package/lib-es/config.js +4 -0
  331. package/lib-es/config.js.map +1 -0
  332. package/lib-es/index.d.ts +3 -0
  333. package/lib-es/index.d.ts.map +1 -0
  334. package/lib-es/index.js +3 -0
  335. package/lib-es/index.js.map +1 -0
  336. package/lib-es/logic/broadcast.d.ts +9 -0
  337. package/lib-es/logic/broadcast.d.ts.map +1 -0
  338. package/lib-es/logic/broadcast.js +19 -0
  339. package/lib-es/logic/broadcast.js.map +1 -0
  340. package/lib-es/logic/craftTransaction.d.ts +17 -0
  341. package/lib-es/logic/craftTransaction.d.ts.map +1 -0
  342. package/lib-es/logic/craftTransaction.js +15 -0
  343. package/lib-es/logic/craftTransaction.js.map +1 -0
  344. package/lib-es/logic/estimateFees.d.ts +10 -0
  345. package/lib-es/logic/estimateFees.d.ts.map +1 -0
  346. package/lib-es/logic/estimateFees.js +13 -0
  347. package/lib-es/logic/estimateFees.js.map +1 -0
  348. package/lib-es/logic/index.d.ts +4 -0
  349. package/lib-es/logic/index.d.ts.map +1 -0
  350. package/lib-es/logic/index.js +4 -0
  351. package/lib-es/logic/index.js.map +1 -0
  352. package/lib-es/network/index.d.ts +18 -0
  353. package/lib-es/network/index.d.ts.map +1 -0
  354. package/lib-es/network/index.js +10 -0
  355. package/lib-es/network/index.js.map +1 -0
  356. package/lib-es/network/sdk.d.ts +61 -0
  357. package/lib-es/network/sdk.d.ts.map +1 -0
  358. package/lib-es/network/sdk.integration.test.d.ts +2 -0
  359. package/lib-es/network/sdk.integration.test.d.ts.map +1 -0
  360. package/lib-es/network/sdk.integration.test.js +65 -0
  361. package/lib-es/network/sdk.integration.test.js.map +1 -0
  362. package/lib-es/network/sdk.js +189 -0
  363. package/lib-es/network/sdk.js.map +1 -0
  364. package/lib-es/network/sdk.test.d.ts +2 -0
  365. package/lib-es/network/sdk.test.d.ts.map +1 -0
  366. package/lib-es/network/sdk.test.js +164 -0
  367. package/lib-es/network/sdk.test.js.map +1 -0
  368. package/lib-es/signer/getAddress.d.ts +6 -0
  369. package/lib-es/signer/getAddress.d.ts.map +1 -0
  370. package/lib-es/signer/getAddress.js +18 -0
  371. package/lib-es/signer/getAddress.js.map +1 -0
  372. package/lib-es/signer/getAddress.test.d.ts +2 -0
  373. package/lib-es/signer/getAddress.test.d.ts.map +1 -0
  374. package/lib-es/signer/getAddress.test.js +101 -0
  375. package/lib-es/signer/getAddress.test.js.map +1 -0
  376. package/lib-es/signer/index.d.ts +6 -0
  377. package/lib-es/signer/index.d.ts.map +1 -0
  378. package/lib-es/signer/index.js +6 -0
  379. package/lib-es/signer/index.js.map +1 -0
  380. package/lib-es/test/cli.d.ts +16 -0
  381. package/lib-es/test/cli.d.ts.map +1 -0
  382. package/lib-es/test/cli.js +13 -0
  383. package/lib-es/test/cli.js.map +1 -0
  384. package/lib-es/types/bridge.d.ts +72 -0
  385. package/lib-es/types/bridge.d.ts.map +1 -0
  386. package/lib-es/types/bridge.fixture.d.ts +30 -0
  387. package/lib-es/types/bridge.fixture.d.ts.map +1 -0
  388. package/lib-es/types/bridge.fixture.js +80 -0
  389. package/lib-es/types/bridge.fixture.js.map +1 -0
  390. package/lib-es/types/bridge.js +2 -0
  391. package/lib-es/types/bridge.js.map +1 -0
  392. package/lib-es/types/index.d.ts +4 -0
  393. package/lib-es/types/index.d.ts.map +1 -0
  394. package/lib-es/types/index.js +4 -0
  395. package/lib-es/types/index.js.map +1 -0
  396. package/lib-es/types/model.d.ts +6 -0
  397. package/lib-es/types/model.d.ts.map +1 -0
  398. package/lib-es/types/model.js +2 -0
  399. package/lib-es/types/model.js.map +1 -0
  400. package/lib-es/types/signer.d.ts +13 -0
  401. package/lib-es/types/signer.d.ts.map +1 -0
  402. package/lib-es/types/signer.js +2 -0
  403. package/lib-es/types/signer.js.map +1 -0
  404. package/lib-es/utils.d.ts +7 -0
  405. package/lib-es/utils.d.ts.map +1 -0
  406. package/lib-es/utils.js +9 -0
  407. package/lib-es/utils.js.map +1 -0
  408. package/package.json +152 -0
  409. package/src/api/chain/index.ts +17 -0
  410. package/src/bridge/bridge.integration.test.ts +140 -0
  411. package/src/bridge/broadcast.test.ts +52 -0
  412. package/src/bridge/broadcast.ts +21 -0
  413. package/src/bridge/buildOptimisticOperation.test.ts +53 -0
  414. package/src/bridge/buildOptimisticOperation.ts +105 -0
  415. package/src/bridge/buildTransaction.test.ts +17 -0
  416. package/src/bridge/buildTransaction.ts +14 -0
  417. package/src/bridge/createTransaction.ts +23 -0
  418. package/src/bridge/estimateMaxSpendable.test.ts +27 -0
  419. package/src/bridge/estimateMaxSpendable.ts +46 -0
  420. package/src/bridge/formatters.test.ts +17 -0
  421. package/src/bridge/formatters.ts +26 -0
  422. package/src/bridge/getFeesForTransaction.test.ts +36 -0
  423. package/src/bridge/getFeesForTransaction.ts +37 -0
  424. package/src/bridge/getTransactionStatus.test.ts +57 -0
  425. package/src/bridge/getTransactionStatus.ts +73 -0
  426. package/src/bridge/index.ts +77 -0
  427. package/src/bridge/preload.ts +46 -0
  428. package/src/bridge/prepareTransaction.test.ts +47 -0
  429. package/src/bridge/prepareTransaction.ts +44 -0
  430. package/src/bridge/serialization.test.ts +135 -0
  431. package/src/bridge/serialization.ts +24 -0
  432. package/src/bridge/signOperation.test.ts +80 -0
  433. package/src/bridge/signOperation.ts +101 -0
  434. package/src/bridge/synchronisation.test.ts +140 -0
  435. package/src/bridge/synchronisation.ts +75 -0
  436. package/src/bridge/transaction.test.ts +73 -0
  437. package/src/bridge/transaction.ts +61 -0
  438. package/src/bridge/utils.ts +69 -0
  439. package/src/config.ts +19 -0
  440. package/src/index.ts +3 -0
  441. package/src/logic/broadcast.ts +19 -0
  442. package/src/logic/craftTransaction.ts +28 -0
  443. package/src/logic/estimateFees.ts +14 -0
  444. package/src/logic/index.ts +3 -0
  445. package/src/network/index.ts +17 -0
  446. package/src/network/sdk.integration.test.ts +75 -0
  447. package/src/network/sdk.test.ts +203 -0
  448. package/src/network/sdk.ts +262 -0
  449. package/src/signer/getAddress.test.ts +119 -0
  450. package/src/signer/getAddress.ts +26 -0
  451. package/src/signer/index.ts +7 -0
  452. package/src/test/cli.ts +21 -0
  453. package/src/types/bridge.fixture.ts +84 -0
  454. package/src/types/bridge.ts +95 -0
  455. package/src/types/index.ts +3 -0
  456. package/src/types/model.ts +7 -0
  457. package/src/types/signer.ts +12 -0
  458. package/src/utils.ts +8 -0
  459. package/tsconfig.json +14 -0
@@ -0,0 +1,189 @@
1
+ import { SuiClient, } from "@mysten/sui/client";
2
+ import { Transaction } from "@mysten/sui/transactions";
3
+ import { BigNumber } from "bignumber.js";
4
+ import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
5
+ import { makeLRUCache, minutes } from "@ledgerhq/live-network/cache";
6
+ import { getEnv } from "@ledgerhq/live-env";
7
+ import { ensureAddressFormat } from "../utils";
8
+ const rpcUrl = getEnv("API_SUI_NODE_PROXY");
9
+ let api = null;
10
+ const TRANSACTIONS_REQUEST_LIMIT = 100;
11
+ const BLOCK_HEIGHT = 5; // sui has no block height metainfo, we use it simulate proper icon statuses in apps
12
+ /**
13
+ * Connects to Sui Api
14
+ */
15
+ async function withApi(execute) {
16
+ if (!api) {
17
+ api = new SuiClient({ url: rpcUrl });
18
+ }
19
+ const result = await execute(api);
20
+ return result;
21
+ }
22
+ export const getBalanceCached = makeLRUCache(({ api, owner }) => api.getBalance({ owner }), (params) => params.owner, minutes(1));
23
+ /**
24
+ * Get account balance
25
+ */
26
+ export const getAccount = async (addr) => withApi(async (api) => {
27
+ const balance = await getBalanceCached({ api, owner: addr });
28
+ return {
29
+ blockHeight: BLOCK_HEIGHT * 2,
30
+ balance: BigNumber(balance.totalBalance),
31
+ };
32
+ });
33
+ /**
34
+ * Returns true if account is the signer
35
+ */
36
+ export function isSender(addr, transaction) {
37
+ return transaction?.sender === ensureAddressFormat(addr);
38
+ }
39
+ /**
40
+ * Map transaction to an Operation Type
41
+ */
42
+ export function getOperationType(addr, transaction) {
43
+ return isSender(addr, transaction) ? "OUT" : "IN";
44
+ }
45
+ /**
46
+ * Extract senders from transaction
47
+ */
48
+ export const getOperationSenders = (transaction) => {
49
+ return transaction?.sender ? [transaction?.sender] : [];
50
+ };
51
+ /**
52
+ * Extract recipients from transaction
53
+ */
54
+ export const getOperationRecipients = (transaction) => {
55
+ if (transaction?.transaction.kind === "ProgrammableTransaction") {
56
+ if (!transaction?.transaction?.inputs)
57
+ return [];
58
+ const recipients = [];
59
+ transaction.transaction.inputs.forEach((input) => {
60
+ if ("valueType" in input && input.valueType === "address") {
61
+ recipients.push(String(input.value));
62
+ }
63
+ });
64
+ return recipients;
65
+ }
66
+ return [];
67
+ };
68
+ /**
69
+ * Extract value from transaction
70
+ */
71
+ export const getOperationAmount = (address, transaction) => {
72
+ let amount = new BigNumber(0);
73
+ if (!transaction?.balanceChanges)
74
+ return amount;
75
+ for (const balanceChange of transaction.balanceChanges) {
76
+ if (typeof balanceChange.owner !== "string" &&
77
+ "AddressOwner" in balanceChange.owner &&
78
+ balanceChange.owner.AddressOwner === address) {
79
+ if (balanceChange.amount[0] === "-") {
80
+ amount = amount.minus(balanceChange.amount);
81
+ }
82
+ else {
83
+ amount = amount.plus(balanceChange.amount);
84
+ }
85
+ }
86
+ }
87
+ return amount;
88
+ };
89
+ /**
90
+ * Extract fee from transaction
91
+ */
92
+ export const getOperationFee = (transaction) => {
93
+ const gas = transaction.effects.gasUsed;
94
+ const computationCost = BigNumber(gas.computationCost);
95
+ const storageCost = BigNumber(gas.storageCost);
96
+ const storageRebate = BigNumber(gas.storageRebate);
97
+ return computationCost.plus(storageCost).minus(storageRebate);
98
+ };
99
+ /**
100
+ * Extract date from transaction
101
+ */
102
+ export const getOperationDate = (transaction) => {
103
+ return new Date(parseInt(transaction.timestampMs));
104
+ };
105
+ /**
106
+ * Map the Sui history transaction to a Ledger Live Operation
107
+ */
108
+ export function transactionToOperation(accountId, address, transaction) {
109
+ const type = getOperationType(address, transaction.transaction?.data);
110
+ const hash = transaction.digest;
111
+ return {
112
+ id: encodeOperationId(accountId, hash, type),
113
+ accountId,
114
+ blockHash: hash,
115
+ blockHeight: BLOCK_HEIGHT,
116
+ date: getOperationDate(transaction),
117
+ extra: {},
118
+ fee: getOperationFee(transaction),
119
+ hasFailed: transaction.effects?.status.status != "success",
120
+ hash,
121
+ recipients: getOperationRecipients(transaction.transaction?.data),
122
+ senders: getOperationSenders(transaction.transaction?.data),
123
+ type,
124
+ value: getOperationAmount(address, transaction),
125
+ };
126
+ }
127
+ /**
128
+ * Fetch operation list
129
+ */
130
+ export const getOperations = async (accountId, addr, inCursor, outCursor) => withApi(async (api) => {
131
+ const sentOps = await loadOperation({ api, type: "OUT", addr, cursor: outCursor });
132
+ const receivedOps = await loadOperation({ api, type: "IN", addr, cursor: inCursor });
133
+ const rawTransactions = [...sentOps, ...receivedOps].sort((a, b) => Number(b.timestampMs) - Number(a.timestampMs));
134
+ return rawTransactions.map(transaction => transactionToOperation(accountId, addr, transaction));
135
+ });
136
+ const getTotalGasUsed = (effects) => {
137
+ const gasSummary = effects?.gasUsed;
138
+ if (!gasSummary)
139
+ return BigInt(0);
140
+ return (BigInt(gasSummary.computationCost) +
141
+ BigInt(gasSummary.storageCost) -
142
+ BigInt(gasSummary.storageRebate));
143
+ };
144
+ export const paymentInfo = async (sender, fakeTransaction) => withApi(async (api) => {
145
+ const tx = new Transaction();
146
+ tx.setSender(ensureAddressFormat(sender));
147
+ const [coin] = tx.splitCoins(tx.gas, [fakeTransaction.amount.toNumber()]);
148
+ tx.transferObjects([coin], fakeTransaction.recipient);
149
+ const txb = await tx.build({ client: api });
150
+ const dryRunTxResponse = await api.dryRunTransactionBlock({ transactionBlock: txb });
151
+ const fees = getTotalGasUsed(dryRunTxResponse.effects);
152
+ return {
153
+ gasBudget: dryRunTxResponse.input.gasData.budget,
154
+ totalGasUsed: fees,
155
+ fees,
156
+ };
157
+ });
158
+ export const createTransaction = async (address, transaction) => withApi(async (api) => {
159
+ const tx = new Transaction();
160
+ tx.setSender(ensureAddressFormat(address));
161
+ const [coin] = tx.splitCoins(tx.gas, [transaction.amount.toNumber()]);
162
+ tx.transferObjects([coin], transaction.recipient);
163
+ return tx.build({ client: api });
164
+ });
165
+ export const executeTransactionBlock = async (params) => withApi(async (api) => {
166
+ return api.executeTransactionBlock(params);
167
+ });
168
+ // load from curos point or from begining until we reach the end
169
+ const loadOperation = async (params) => {
170
+ const { api, addr, type, cursor } = params;
171
+ const filter = type === "IN" ? { ToAddress: addr } : { FromAddress: addr };
172
+ const { data, nextCursor, hasNextPage } = await api.queryTransactionBlocks({
173
+ filter,
174
+ cursor,
175
+ order: "ascending",
176
+ options: {
177
+ showInput: true,
178
+ showBalanceChanges: true,
179
+ showEffects: true, // To get transaction status and gas fee details
180
+ },
181
+ limit: TRANSACTIONS_REQUEST_LIMIT,
182
+ });
183
+ if (hasNextPage) {
184
+ const newData = await loadOperation({ api, type, addr, cursor: nextCursor });
185
+ return [...newData, ...data];
186
+ }
187
+ return data;
188
+ };
189
+ //# sourceMappingURL=sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/network/sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sdk.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.test.d.ts","sourceRoot":"","sources":["../../src/network/sdk.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,164 @@
1
+ import { getAccount, getOperationType, getOperationSenders, getOperationRecipients, getOperationAmount, getOperationFee, getOperationDate, transactionToOperation, getOperations, paymentInfo, createTransaction, } from "./sdk";
2
+ import { BigNumber } from "bignumber.js";
3
+ const mockTransaction = {
4
+ digest: "DhKLpX5kwuKuyRa71RGqpX5EY2M8Efw535ZVXYXsRiDt",
5
+ transaction: {
6
+ data: {
7
+ messageVersion: "v1",
8
+ transaction: {
9
+ kind: "ProgrammableTransaction",
10
+ inputs: [
11
+ {
12
+ type: "pure",
13
+ valueType: "address",
14
+ value: "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0",
15
+ },
16
+ ],
17
+ transactions: [
18
+ {
19
+ TransferObjects: [["GasCoin"], { Input: 0 }],
20
+ },
21
+ ],
22
+ },
23
+ sender: "0x65449f57946938c84c512732f1d69405d1fce417d9c9894696ddf4522f479e24",
24
+ gasData: {
25
+ payment: [
26
+ {
27
+ objectId: "0x9d49c70b621b618c7918468a7ac286e71cffe6e30c4e4175a4385516b121cb0e",
28
+ version: "57",
29
+ digest: "2rPEonJQQUXeAmAegn3fVqBjpKrC5NadAZBetb5wJQm6",
30
+ },
31
+ ],
32
+ owner: "0x65449f57946938c84c512732f1d69405d1fce417d9c9894696ddf4522f479e24",
33
+ price: "1000",
34
+ budget: "2988000",
35
+ },
36
+ },
37
+ txSignatures: [
38
+ "AJKFd5y+1y/ggTAKTZlrrQlvSWXoYCSU7ksxyBG6BI9FDjN/R8db5PNbw19Bs+Lp4VE0cu9BBzAc/gYDFwgYrQVgR+QnZSFg3qWm+IjLX2dEep/wlLje2lziXO+HmZApcQ==",
39
+ ],
40
+ },
41
+ effects: {
42
+ messageVersion: "v1",
43
+ status: { status: "success" },
44
+ executedEpoch: "18",
45
+ gasUsed: {
46
+ computationCost: "1000000",
47
+ storageCost: "988000",
48
+ storageRebate: "978120",
49
+ nonRefundableStorageFee: "9880",
50
+ },
51
+ modifiedAtVersions: [
52
+ {
53
+ objectId: "0x9d49c70b621b618c7918468a7ac286e71cffe6e30c4e4175a4385516b121cb0e",
54
+ sequenceNumber: "57",
55
+ },
56
+ ],
57
+ transactionDigest: "DhKLpX5kwuKuyRa71RGqpX5EY2M8Efw535ZVXYXsRiDt",
58
+ mutated: [
59
+ {
60
+ owner: {
61
+ AddressOwner: "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0",
62
+ },
63
+ reference: {
64
+ objectId: "0x9d49c70b621b618c7918468a7ac286e71cffe6e30c4e4175a4385516b121cb0e",
65
+ version: "58",
66
+ digest: "82pvkMbymnBFQjhuDDaaW88BeATbNgWWcWH67DcLaPBi",
67
+ },
68
+ },
69
+ ],
70
+ gasObject: {
71
+ owner: { AddressOwner: "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0" },
72
+ reference: {
73
+ objectId: "0x9d49c70b621b618c7918468a7ac286e71cffe6e30c4e4175a4385516b121cb0e",
74
+ version: "58",
75
+ digest: "82pvkMbymnBFQjhuDDaaW88BeATbNgWWcWH67DcLaPBi",
76
+ },
77
+ },
78
+ dependencies: ["D8tHbu9JwGuoaH67PFXCoswqDUy2M4S6KVLWhCodt1a7"],
79
+ },
80
+ balanceChanges: [
81
+ {
82
+ owner: { AddressOwner: "0x65449f57946938c84c512732f1d69405d1fce417d9c9894696ddf4522f479e24" },
83
+ coinType: "0x2::sui::SUI",
84
+ amount: "-10000000000",
85
+ },
86
+ {
87
+ owner: { AddressOwner: "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0" },
88
+ coinType: "0x2::sui::SUI",
89
+ amount: "9998990120",
90
+ },
91
+ ],
92
+ timestampMs: "1742294454878",
93
+ checkpoint: "313024",
94
+ };
95
+ describe("SDK Functions", () => {
96
+ test("getAccount should return account balance", async () => {
97
+ const address = "0x33444cf803c690db96527cec67e3c9ab512596f4ba2d4eace43f0b4f716e0164";
98
+ const balance = await getAccount(address);
99
+ expect(balance).toHaveProperty("blockHeight");
100
+ expect(balance).toHaveProperty("balance");
101
+ });
102
+ test("getOperationType should return IN for incoming tx", () => {
103
+ const address = "0x33444cf803c690db96527cec67e3c9ab512596f4ba2d4eace43f0b4f716e0164";
104
+ expect(getOperationType(address, mockTransaction.transaction?.data)).toBe("IN");
105
+ });
106
+ test("getOperationSenders should return sender address", () => {
107
+ expect(getOperationSenders(mockTransaction.transaction?.data)).toEqual([
108
+ "0x65449f57946938c84c512732f1d69405d1fce417d9c9894696ddf4522f479e24",
109
+ ]);
110
+ });
111
+ test("getOperationRecipients should return recipient addresses", () => {
112
+ expect(getOperationRecipients(mockTransaction.transaction?.data)).toEqual(["0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0"]);
113
+ });
114
+ test("getOperationAmount should calculate amount correctly", () => {
115
+ const address = "0x33444cf803c690db96527cec67e3c9ab512596f4ba2d4eace43f0b4f716e0164";
116
+ expect(getOperationAmount(address, mockTransaction)).toEqual(new BigNumber(0));
117
+ });
118
+ test("getOperationFee should calculate fee correctly", () => {
119
+ expect(getOperationFee(mockTransaction)).toEqual(new BigNumber(1009880));
120
+ });
121
+ test("getOperationDate should return correct date", () => {
122
+ expect(getOperationDate(mockTransaction)).toEqual(new Date("2025-03-18T10:40:54.878Z"));
123
+ });
124
+ test("transactionToOperation should map transaction to operation", () => {
125
+ const accountId = "mockAccountId";
126
+ const address = "0x33444cf803c690db96527cec67e3c9ab512596f4ba2d4eace43f0b4f716e0164";
127
+ const operation = transactionToOperation(accountId, address, mockTransaction);
128
+ expect(operation).toHaveProperty("id");
129
+ expect(operation).toHaveProperty("accountId", accountId);
130
+ });
131
+ test("getOperations should fetch operations", async () => {
132
+ const accountId = "mockAccountId";
133
+ const addr = "0x33444cf803c690db96527cec67e3c9ab512596f4ba2d4eace43f0b4f716e0164";
134
+ const operations = await getOperations(accountId, addr);
135
+ expect(Array.isArray(operations)).toBe(true);
136
+ });
137
+ test("paymentInfo should return gas budget and fees", async () => {
138
+ const sender = "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0";
139
+ const fakeTransaction = {
140
+ mode: "sent",
141
+ family: "sui",
142
+ amount: new BigNumber(100),
143
+ recipient: "0x33444cf803c690db96527cec67e3c9ab512596f4ba2d4eace43f0b4f716e0164",
144
+ errors: {},
145
+ };
146
+ const info = await paymentInfo(sender, fakeTransaction);
147
+ expect(info).toHaveProperty("gasBudget");
148
+ expect(info).toHaveProperty("totalGasUsed");
149
+ expect(info).toHaveProperty("fees");
150
+ });
151
+ test("createTransaction should build a transaction", async () => {
152
+ const address = "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0";
153
+ const transaction = {
154
+ mode: "sent",
155
+ family: "sui",
156
+ amount: new BigNumber(100),
157
+ recipient: "0x33444cf803c690db96527cec67e3c9ab512596f4ba2d4eace43f0b4f716e0164",
158
+ errors: {},
159
+ };
160
+ const tx = await createTransaction(address, transaction);
161
+ expect(tx).toBeInstanceOf(Uint8Array);
162
+ });
163
+ });
164
+ //# sourceMappingURL=sdk.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.test.js","sourceRoot":"","sources":["../../src/network/sdk.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { GetAddressFn } from "@ledgerhq/coin-framework/bridge/getAddressWrapper";
2
+ import type { SignerContext } from "@ledgerhq/coin-framework/signer";
3
+ import type { SuiSigner } from "../types";
4
+ declare const resolver: (signerContext: SignerContext<SuiSigner>) => GetAddressFn;
5
+ export default resolver;
6
+ //# sourceMappingURL=getAddress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAddress.d.ts","sourceRoot":"","sources":["../../src/signer/getAddress.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,QAAA,MAAM,QAAQ,kBAAmB,cAAc,SAAS,CAAC,KAAG,YAgB3D,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { log } from "@ledgerhq/logs";
2
+ import { ensureAddressFormat } from "../utils";
3
+ const resolver = (signerContext) => {
4
+ return async (deviceId, { path, verify }) => {
5
+ log("debug", "start getAddress process");
6
+ const result = await signerContext(deviceId, signer => signer.getPublicKey(path, verify));
7
+ if (!result.address || !result.publicKey) {
8
+ throw Error("Failed to get address from device");
9
+ }
10
+ return {
11
+ address: ensureAddressFormat(Buffer.from(result.address).toString("hex")),
12
+ publicKey: Buffer.from(result.publicKey).toString("hex"),
13
+ path,
14
+ };
15
+ };
16
+ };
17
+ export default resolver;
18
+ //# sourceMappingURL=getAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAddress.js","sourceRoot":"","sources":["../../src/signer/getAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAKrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,QAAQ,GAAG,CAAC,aAAuC,EAAgB,EAAE;IACzE,OAAO,KAAK,EAAE,QAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAqB,EAAE,EAAE;QACrE,GAAG,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAE1F,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;QAED,OAAO;YACL,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACzE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxD,IAAI;SACL,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getAddress.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAddress.test.d.ts","sourceRoot":"","sources":["../../src/signer/getAddress.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,101 @@
1
+ import getAddressResolver from "./";
2
+ describe("getAddress resolver", () => {
3
+ const mockDeviceId = "mock-device-id";
4
+ const mockPath = "44'/784'/0'/0'/0'";
5
+ it("should successfully resolve an address", async () => {
6
+ // Mock address and public key data
7
+ const mockAddress = Buffer.from("0x123abc");
8
+ const mockPublicKey = Buffer.from("deadbeef");
9
+ const mockSigner = {
10
+ getPublicKey: jest.fn().mockResolvedValue({
11
+ address: mockAddress,
12
+ publicKey: mockPublicKey,
13
+ }),
14
+ };
15
+ const mockSignerContext = jest
16
+ .fn()
17
+ .mockImplementation((deviceId, callback) => callback(mockSigner));
18
+ const getAddress = getAddressResolver(mockSignerContext);
19
+ const result = await getAddress(mockDeviceId, {
20
+ currency: {
21
+ type: "CryptoCurrency",
22
+ id: "sui",
23
+ coinType: 784,
24
+ name: "Sui",
25
+ managerAppName: "Sui",
26
+ ticker: "SUI",
27
+ scheme: "sui",
28
+ color: "#000",
29
+ family: "sui",
30
+ units: [{ name: "Sui", code: "SUI", magnitude: 9 }],
31
+ explorerViews: [],
32
+ },
33
+ path: "44'/784'/0'/0'/0'",
34
+ derivationMode: "sui",
35
+ });
36
+ expect(result).toEqual({
37
+ address: "0x" + mockAddress.toString("hex"),
38
+ publicKey: mockPublicKey.toString("hex"),
39
+ path: mockPath,
40
+ });
41
+ });
42
+ it("should throw error when address is missing", async () => {
43
+ const mockSigner = {
44
+ getPublicKey: jest.fn().mockResolvedValue({
45
+ address: null,
46
+ publicKey: Buffer.from("deadbeef"),
47
+ }),
48
+ };
49
+ const mockSignerContext = jest
50
+ .fn()
51
+ .mockImplementation((deviceId, callback) => callback(mockSigner));
52
+ const getAddress = getAddressResolver(mockSignerContext);
53
+ await expect(getAddress(mockDeviceId, {
54
+ currency: {
55
+ type: "CryptoCurrency",
56
+ id: "sui",
57
+ coinType: 784,
58
+ name: "Sui",
59
+ managerAppName: "Sui",
60
+ ticker: "SUI",
61
+ scheme: "sui",
62
+ color: "#000",
63
+ family: "sui",
64
+ units: [{ name: "Sui", code: "SUI", magnitude: 9 }],
65
+ explorerViews: [],
66
+ },
67
+ path: "44'/784'/0'/0'/0'",
68
+ derivationMode: "sui",
69
+ })).rejects.toThrow("Failed to get address from device");
70
+ });
71
+ it("should throw error when publicKey is missing", async () => {
72
+ const mockSigner = {
73
+ getPublicKey: jest.fn().mockResolvedValue({
74
+ address: Buffer.from("0x123abc"),
75
+ publicKey: null,
76
+ }),
77
+ };
78
+ const mockSignerContext = jest
79
+ .fn()
80
+ .mockImplementation((deviceId, callback) => callback(mockSigner));
81
+ const getAddress = getAddressResolver(mockSignerContext);
82
+ await expect(getAddress(mockDeviceId, {
83
+ currency: {
84
+ type: "CryptoCurrency",
85
+ id: "sui",
86
+ coinType: 784,
87
+ name: "Sui",
88
+ managerAppName: "Sui",
89
+ ticker: "SUI",
90
+ scheme: "sui",
91
+ color: "#000",
92
+ family: "sui",
93
+ units: [{ name: "Sui", code: "SUI", magnitude: 9 }],
94
+ explorerViews: [],
95
+ },
96
+ path: "44'/784'/0'/0'/0'",
97
+ derivationMode: "sui",
98
+ })).rejects.toThrow("Failed to get address from device");
99
+ });
100
+ });
101
+ //# sourceMappingURL=getAddress.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAddress.test.js","sourceRoot":"","sources":["../../src/signer/getAddress.test.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,IAAI,CAAC;AAEpC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,MAAM,YAAY,GAAG,gBAAgB,CAAC;IACtC,MAAM,QAAQ,GAAG,mBAAmB,CAAC;IAErC,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,mCAAmC;QACnC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE9C,MAAM,UAAU,GAAG;YACjB,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACxC,OAAO,EAAE,WAAW;gBACpB,SAAS,EAAE,aAAa;aACzB,CAAC;SACH,CAAC;QAEF,MAAM,iBAAiB,GAAG,IAAI;aAC3B,EAAE,EAAE;aACJ,kBAAkB,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAEpE,MAAM,UAAU,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAEzD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE;YAC5C,QAAQ,EAAE;gBACR,IAAI,EAAE,gBAAgB;gBACtB,EAAE,EAAE,KAAK;gBACT,QAAQ,EAAE,GAAG;gBACb,IAAI,EAAE,KAAK;gBACX,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;gBACnD,aAAa,EAAE,EAAE;aAClB;YACD,IAAI,EAAE,mBAAmB;YACzB,cAAc,EAAE,KAAK;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC3C,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxC,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,UAAU,GAAG;YACjB,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACxC,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;aACnC,CAAC;SACH,CAAC;QAEF,MAAM,iBAAiB,GAAG,IAAI;aAC3B,EAAE,EAAE;aACJ,kBAAkB,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAEpE,MAAM,UAAU,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAEzD,MAAM,MAAM,CACV,UAAU,CAAC,YAAY,EAAE;YACvB,QAAQ,EAAE;gBACR,IAAI,EAAE,gBAAgB;gBACtB,EAAE,EAAE,KAAK;gBACT,QAAQ,EAAE,GAAG;gBACb,IAAI,EAAE,KAAK;gBACX,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;gBACnD,aAAa,EAAE,EAAE;aAClB;YACD,IAAI,EAAE,mBAAmB;YACzB,cAAc,EAAE,KAAK;SACtB,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,UAAU,GAAG;YACjB,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACxC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;gBAChC,SAAS,EAAE,IAAI;aAChB,CAAC;SACH,CAAC;QAEF,MAAM,iBAAiB,GAAG,IAAI;aAC3B,EAAE,EAAE;aACJ,kBAAkB,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAEpE,MAAM,UAAU,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAEzD,MAAM,MAAM,CACV,UAAU,CAAC,YAAY,EAAE;YACvB,QAAQ,EAAE;gBACR,IAAI,EAAE,gBAAgB;gBACtB,EAAE,EAAE,KAAK;gBACT,QAAQ,EAAE,GAAG;gBACb,IAAI,EAAE,KAAK;gBACX,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;gBACnD,aAAa,EAAE,EAAE;aAClB;YACD,IAAI,EAAE,mBAAmB;YACzB,cAAc,EAAE,KAAK;SACtB,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * This directory is the home for all types and logic based on Ledgers signer.
3
+ */
4
+ import getAddress from "./getAddress";
5
+ export default getAddress;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signer/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,eAAe,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * This directory is the home for all types and logic based on Ledgers signer.
3
+ */
4
+ import getAddress from "./getAddress";
5
+ export default getAddress;
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signer/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,eAAe,UAAU,CAAC"}
@@ -0,0 +1,16 @@
1
+ type Options = {
2
+ name: string;
3
+ type: StringConstructor;
4
+ desc: string;
5
+ } | {
6
+ name: string;
7
+ type: StringConstructor;
8
+ desc: string;
9
+ multiple: boolean;
10
+ };
11
+ export type CliTools = {
12
+ options: Array<Options>;
13
+ };
14
+ export default function makeCliTools(): CliTools;
15
+ export {};
16
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/test/cli.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,GACR;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC;AAU/E,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CACzB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,YAAY,IAAI,QAAQ,CAI/C"}
@@ -0,0 +1,13 @@
1
+ const options = [
2
+ {
3
+ name: "mode",
4
+ type: String,
5
+ desc: "mode of transaction: send",
6
+ },
7
+ ];
8
+ export default function makeCliTools() {
9
+ return {
10
+ options,
11
+ };
12
+ }
13
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/test/cli.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,GAAmB;IAC9B;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,2BAA2B;KAClC;CACF,CAAC;AAMF,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,OAAO;QACL,OAAO;KACR,CAAC;AACJ,CAAC"}