@moveindustries/ts-sdk 5.1.4

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 (729) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +66 -0
  3. package/dist/common/accountAddress-DoqkxUqw.d.ts +7769 -0
  4. package/dist/common/chunk-56DGDNEY.js +4 -0
  5. package/dist/common/chunk-56DGDNEY.js.map +1 -0
  6. package/dist/common/cli/index.d.ts +316 -0
  7. package/dist/common/cli/index.js +2 -0
  8. package/dist/common/cli/index.js.map +1 -0
  9. package/dist/common/index.d.ts +10643 -0
  10. package/dist/common/index.js +482 -0
  11. package/dist/common/index.js.map +1 -0
  12. package/dist/esm/Ed25519Account-DsqenvLJ.d.mts +628 -0
  13. package/dist/esm/account/AbstractKeylessAccount.d.mts +336 -0
  14. package/dist/esm/account/AbstractKeylessAccount.mjs +2 -0
  15. package/dist/esm/account/AbstractKeylessAccount.mjs.map +1 -0
  16. package/dist/esm/account/AbstractedAccount.d.mts +64 -0
  17. package/dist/esm/account/AbstractedAccount.mjs +2 -0
  18. package/dist/esm/account/AbstractedAccount.mjs.map +1 -0
  19. package/dist/esm/account/Account.d.mts +8 -0
  20. package/dist/esm/account/Account.mjs +2 -0
  21. package/dist/esm/account/Account.mjs.map +1 -0
  22. package/dist/esm/account/AccountUtils.d.mts +38 -0
  23. package/dist/esm/account/AccountUtils.mjs +2 -0
  24. package/dist/esm/account/AccountUtils.mjs.map +1 -0
  25. package/dist/esm/account/DerivableAbstractedAccount.d.mts +59 -0
  26. package/dist/esm/account/DerivableAbstractedAccount.mjs +2 -0
  27. package/dist/esm/account/DerivableAbstractedAccount.mjs.map +1 -0
  28. package/dist/esm/account/Ed25519Account.d.mts +8 -0
  29. package/dist/esm/account/Ed25519Account.mjs +2 -0
  30. package/dist/esm/account/Ed25519Account.mjs.map +1 -0
  31. package/dist/esm/account/EphemeralKeyPair.d.mts +141 -0
  32. package/dist/esm/account/EphemeralKeyPair.mjs +2 -0
  33. package/dist/esm/account/EphemeralKeyPair.mjs.map +1 -0
  34. package/dist/esm/account/FederatedKeylessAccount.d.mts +118 -0
  35. package/dist/esm/account/FederatedKeylessAccount.mjs +2 -0
  36. package/dist/esm/account/FederatedKeylessAccount.mjs.map +1 -0
  37. package/dist/esm/account/KeylessAccount.d.mts +124 -0
  38. package/dist/esm/account/KeylessAccount.mjs +2 -0
  39. package/dist/esm/account/KeylessAccount.mjs.map +1 -0
  40. package/dist/esm/account/MultiEd25519Account.d.mts +102 -0
  41. package/dist/esm/account/MultiEd25519Account.mjs +2 -0
  42. package/dist/esm/account/MultiEd25519Account.mjs.map +1 -0
  43. package/dist/esm/account/MultiKeyAccount.d.mts +206 -0
  44. package/dist/esm/account/MultiKeyAccount.mjs +2 -0
  45. package/dist/esm/account/MultiKeyAccount.mjs.map +1 -0
  46. package/dist/esm/account/SingleKeyAccount.d.mts +8 -0
  47. package/dist/esm/account/SingleKeyAccount.mjs +2 -0
  48. package/dist/esm/account/SingleKeyAccount.mjs.map +1 -0
  49. package/dist/esm/account/index.d.mts +24 -0
  50. package/dist/esm/account/index.mjs +2 -0
  51. package/dist/esm/account/index.mjs.map +1 -0
  52. package/dist/esm/account/utils.d.mts +14 -0
  53. package/dist/esm/account/utils.mjs +2 -0
  54. package/dist/esm/account/utils.mjs.map +1 -0
  55. package/dist/esm/accountAddress-CNXtapt1.d.mts +6979 -0
  56. package/dist/esm/api/account/abstraction.d.mts +181 -0
  57. package/dist/esm/api/account/abstraction.mjs +2 -0
  58. package/dist/esm/api/account/abstraction.mjs.map +1 -0
  59. package/dist/esm/api/account.d.mts +852 -0
  60. package/dist/esm/api/account.mjs +2 -0
  61. package/dist/esm/api/account.mjs.map +1 -0
  62. package/dist/esm/api/ans.d.mts +504 -0
  63. package/dist/esm/api/ans.mjs +2 -0
  64. package/dist/esm/api/ans.mjs.map +1 -0
  65. package/dist/esm/api/coin.d.mts +81 -0
  66. package/dist/esm/api/coin.mjs +2 -0
  67. package/dist/esm/api/coin.mjs.map +1 -0
  68. package/dist/esm/api/digitalAsset.d.mts +1030 -0
  69. package/dist/esm/api/digitalAsset.mjs +2 -0
  70. package/dist/esm/api/digitalAsset.mjs.map +1 -0
  71. package/dist/esm/api/faucet.d.mts +80 -0
  72. package/dist/esm/api/faucet.mjs +2 -0
  73. package/dist/esm/api/faucet.mjs.map +1 -0
  74. package/dist/esm/api/fungibleAsset.d.mts +288 -0
  75. package/dist/esm/api/fungibleAsset.mjs +2 -0
  76. package/dist/esm/api/fungibleAsset.mjs.map +1 -0
  77. package/dist/esm/api/general.d.mts +303 -0
  78. package/dist/esm/api/general.mjs +2 -0
  79. package/dist/esm/api/general.mjs.map +1 -0
  80. package/dist/esm/api/index.d.mts +46 -0
  81. package/dist/esm/api/index.mjs +2 -0
  82. package/dist/esm/api/index.mjs.map +1 -0
  83. package/dist/esm/api/keyless.d.mts +170 -0
  84. package/dist/esm/api/keyless.mjs +2 -0
  85. package/dist/esm/api/keyless.mjs.map +1 -0
  86. package/dist/esm/api/movement.d.mts +113 -0
  87. package/dist/esm/api/movement.mjs +2 -0
  88. package/dist/esm/api/movement.mjs.map +1 -0
  89. package/dist/esm/api/movementConfig.d.mts +7 -0
  90. package/dist/esm/api/movementConfig.mjs +2 -0
  91. package/dist/esm/api/movementConfig.mjs.map +1 -0
  92. package/dist/esm/api/object.d.mts +80 -0
  93. package/dist/esm/api/object.mjs +2 -0
  94. package/dist/esm/api/object.mjs.map +1 -0
  95. package/dist/esm/api/staking.d.mts +134 -0
  96. package/dist/esm/api/staking.mjs +2 -0
  97. package/dist/esm/api/staking.mjs.map +1 -0
  98. package/dist/esm/api/table.d.mts +169 -0
  99. package/dist/esm/api/table.mjs +2 -0
  100. package/dist/esm/api/table.mjs.map +1 -0
  101. package/dist/esm/api/transaction.d.mts +679 -0
  102. package/dist/esm/api/transaction.mjs +2 -0
  103. package/dist/esm/api/transaction.mjs.map +1 -0
  104. package/dist/esm/api/transactionSubmission/build.d.mts +141 -0
  105. package/dist/esm/api/transactionSubmission/build.mjs +2 -0
  106. package/dist/esm/api/transactionSubmission/build.mjs.map +1 -0
  107. package/dist/esm/api/transactionSubmission/helpers.d.mts +98 -0
  108. package/dist/esm/api/transactionSubmission/helpers.mjs +2 -0
  109. package/dist/esm/api/transactionSubmission/helpers.mjs.map +1 -0
  110. package/dist/esm/api/transactionSubmission/management.d.mts +168 -0
  111. package/dist/esm/api/transactionSubmission/management.mjs +2 -0
  112. package/dist/esm/api/transactionSubmission/management.mjs.map +1 -0
  113. package/dist/esm/api/transactionSubmission/sign.d.mts +124 -0
  114. package/dist/esm/api/transactionSubmission/sign.mjs +2 -0
  115. package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -0
  116. package/dist/esm/api/transactionSubmission/simulate.d.mts +181 -0
  117. package/dist/esm/api/transactionSubmission/simulate.mjs +2 -0
  118. package/dist/esm/api/transactionSubmission/simulate.mjs.map +1 -0
  119. package/dist/esm/api/transactionSubmission/submit.d.mts +142 -0
  120. package/dist/esm/api/transactionSubmission/submit.mjs +2 -0
  121. package/dist/esm/api/transactionSubmission/submit.mjs.map +1 -0
  122. package/dist/esm/api/utils.d.mts +45 -0
  123. package/dist/esm/api/utils.mjs +2 -0
  124. package/dist/esm/api/utils.mjs.map +1 -0
  125. package/dist/esm/bcs/consts.d.mts +28 -0
  126. package/dist/esm/bcs/consts.mjs +2 -0
  127. package/dist/esm/bcs/consts.mjs.map +1 -0
  128. package/dist/esm/bcs/deserializer.d.mts +7 -0
  129. package/dist/esm/bcs/deserializer.mjs +2 -0
  130. package/dist/esm/bcs/deserializer.mjs.map +1 -0
  131. package/dist/esm/bcs/index.d.mts +8 -0
  132. package/dist/esm/bcs/index.mjs +2 -0
  133. package/dist/esm/bcs/index.mjs.map +1 -0
  134. package/dist/esm/bcs/serializable/entryFunctionBytes.d.mts +65 -0
  135. package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +2 -0
  136. package/dist/esm/bcs/serializable/entryFunctionBytes.mjs.map +1 -0
  137. package/dist/esm/bcs/serializable/fixedBytes.d.mts +7 -0
  138. package/dist/esm/bcs/serializable/fixedBytes.mjs +2 -0
  139. package/dist/esm/bcs/serializable/fixedBytes.mjs.map +1 -0
  140. package/dist/esm/bcs/serializable/movePrimitives.d.mts +7 -0
  141. package/dist/esm/bcs/serializable/movePrimitives.mjs +2 -0
  142. package/dist/esm/bcs/serializable/movePrimitives.mjs.map +1 -0
  143. package/dist/esm/bcs/serializable/moveStructs.d.mts +7 -0
  144. package/dist/esm/bcs/serializable/moveStructs.mjs +2 -0
  145. package/dist/esm/bcs/serializable/moveStructs.mjs.map +1 -0
  146. package/dist/esm/bcs/serializer.d.mts +7 -0
  147. package/dist/esm/bcs/serializer.mjs +2 -0
  148. package/dist/esm/bcs/serializer.mjs.map +1 -0
  149. package/dist/esm/chunk-2KDUIZKB.mjs +2 -0
  150. package/dist/esm/chunk-2KDUIZKB.mjs.map +1 -0
  151. package/dist/esm/chunk-2QTV4AOE.mjs +2 -0
  152. package/dist/esm/chunk-2QTV4AOE.mjs.map +1 -0
  153. package/dist/esm/chunk-47V7UGV5.mjs +4 -0
  154. package/dist/esm/chunk-47V7UGV5.mjs.map +1 -0
  155. package/dist/esm/chunk-4QMXOWHP.mjs +1 -0
  156. package/dist/esm/chunk-4QMXOWHP.mjs.map +1 -0
  157. package/dist/esm/chunk-4WPQQPUF.mjs +1 -0
  158. package/dist/esm/chunk-4WPQQPUF.mjs.map +1 -0
  159. package/dist/esm/chunk-5HXLZHDW.mjs +1 -0
  160. package/dist/esm/chunk-5HXLZHDW.mjs.map +1 -0
  161. package/dist/esm/chunk-5IMQPJ6J.mjs +2 -0
  162. package/dist/esm/chunk-5IMQPJ6J.mjs.map +1 -0
  163. package/dist/esm/chunk-5ZKA765G.mjs +2 -0
  164. package/dist/esm/chunk-5ZKA765G.mjs.map +1 -0
  165. package/dist/esm/chunk-6NO4QKAO.mjs +2 -0
  166. package/dist/esm/chunk-6NO4QKAO.mjs.map +1 -0
  167. package/dist/esm/chunk-7ECCT6PK.mjs +1 -0
  168. package/dist/esm/chunk-7ECCT6PK.mjs.map +1 -0
  169. package/dist/esm/chunk-7TTTMBAK.mjs +2 -0
  170. package/dist/esm/chunk-7TTTMBAK.mjs.map +1 -0
  171. package/dist/esm/chunk-A5L76YP7.mjs +2 -0
  172. package/dist/esm/chunk-A5L76YP7.mjs.map +1 -0
  173. package/dist/esm/chunk-ANTEUWH6.mjs +2 -0
  174. package/dist/esm/chunk-ANTEUWH6.mjs.map +1 -0
  175. package/dist/esm/chunk-CHWDP6AR.mjs +2 -0
  176. package/dist/esm/chunk-CHWDP6AR.mjs.map +1 -0
  177. package/dist/esm/chunk-CRCE7R4D.mjs +2 -0
  178. package/dist/esm/chunk-CRCE7R4D.mjs.map +1 -0
  179. package/dist/esm/chunk-D6HPXGEP.mjs +2 -0
  180. package/dist/esm/chunk-D6HPXGEP.mjs.map +1 -0
  181. package/dist/esm/chunk-DS6QB6HG.mjs +4 -0
  182. package/dist/esm/chunk-DS6QB6HG.mjs.map +1 -0
  183. package/dist/esm/chunk-FD6FGKYY.mjs +1 -0
  184. package/dist/esm/chunk-FD6FGKYY.mjs.map +1 -0
  185. package/dist/esm/chunk-FJRPU2NH.mjs +2 -0
  186. package/dist/esm/chunk-FJRPU2NH.mjs.map +1 -0
  187. package/dist/esm/chunk-FS5ZJKO7.mjs +2 -0
  188. package/dist/esm/chunk-FS5ZJKO7.mjs.map +1 -0
  189. package/dist/esm/chunk-FZY4PMEE.mjs +1 -0
  190. package/dist/esm/chunk-FZY4PMEE.mjs.map +1 -0
  191. package/dist/esm/chunk-G3MHXDYA.mjs +1 -0
  192. package/dist/esm/chunk-G3MHXDYA.mjs.map +1 -0
  193. package/dist/esm/chunk-GOXRBEIJ.mjs +2 -0
  194. package/dist/esm/chunk-GOXRBEIJ.mjs.map +1 -0
  195. package/dist/esm/chunk-HGLO5LDS.mjs +1 -0
  196. package/dist/esm/chunk-HGLO5LDS.mjs.map +1 -0
  197. package/dist/esm/chunk-HL2JMZ7N.mjs +2 -0
  198. package/dist/esm/chunk-HL2JMZ7N.mjs.map +1 -0
  199. package/dist/esm/chunk-I6YGBK5S.mjs +2 -0
  200. package/dist/esm/chunk-I6YGBK5S.mjs.map +1 -0
  201. package/dist/esm/chunk-K4NT6TTN.mjs +2 -0
  202. package/dist/esm/chunk-K4NT6TTN.mjs.map +1 -0
  203. package/dist/esm/chunk-KDMSOCZY.mjs +2 -0
  204. package/dist/esm/chunk-KDMSOCZY.mjs.map +1 -0
  205. package/dist/esm/chunk-KPJGWDSQ.mjs +7 -0
  206. package/dist/esm/chunk-KPJGWDSQ.mjs.map +1 -0
  207. package/dist/esm/chunk-MEWW7VTQ.mjs +2 -0
  208. package/dist/esm/chunk-MEWW7VTQ.mjs.map +1 -0
  209. package/dist/esm/chunk-NECL5FCQ.mjs +1 -0
  210. package/dist/esm/chunk-NECL5FCQ.mjs.map +1 -0
  211. package/dist/esm/chunk-NMFJJOGW.mjs +2 -0
  212. package/dist/esm/chunk-NMFJJOGW.mjs.map +1 -0
  213. package/dist/esm/chunk-NQUZ4UHR.mjs +2 -0
  214. package/dist/esm/chunk-NQUZ4UHR.mjs.map +1 -0
  215. package/dist/esm/chunk-NUB6KE73.mjs +2 -0
  216. package/dist/esm/chunk-NUB6KE73.mjs.map +1 -0
  217. package/dist/esm/chunk-OOOAVIMQ.mjs +2 -0
  218. package/dist/esm/chunk-OOOAVIMQ.mjs.map +1 -0
  219. package/dist/esm/chunk-PCESRJYO.mjs +2 -0
  220. package/dist/esm/chunk-PCESRJYO.mjs.map +1 -0
  221. package/dist/esm/chunk-PHRRBT44.mjs +2 -0
  222. package/dist/esm/chunk-PHRRBT44.mjs.map +1 -0
  223. package/dist/esm/chunk-PZ233FIY.mjs +2 -0
  224. package/dist/esm/chunk-PZ233FIY.mjs.map +1 -0
  225. package/dist/esm/chunk-R2G23RIY.mjs +2 -0
  226. package/dist/esm/chunk-R2G23RIY.mjs.map +1 -0
  227. package/dist/esm/chunk-RL4YPMN4.mjs +2 -0
  228. package/dist/esm/chunk-RL4YPMN4.mjs.map +1 -0
  229. package/dist/esm/chunk-RUIFVDWM.mjs +2 -0
  230. package/dist/esm/chunk-RUIFVDWM.mjs.map +1 -0
  231. package/dist/esm/chunk-RXHPS4IU.mjs +2 -0
  232. package/dist/esm/chunk-RXHPS4IU.mjs.map +1 -0
  233. package/dist/esm/chunk-S4D2KBYN.mjs +2 -0
  234. package/dist/esm/chunk-S4D2KBYN.mjs.map +1 -0
  235. package/dist/esm/chunk-SRXFRTHK.mjs +2 -0
  236. package/dist/esm/chunk-SRXFRTHK.mjs.map +1 -0
  237. package/dist/esm/chunk-SYXDZA4K.mjs +2 -0
  238. package/dist/esm/chunk-SYXDZA4K.mjs.map +1 -0
  239. package/dist/esm/chunk-UI4OF6CP.mjs +2 -0
  240. package/dist/esm/chunk-UI4OF6CP.mjs.map +1 -0
  241. package/dist/esm/chunk-UL777LTI.mjs +494 -0
  242. package/dist/esm/chunk-UL777LTI.mjs.map +1 -0
  243. package/dist/esm/chunk-UVP74ONT.mjs +2 -0
  244. package/dist/esm/chunk-UVP74ONT.mjs.map +1 -0
  245. package/dist/esm/chunk-UYVPNUH3.mjs +1 -0
  246. package/dist/esm/chunk-UYVPNUH3.mjs.map +1 -0
  247. package/dist/esm/chunk-V3MBJJTL.mjs +1 -0
  248. package/dist/esm/chunk-V3MBJJTL.mjs.map +1 -0
  249. package/dist/esm/chunk-V3O2SBO4.mjs +2 -0
  250. package/dist/esm/chunk-V3O2SBO4.mjs.map +1 -0
  251. package/dist/esm/chunk-VEZCMPUG.mjs +2 -0
  252. package/dist/esm/chunk-VEZCMPUG.mjs.map +1 -0
  253. package/dist/esm/chunk-VW3WBAAD.mjs +2 -0
  254. package/dist/esm/chunk-VW3WBAAD.mjs.map +1 -0
  255. package/dist/esm/chunk-WFAH73WN.mjs +2 -0
  256. package/dist/esm/chunk-WFAH73WN.mjs.map +1 -0
  257. package/dist/esm/chunk-WVDICMU4.mjs +2 -0
  258. package/dist/esm/chunk-WVDICMU4.mjs.map +1 -0
  259. package/dist/esm/chunk-XCURF77K.mjs +2 -0
  260. package/dist/esm/chunk-XCURF77K.mjs.map +1 -0
  261. package/dist/esm/chunk-Y6YW4BAZ.mjs +2 -0
  262. package/dist/esm/chunk-Y6YW4BAZ.mjs.map +1 -0
  263. package/dist/esm/chunk-YFFYA5U3.mjs +2 -0
  264. package/dist/esm/chunk-YFFYA5U3.mjs.map +1 -0
  265. package/dist/esm/chunk-YOHEYPDP.mjs +2 -0
  266. package/dist/esm/chunk-YOHEYPDP.mjs.map +1 -0
  267. package/dist/esm/chunk-ZP4DWSQA.mjs +2 -0
  268. package/dist/esm/chunk-ZP4DWSQA.mjs.map +1 -0
  269. package/dist/esm/cli/index.d.mts +10 -0
  270. package/dist/esm/cli/index.mjs +2 -0
  271. package/dist/esm/cli/index.mjs.map +1 -0
  272. package/dist/esm/cli/localNode.d.mts +67 -0
  273. package/dist/esm/cli/localNode.mjs +2 -0
  274. package/dist/esm/cli/localNode.mjs.map +1 -0
  275. package/dist/esm/cli/move.d.mts +257 -0
  276. package/dist/esm/cli/move.mjs +2 -0
  277. package/dist/esm/cli/move.mjs.map +1 -0
  278. package/dist/esm/client/core.d.mts +42 -0
  279. package/dist/esm/client/core.mjs +2 -0
  280. package/dist/esm/client/core.mjs.map +1 -0
  281. package/dist/esm/client/get.d.mts +125 -0
  282. package/dist/esm/client/get.mjs +2 -0
  283. package/dist/esm/client/get.mjs.map +1 -0
  284. package/dist/esm/client/index.d.mts +10 -0
  285. package/dist/esm/client/index.mjs +2 -0
  286. package/dist/esm/client/index.mjs.map +1 -0
  287. package/dist/esm/client/post.d.mts +158 -0
  288. package/dist/esm/client/post.mjs +2 -0
  289. package/dist/esm/client/post.mjs.map +1 -0
  290. package/dist/esm/core/account/index.d.mts +8 -0
  291. package/dist/esm/core/account/index.mjs +2 -0
  292. package/dist/esm/core/account/index.mjs.map +1 -0
  293. package/dist/esm/core/account/utils/address.d.mts +55 -0
  294. package/dist/esm/core/account/utils/address.mjs +2 -0
  295. package/dist/esm/core/account/utils/address.mjs.map +1 -0
  296. package/dist/esm/core/account/utils/index.d.mts +8 -0
  297. package/dist/esm/core/account/utils/index.mjs +2 -0
  298. package/dist/esm/core/account/utils/index.mjs.map +1 -0
  299. package/dist/esm/core/accountAddress.d.mts +7 -0
  300. package/dist/esm/core/accountAddress.mjs +2 -0
  301. package/dist/esm/core/accountAddress.mjs.map +1 -0
  302. package/dist/esm/core/authenticationKey.d.mts +7 -0
  303. package/dist/esm/core/authenticationKey.mjs +2 -0
  304. package/dist/esm/core/authenticationKey.mjs.map +1 -0
  305. package/dist/esm/core/common.d.mts +52 -0
  306. package/dist/esm/core/common.mjs +2 -0
  307. package/dist/esm/core/common.mjs.map +1 -0
  308. package/dist/esm/core/crypto/abstraction.d.mts +24 -0
  309. package/dist/esm/core/crypto/abstraction.mjs +2 -0
  310. package/dist/esm/core/crypto/abstraction.mjs.map +1 -0
  311. package/dist/esm/core/crypto/deserializationUtils.d.mts +28 -0
  312. package/dist/esm/core/crypto/deserializationUtils.mjs +2 -0
  313. package/dist/esm/core/crypto/deserializationUtils.mjs.map +1 -0
  314. package/dist/esm/core/crypto/ed25519.d.mts +7 -0
  315. package/dist/esm/core/crypto/ed25519.mjs +2 -0
  316. package/dist/esm/core/crypto/ed25519.mjs.map +1 -0
  317. package/dist/esm/core/crypto/ephemeral.d.mts +116 -0
  318. package/dist/esm/core/crypto/ephemeral.mjs +2 -0
  319. package/dist/esm/core/crypto/ephemeral.mjs.map +1 -0
  320. package/dist/esm/core/crypto/federatedKeyless.d.mts +13 -0
  321. package/dist/esm/core/crypto/federatedKeyless.mjs +2 -0
  322. package/dist/esm/core/crypto/federatedKeyless.mjs.map +1 -0
  323. package/dist/esm/core/crypto/hdKey.d.mts +95 -0
  324. package/dist/esm/core/crypto/hdKey.mjs +2 -0
  325. package/dist/esm/core/crypto/hdKey.mjs.map +1 -0
  326. package/dist/esm/core/crypto/index.d.mts +19 -0
  327. package/dist/esm/core/crypto/index.mjs +2 -0
  328. package/dist/esm/core/crypto/index.mjs.map +1 -0
  329. package/dist/esm/core/crypto/keyless.d.mts +13 -0
  330. package/dist/esm/core/crypto/keyless.mjs +2 -0
  331. package/dist/esm/core/crypto/keyless.mjs.map +1 -0
  332. package/dist/esm/core/crypto/multiEd25519.d.mts +7 -0
  333. package/dist/esm/core/crypto/multiEd25519.mjs +2 -0
  334. package/dist/esm/core/crypto/multiEd25519.mjs.map +1 -0
  335. package/dist/esm/core/crypto/multiKey.d.mts +7 -0
  336. package/dist/esm/core/crypto/multiKey.mjs +2 -0
  337. package/dist/esm/core/crypto/multiKey.mjs.map +1 -0
  338. package/dist/esm/core/crypto/poseidon.d.mts +59 -0
  339. package/dist/esm/core/crypto/poseidon.mjs +2 -0
  340. package/dist/esm/core/crypto/poseidon.mjs.map +1 -0
  341. package/dist/esm/core/crypto/privateKey.d.mts +7 -0
  342. package/dist/esm/core/crypto/privateKey.mjs +2 -0
  343. package/dist/esm/core/crypto/privateKey.mjs.map +1 -0
  344. package/dist/esm/core/crypto/proof.d.mts +18 -0
  345. package/dist/esm/core/crypto/proof.mjs +2 -0
  346. package/dist/esm/core/crypto/proof.mjs.map +1 -0
  347. package/dist/esm/core/crypto/publicKey.d.mts +7 -0
  348. package/dist/esm/core/crypto/publicKey.mjs +2 -0
  349. package/dist/esm/core/crypto/publicKey.mjs.map +1 -0
  350. package/dist/esm/core/crypto/secp256k1.d.mts +7 -0
  351. package/dist/esm/core/crypto/secp256k1.mjs +2 -0
  352. package/dist/esm/core/crypto/secp256k1.mjs.map +1 -0
  353. package/dist/esm/core/crypto/secp256r1.d.mts +306 -0
  354. package/dist/esm/core/crypto/secp256r1.mjs +2 -0
  355. package/dist/esm/core/crypto/secp256r1.mjs.map +1 -0
  356. package/dist/esm/core/crypto/signature.d.mts +7 -0
  357. package/dist/esm/core/crypto/signature.mjs +2 -0
  358. package/dist/esm/core/crypto/signature.mjs.map +1 -0
  359. package/dist/esm/core/crypto/singleKey.d.mts +7 -0
  360. package/dist/esm/core/crypto/singleKey.mjs +2 -0
  361. package/dist/esm/core/crypto/singleKey.mjs.map +1 -0
  362. package/dist/esm/core/crypto/types.d.mts +11 -0
  363. package/dist/esm/core/crypto/types.mjs +2 -0
  364. package/dist/esm/core/crypto/types.mjs.map +1 -0
  365. package/dist/esm/core/crypto/utils.d.mts +23 -0
  366. package/dist/esm/core/crypto/utils.mjs +2 -0
  367. package/dist/esm/core/crypto/utils.mjs.map +1 -0
  368. package/dist/esm/core/hex.d.mts +7 -0
  369. package/dist/esm/core/hex.mjs +2 -0
  370. package/dist/esm/core/hex.mjs.map +1 -0
  371. package/dist/esm/core/index.d.mts +20 -0
  372. package/dist/esm/core/index.mjs +2 -0
  373. package/dist/esm/core/index.mjs.map +1 -0
  374. package/dist/esm/errors/index.d.mts +131 -0
  375. package/dist/esm/errors/index.mjs +2 -0
  376. package/dist/esm/errors/index.mjs.map +1 -0
  377. package/dist/esm/federatedKeyless-D-d9d5aC.d.mts +869 -0
  378. package/dist/esm/index.d.mts +71 -0
  379. package/dist/esm/index.mjs +2 -0
  380. package/dist/esm/index.mjs.map +1 -0
  381. package/dist/esm/internal/abstraction.d.mts +27 -0
  382. package/dist/esm/internal/abstraction.mjs +2 -0
  383. package/dist/esm/internal/abstraction.mjs.map +1 -0
  384. package/dist/esm/internal/account.d.mts +453 -0
  385. package/dist/esm/internal/account.mjs +2 -0
  386. package/dist/esm/internal/account.mjs.map +1 -0
  387. package/dist/esm/internal/ans.d.mts +365 -0
  388. package/dist/esm/internal/ans.mjs +2 -0
  389. package/dist/esm/internal/ans.mjs.map +1 -0
  390. package/dist/esm/internal/coin.d.mts +31 -0
  391. package/dist/esm/internal/coin.mjs +2 -0
  392. package/dist/esm/internal/coin.mjs.map +1 -0
  393. package/dist/esm/internal/digitalAsset.d.mts +580 -0
  394. package/dist/esm/internal/digitalAsset.mjs +2 -0
  395. package/dist/esm/internal/digitalAsset.mjs.map +1 -0
  396. package/dist/esm/internal/faucet.d.mts +39 -0
  397. package/dist/esm/internal/faucet.mjs +2 -0
  398. package/dist/esm/internal/faucet.mjs.map +1 -0
  399. package/dist/esm/internal/fungibleAsset.d.mts +112 -0
  400. package/dist/esm/internal/fungibleAsset.mjs +2 -0
  401. package/dist/esm/internal/fungibleAsset.mjs.map +1 -0
  402. package/dist/esm/internal/general.d.mts +92 -0
  403. package/dist/esm/internal/general.mjs +2 -0
  404. package/dist/esm/internal/general.mjs.map +1 -0
  405. package/dist/esm/internal/keyless.d.mts +111 -0
  406. package/dist/esm/internal/keyless.mjs +2 -0
  407. package/dist/esm/internal/keyless.mjs.map +1 -0
  408. package/dist/esm/internal/object.d.mts +42 -0
  409. package/dist/esm/internal/object.mjs +2 -0
  410. package/dist/esm/internal/object.mjs.map +1 -0
  411. package/dist/esm/internal/staking.d.mts +60 -0
  412. package/dist/esm/internal/staking.mjs +2 -0
  413. package/dist/esm/internal/staking.mjs.map +1 -0
  414. package/dist/esm/internal/table.d.mts +66 -0
  415. package/dist/esm/internal/table.mjs +2 -0
  416. package/dist/esm/internal/table.mjs.map +1 -0
  417. package/dist/esm/internal/transaction.d.mts +199 -0
  418. package/dist/esm/internal/transaction.mjs +2 -0
  419. package/dist/esm/internal/transaction.mjs.map +1 -0
  420. package/dist/esm/internal/transactionSubmission.d.mts +165 -0
  421. package/dist/esm/internal/transactionSubmission.mjs +2 -0
  422. package/dist/esm/internal/transactionSubmission.mjs.map +1 -0
  423. package/dist/esm/internal/utils/index.d.mts +8 -0
  424. package/dist/esm/internal/utils/index.mjs +2 -0
  425. package/dist/esm/internal/utils/index.mjs.map +1 -0
  426. package/dist/esm/internal/utils/utils.d.mts +41 -0
  427. package/dist/esm/internal/utils/utils.mjs +2 -0
  428. package/dist/esm/internal/utils/utils.mjs.map +1 -0
  429. package/dist/esm/internal/view.d.mts +20 -0
  430. package/dist/esm/internal/view.mjs +2 -0
  431. package/dist/esm/internal/view.mjs.map +1 -0
  432. package/dist/esm/transactions/authenticator/account.d.mts +7 -0
  433. package/dist/esm/transactions/authenticator/account.mjs +2 -0
  434. package/dist/esm/transactions/authenticator/account.mjs.map +1 -0
  435. package/dist/esm/transactions/authenticator/index.d.mts +8 -0
  436. package/dist/esm/transactions/authenticator/index.mjs +2 -0
  437. package/dist/esm/transactions/authenticator/index.mjs.map +1 -0
  438. package/dist/esm/transactions/authenticator/transaction.d.mts +152 -0
  439. package/dist/esm/transactions/authenticator/transaction.mjs +2 -0
  440. package/dist/esm/transactions/authenticator/transaction.mjs.map +1 -0
  441. package/dist/esm/transactions/index.d.mts +15 -0
  442. package/dist/esm/transactions/index.mjs +2 -0
  443. package/dist/esm/transactions/index.mjs.map +1 -0
  444. package/dist/esm/transactions/instances/chainId.d.mts +7 -0
  445. package/dist/esm/transactions/instances/chainId.mjs +2 -0
  446. package/dist/esm/transactions/instances/chainId.mjs.map +1 -0
  447. package/dist/esm/transactions/instances/identifier.d.mts +7 -0
  448. package/dist/esm/transactions/instances/identifier.mjs +2 -0
  449. package/dist/esm/transactions/instances/identifier.mjs.map +1 -0
  450. package/dist/esm/transactions/instances/index.d.mts +10 -0
  451. package/dist/esm/transactions/instances/index.mjs +2 -0
  452. package/dist/esm/transactions/instances/index.mjs.map +1 -0
  453. package/dist/esm/transactions/instances/moduleId.d.mts +7 -0
  454. package/dist/esm/transactions/instances/moduleId.mjs +2 -0
  455. package/dist/esm/transactions/instances/moduleId.mjs.map +1 -0
  456. package/dist/esm/transactions/instances/multiAgentTransaction.d.mts +7 -0
  457. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +2 -0
  458. package/dist/esm/transactions/instances/multiAgentTransaction.mjs.map +1 -0
  459. package/dist/esm/transactions/instances/rawTransaction.d.mts +7 -0
  460. package/dist/esm/transactions/instances/rawTransaction.mjs +2 -0
  461. package/dist/esm/transactions/instances/rawTransaction.mjs.map +1 -0
  462. package/dist/esm/transactions/instances/rotationProofChallenge.d.mts +58 -0
  463. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +2 -0
  464. package/dist/esm/transactions/instances/rotationProofChallenge.mjs.map +1 -0
  465. package/dist/esm/transactions/instances/signedTransaction.d.mts +59 -0
  466. package/dist/esm/transactions/instances/signedTransaction.mjs +2 -0
  467. package/dist/esm/transactions/instances/signedTransaction.mjs.map +1 -0
  468. package/dist/esm/transactions/instances/simpleTransaction.d.mts +7 -0
  469. package/dist/esm/transactions/instances/simpleTransaction.mjs +2 -0
  470. package/dist/esm/transactions/instances/simpleTransaction.mjs.map +1 -0
  471. package/dist/esm/transactions/instances/transactionArgument.d.mts +7 -0
  472. package/dist/esm/transactions/instances/transactionArgument.mjs +2 -0
  473. package/dist/esm/transactions/instances/transactionArgument.mjs.map +1 -0
  474. package/dist/esm/transactions/instances/transactionPayload.d.mts +7 -0
  475. package/dist/esm/transactions/instances/transactionPayload.mjs +2 -0
  476. package/dist/esm/transactions/instances/transactionPayload.mjs.map +1 -0
  477. package/dist/esm/transactions/management/accountSequenceNumber.d.mts +123 -0
  478. package/dist/esm/transactions/management/accountSequenceNumber.mjs +2 -0
  479. package/dist/esm/transactions/management/accountSequenceNumber.mjs.map +1 -0
  480. package/dist/esm/transactions/management/asyncQueue.d.mts +77 -0
  481. package/dist/esm/transactions/management/asyncQueue.mjs +2 -0
  482. package/dist/esm/transactions/management/asyncQueue.mjs.map +1 -0
  483. package/dist/esm/transactions/management/index.d.mts +12 -0
  484. package/dist/esm/transactions/management/index.mjs +2 -0
  485. package/dist/esm/transactions/management/index.mjs.map +1 -0
  486. package/dist/esm/transactions/management/transactionWorker.d.mts +210 -0
  487. package/dist/esm/transactions/management/transactionWorker.mjs +2 -0
  488. package/dist/esm/transactions/management/transactionWorker.mjs.map +1 -0
  489. package/dist/esm/transactions/transactionBuilder/helpers.d.mts +159 -0
  490. package/dist/esm/transactions/transactionBuilder/helpers.mjs +2 -0
  491. package/dist/esm/transactions/transactionBuilder/helpers.mjs.map +1 -0
  492. package/dist/esm/transactions/transactionBuilder/index.d.mts +11 -0
  493. package/dist/esm/transactions/transactionBuilder/index.mjs +2 -0
  494. package/dist/esm/transactions/transactionBuilder/index.mjs.map +1 -0
  495. package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +104 -0
  496. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +2 -0
  497. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs.map +1 -0
  498. package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +62 -0
  499. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +2 -0
  500. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs.map +1 -0
  501. package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +192 -0
  502. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +2 -0
  503. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs.map +1 -0
  504. package/dist/esm/transactions/typeTag/index.d.mts +7 -0
  505. package/dist/esm/transactions/typeTag/index.mjs +2 -0
  506. package/dist/esm/transactions/typeTag/index.mjs.map +1 -0
  507. package/dist/esm/transactions/typeTag/parser.d.mts +81 -0
  508. package/dist/esm/transactions/typeTag/parser.mjs +2 -0
  509. package/dist/esm/transactions/typeTag/parser.mjs.map +1 -0
  510. package/dist/esm/transactions/types.d.mts +7 -0
  511. package/dist/esm/transactions/types.mjs +2 -0
  512. package/dist/esm/transactions/types.mjs.map +1 -0
  513. package/dist/esm/types/abstraction.d.mts +15 -0
  514. package/dist/esm/types/abstraction.mjs +2 -0
  515. package/dist/esm/types/abstraction.mjs.map +1 -0
  516. package/dist/esm/types/generated/operations.d.mts +709 -0
  517. package/dist/esm/types/generated/operations.mjs +1 -0
  518. package/dist/esm/types/generated/operations.mjs.map +1 -0
  519. package/dist/esm/types/generated/queries.d.mts +66 -0
  520. package/dist/esm/types/generated/queries.mjs +2 -0
  521. package/dist/esm/types/generated/queries.mjs.map +1 -0
  522. package/dist/esm/types/generated/types.d.mts +9495 -0
  523. package/dist/esm/types/generated/types.mjs +2 -0
  524. package/dist/esm/types/generated/types.mjs.map +1 -0
  525. package/dist/esm/types/index.d.mts +7 -0
  526. package/dist/esm/types/index.mjs +2 -0
  527. package/dist/esm/types/index.mjs.map +1 -0
  528. package/dist/esm/types/indexer.d.mts +186 -0
  529. package/dist/esm/types/indexer.mjs +2 -0
  530. package/dist/esm/types/indexer.mjs.map +1 -0
  531. package/dist/esm/types/keyless.d.mts +102 -0
  532. package/dist/esm/types/keyless.mjs +1 -0
  533. package/dist/esm/types/keyless.mjs.map +1 -0
  534. package/dist/esm/types/types.d.mts +7 -0
  535. package/dist/esm/types/types.mjs +2 -0
  536. package/dist/esm/types/types.mjs.map +1 -0
  537. package/dist/esm/utils/apiEndpoints.d.mts +51 -0
  538. package/dist/esm/utils/apiEndpoints.mjs +2 -0
  539. package/dist/esm/utils/apiEndpoints.mjs.map +1 -0
  540. package/dist/esm/utils/const.d.mts +90 -0
  541. package/dist/esm/utils/const.mjs +2 -0
  542. package/dist/esm/utils/const.mjs.map +1 -0
  543. package/dist/esm/utils/helpers.d.mts +174 -0
  544. package/dist/esm/utils/helpers.mjs +2 -0
  545. package/dist/esm/utils/helpers.mjs.map +1 -0
  546. package/dist/esm/utils/index.d.mts +9 -0
  547. package/dist/esm/utils/index.mjs +2 -0
  548. package/dist/esm/utils/index.mjs.map +1 -0
  549. package/dist/esm/utils/memoize.d.mts +26 -0
  550. package/dist/esm/utils/memoize.mjs +2 -0
  551. package/dist/esm/utils/memoize.mjs.map +1 -0
  552. package/dist/esm/utils/normalizeBundle.d.mts +35 -0
  553. package/dist/esm/utils/normalizeBundle.mjs +2 -0
  554. package/dist/esm/utils/normalizeBundle.mjs.map +1 -0
  555. package/dist/esm/version.d.mts +8 -0
  556. package/dist/esm/version.mjs +2 -0
  557. package/dist/esm/version.mjs.map +1 -0
  558. package/package.json +98 -0
  559. package/src/account/AbstractKeylessAccount.ts +579 -0
  560. package/src/account/AbstractedAccount.ts +124 -0
  561. package/src/account/Account.ts +354 -0
  562. package/src/account/AccountUtils.ts +216 -0
  563. package/src/account/DerivableAbstractedAccount.ts +103 -0
  564. package/src/account/Ed25519Account.ts +210 -0
  565. package/src/account/EphemeralKeyPair.ts +222 -0
  566. package/src/account/FederatedKeylessAccount.ts +178 -0
  567. package/src/account/KeylessAccount.ts +179 -0
  568. package/src/account/MultiEd25519Account.ts +181 -0
  569. package/src/account/MultiKeyAccount.ts +296 -0
  570. package/src/account/SingleKeyAccount.ts +277 -0
  571. package/src/account/index.ts +12 -0
  572. package/src/account/utils.ts +16 -0
  573. package/src/api/account/abstraction.ts +239 -0
  574. package/src/api/account.ts +1128 -0
  575. package/src/api/ans.ts +550 -0
  576. package/src/api/coin.ts +83 -0
  577. package/src/api/digitalAsset.ts +1203 -0
  578. package/src/api/faucet.ts +94 -0
  579. package/src/api/fungibleAsset.ts +371 -0
  580. package/src/api/general.ts +351 -0
  581. package/src/api/index.ts +6 -0
  582. package/src/api/keyless.ts +227 -0
  583. package/src/api/movement.ts +171 -0
  584. package/src/api/movementConfig.ts +334 -0
  585. package/src/api/object.ts +90 -0
  586. package/src/api/staking.ts +161 -0
  587. package/src/api/table.ts +193 -0
  588. package/src/api/transaction.ts +784 -0
  589. package/src/api/transactionSubmission/build.ts +153 -0
  590. package/src/api/transactionSubmission/helpers.ts +112 -0
  591. package/src/api/transactionSubmission/management.ts +211 -0
  592. package/src/api/transactionSubmission/sign.ts +142 -0
  593. package/src/api/transactionSubmission/simulate.ts +192 -0
  594. package/src/api/transactionSubmission/submit.ts +156 -0
  595. package/src/api/utils.ts +48 -0
  596. package/src/bcs/consts.ts +28 -0
  597. package/src/bcs/deserializer.ts +550 -0
  598. package/src/bcs/index.ts +10 -0
  599. package/src/bcs/serializable/entryFunctionBytes.ts +92 -0
  600. package/src/bcs/serializable/fixedBytes.ts +107 -0
  601. package/src/bcs/serializable/movePrimitives.ts +564 -0
  602. package/src/bcs/serializable/moveStructs.ts +619 -0
  603. package/src/bcs/serializer.ts +641 -0
  604. package/src/cli/index.ts +2 -0
  605. package/src/cli/localNode.ts +169 -0
  606. package/src/cli/move.ts +474 -0
  607. package/src/client/core.ts +120 -0
  608. package/src/client/get.ts +262 -0
  609. package/src/client/index.ts +7 -0
  610. package/src/client/post.ts +245 -0
  611. package/src/core/account/index.ts +1 -0
  612. package/src/core/account/utils/address.ts +85 -0
  613. package/src/core/account/utils/index.ts +1 -0
  614. package/src/core/accountAddress.ts +524 -0
  615. package/src/core/authenticationKey.ts +157 -0
  616. package/src/core/common.ts +60 -0
  617. package/src/core/crypto/abstraction.ts +52 -0
  618. package/src/core/crypto/deserializationUtils.ts +106 -0
  619. package/src/core/crypto/ed25519.ts +493 -0
  620. package/src/core/crypto/ephemeral.ts +185 -0
  621. package/src/core/crypto/federatedKeyless.ts +169 -0
  622. package/src/core/crypto/hdKey.ts +136 -0
  623. package/src/core/crypto/index.ts +21 -0
  624. package/src/core/crypto/keyless.ts +1700 -0
  625. package/src/core/crypto/multiEd25519.ts +434 -0
  626. package/src/core/crypto/multiKey.ts +498 -0
  627. package/src/core/crypto/poseidon.ts +231 -0
  628. package/src/core/crypto/privateKey.ts +115 -0
  629. package/src/core/crypto/proof.ts +9 -0
  630. package/src/core/crypto/publicKey.ts +106 -0
  631. package/src/core/crypto/secp256k1.ts +451 -0
  632. package/src/core/crypto/secp256r1.ts +495 -0
  633. package/src/core/crypto/signature.ts +57 -0
  634. package/src/core/crypto/singleKey.ts +351 -0
  635. package/src/core/crypto/types.ts +9 -0
  636. package/src/core/crypto/utils.ts +63 -0
  637. package/src/core/hex.ts +241 -0
  638. package/src/core/index.ts +10 -0
  639. package/src/errors/index.ts +457 -0
  640. package/src/index.ts +14 -0
  641. package/src/internal/abstraction.ts +79 -0
  642. package/src/internal/account.ts +1484 -0
  643. package/src/internal/ans.ts +853 -0
  644. package/src/internal/coin.ts +49 -0
  645. package/src/internal/digitalAsset.ts +1291 -0
  646. package/src/internal/faucet.ts +71 -0
  647. package/src/internal/fungibleAsset.ts +233 -0
  648. package/src/internal/general.ts +161 -0
  649. package/src/internal/keyless.ts +297 -0
  650. package/src/internal/object.ts +68 -0
  651. package/src/internal/queries/TokenActivitiesFieldsFragment.graphql +17 -0
  652. package/src/internal/queries/ansTokenFragment.graphql +11 -0
  653. package/src/internal/queries/currentTokenOwnershipFieldsFragment.graphql +46 -0
  654. package/src/internal/queries/getAccountAddressesForAuthKey.graphql +8 -0
  655. package/src/internal/queries/getAccountCoinCount.graphql +7 -0
  656. package/src/internal/queries/getAccountCoinsData.graphql +32 -0
  657. package/src/internal/queries/getAccountCollectionsWithOwnedTokens.graphql +33 -0
  658. package/src/internal/queries/getAccountOwnedTokens.graphql +11 -0
  659. package/src/internal/queries/getAccountOwnedTokensByTokenData.graphql +11 -0
  660. package/src/internal/queries/getAccountOwnedTokensFromCollectionAddress.graphql +11 -0
  661. package/src/internal/queries/getAccountTokensCount.graphql +7 -0
  662. package/src/internal/queries/getAccountTransactionsCount.graphql +7 -0
  663. package/src/internal/queries/getAuthKeysForPublicKey.graphql +11 -0
  664. package/src/internal/queries/getChainTopUserTransactions.graphql +5 -0
  665. package/src/internal/queries/getCollectionData.graphql +29 -0
  666. package/src/internal/queries/getCurrentFungibleAssetBalances.graphql +17 -0
  667. package/src/internal/queries/getDelegatedStakingActivities.graphql +12 -0
  668. package/src/internal/queries/getEvents.graphql +13 -0
  669. package/src/internal/queries/getFungibleAssetActivities.graphql +20 -0
  670. package/src/internal/queries/getFungibleAssetMetadata.graphql +18 -0
  671. package/src/internal/queries/getNames.graphql +11 -0
  672. package/src/internal/queries/getNumberOfDelegatorsQuery.graphql +9 -0
  673. package/src/internal/queries/getObjectData.graphql +16 -0
  674. package/src/internal/queries/getProcessorStatus.graphql +7 -0
  675. package/src/internal/queries/getTableItemsData.graphql +15 -0
  676. package/src/internal/queries/getTableItemsMetadata.graphql +12 -0
  677. package/src/internal/queries/getTokenActivity.graphql +11 -0
  678. package/src/internal/queries/getTokenCurrentOwner.graphql +11 -0
  679. package/src/internal/queries/getTokenData.graphql +39 -0
  680. package/src/internal/staking.ts +96 -0
  681. package/src/internal/table.ts +117 -0
  682. package/src/internal/transaction.ts +503 -0
  683. package/src/internal/transactionSubmission.ts +454 -0
  684. package/src/internal/utils/index.ts +4 -0
  685. package/src/internal/utils/utils.ts +86 -0
  686. package/src/internal/view.ts +61 -0
  687. package/src/transactions/authenticator/account.ts +405 -0
  688. package/src/transactions/authenticator/index.ts +6 -0
  689. package/src/transactions/authenticator/transaction.ts +288 -0
  690. package/src/transactions/index.ts +10 -0
  691. package/src/transactions/instances/chainId.ts +53 -0
  692. package/src/transactions/instances/identifier.ts +54 -0
  693. package/src/transactions/instances/index.ts +14 -0
  694. package/src/transactions/instances/moduleId.ts +77 -0
  695. package/src/transactions/instances/multiAgentTransaction.ts +92 -0
  696. package/src/transactions/instances/rawTransaction.ts +256 -0
  697. package/src/transactions/instances/rotationProofChallenge.ts +86 -0
  698. package/src/transactions/instances/signedTransaction.ts +73 -0
  699. package/src/transactions/instances/simpleTransaction.ts +83 -0
  700. package/src/transactions/instances/transactionArgument.ts +79 -0
  701. package/src/transactions/instances/transactionPayload.ts +676 -0
  702. package/src/transactions/management/accountSequenceNumber.ts +226 -0
  703. package/src/transactions/management/asyncQueue.ts +126 -0
  704. package/src/transactions/management/index.ts +2 -0
  705. package/src/transactions/management/transactionWorker.ts +396 -0
  706. package/src/transactions/transactionBuilder/helpers.ts +319 -0
  707. package/src/transactions/transactionBuilder/index.ts +8 -0
  708. package/src/transactions/transactionBuilder/remoteAbi.ts +655 -0
  709. package/src/transactions/transactionBuilder/signingMessage.ts +111 -0
  710. package/src/transactions/transactionBuilder/transactionBuilder.ts +863 -0
  711. package/src/transactions/typeTag/index.ts +926 -0
  712. package/src/transactions/typeTag/parser.ts +434 -0
  713. package/src/transactions/types.ts +518 -0
  714. package/src/types/abstraction.ts +14 -0
  715. package/src/types/codegen.yaml +33 -0
  716. package/src/types/generated/operations.ts +738 -0
  717. package/src/types/generated/queries.ts +926 -0
  718. package/src/types/generated/types.ts +10421 -0
  719. package/src/types/index.ts +2 -0
  720. package/src/types/indexer.ts +240 -0
  721. package/src/types/keyless.ts +94 -0
  722. package/src/types/types.ts +1713 -0
  723. package/src/utils/apiEndpoints.ts +107 -0
  724. package/src/utils/const.ts +100 -0
  725. package/src/utils/helpers.ts +287 -0
  726. package/src/utils/index.ts +4 -0
  727. package/src/utils/memoize.ts +76 -0
  728. package/src/utils/normalizeBundle.ts +34 -0
  729. package/src/version.ts +9 -0
@@ -0,0 +1,579 @@
1
+ // Copyright © Move Industries
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import EventEmitter from "eventemitter3";
5
+ import { jwtDecode } from "jwt-decode";
6
+ import { AccountAddress } from "../core/accountAddress";
7
+ import {
8
+ AnyPublicKey,
9
+ AnySignature,
10
+ EphemeralCertificate,
11
+ fetchJWK,
12
+ getKeylessConfig,
13
+ KeylessConfiguration,
14
+ KeylessPublicKey,
15
+ KeylessSignature,
16
+ MoveJWK,
17
+ ZeroKnowledgeSig,
18
+ ZkProof,
19
+ } from "../core/crypto";
20
+ import { EphemeralCertificateVariant, HexInput, SigningScheme } from "../types";
21
+
22
+ import type { MovementConfig } from "../api/movementConfig";
23
+ import { Deserializer, Serializable, Serializer } from "../bcs";
24
+ import { FederatedKeylessPublicKey } from "../core/crypto/federatedKeyless";
25
+ import { Hex } from "../core/hex";
26
+ import { KeylessError, KeylessErrorType } from "../errors";
27
+ import { AccountAuthenticatorSingleKey } from "../transactions/authenticator/account";
28
+ import { deriveTransactionType, generateSigningMessage } from "../transactions/transactionBuilder/signingMessage";
29
+ import { AnyRawTransaction, AnyRawTransactionInstance } from "../transactions/types";
30
+ import { base64UrlDecode } from "../utils/helpers";
31
+ import { Account } from "./Account";
32
+ import { EphemeralKeyPair } from "./EphemeralKeyPair";
33
+ import type { SingleKeySigner } from "./SingleKeyAccount";
34
+
35
+ /**
36
+ * An interface which defines if an Account utilizes Keyless signing.
37
+ */
38
+ export interface KeylessSigner extends Account {
39
+ checkKeylessAccountValidity(movementConfig: MovementConfig): Promise<void>;
40
+ }
41
+
42
+ export function isKeylessSigner(obj: any): obj is KeylessSigner {
43
+ return obj !== null && obj !== undefined && typeof obj.checkKeylessAccountValidity === "function";
44
+ }
45
+
46
+ /**
47
+ * Account implementation for the Keyless authentication scheme. This abstract class is used for standard Keyless Accounts
48
+ * and Federated Keyless Accounts.
49
+ * @group Implementation
50
+ * @category Account (On-Chain Model)
51
+ */
52
+ export abstract class AbstractKeylessAccount extends Serializable implements KeylessSigner, SingleKeySigner {
53
+ static readonly PEPPER_LENGTH: number = 31;
54
+
55
+ /**
56
+ * The KeylessPublicKey associated with the account
57
+ * @group Implementation
58
+ * @category Account (On-Chain Model)
59
+ */
60
+ readonly publicKey: KeylessPublicKey | FederatedKeylessPublicKey;
61
+
62
+ /**
63
+ * The EphemeralKeyPair used to generate sign.
64
+ * @group Implementation
65
+ * @category Account (On-Chain Model)
66
+ */
67
+ readonly ephemeralKeyPair: EphemeralKeyPair;
68
+
69
+ /**
70
+ * The claim on the JWT to identify a user. This is typically 'sub' or 'email'.
71
+ * @group Implementation
72
+ * @category Account (On-Chain Model)
73
+ */
74
+ readonly uidKey: string;
75
+
76
+ /**
77
+ * The value of the uidKey claim on the JWT. This intended to be a stable user identifier.
78
+ * @group Implementation
79
+ * @category Account (On-Chain Model)
80
+ */
81
+ readonly uidVal: string;
82
+
83
+ /**
84
+ * The value of the 'aud' claim on the JWT, also known as client ID. This is the identifier for the dApp's
85
+ * OIDC registration with the identity provider.
86
+ * @group Implementation
87
+ * @category Account (On-Chain Model)
88
+ */
89
+ readonly aud: string;
90
+
91
+ /**
92
+ * A value contains 31 bytes of entropy that preserves privacy of the account. Typically fetched from a pepper provider.
93
+ * @group Implementation
94
+ * @category Account (On-Chain Model)
95
+ */
96
+ readonly pepper: Uint8Array;
97
+
98
+ /**
99
+ * Account address associated with the account
100
+ * @group Implementation
101
+ * @category Account (On-Chain Model)
102
+ */
103
+ readonly accountAddress: AccountAddress;
104
+
105
+ /**
106
+ * The zero knowledge signature (if ready) which contains the proof used to validate the EphemeralKeyPair.
107
+ * @group Implementation
108
+ * @category Account (On-Chain Model)
109
+ */
110
+ proof: ZeroKnowledgeSig | undefined;
111
+
112
+ /**
113
+ * The proof of the EphemeralKeyPair or a promise that provides the proof. This is used to allow for awaiting on
114
+ * fetching the proof.
115
+ * @group Implementation
116
+ * @category Account (On-Chain Model)
117
+ */
118
+ readonly proofOrPromise: ZeroKnowledgeSig | Promise<ZeroKnowledgeSig>;
119
+
120
+ /**
121
+ * Signing scheme used to sign transactions
122
+ * @group Implementation
123
+ * @category Account (On-Chain Model)
124
+ */
125
+ readonly signingScheme: SigningScheme = SigningScheme.SingleKey;
126
+
127
+ /**
128
+ * The JWT token used to derive the account
129
+ * @group Implementation
130
+ * @category Account (On-Chain Model)
131
+ */
132
+ readonly jwt: string;
133
+
134
+ /**
135
+ * The hash of the verification key used to verify the proof. This is optional and can be used to check verifying key
136
+ * rotations which may invalidate the proof.
137
+ */
138
+ readonly verificationKeyHash?: Uint8Array;
139
+
140
+ /**
141
+ * An event emitter used to assist in handling asynchronous proof fetching.
142
+ * @group Implementation
143
+ * @category Account (On-Chain Model)
144
+ */
145
+ private readonly emitter: EventEmitter<ProofFetchEvents>;
146
+
147
+ /**
148
+ * Use the static generator `create(...)` instead.
149
+ * Creates an instance of the KeylessAccount with an optional proof.
150
+ *
151
+ * @param args - The parameters for creating a KeylessAccount.
152
+ * @param args.address - Optional account address associated with the KeylessAccount.
153
+ * @param args.publicKey - A KeylessPublicKey or FederatedKeylessPublicKey.
154
+ * @param args.ephemeralKeyPair - The ephemeral key pair used in the account creation.
155
+ * @param args.iss - A JWT issuer.
156
+ * @param args.uidKey - The claim on the JWT to identify a user. This is typically 'sub' or 'email'.
157
+ * @param args.uidVal - The unique id for this user, intended to be a stable user identifier.
158
+ * @param args.aud - The value of the 'aud' claim on the JWT, also known as client ID. This is the identifier for the dApp's
159
+ * OIDC registration with the identity provider.
160
+ * @param args.pepper - A hexadecimal input used for additional security.
161
+ * @param args.proof - A Zero Knowledge Signature or a promise that resolves to one.
162
+ * @param args.proofFetchCallback - Optional callback function for fetching proof.
163
+ * @param args.jwt - A JSON Web Token used for authentication.
164
+ * @param args.verificationKeyHash Optional 32-byte verification key hash as hex input used to check proof validity.
165
+ */
166
+ protected constructor(args: {
167
+ address?: AccountAddress;
168
+ publicKey: KeylessPublicKey | FederatedKeylessPublicKey;
169
+ ephemeralKeyPair: EphemeralKeyPair;
170
+ iss: string;
171
+ uidKey: string;
172
+ uidVal: string;
173
+ aud: string;
174
+ pepper: HexInput;
175
+ proof: ZeroKnowledgeSig | Promise<ZeroKnowledgeSig>;
176
+ proofFetchCallback?: ProofFetchCallback;
177
+ jwt: string;
178
+ verificationKeyHash?: HexInput;
179
+ }) {
180
+ super();
181
+ const {
182
+ address,
183
+ ephemeralKeyPair,
184
+ publicKey,
185
+ uidKey,
186
+ uidVal,
187
+ aud,
188
+ pepper,
189
+ proof,
190
+ proofFetchCallback,
191
+ jwt,
192
+ verificationKeyHash,
193
+ } = args;
194
+ this.ephemeralKeyPair = ephemeralKeyPair;
195
+ this.publicKey = publicKey;
196
+ this.accountAddress = address ? AccountAddress.from(address) : this.publicKey.authKey().derivedAddress();
197
+ this.uidKey = uidKey;
198
+ this.uidVal = uidVal;
199
+ this.aud = aud;
200
+ this.jwt = jwt;
201
+ this.emitter = new EventEmitter<ProofFetchEvents>();
202
+ this.proofOrPromise = proof;
203
+ if (proof instanceof ZeroKnowledgeSig) {
204
+ this.proof = proof;
205
+ } else {
206
+ if (proofFetchCallback === undefined) {
207
+ throw new Error("Must provide callback for async proof fetch");
208
+ }
209
+ this.emitter.on("proofFetchFinish", async (status) => {
210
+ await proofFetchCallback(status);
211
+ this.emitter.removeAllListeners();
212
+ });
213
+ // Note, this is purposely not awaited to be non-blocking. The caller should await on the proofFetchCallback.
214
+ this.init(proof);
215
+ }
216
+ const pepperBytes = Hex.fromHexInput(pepper).toUint8Array();
217
+ if (pepperBytes.length !== AbstractKeylessAccount.PEPPER_LENGTH) {
218
+ throw new Error(`Pepper length in bytes should be ${AbstractKeylessAccount.PEPPER_LENGTH}`);
219
+ }
220
+ this.pepper = pepperBytes;
221
+ if (verificationKeyHash !== undefined) {
222
+ if (Hex.hexInputToUint8Array(verificationKeyHash).length !== 32) {
223
+ throw new Error("verificationKeyHash must be 32 bytes");
224
+ }
225
+ this.verificationKeyHash = Hex.hexInputToUint8Array(verificationKeyHash);
226
+ }
227
+ }
228
+
229
+ getAnyPublicKey(): AnyPublicKey {
230
+ return new AnyPublicKey(this.publicKey);
231
+ }
232
+
233
+ /**
234
+ * This initializes the asynchronous proof fetch
235
+ * @return Emits whether the proof succeeds or fails, but has no return.
236
+ * @group Implementation
237
+ * @category Account (On-Chain Model)
238
+ */
239
+ async init(promise: Promise<ZeroKnowledgeSig>) {
240
+ try {
241
+ this.proof = await promise;
242
+ this.emitter.emit("proofFetchFinish", { status: "Success" });
243
+ } catch (error) {
244
+ if (error instanceof Error) {
245
+ this.emitter.emit("proofFetchFinish", { status: "Failed", error: error.toString() });
246
+ } else {
247
+ this.emitter.emit("proofFetchFinish", { status: "Failed", error: "Unknown" });
248
+ }
249
+ }
250
+ }
251
+
252
+ /**
253
+ * Serializes the jwt data into a format suitable for transmission or storage.
254
+ * This function ensures that both the jwt data and the proof are properly serialized.
255
+ *
256
+ * @param serializer - The serializer instance used to convert the jwt data into bytes.
257
+ */
258
+ serialize(serializer: Serializer): void {
259
+ this.accountAddress.serialize(serializer);
260
+ serializer.serializeStr(this.jwt);
261
+ serializer.serializeStr(this.uidKey);
262
+ serializer.serializeFixedBytes(this.pepper);
263
+ this.ephemeralKeyPair.serialize(serializer);
264
+ if (this.proof === undefined) {
265
+ throw new Error("Cannot serialize - proof undefined");
266
+ }
267
+ this.proof.serialize(serializer);
268
+ serializer.serializeOption(this.verificationKeyHash, 32);
269
+ }
270
+
271
+ static partialDeserialize(deserializer: Deserializer): {
272
+ address: AccountAddress;
273
+ jwt: string;
274
+ uidKey: string;
275
+ pepper: Uint8Array;
276
+ ephemeralKeyPair: EphemeralKeyPair;
277
+ proof: ZeroKnowledgeSig;
278
+ verificationKeyHash?: Uint8Array;
279
+ } {
280
+ const address = AccountAddress.deserialize(deserializer);
281
+ const jwt = deserializer.deserializeStr();
282
+ const uidKey = deserializer.deserializeStr();
283
+ const pepper = deserializer.deserializeFixedBytes(31);
284
+ const ephemeralKeyPair = EphemeralKeyPair.deserialize(deserializer);
285
+ const proof = ZeroKnowledgeSig.deserialize(deserializer);
286
+ const verificationKeyHash = deserializer.deserializeOption("fixedBytes", 32);
287
+
288
+ return { address, jwt, uidKey, pepper, ephemeralKeyPair, proof, verificationKeyHash };
289
+ }
290
+
291
+ /**
292
+ * Checks if the proof is expired. If so the account must be re-derived with a new EphemeralKeyPair
293
+ * and JWT token.
294
+ * @return boolean
295
+ * @group Implementation
296
+ * @category Account (On-Chain Model)
297
+ */
298
+ isExpired(): boolean {
299
+ return this.ephemeralKeyPair.isExpired();
300
+ }
301
+
302
+ /**
303
+ * Sign a message using Keyless.
304
+ * @param message the message to sign, as binary input
305
+ * @return the AccountAuthenticator containing the signature, together with the account's public key
306
+ * @group Implementation
307
+ * @category Account (On-Chain Model)
308
+ */
309
+ signWithAuthenticator(message: HexInput): AccountAuthenticatorSingleKey {
310
+ const signature = new AnySignature(this.sign(message));
311
+ const publicKey = new AnyPublicKey(this.publicKey);
312
+ return new AccountAuthenticatorSingleKey(publicKey, signature);
313
+ }
314
+
315
+ /**
316
+ * Sign a transaction using Keyless.
317
+ * @param transaction the raw transaction
318
+ * @return the AccountAuthenticator containing the signature of the transaction, together with the account's public key
319
+ * @group Implementation
320
+ * @category Account (On-Chain Model)
321
+ */
322
+ signTransactionWithAuthenticator(transaction: AnyRawTransaction): AccountAuthenticatorSingleKey {
323
+ const signature = new AnySignature(this.signTransaction(transaction));
324
+ const publicKey = new AnyPublicKey(this.publicKey);
325
+ return new AccountAuthenticatorSingleKey(publicKey, signature);
326
+ }
327
+
328
+ /**
329
+ * Waits for asynchronous proof fetching to finish.
330
+ * @return
331
+ * @group Implementation
332
+ * @category Account (On-Chain Model)
333
+ */
334
+ async waitForProofFetch() {
335
+ if (this.proofOrPromise instanceof Promise) {
336
+ await this.proofOrPromise;
337
+ }
338
+ }
339
+
340
+ /**
341
+ * Validates that the Keyless Account can be used to sign transactions.
342
+ * @return
343
+ */
344
+ async checkKeylessAccountValidity(movementConfig: MovementConfig): Promise<void> {
345
+ if (this.isExpired()) {
346
+ throw KeylessError.fromErrorType({
347
+ type: KeylessErrorType.EPHEMERAL_KEY_PAIR_EXPIRED,
348
+ });
349
+ }
350
+ await this.waitForProofFetch();
351
+ if (this.proof === undefined) {
352
+ throw KeylessError.fromErrorType({
353
+ type: KeylessErrorType.ASYNC_PROOF_FETCH_FAILED,
354
+ });
355
+ }
356
+ const header = jwtDecode(this.jwt, { header: true });
357
+ if (header.kid === undefined) {
358
+ throw KeylessError.fromErrorType({
359
+ type: KeylessErrorType.JWT_PARSING_ERROR,
360
+ details: "checkKeylessAccountValidity failed. JWT is missing 'kid' in header. This should never happen.",
361
+ });
362
+ }
363
+ if (this.verificationKeyHash !== undefined) {
364
+ const { verificationKey } = await getKeylessConfig({ movementConfig });
365
+ if (Hex.hexInputToString(verificationKey.hash()) !== Hex.hexInputToString(this.verificationKeyHash)) {
366
+ throw KeylessError.fromErrorType({
367
+ type: KeylessErrorType.INVALID_PROOF_VERIFICATION_KEY_NOT_FOUND,
368
+ });
369
+ }
370
+ } else {
371
+ // eslint-disable-next-line no-console
372
+ console.warn(
373
+ "[Movement SDK] The verification key hash was not set. Proof may be invalid if the verification key has rotated.",
374
+ );
375
+ }
376
+ await AbstractKeylessAccount.fetchJWK({ movementConfig, publicKey: this.publicKey, kid: header.kid });
377
+ }
378
+
379
+ /**
380
+ * Sign the given message using Keyless.
381
+ * @param message in HexInput format
382
+ * @returns Signature
383
+ * @group Implementation
384
+ * @category Account (On-Chain Model)
385
+ */
386
+ sign(message: HexInput): KeylessSignature {
387
+ const { expiryDateSecs } = this.ephemeralKeyPair;
388
+ if (this.isExpired()) {
389
+ throw KeylessError.fromErrorType({
390
+ type: KeylessErrorType.EPHEMERAL_KEY_PAIR_EXPIRED,
391
+ });
392
+ }
393
+ if (this.proof === undefined) {
394
+ throw KeylessError.fromErrorType({
395
+ type: KeylessErrorType.PROOF_NOT_FOUND,
396
+ details: "Proof not found - make sure to call `await account.checkKeylessAccountValidity()` before signing.",
397
+ });
398
+ }
399
+ const ephemeralPublicKey = this.ephemeralKeyPair.getPublicKey();
400
+ const ephemeralSignature = this.ephemeralKeyPair.sign(message);
401
+
402
+ return new KeylessSignature({
403
+ jwtHeader: base64UrlDecode(this.jwt.split(".")[0]),
404
+ ephemeralCertificate: new EphemeralCertificate(this.proof, EphemeralCertificateVariant.ZkProof),
405
+ expiryDateSecs,
406
+ ephemeralPublicKey,
407
+ ephemeralSignature,
408
+ });
409
+ }
410
+
411
+ /**
412
+ * Sign the given transaction with Keyless.
413
+ * Signs the transaction and proof to guard against proof malleability.
414
+ * @param transaction the transaction to be signed
415
+ * @returns KeylessSignature
416
+ * @group Implementation
417
+ * @category Account (On-Chain Model)
418
+ */
419
+ signTransaction(transaction: AnyRawTransaction): KeylessSignature {
420
+ if (this.proof === undefined) {
421
+ throw KeylessError.fromErrorType({
422
+ type: KeylessErrorType.PROOF_NOT_FOUND,
423
+ details: "Proof not found - make sure to call `await account.checkKeylessAccountValidity()` before signing.",
424
+ });
425
+ }
426
+ const raw = deriveTransactionType(transaction);
427
+ const txnAndProof = new TransactionAndProof(raw, this.proof.proof);
428
+ const signMess = txnAndProof.hash();
429
+ return this.sign(signMess);
430
+ }
431
+
432
+ getSigningMessage(transaction: AnyRawTransaction): Uint8Array {
433
+ if (this.proof === undefined) {
434
+ throw KeylessError.fromErrorType({
435
+ type: KeylessErrorType.PROOF_NOT_FOUND,
436
+ details: "Proof not found - make sure to call `await account.checkKeylessAccountValidity()` before signing.",
437
+ });
438
+ }
439
+ const raw = deriveTransactionType(transaction);
440
+ const txnAndProof = new TransactionAndProof(raw, this.proof.proof);
441
+ return txnAndProof.hash();
442
+ }
443
+
444
+ /**
445
+ * Note - This function is currently incomplete and should only be used to verify ownership of the KeylessAccount
446
+ *
447
+ * Verifies a signature given the message.
448
+ *
449
+ * @param args.message the message that was signed.
450
+ * @param args.signature the KeylessSignature to verify
451
+ * @returns boolean
452
+ * @group Implementation
453
+ * @category Account (On-Chain Model)
454
+ */
455
+ verifySignature(args: {
456
+ message: HexInput;
457
+ signature: KeylessSignature;
458
+ jwk: MoveJWK;
459
+ keylessConfig: KeylessConfiguration;
460
+ }): boolean {
461
+ return this.publicKey.verifySignature(args);
462
+ }
463
+
464
+ async verifySignatureAsync(args: {
465
+ movementConfig: MovementConfig;
466
+ message: HexInput;
467
+ signature: KeylessSignature;
468
+ options?: { throwErrorWithReason?: boolean };
469
+ }): Promise<boolean> {
470
+ return this.publicKey.verifySignatureAsync({
471
+ ...args,
472
+ });
473
+ }
474
+
475
+ /**
476
+ * Fetches the JWK from the issuer's well-known JWKS endpoint.
477
+ *
478
+ * @param args.publicKey The keyless public key to query
479
+ * @param args.kid The kid of the JWK to fetch
480
+ * @returns A JWK matching the `kid` in the JWT header.
481
+ * @throws {KeylessError} If the JWK cannot be fetched
482
+ */
483
+ static async fetchJWK(args: {
484
+ movementConfig: MovementConfig;
485
+ publicKey: KeylessPublicKey | FederatedKeylessPublicKey;
486
+ kid: string;
487
+ }): Promise<MoveJWK> {
488
+ return fetchJWK(args);
489
+ }
490
+ }
491
+
492
+ /**
493
+ * A container class to hold a transaction and a proof. It implements CryptoHashable which is used to create
494
+ * the signing message for Keyless transactions. We sign over the proof to ensure non-malleability.
495
+ * @group Implementation
496
+ * @category Account (On-Chain Model)
497
+ */
498
+ export class TransactionAndProof extends Serializable {
499
+ /**
500
+ * The transaction to sign.
501
+ * @group Implementation
502
+ * @category Account (On-Chain Model)
503
+ */
504
+ transaction: AnyRawTransactionInstance;
505
+
506
+ /**
507
+ * The zero knowledge proof used in signing the transaction.
508
+ * @group Implementation
509
+ * @category Account (On-Chain Model)
510
+ */
511
+ proof?: ZkProof;
512
+
513
+ /**
514
+ * The domain separator prefix used when hashing.
515
+ * @group Implementation
516
+ * @category Account (On-Chain Model)
517
+ */
518
+ readonly domainSeparator = "APTOS::TransactionAndProof";
519
+
520
+ constructor(transaction: AnyRawTransactionInstance, proof?: ZkProof) {
521
+ super();
522
+ this.transaction = transaction;
523
+ this.proof = proof;
524
+ }
525
+
526
+ /**
527
+ * Serializes the transaction data into a format suitable for transmission or storage.
528
+ * This function ensures that both the transaction bytes and the proof are properly serialized.
529
+ *
530
+ * @param serializer - The serializer instance used to convert the transaction data into bytes.
531
+ */
532
+ serialize(serializer: Serializer): void {
533
+ serializer.serializeFixedBytes(this.transaction.bcsToBytes());
534
+ serializer.serializeOption(this.proof);
535
+ }
536
+
537
+ /**
538
+ * Hashes the bcs serialized from of the class. This is the typescript corollary to the BCSCryptoHash macro in aptos-core.
539
+ *
540
+ * @returns Uint8Array
541
+ * @group Implementation
542
+ * @category Account (On-Chain Model)
543
+ */
544
+ hash(): Uint8Array {
545
+ return generateSigningMessage(this.bcsToBytes(), this.domainSeparator);
546
+ }
547
+ }
548
+ /**
549
+ * @group Implementation
550
+ * @category Account (On-Chain Model)
551
+ */
552
+ export type ProofFetchSuccess = {
553
+ status: "Success";
554
+ };
555
+ /**
556
+ * @group Implementation
557
+ * @category Account (On-Chain Model)
558
+ */
559
+ export type ProofFetchFailure = {
560
+ status: "Failed";
561
+ error: string;
562
+ };
563
+ /**
564
+ * @group Implementation
565
+ * @category Account (On-Chain Model)
566
+ */
567
+ export type ProofFetchStatus = ProofFetchSuccess | ProofFetchFailure;
568
+ /**
569
+ * @group Implementation
570
+ * @category Account (On-Chain Model)
571
+ */
572
+ export type ProofFetchCallback = (status: ProofFetchStatus) => Promise<void>;
573
+ /**
574
+ * @group Implementation
575
+ * @category Account (On-Chain Model)
576
+ */
577
+ export interface ProofFetchEvents {
578
+ proofFetchFinish: (status: ProofFetchStatus) => void;
579
+ }
@@ -0,0 +1,124 @@
1
+ import { sha3_256 } from "@noble/hashes/sha3";
2
+ import { AccountAddress } from "../core";
3
+ import { AbstractPublicKey, AbstractSignature } from "../core/crypto/abstraction";
4
+ import { SigningScheme, HexInput } from "../types";
5
+ import { Account } from "./Account";
6
+ import { AnyRawTransaction } from "../transactions/types";
7
+ import {
8
+ generateSigningMessage,
9
+ generateSigningMessageForTransaction,
10
+ } from "../transactions/transactionBuilder/signingMessage";
11
+ import { AccountAbstractionMessage, AccountAuthenticatorAbstraction } from "../transactions/authenticator/account";
12
+ import { Ed25519Account } from "./Ed25519Account";
13
+ import { Serializer } from "../bcs/serializer";
14
+ import { isValidFunctionInfo } from "../utils/helpers";
15
+ import { ACCOUNT_ABSTRACTION_SIGNING_DATA_SALT } from "../utils/const";
16
+
17
+ type AbstractedAccountConstructorArgs = {
18
+ /**
19
+ * The account address of the account.
20
+ */
21
+ accountAddress: AccountAddress;
22
+ /**
23
+ * The signer function signs transactions and returns the `authenticator` bytes in the `AbstractionAuthData`.
24
+ *
25
+ * @param digest - The SHA256 hash of the transaction signing message
26
+ * @returns The `authenticator` bytes that can be used to verify the signature.
27
+ */
28
+ signer: (digest: HexInput) => Uint8Array;
29
+ /**
30
+ * The authentication function that will be used to verify the signature.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * const authenticationFunction = `${accountAddress}::permissioned_delegation::authenticate`;
35
+ * ```
36
+ */
37
+ authenticationFunction: string;
38
+ };
39
+
40
+ export class AbstractedAccount extends Account {
41
+ public readonly publicKey: AbstractPublicKey;
42
+
43
+ readonly accountAddress: AccountAddress;
44
+
45
+ readonly authenticationFunction: string;
46
+
47
+ readonly signingScheme = SigningScheme.SingleKey;
48
+
49
+ constructor({ signer, accountAddress, authenticationFunction }: AbstractedAccountConstructorArgs) {
50
+ super();
51
+
52
+ if (!isValidFunctionInfo(authenticationFunction)) {
53
+ throw new Error(`Invalid authentication function ${authenticationFunction} passed into AbstractedAccount`);
54
+ }
55
+
56
+ this.authenticationFunction = authenticationFunction;
57
+ this.accountAddress = accountAddress;
58
+ this.publicKey = new AbstractPublicKey(this.accountAddress);
59
+ this.sign = (digest: HexInput) => new AbstractSignature(signer(digest));
60
+ }
61
+
62
+ /**
63
+ * Creates an `AbstractedAccount` from an `Ed25519Account` that has a permissioned signer function and
64
+ * using the `0x1::permissioned_delegation::authenticate` function to verify the signature.
65
+ *
66
+ * @param signer - The `Ed25519Account` that can be used to sign permissioned transactions.
67
+ * @returns The `AbstractedAccount`
68
+ */
69
+ public static fromPermissionedSigner({
70
+ signer,
71
+ accountAddress,
72
+ }: {
73
+ signer: Ed25519Account;
74
+ accountAddress?: AccountAddress;
75
+ }) {
76
+ return new AbstractedAccount({
77
+ signer: (digest: HexInput) => {
78
+ const serializer = new Serializer();
79
+ signer.publicKey.serialize(serializer);
80
+ signer.sign(digest).serialize(serializer);
81
+ return serializer.toUint8Array();
82
+ },
83
+ accountAddress: accountAddress ?? signer.accountAddress,
84
+ authenticationFunction: "0x1::permissioned_delegation::authenticate",
85
+ });
86
+ }
87
+
88
+ public static generateAccountAbstractionMessage(message: HexInput, functionInfo: string): HexInput {
89
+ const accountAbstractionMessage = new AccountAbstractionMessage(message, functionInfo);
90
+ return generateSigningMessage(accountAbstractionMessage.bcsToBytes(), ACCOUNT_ABSTRACTION_SIGNING_DATA_SALT);
91
+ }
92
+
93
+ signWithAuthenticator(message: HexInput): AccountAuthenticatorAbstraction {
94
+ return new AccountAuthenticatorAbstraction(
95
+ this.authenticationFunction,
96
+ sha3_256(message),
97
+ this.sign(sha3_256(message)).toUint8Array(),
98
+ );
99
+ }
100
+
101
+ signTransactionWithAuthenticator(transaction: AnyRawTransaction): AccountAuthenticatorAbstraction {
102
+ const message = AbstractedAccount.generateAccountAbstractionMessage(
103
+ generateSigningMessageForTransaction(transaction),
104
+ this.authenticationFunction,
105
+ );
106
+ return this.signWithAuthenticator(message);
107
+ }
108
+
109
+ sign: (message: HexInput) => AbstractSignature;
110
+
111
+ signTransaction(transaction: AnyRawTransaction): AbstractSignature {
112
+ return this.sign(generateSigningMessageForTransaction(transaction));
113
+ }
114
+
115
+ /**
116
+ * Update the signer function for the account. This can be done after asynchronous operations are complete
117
+ * to update the context of the signer function.
118
+ *
119
+ * @param signer - The new signer function to use for the account.
120
+ */
121
+ public setSigner(signer: (digest: HexInput) => HexInput): void {
122
+ this.sign = (digest: HexInput) => new AbstractSignature(signer(digest));
123
+ }
124
+ }