@aptos-labs/ts-sdk 1.13.3 → 1.14.0-zeta.1

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 (601) hide show
  1. package/dist/common/accountAddress-u9wEan9p.d.ts +2149 -0
  2. package/dist/common/chunk-QRI7EC4T.js +24 -0
  3. package/dist/common/chunk-QRI7EC4T.js.map +1 -0
  4. package/dist/common/cli/index.d.ts +94 -1
  5. package/dist/common/cli/index.js +245 -1
  6. package/dist/common/cli/index.js.map +1 -1
  7. package/dist/common/index.d.ts +2699 -4119
  8. package/dist/common/index.js +11786 -374
  9. package/dist/common/index.js.map +1 -1
  10. package/dist/esm/{Ed25519Account--qjfup2u.d.mts → Ed25519Account-9zBaZEnp.d.mts} +76 -9
  11. package/dist/esm/account/Account.d.mts +34 -0
  12. package/dist/esm/account/Account.mjs +56 -0
  13. package/dist/esm/account/Ed25519Account.d.mts +34 -0
  14. package/dist/esm/account/Ed25519Account.mjs +54 -0
  15. package/dist/esm/account/EphemeralKeyPair.d.mts +80 -0
  16. package/dist/esm/account/EphemeralKeyPair.mjs +37 -0
  17. package/dist/esm/account/KeylessAccount.d.mts +145 -0
  18. package/dist/esm/account/KeylessAccount.mjs +57 -0
  19. package/dist/esm/account/MultiKeyAccount.d.mts +138 -0
  20. package/dist/esm/account/MultiKeyAccount.mjs +56 -0
  21. package/dist/esm/account/SingleKeyAccount.d.mts +34 -0
  22. package/dist/esm/account/SingleKeyAccount.mjs +54 -0
  23. package/dist/esm/account/index.d.mts +41 -0
  24. package/dist/esm/account/index.mjs +77 -0
  25. package/dist/esm/api/account.d.mts +13 -1
  26. package/dist/esm/api/account.mjs +76 -1
  27. package/dist/esm/api/ans.d.mts +2 -2
  28. package/dist/esm/api/ans.mjs +87 -1
  29. package/dist/esm/api/aptos.d.mts +15 -8
  30. package/dist/esm/api/aptos.mjs +116 -1
  31. package/dist/esm/api/aptosConfig.d.mts +20 -0
  32. package/dist/esm/api/aptosConfig.mjs +9 -1
  33. package/dist/esm/api/coin.d.mts +7 -7
  34. package/dist/esm/api/coin.mjs +86 -1
  35. package/dist/esm/api/digitalAsset.d.mts +1 -1
  36. package/dist/esm/api/digitalAsset.mjs +87 -1
  37. package/dist/esm/api/event.mjs +54 -1
  38. package/dist/esm/api/faucet.mjs +53 -1
  39. package/dist/esm/api/fungibleAsset.d.mts +5 -5
  40. package/dist/esm/api/fungibleAsset.mjs +87 -1
  41. package/dist/esm/api/general.d.mts +7 -7
  42. package/dist/esm/api/general.mjs +84 -1
  43. package/dist/esm/api/index.d.mts +14 -8
  44. package/dist/esm/api/index.mjs +120 -1
  45. package/dist/esm/api/keyless.d.mts +81 -0
  46. package/dist/esm/api/keyless.mjs +71 -0
  47. package/dist/esm/api/staking.mjs +54 -1
  48. package/dist/esm/api/transaction.d.mts +1 -1
  49. package/dist/esm/api/transaction.mjs +94 -1
  50. package/dist/esm/api/transactionSubmission/build.d.mts +2 -2
  51. package/dist/esm/api/transactionSubmission/build.mjs +85 -1
  52. package/dist/esm/api/transactionSubmission/helpers.mjs +9 -1
  53. package/dist/esm/api/transactionSubmission/management.d.mts +8 -8
  54. package/dist/esm/api/transactionSubmission/management.mjs +89 -1
  55. package/dist/esm/api/transactionSubmission/sign.d.mts +1 -1
  56. package/dist/esm/api/transactionSubmission/sign.mjs +109 -1
  57. package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
  58. package/dist/esm/api/transactionSubmission/simulate.d.mts +6 -6
  59. package/dist/esm/api/transactionSubmission/simulate.mjs +86 -1
  60. package/dist/esm/api/transactionSubmission/submit.mjs +86 -1
  61. package/dist/esm/api/utils.mjs +34 -1
  62. package/dist/esm/bcs/consts.mjs +17 -1
  63. package/dist/esm/bcs/deserializer.d.mts +26 -0
  64. package/dist/esm/bcs/deserializer.mjs +8 -1
  65. package/dist/esm/bcs/index.mjs +57 -1
  66. package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +12 -1
  67. package/dist/esm/bcs/serializable/fixedBytes.mjs +11 -1
  68. package/dist/esm/bcs/serializable/movePrimitives.mjs +25 -1
  69. package/dist/esm/bcs/serializable/moveStructs.mjs +18 -1
  70. package/dist/esm/bcs/serializer.d.mts +2 -0
  71. package/dist/esm/bcs/serializer.mjs +18 -1
  72. package/dist/esm/chunk-2JOCR2VL.mjs +32 -0
  73. package/dist/esm/chunk-2JOCR2VL.mjs.map +1 -0
  74. package/dist/esm/chunk-2OQW7BMN.mjs +129 -0
  75. package/dist/esm/{chunk-PZGLV5UQ.mjs.map → chunk-2OQW7BMN.mjs.map} +1 -1
  76. package/dist/esm/chunk-2TJJWII2.mjs +23 -0
  77. package/dist/esm/{chunk-DSTKXJMA.mjs.map → chunk-2TJJWII2.mjs.map} +1 -1
  78. package/dist/esm/chunk-2ZEGJU43.mjs +252 -0
  79. package/dist/esm/chunk-2ZEGJU43.mjs.map +1 -0
  80. package/dist/esm/chunk-4OYYOYSO.mjs +336 -0
  81. package/dist/esm/chunk-4OYYOYSO.mjs.map +1 -0
  82. package/dist/esm/{chunk-S4SEFF4K.mjs → chunk-4PJ5FYGQ.mjs} +302 -27
  83. package/dist/esm/{chunk-S4SEFF4K.mjs.map → chunk-4PJ5FYGQ.mjs.map} +1 -1
  84. package/dist/esm/chunk-55NODGHC.mjs +135 -0
  85. package/dist/esm/chunk-55NODGHC.mjs.map +1 -0
  86. package/dist/esm/chunk-6LRQSBRH.mjs +130 -0
  87. package/dist/esm/chunk-6LRQSBRH.mjs.map +1 -0
  88. package/dist/esm/chunk-6MSZMIFW.mjs +23 -0
  89. package/dist/esm/{chunk-BWFJHFBQ.mjs.map → chunk-6MSZMIFW.mjs.map} +1 -1
  90. package/dist/esm/chunk-76TSTAU4.mjs +120 -0
  91. package/dist/esm/chunk-76TSTAU4.mjs.map +1 -0
  92. package/dist/esm/chunk-7FO3S6IZ.mjs +324 -0
  93. package/dist/esm/{chunk-DMKUAQB7.mjs.map → chunk-7FO3S6IZ.mjs.map} +1 -1
  94. package/dist/esm/chunk-7FUHWL6A.mjs +42 -0
  95. package/dist/esm/{chunk-V3Q2KXJU.mjs.map → chunk-7FUHWL6A.mjs.map} +1 -1
  96. package/dist/esm/chunk-7IDBB4J4.mjs +33 -0
  97. package/dist/esm/{chunk-ZZZZVONX.mjs.map → chunk-7IDBB4J4.mjs.map} +1 -1
  98. package/dist/esm/chunk-7JRMOHBP.mjs +247 -0
  99. package/dist/esm/chunk-7JRMOHBP.mjs.map +1 -0
  100. package/dist/esm/chunk-7REUIYF4.mjs +63 -0
  101. package/dist/esm/chunk-7REUIYF4.mjs.map +1 -0
  102. package/dist/esm/chunk-7Z6DYLCA.mjs +1 -0
  103. package/dist/esm/chunk-7Z6DYLCA.mjs.map +1 -0
  104. package/dist/esm/chunk-AC3OGAL6.mjs +87 -0
  105. package/dist/esm/{chunk-U6Z4FNB7.mjs.map → chunk-AC3OGAL6.mjs.map} +1 -1
  106. package/dist/esm/chunk-AQ4I7VVB.mjs +1 -0
  107. package/dist/esm/chunk-AQ4I7VVB.mjs.map +1 -0
  108. package/dist/esm/chunk-AR7X6GWQ.mjs +356 -0
  109. package/dist/esm/{chunk-FS3NSGBF.mjs.map → chunk-AR7X6GWQ.mjs.map} +1 -1
  110. package/dist/esm/chunk-ASF2VWOX.mjs +142 -0
  111. package/dist/esm/{chunk-G2O323HP.mjs.map → chunk-ASF2VWOX.mjs.map} +1 -1
  112. package/dist/esm/chunk-ATVFVXR6.mjs +43 -0
  113. package/dist/esm/{chunk-VVIG4E7Q.mjs.map → chunk-ATVFVXR6.mjs.map} +1 -1
  114. package/dist/esm/chunk-B5S6DDUD.mjs +120 -0
  115. package/dist/esm/chunk-B5S6DDUD.mjs.map +1 -0
  116. package/dist/esm/chunk-BXMHDQHW.mjs +512 -0
  117. package/dist/esm/chunk-BXMHDQHW.mjs.map +1 -0
  118. package/dist/esm/chunk-CC4DQ6NH.mjs +19 -0
  119. package/dist/esm/{chunk-MACC2BLE.mjs.map → chunk-CC4DQ6NH.mjs.map} +1 -1
  120. package/dist/esm/chunk-CMNJG4NN.mjs +345 -0
  121. package/dist/esm/{chunk-IOSQVDZI.mjs.map → chunk-CMNJG4NN.mjs.map} +1 -1
  122. package/dist/esm/chunk-CTJSZT5V.mjs +87 -0
  123. package/dist/esm/{chunk-UFT7US42.mjs.map → chunk-CTJSZT5V.mjs.map} +1 -1
  124. package/dist/esm/chunk-CX3NAVRD.mjs +205 -0
  125. package/dist/esm/chunk-CX3NAVRD.mjs.map +1 -0
  126. package/dist/esm/chunk-CXUGZXED.mjs +307 -0
  127. package/dist/esm/{chunk-YU3KB3UV.mjs.map → chunk-CXUGZXED.mjs.map} +1 -1
  128. package/dist/esm/chunk-D2BVBXWO.mjs +7 -0
  129. package/dist/esm/{chunk-B7TQGVGL.mjs.map → chunk-D2BVBXWO.mjs.map} +1 -1
  130. package/dist/esm/chunk-DGV7DYU4.mjs +413 -0
  131. package/dist/esm/chunk-DGV7DYU4.mjs.map +1 -0
  132. package/dist/esm/chunk-DIYZRGR6.mjs +242 -0
  133. package/dist/esm/{chunk-O4JRPZZM.mjs.map → chunk-DIYZRGR6.mjs.map} +1 -1
  134. package/dist/esm/chunk-DNPMS2OF.mjs +236 -0
  135. package/dist/esm/{chunk-U43IJHQN.mjs.map → chunk-DNPMS2OF.mjs.map} +1 -1
  136. package/dist/esm/chunk-DVPQGCFT.mjs +74 -0
  137. package/dist/esm/{chunk-O2F53NKI.mjs.map → chunk-DVPQGCFT.mjs.map} +1 -1
  138. package/dist/esm/chunk-EYHRMZPO.mjs +34 -0
  139. package/dist/esm/{chunk-AH44UPM4.mjs.map → chunk-EYHRMZPO.mjs.map} +1 -1
  140. package/dist/esm/chunk-F2ZWA7B7.mjs +412 -0
  141. package/dist/esm/chunk-F2ZWA7B7.mjs.map +1 -0
  142. package/dist/esm/chunk-FDWJNY4U.mjs +22 -0
  143. package/dist/esm/{chunk-R5QUBEH6.mjs.map → chunk-FDWJNY4U.mjs.map} +1 -1
  144. package/dist/esm/chunk-FF4JPDKD.mjs +315 -0
  145. package/dist/esm/chunk-FF4JPDKD.mjs.map +1 -0
  146. package/dist/esm/chunk-FQQW55X7.mjs +288 -0
  147. package/dist/esm/{chunk-52C73T26.mjs.map → chunk-FQQW55X7.mjs.map} +1 -1
  148. package/dist/esm/chunk-FXKSE3ZP.mjs +25 -0
  149. package/dist/esm/{chunk-WFZDFFBM.mjs.map → chunk-FXKSE3ZP.mjs.map} +1 -1
  150. package/dist/esm/chunk-GBEVD2VM.mjs +99 -0
  151. package/dist/esm/chunk-GBEVD2VM.mjs.map +1 -0
  152. package/dist/esm/chunk-GGMTQAQP.mjs +11 -0
  153. package/dist/esm/{chunk-3JPVQHOR.mjs.map → chunk-GGMTQAQP.mjs.map} +1 -1
  154. package/dist/esm/chunk-GSVQ6EUD.mjs +649 -0
  155. package/dist/esm/chunk-GSVQ6EUD.mjs.map +1 -0
  156. package/dist/esm/chunk-HBNSRCZN.mjs +100 -0
  157. package/dist/esm/{chunk-SG4MAOCF.mjs.map → chunk-HBNSRCZN.mjs.map} +1 -1
  158. package/dist/esm/chunk-IC56GQFJ.mjs +127 -0
  159. package/dist/esm/chunk-IC56GQFJ.mjs.map +1 -0
  160. package/dist/esm/chunk-IHNPN5CQ.mjs +256 -0
  161. package/dist/esm/chunk-IHNPN5CQ.mjs.map +1 -0
  162. package/dist/esm/chunk-JHDHNGJ3.mjs +126 -0
  163. package/dist/esm/chunk-JHDHNGJ3.mjs.map +1 -0
  164. package/dist/esm/chunk-JL2JHVS4.mjs +49 -0
  165. package/dist/esm/{chunk-RHBCVCOS.mjs.map → chunk-JL2JHVS4.mjs.map} +1 -1
  166. package/dist/esm/chunk-JV3GSIJW.mjs +268 -0
  167. package/dist/esm/chunk-JV3GSIJW.mjs.map +1 -0
  168. package/dist/esm/chunk-JXCZTOYC.mjs +1 -0
  169. package/dist/esm/chunk-JXCZTOYC.mjs.map +1 -0
  170. package/dist/esm/chunk-KK2BSALW.mjs +32 -0
  171. package/dist/esm/{chunk-TBMAJ6AW.mjs.map → chunk-KK2BSALW.mjs.map} +1 -1
  172. package/dist/esm/chunk-KMXSRHJ6.mjs +93 -0
  173. package/dist/esm/chunk-KMXSRHJ6.mjs.map +1 -0
  174. package/dist/esm/chunk-KVSQ57HU.mjs +45 -0
  175. package/dist/esm/{chunk-NNQJBFRB.mjs.map → chunk-KVSQ57HU.mjs.map} +1 -1
  176. package/dist/esm/chunk-LI2QV6RU.mjs +129 -0
  177. package/dist/esm/chunk-LI2QV6RU.mjs.map +1 -0
  178. package/dist/esm/chunk-LLLQJWRZ.mjs +35 -0
  179. package/dist/esm/{chunk-DPV25ZKR.mjs.map → chunk-LLLQJWRZ.mjs.map} +1 -1
  180. package/dist/esm/chunk-LYK4TQZO.mjs +70 -0
  181. package/dist/esm/chunk-LYK4TQZO.mjs.map +1 -0
  182. package/dist/esm/chunk-LYMY63SO.mjs +124 -0
  183. package/dist/esm/{chunk-W4ZW7QHA.mjs.map → chunk-LYMY63SO.mjs.map} +1 -1
  184. package/dist/esm/chunk-MZZLEY6O.mjs +92 -0
  185. package/dist/esm/chunk-MZZLEY6O.mjs.map +1 -0
  186. package/dist/esm/chunk-N4WKFNQ6.mjs +156 -0
  187. package/dist/esm/chunk-N4WKFNQ6.mjs.map +1 -0
  188. package/dist/esm/chunk-NFJCQRVK.mjs +37 -0
  189. package/dist/esm/chunk-NFJCQRVK.mjs.map +1 -0
  190. package/dist/esm/chunk-NMKCJNQM.mjs +20 -0
  191. package/dist/esm/{chunk-TJDC5PWD.mjs.map → chunk-NMKCJNQM.mjs.map} +1 -1
  192. package/dist/esm/chunk-NW45SCPY.mjs +36 -0
  193. package/dist/esm/{chunk-GSD4OOM3.mjs.map → chunk-NW45SCPY.mjs.map} +1 -1
  194. package/dist/esm/chunk-NXFO2W4G.mjs +84 -0
  195. package/dist/esm/{chunk-QMURTXFM.mjs.map → chunk-NXFO2W4G.mjs.map} +1 -1
  196. package/dist/esm/chunk-NYL77J4X.mjs +97 -0
  197. package/dist/esm/chunk-NYL77J4X.mjs.map +1 -0
  198. package/dist/esm/chunk-O6PSHSN3.mjs +53 -0
  199. package/dist/esm/{chunk-MFKMAAWA.mjs.map → chunk-O6PSHSN3.mjs.map} +1 -1
  200. package/dist/esm/chunk-OR7TEZ25.mjs +16 -0
  201. package/dist/esm/chunk-OR7TEZ25.mjs.map +1 -0
  202. package/dist/esm/chunk-PCLNX6FS.mjs +17 -0
  203. package/dist/esm/{chunk-6FBKUTGF.mjs.map → chunk-PCLNX6FS.mjs.map} +1 -1
  204. package/dist/esm/chunk-PIMQHG2J.mjs +49 -0
  205. package/dist/esm/{chunk-ZYYK3UXP.mjs.map → chunk-PIMQHG2J.mjs.map} +1 -1
  206. package/dist/esm/chunk-PU5AFUX3.mjs +52 -0
  207. package/dist/esm/{chunk-LR65XHSF.mjs.map → chunk-PU5AFUX3.mjs.map} +1 -1
  208. package/dist/esm/chunk-PYLOAMR2.mjs +29 -0
  209. package/dist/esm/{chunk-UML2VQZT.mjs.map → chunk-PYLOAMR2.mjs.map} +1 -1
  210. package/dist/esm/chunk-QBBTUC66.mjs +15 -0
  211. package/dist/esm/{chunk-ROXFCLDT.mjs.map → chunk-QBBTUC66.mjs.map} +1 -1
  212. package/dist/esm/chunk-QFOG4LIN.mjs +319 -0
  213. package/dist/esm/{chunk-DM44OGQH.mjs.map → chunk-QFOG4LIN.mjs.map} +1 -1
  214. package/dist/esm/chunk-QMM2KL6C.mjs +12 -0
  215. package/dist/esm/{chunk-FBPNHF54.mjs.map → chunk-QMM2KL6C.mjs.map} +1 -1
  216. package/dist/esm/chunk-RCQMWXEW.mjs +35 -0
  217. package/dist/esm/{chunk-3WUGR46O.mjs.map → chunk-RCQMWXEW.mjs.map} +1 -1
  218. package/dist/esm/chunk-RFSO3JRG.mjs +1 -0
  219. package/dist/esm/chunk-RFSO3JRG.mjs.map +1 -0
  220. package/dist/esm/chunk-RX4VG2AT.mjs +314 -0
  221. package/dist/esm/{chunk-CNMQNPNV.mjs.map → chunk-RX4VG2AT.mjs.map} +1 -1
  222. package/dist/esm/chunk-SBB4YEPT.mjs +17 -0
  223. package/dist/esm/{chunk-56CNRT2K.mjs.map → chunk-SBB4YEPT.mjs.map} +1 -1
  224. package/dist/esm/chunk-SIJELMDP.mjs +29 -0
  225. package/dist/esm/{chunk-6EMN3BOV.mjs.map → chunk-SIJELMDP.mjs.map} +1 -1
  226. package/dist/esm/chunk-SS3NUM5L.mjs +94 -0
  227. package/dist/esm/{chunk-L54P6EGN.mjs.map → chunk-SS3NUM5L.mjs.map} +1 -1
  228. package/dist/esm/chunk-ST4QXIMI.mjs +37 -0
  229. package/dist/esm/{chunk-5P2S2SZZ.mjs.map → chunk-ST4QXIMI.mjs.map} +1 -1
  230. package/dist/esm/chunk-TBHU6ZW6.mjs +215 -0
  231. package/dist/esm/{chunk-7QJ6YJXP.mjs.map → chunk-TBHU6ZW6.mjs.map} +1 -1
  232. package/dist/esm/chunk-TLNHRJB2.mjs +155 -0
  233. package/dist/esm/chunk-TLNHRJB2.mjs.map +1 -0
  234. package/dist/esm/chunk-U3IUCR2G.mjs +54 -0
  235. package/dist/esm/{chunk-CU67XZNB.mjs.map → chunk-U3IUCR2G.mjs.map} +1 -1
  236. package/dist/esm/chunk-U7QBZ6PP.mjs +400 -0
  237. package/dist/esm/chunk-U7QBZ6PP.mjs.map +1 -0
  238. package/dist/esm/chunk-UEBBLQJ5.mjs +94 -0
  239. package/dist/esm/{chunk-NPFNYP75.mjs.map → chunk-UEBBLQJ5.mjs.map} +1 -1
  240. package/dist/esm/chunk-UKU6A2W2.mjs +232 -0
  241. package/dist/esm/{chunk-XO3HHRJV.mjs.map → chunk-UKU6A2W2.mjs.map} +1 -1
  242. package/dist/esm/chunk-UX5NSZEN.mjs +134 -0
  243. package/dist/esm/chunk-UX5NSZEN.mjs.map +1 -0
  244. package/dist/esm/chunk-VDJBDX3A.mjs +79 -0
  245. package/dist/esm/chunk-VDJBDX3A.mjs.map +1 -0
  246. package/dist/esm/chunk-VJP2VWMF.mjs +58 -0
  247. package/dist/esm/chunk-VJP2VWMF.mjs.map +1 -0
  248. package/dist/esm/chunk-VKJQORON.mjs +93 -0
  249. package/dist/esm/{chunk-734YX27W.mjs.map → chunk-VKJQORON.mjs.map} +1 -1
  250. package/dist/esm/chunk-VPWUODU4.mjs +51 -0
  251. package/dist/esm/{chunk-AU6W5OIH.mjs.map → chunk-VPWUODU4.mjs.map} +1 -1
  252. package/dist/esm/chunk-VZQXLVEP.mjs +197 -0
  253. package/dist/esm/{chunk-V6OS74OS.mjs.map → chunk-VZQXLVEP.mjs.map} +1 -1
  254. package/dist/esm/chunk-W76MGKZB.mjs +33 -0
  255. package/dist/esm/{chunk-CTIN3GTP.mjs.map → chunk-W76MGKZB.mjs.map} +1 -1
  256. package/dist/esm/chunk-WDRH2URB.mjs +91 -0
  257. package/dist/esm/chunk-WDRH2URB.mjs.map +1 -0
  258. package/dist/esm/chunk-WHBWEN6N.mjs +206 -0
  259. package/dist/esm/chunk-WHBWEN6N.mjs.map +1 -0
  260. package/dist/esm/chunk-WK5ZSNE2.mjs +173 -0
  261. package/dist/esm/{chunk-QIAHBEEW.mjs.map → chunk-WK5ZSNE2.mjs.map} +1 -1
  262. package/dist/esm/chunk-WLTBF4DF.mjs +22 -0
  263. package/dist/esm/chunk-WLTBF4DF.mjs.map +1 -0
  264. package/dist/esm/chunk-WVGO4D7K.mjs +254 -0
  265. package/dist/esm/chunk-WVGO4D7K.mjs.map +1 -0
  266. package/dist/esm/chunk-XANFAUBD.mjs +44 -0
  267. package/dist/esm/{chunk-QTRYMRYK.mjs.map → chunk-XANFAUBD.mjs.map} +1 -1
  268. package/dist/esm/chunk-Y2LV3S5W.mjs +410 -0
  269. package/dist/esm/chunk-Y2LV3S5W.mjs.map +1 -0
  270. package/dist/esm/chunk-YV7M4CFP.mjs +137 -0
  271. package/dist/esm/{chunk-AOCNYMMX.mjs.map → chunk-YV7M4CFP.mjs.map} +1 -1
  272. package/dist/esm/chunk-YYOPNUX5.mjs +41 -0
  273. package/dist/esm/chunk-YYOPNUX5.mjs.map +1 -0
  274. package/dist/esm/chunk-ZAHJ7KXB.mjs +81 -0
  275. package/dist/esm/chunk-ZAHJ7KXB.mjs.map +1 -0
  276. package/dist/esm/chunk-ZMFKQUHL.mjs +117 -0
  277. package/dist/esm/{chunk-RIUZPGI5.mjs.map → chunk-ZMFKQUHL.mjs.map} +1 -1
  278. package/dist/esm/cli/index.d.mts +12 -0
  279. package/dist/esm/cli/index.mjs +12 -1
  280. package/dist/esm/cli/localNode.mjs +8 -1
  281. package/dist/esm/cli/move.d.mts +105 -0
  282. package/dist/esm/cli/move.mjs +8 -0
  283. package/dist/esm/cli/move.mjs.map +1 -0
  284. package/dist/esm/client/core.mjs +27 -1
  285. package/dist/esm/client/get.d.mts +2 -1
  286. package/dist/esm/client/get.mjs +32 -1
  287. package/dist/esm/client/index.d.mts +2 -2
  288. package/dist/esm/client/index.mjs +55 -1
  289. package/dist/esm/client/post.d.mts +3 -1
  290. package/dist/esm/client/post.mjs +36 -1
  291. package/dist/esm/client/types.d.mts +5 -1
  292. package/dist/esm/client/types.mjs +7 -1
  293. package/dist/esm/core/account/index.d.mts +5 -14
  294. package/dist/esm/core/account/index.mjs +19 -1
  295. package/dist/esm/core/account/utils/address.mjs +18 -1
  296. package/dist/esm/core/account/utils/index.mjs +19 -1
  297. package/dist/esm/core/accountAddress.mjs +15 -1
  298. package/dist/esm/core/authenticationKey.mjs +14 -1
  299. package/dist/esm/core/common.mjs +7 -1
  300. package/dist/esm/core/crypto/ed25519.mjs +29 -1
  301. package/dist/esm/core/crypto/ephemeral.d.mts +73 -0
  302. package/dist/esm/core/crypto/ephemeral.mjs +29 -0
  303. package/dist/esm/core/crypto/ephemeral.mjs.map +1 -0
  304. package/dist/esm/core/crypto/hdKey.mjs +25 -1
  305. package/dist/esm/core/crypto/index.d.mts +6 -3
  306. package/dist/esm/core/crypto/index.mjs +124 -1
  307. package/dist/esm/core/crypto/keyless.d.mts +232 -0
  308. package/dist/esm/core/crypto/keyless.mjs +56 -0
  309. package/dist/esm/core/crypto/keyless.mjs.map +1 -0
  310. package/dist/esm/core/crypto/multiEd25519.mjs +28 -1
  311. package/dist/esm/core/crypto/multiKey.d.mts +7 -0
  312. package/dist/esm/core/crypto/multiKey.mjs +34 -1
  313. package/dist/esm/core/crypto/poseidon.d.mts +7 -0
  314. package/dist/esm/core/crypto/poseidon.mjs +16 -0
  315. package/dist/esm/core/crypto/poseidon.mjs.map +1 -0
  316. package/dist/esm/core/crypto/privateKey.mjs +1 -1
  317. package/dist/esm/core/crypto/proof.d.mts +21 -0
  318. package/dist/esm/core/crypto/proof.mjs +20 -0
  319. package/dist/esm/core/crypto/proof.mjs.map +1 -0
  320. package/dist/esm/core/crypto/publicKey.mjs +21 -1
  321. package/dist/esm/core/crypto/secp256k1.mjs +27 -1
  322. package/dist/esm/core/crypto/signature.mjs +19 -1
  323. package/dist/esm/core/crypto/singleKey.mjs +33 -1
  324. package/dist/esm/core/crypto/utils.mjs +9 -1
  325. package/dist/esm/core/hex.mjs +10 -1
  326. package/dist/esm/core/index.d.mts +5 -5
  327. package/dist/esm/core/index.mjs +141 -1
  328. package/dist/esm/index.d.mts +15 -8
  329. package/dist/esm/index.mjs +635 -1
  330. package/dist/esm/internal/account.d.mts +13 -1
  331. package/dist/esm/internal/account.mjs +106 -1
  332. package/dist/esm/internal/ans.d.mts +1 -1
  333. package/dist/esm/internal/ans.mjs +120 -1
  334. package/dist/esm/internal/coin.d.mts +7 -7
  335. package/dist/esm/internal/coin.mjs +85 -1
  336. package/dist/esm/internal/digitalAsset.d.mts +2 -2
  337. package/dist/esm/internal/digitalAsset.mjs +127 -1
  338. package/dist/esm/internal/event.d.mts +1 -1
  339. package/dist/esm/internal/event.mjs +55 -1
  340. package/dist/esm/internal/faucet.d.mts +1 -1
  341. package/dist/esm/internal/faucet.mjs +52 -1
  342. package/dist/esm/internal/fungibleAsset.d.mts +5 -5
  343. package/dist/esm/internal/fungibleAsset.mjs +91 -1
  344. package/dist/esm/internal/general.mjs +46 -1
  345. package/dist/esm/internal/keyless.d.mts +68 -0
  346. package/dist/esm/internal/keyless.mjs +74 -0
  347. package/dist/esm/internal/keyless.mjs.map +1 -0
  348. package/dist/esm/internal/staking.d.mts +1 -1
  349. package/dist/esm/internal/staking.mjs +53 -1
  350. package/dist/esm/internal/transaction.mjs +51 -1
  351. package/dist/esm/internal/transactionSubmission.d.mts +1 -1
  352. package/dist/esm/internal/transactionSubmission.mjs +102 -1
  353. package/dist/esm/internal/view.d.mts +7 -7
  354. package/dist/esm/internal/view.mjs +83 -1
  355. package/dist/esm/transactions/authenticator/account.d.mts +3 -4
  356. package/dist/esm/transactions/authenticator/account.mjs +44 -1
  357. package/dist/esm/transactions/authenticator/index.mjs +60 -1
  358. package/dist/esm/transactions/authenticator/transaction.mjs +48 -1
  359. package/dist/esm/transactions/index.d.mts +2 -2
  360. package/dist/esm/transactions/index.mjs +284 -1
  361. package/dist/esm/transactions/instances/chainId.mjs +11 -1
  362. package/dist/esm/transactions/instances/identifier.mjs +11 -1
  363. package/dist/esm/transactions/instances/index.mjs +96 -1
  364. package/dist/esm/transactions/instances/moduleId.d.mts +1 -1
  365. package/dist/esm/transactions/instances/moduleId.mjs +38 -1
  366. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +43 -1
  367. package/dist/esm/transactions/instances/rawTransaction.mjs +48 -1
  368. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +20 -1
  369. package/dist/esm/transactions/instances/signedTransaction.mjs +45 -1
  370. package/dist/esm/transactions/instances/simpleTransaction.mjs +43 -1
  371. package/dist/esm/transactions/instances/transactionArgument.mjs +1 -1
  372. package/dist/esm/transactions/instances/transactionPayload.d.mts +1 -1
  373. package/dist/esm/transactions/instances/transactionPayload.mjs +56 -1
  374. package/dist/esm/transactions/management/accountSequenceNumber.d.mts +13 -1
  375. package/dist/esm/transactions/management/accountSequenceNumber.mjs +74 -1
  376. package/dist/esm/transactions/management/asyncQueue.mjs +9 -1
  377. package/dist/esm/transactions/management/index.d.mts +2 -2
  378. package/dist/esm/transactions/management/index.mjs +95 -1
  379. package/dist/esm/transactions/management/transactionWorker.d.mts +1 -1
  380. package/dist/esm/transactions/management/transactionWorker.mjs +91 -1
  381. package/dist/esm/transactions/transactionBuilder/helpers.d.mts +9 -9
  382. package/dist/esm/transactions/transactionBuilder/helpers.mjs +75 -1
  383. package/dist/esm/transactions/transactionBuilder/index.d.mts +9 -9
  384. package/dist/esm/transactions/transactionBuilder/index.mjs +162 -1
  385. package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +6 -6
  386. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +85 -1
  387. package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +72 -0
  388. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +59 -0
  389. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs.map +1 -0
  390. package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +6 -28
  391. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +98 -1
  392. package/dist/esm/transactions/typeTag/index.mjs +74 -1
  393. package/dist/esm/transactions/typeTag/parser.mjs +43 -1
  394. package/dist/esm/transactions/types.d.mts +6 -6
  395. package/dist/esm/transactions/types.mjs +1 -1
  396. package/dist/esm/types/generated/queries.mjs +57 -1
  397. package/dist/esm/types/generated/types.mjs +809 -1
  398. package/dist/esm/types/generated/types.mjs.map +1 -1
  399. package/dist/esm/types/index.d.mts +19 -3
  400. package/dist/esm/types/index.mjs +68 -1
  401. package/dist/esm/types/indexer.mjs +1 -1
  402. package/dist/esm/types/keyless.d.mts +69 -0
  403. package/dist/esm/types/keyless.mjs +10 -0
  404. package/dist/esm/types/keyless.mjs.map +1 -0
  405. package/dist/esm/utils/apiEndpoints.d.mts +3 -2
  406. package/dist/esm/utils/apiEndpoints.mjs +21 -1
  407. package/dist/esm/utils/const.d.mts +3 -1
  408. package/dist/esm/utils/const.mjs +21 -1
  409. package/dist/esm/utils/helpers.mjs +7 -1
  410. package/dist/esm/utils/index.d.mts +1 -1
  411. package/dist/esm/utils/index.mjs +56 -1
  412. package/dist/esm/utils/memoize.mjs +9 -1
  413. package/dist/esm/utils/normalizeBundle.mjs +19 -1
  414. package/dist/esm/version.d.mts +1 -1
  415. package/dist/esm/version.mjs +7 -1
  416. package/package.json +11 -3
  417. package/src/{core/account → account}/Account.ts +25 -15
  418. package/src/{core/account → account}/Ed25519Account.ts +45 -9
  419. package/src/account/EphemeralKeyPair.ts +161 -0
  420. package/src/account/KeylessAccount.ts +342 -0
  421. package/src/account/MultiKeyAccount.ts +186 -0
  422. package/src/{core/account → account}/SingleKeyAccount.ts +45 -10
  423. package/src/account/index.ts +6 -0
  424. package/src/api/account.ts +2 -1
  425. package/src/api/ans.ts +2 -1
  426. package/src/api/aptos.ts +6 -0
  427. package/src/api/aptosConfig.ts +46 -1
  428. package/src/api/digitalAsset.ts +2 -1
  429. package/src/api/fungibleAsset.ts +2 -1
  430. package/src/api/keyless.ts +48 -0
  431. package/src/api/transaction.ts +2 -1
  432. package/src/api/transactionSubmission/management.ts +1 -1
  433. package/src/api/transactionSubmission/sign.ts +1 -1
  434. package/src/bcs/deserializer.ts +40 -0
  435. package/src/bcs/serializer.ts +18 -0
  436. package/src/cli/index.ts +1 -0
  437. package/src/cli/move.ts +183 -0
  438. package/src/client/core.ts +8 -0
  439. package/src/client/get.ts +6 -0
  440. package/src/client/post.ts +12 -0
  441. package/src/client/types.ts +1 -1
  442. package/src/core/account/index.ts +0 -3
  443. package/src/core/crypto/ephemeral.ts +138 -0
  444. package/src/core/crypto/index.ts +2 -0
  445. package/src/core/crypto/keyless.ts +453 -0
  446. package/src/core/crypto/multiKey.ts +17 -6
  447. package/src/core/crypto/poseidon.ts +134 -0
  448. package/src/core/crypto/proof.ts +16 -0
  449. package/src/core/crypto/singleKey.ts +11 -0
  450. package/src/core/index.ts +0 -1
  451. package/src/index.ts +1 -0
  452. package/src/internal/account.ts +1 -1
  453. package/src/internal/ans.ts +2 -2
  454. package/src/internal/digitalAsset.ts +2 -1
  455. package/src/internal/fungibleAsset.ts +3 -2
  456. package/src/internal/keyless.ts +119 -0
  457. package/src/internal/transactionSubmission.ts +24 -13
  458. package/src/transactions/authenticator/account.ts +6 -11
  459. package/src/transactions/management/accountSequenceNumber.ts +1 -1
  460. package/src/transactions/management/transactionWorker.ts +1 -1
  461. package/src/transactions/transactionBuilder/index.ts +1 -0
  462. package/src/transactions/transactionBuilder/signingMessage.ts +93 -0
  463. package/src/transactions/transactionBuilder/transactionBuilder.ts +2 -75
  464. package/src/types/index.ts +22 -0
  465. package/src/types/keyless.ts +37 -0
  466. package/src/utils/apiEndpoints.ts +14 -6
  467. package/src/utils/const.ts +2 -0
  468. package/src/version.ts +1 -1
  469. package/dist/common/chunk-KSEUZTKY.js +0 -2
  470. package/dist/common/chunk-KSEUZTKY.js.map +0 -1
  471. package/dist/esm/chunk-24IKVZBK.mjs +0 -2
  472. package/dist/esm/chunk-24IKVZBK.mjs.map +0 -1
  473. package/dist/esm/chunk-2HISPUZZ.mjs +0 -2
  474. package/dist/esm/chunk-2HISPUZZ.mjs.map +0 -1
  475. package/dist/esm/chunk-3JPVQHOR.mjs +0 -2
  476. package/dist/esm/chunk-3WUGR46O.mjs +0 -2
  477. package/dist/esm/chunk-52C73T26.mjs +0 -2
  478. package/dist/esm/chunk-56CNRT2K.mjs +0 -2
  479. package/dist/esm/chunk-5P2S2SZZ.mjs +0 -2
  480. package/dist/esm/chunk-6CFRW26C.mjs +0 -2
  481. package/dist/esm/chunk-6CFRW26C.mjs.map +0 -1
  482. package/dist/esm/chunk-6EMN3BOV.mjs +0 -2
  483. package/dist/esm/chunk-6FBKUTGF.mjs +0 -2
  484. package/dist/esm/chunk-6IFMQ5AS.mjs +0 -2
  485. package/dist/esm/chunk-6IFMQ5AS.mjs.map +0 -1
  486. package/dist/esm/chunk-734YX27W.mjs +0 -2
  487. package/dist/esm/chunk-7QJ6YJXP.mjs +0 -2
  488. package/dist/esm/chunk-AD3VLZ7I.mjs +0 -2
  489. package/dist/esm/chunk-AD3VLZ7I.mjs.map +0 -1
  490. package/dist/esm/chunk-AH44UPM4.mjs +0 -2
  491. package/dist/esm/chunk-AOCNYMMX.mjs +0 -2
  492. package/dist/esm/chunk-AU6W5OIH.mjs +0 -2
  493. package/dist/esm/chunk-B3R6G6QP.mjs +0 -2
  494. package/dist/esm/chunk-B3R6G6QP.mjs.map +0 -1
  495. package/dist/esm/chunk-B7TQGVGL.mjs +0 -2
  496. package/dist/esm/chunk-BWFJHFBQ.mjs +0 -2
  497. package/dist/esm/chunk-CNMQNPNV.mjs +0 -2
  498. package/dist/esm/chunk-CTIN3GTP.mjs +0 -2
  499. package/dist/esm/chunk-CU67XZNB.mjs +0 -2
  500. package/dist/esm/chunk-CYNQRMO5.mjs +0 -2
  501. package/dist/esm/chunk-CYNQRMO5.mjs.map +0 -1
  502. package/dist/esm/chunk-DM44OGQH.mjs +0 -2
  503. package/dist/esm/chunk-DMKUAQB7.mjs +0 -2
  504. package/dist/esm/chunk-DPV25ZKR.mjs +0 -2
  505. package/dist/esm/chunk-DSTKXJMA.mjs +0 -2
  506. package/dist/esm/chunk-E7FWVXGX.mjs +0 -1
  507. package/dist/esm/chunk-EOFJFE4T.mjs +0 -2
  508. package/dist/esm/chunk-EOFJFE4T.mjs.map +0 -1
  509. package/dist/esm/chunk-FATWMUXK.mjs +0 -2
  510. package/dist/esm/chunk-FATWMUXK.mjs.map +0 -1
  511. package/dist/esm/chunk-FBPNHF54.mjs +0 -2
  512. package/dist/esm/chunk-FS3NSGBF.mjs +0 -2
  513. package/dist/esm/chunk-FVA2OPG4.mjs +0 -2
  514. package/dist/esm/chunk-G2O323HP.mjs +0 -2
  515. package/dist/esm/chunk-GSD4OOM3.mjs +0 -2
  516. package/dist/esm/chunk-HQ5I4Q3H.mjs +0 -2
  517. package/dist/esm/chunk-HQ5I4Q3H.mjs.map +0 -1
  518. package/dist/esm/chunk-IIPYR7PF.mjs +0 -2
  519. package/dist/esm/chunk-IIPYR7PF.mjs.map +0 -1
  520. package/dist/esm/chunk-IKYIJYBY.mjs +0 -2
  521. package/dist/esm/chunk-IKYIJYBY.mjs.map +0 -1
  522. package/dist/esm/chunk-IOSQVDZI.mjs +0 -2
  523. package/dist/esm/chunk-KVZ4XMZS.mjs +0 -2
  524. package/dist/esm/chunk-KVZ4XMZS.mjs.map +0 -1
  525. package/dist/esm/chunk-L54P6EGN.mjs +0 -2
  526. package/dist/esm/chunk-LR65XHSF.mjs +0 -2
  527. package/dist/esm/chunk-MACC2BLE.mjs +0 -2
  528. package/dist/esm/chunk-MC6G725U.mjs +0 -2
  529. package/dist/esm/chunk-MC6G725U.mjs.map +0 -1
  530. package/dist/esm/chunk-MFKMAAWA.mjs +0 -2
  531. package/dist/esm/chunk-MLWIHWNH.mjs +0 -1
  532. package/dist/esm/chunk-NNQJBFRB.mjs +0 -2
  533. package/dist/esm/chunk-NPFNYP75.mjs +0 -2
  534. package/dist/esm/chunk-O2F53NKI.mjs +0 -2
  535. package/dist/esm/chunk-O4JRPZZM.mjs +0 -2
  536. package/dist/esm/chunk-ODRO4CSA.mjs +0 -2
  537. package/dist/esm/chunk-ODRO4CSA.mjs.map +0 -1
  538. package/dist/esm/chunk-OVJQWQ2N.mjs +0 -2
  539. package/dist/esm/chunk-OVJQWQ2N.mjs.map +0 -1
  540. package/dist/esm/chunk-OWW6SIDP.mjs +0 -2
  541. package/dist/esm/chunk-OWW6SIDP.mjs.map +0 -1
  542. package/dist/esm/chunk-PFIMEXNN.mjs +0 -2
  543. package/dist/esm/chunk-PFIMEXNN.mjs.map +0 -1
  544. package/dist/esm/chunk-PZGLV5UQ.mjs +0 -2
  545. package/dist/esm/chunk-Q3TZGQVC.mjs +0 -2
  546. package/dist/esm/chunk-Q3TZGQVC.mjs.map +0 -1
  547. package/dist/esm/chunk-QIAHBEEW.mjs +0 -2
  548. package/dist/esm/chunk-QMURTXFM.mjs +0 -2
  549. package/dist/esm/chunk-QTRYMRYK.mjs +0 -2
  550. package/dist/esm/chunk-R5QUBEH6.mjs +0 -2
  551. package/dist/esm/chunk-R7G3CLRI.mjs +0 -1
  552. package/dist/esm/chunk-RHBCVCOS.mjs +0 -2
  553. package/dist/esm/chunk-RIUZPGI5.mjs +0 -2
  554. package/dist/esm/chunk-ROXFCLDT.mjs +0 -2
  555. package/dist/esm/chunk-SG4MAOCF.mjs +0 -2
  556. package/dist/esm/chunk-SUAKPNKQ.mjs +0 -2
  557. package/dist/esm/chunk-SUAKPNKQ.mjs.map +0 -1
  558. package/dist/esm/chunk-TBMAJ6AW.mjs +0 -2
  559. package/dist/esm/chunk-TJDC5PWD.mjs +0 -2
  560. package/dist/esm/chunk-TLOPIURC.mjs +0 -2
  561. package/dist/esm/chunk-TLOPIURC.mjs.map +0 -1
  562. package/dist/esm/chunk-U43IJHQN.mjs +0 -2
  563. package/dist/esm/chunk-U6Z4FNB7.mjs +0 -2
  564. package/dist/esm/chunk-UFT7US42.mjs +0 -2
  565. package/dist/esm/chunk-UML2VQZT.mjs +0 -2
  566. package/dist/esm/chunk-UVSRX4SV.mjs +0 -1
  567. package/dist/esm/chunk-V3Q2KXJU.mjs +0 -2
  568. package/dist/esm/chunk-V4SRNEV3.mjs +0 -2
  569. package/dist/esm/chunk-V4SRNEV3.mjs.map +0 -1
  570. package/dist/esm/chunk-V6OS74OS.mjs +0 -2
  571. package/dist/esm/chunk-VVIG4E7Q.mjs +0 -2
  572. package/dist/esm/chunk-W4ZW7QHA.mjs +0 -2
  573. package/dist/esm/chunk-WFZDFFBM.mjs +0 -2
  574. package/dist/esm/chunk-WLF5YQM4.mjs +0 -2
  575. package/dist/esm/chunk-WLF5YQM4.mjs.map +0 -1
  576. package/dist/esm/chunk-XDGQTMDV.mjs +0 -2
  577. package/dist/esm/chunk-XDGQTMDV.mjs.map +0 -1
  578. package/dist/esm/chunk-XO3HHRJV.mjs +0 -2
  579. package/dist/esm/chunk-YFRXBEOC.mjs +0 -2
  580. package/dist/esm/chunk-YFRXBEOC.mjs.map +0 -1
  581. package/dist/esm/chunk-YPTF6MLX.mjs +0 -2
  582. package/dist/esm/chunk-YPTF6MLX.mjs.map +0 -1
  583. package/dist/esm/chunk-YU3KB3UV.mjs +0 -2
  584. package/dist/esm/chunk-Z5YFM2AW.mjs +0 -2
  585. package/dist/esm/chunk-Z5YFM2AW.mjs.map +0 -1
  586. package/dist/esm/chunk-ZYYK3UXP.mjs +0 -2
  587. package/dist/esm/chunk-ZZZZVONX.mjs +0 -2
  588. package/dist/esm/core/account/Account.d.mts +0 -20
  589. package/dist/esm/core/account/Account.mjs +0 -2
  590. package/dist/esm/core/account/Ed25519Account.d.mts +0 -20
  591. package/dist/esm/core/account/Ed25519Account.mjs +0 -2
  592. package/dist/esm/core/account/SingleKeyAccount.d.mts +0 -20
  593. package/dist/esm/core/account/SingleKeyAccount.mjs +0 -2
  594. /package/dist/esm/{core/account → account}/Account.mjs.map +0 -0
  595. /package/dist/esm/{core/account → account}/Ed25519Account.mjs.map +0 -0
  596. /package/dist/esm/{chunk-E7FWVXGX.mjs.map → account/EphemeralKeyPair.mjs.map} +0 -0
  597. /package/dist/esm/{chunk-FVA2OPG4.mjs.map → account/KeylessAccount.mjs.map} +0 -0
  598. /package/dist/esm/{chunk-MLWIHWNH.mjs.map → account/MultiKeyAccount.mjs.map} +0 -0
  599. /package/dist/esm/{core/account → account}/SingleKeyAccount.mjs.map +0 -0
  600. /package/dist/esm/{chunk-R7G3CLRI.mjs.map → account/index.mjs.map} +0 -0
  601. /package/dist/esm/{chunk-UVSRX4SV.mjs.map → api/keyless.mjs.map} +0 -0
@@ -0,0 +1,232 @@
1
+ import {
2
+ Ed25519PublicKey,
3
+ Ed25519Signature
4
+ } from "./chunk-RX4VG2AT.mjs";
5
+ import {
6
+ Signature
7
+ } from "./chunk-FDWJNY4U.mjs";
8
+ import {
9
+ AccountPublicKey
10
+ } from "./chunk-FXKSE3ZP.mjs";
11
+ import {
12
+ AuthenticationKey
13
+ } from "./chunk-UEBBLQJ5.mjs";
14
+
15
+ // src/core/crypto/multiEd25519.ts
16
+ var _MultiEd25519PublicKey = class _MultiEd25519PublicKey extends AccountPublicKey {
17
+ /**
18
+ * Public key for a K-of-N multi-sig transaction. A K-of-N multi-sig transaction means that for such a
19
+ * transaction to be executed, at least K out of the N authorized signers have signed the transaction
20
+ * and passed the check conducted by the chain.
21
+ *
22
+ * @see {@link
23
+ * https://aptos.dev/integration/creating-a-signed-transaction/ | Creating a Signed Transaction}
24
+ *
25
+ * @param args.publicKeys A list of public keys
26
+ * @param args.threshold At least "threshold" signatures must be valid
27
+ */
28
+ constructor(args) {
29
+ super();
30
+ const { publicKeys, threshold } = args;
31
+ if (publicKeys.length > _MultiEd25519PublicKey.MAX_KEYS || publicKeys.length < _MultiEd25519PublicKey.MIN_KEYS) {
32
+ throw new Error(
33
+ `Must have between ${_MultiEd25519PublicKey.MIN_KEYS} and ${_MultiEd25519PublicKey.MAX_KEYS} public keys, inclusive`
34
+ );
35
+ }
36
+ if (threshold < _MultiEd25519PublicKey.MIN_THRESHOLD || threshold > publicKeys.length) {
37
+ throw new Error(
38
+ `Threshold must be between ${_MultiEd25519PublicKey.MIN_THRESHOLD} and ${publicKeys.length}, inclusive`
39
+ );
40
+ }
41
+ this.publicKeys = publicKeys;
42
+ this.threshold = threshold;
43
+ }
44
+ // region AccountPublicKey
45
+ verifySignature(args) {
46
+ const { message, signature } = args;
47
+ if (!(signature instanceof MultiEd25519Signature)) {
48
+ return false;
49
+ }
50
+ const indices = [];
51
+ for (let i = 0; i < 4; i += 1) {
52
+ for (let j = 0; j < 8; j += 1) {
53
+ const bitIsSet = (signature.bitmap[i] & 1 << 7 - j) !== 0;
54
+ if (bitIsSet) {
55
+ const index = i * 8 + j;
56
+ indices.push(index);
57
+ }
58
+ }
59
+ }
60
+ if (indices.length !== signature.signatures.length) {
61
+ throw new Error("Bitmap and signatures length mismatch");
62
+ }
63
+ if (indices.length < this.threshold) {
64
+ throw new Error("Not enough signatures");
65
+ }
66
+ for (let i = 0; i < indices.length; i += 1) {
67
+ const publicKey = this.publicKeys[indices[i]];
68
+ if (!publicKey.verifySignature({ message, signature: signature.signatures[i] })) {
69
+ return false;
70
+ }
71
+ }
72
+ return true;
73
+ }
74
+ authKey() {
75
+ return AuthenticationKey.fromSchemeAndBytes({
76
+ scheme: 1 /* MultiEd25519 */,
77
+ input: this.toUint8Array()
78
+ });
79
+ }
80
+ /**
81
+ * Converts a PublicKeys into Uint8Array (bytes) with: bytes = p1_bytes | ... | pn_bytes | threshold
82
+ */
83
+ toUint8Array() {
84
+ const bytes = new Uint8Array(this.publicKeys.length * Ed25519PublicKey.LENGTH + 1);
85
+ this.publicKeys.forEach((k, i) => {
86
+ bytes.set(k.toUint8Array(), i * Ed25519PublicKey.LENGTH);
87
+ });
88
+ bytes[this.publicKeys.length * Ed25519PublicKey.LENGTH] = this.threshold;
89
+ return bytes;
90
+ }
91
+ // endregion
92
+ // region Serializable
93
+ serialize(serializer) {
94
+ serializer.serializeBytes(this.toUint8Array());
95
+ }
96
+ static deserialize(deserializer) {
97
+ const bytes = deserializer.deserializeBytes();
98
+ const threshold = bytes[bytes.length - 1];
99
+ const keys = [];
100
+ for (let i = 0; i < bytes.length - 1; i += Ed25519PublicKey.LENGTH) {
101
+ const begin = i;
102
+ keys.push(new Ed25519PublicKey(bytes.subarray(begin, begin + Ed25519PublicKey.LENGTH)));
103
+ }
104
+ return new _MultiEd25519PublicKey({ publicKeys: keys, threshold });
105
+ }
106
+ // endregion
107
+ };
108
+ /**
109
+ * Maximum number of public keys supported
110
+ */
111
+ _MultiEd25519PublicKey.MAX_KEYS = 32;
112
+ /**
113
+ * Minimum number of public keys needed
114
+ */
115
+ _MultiEd25519PublicKey.MIN_KEYS = 2;
116
+ /**
117
+ * Minimum threshold for the number of valid signatures required
118
+ */
119
+ _MultiEd25519PublicKey.MIN_THRESHOLD = 1;
120
+ var MultiEd25519PublicKey = _MultiEd25519PublicKey;
121
+ var _MultiEd25519Signature = class _MultiEd25519Signature extends Signature {
122
+ /**
123
+ * Signature for a K-of-N multi-sig transaction.
124
+ *
125
+ * @see {@link
126
+ * https://aptos.dev/integration/creating-a-signed-transaction/#multisignature-transactions | Creating a Signed Transaction}
127
+ *
128
+ * @param args.signatures A list of signatures
129
+ * @param args.bitmap 4 bytes, at most 32 signatures are supported. If Nth bit value is `1`, the Nth
130
+ * signature should be provided in `signatures`. Bits are read from left to right.
131
+ * Alternatively, you can specify an array of bitmap positions.
132
+ * Valid position should range between 0 and 31.
133
+ * @see MultiEd25519Signature.createBitmap
134
+ */
135
+ constructor(args) {
136
+ super();
137
+ const { signatures, bitmap } = args;
138
+ if (signatures.length > _MultiEd25519Signature.MAX_SIGNATURES_SUPPORTED) {
139
+ throw new Error(
140
+ `The number of signatures cannot be greater than ${_MultiEd25519Signature.MAX_SIGNATURES_SUPPORTED}`
141
+ );
142
+ }
143
+ this.signatures = signatures;
144
+ if (!(bitmap instanceof Uint8Array)) {
145
+ this.bitmap = _MultiEd25519Signature.createBitmap({ bits: bitmap });
146
+ } else if (bitmap.length !== _MultiEd25519Signature.BITMAP_LEN) {
147
+ throw new Error(`"bitmap" length should be ${_MultiEd25519Signature.BITMAP_LEN}`);
148
+ } else {
149
+ this.bitmap = bitmap;
150
+ }
151
+ }
152
+ // region AccountSignature
153
+ /**
154
+ * Converts a MultiSignature into Uint8Array (bytes) with `bytes = s1_bytes | ... | sn_bytes | bitmap`
155
+ */
156
+ toUint8Array() {
157
+ const bytes = new Uint8Array(this.signatures.length * Ed25519Signature.LENGTH + _MultiEd25519Signature.BITMAP_LEN);
158
+ this.signatures.forEach((k, i) => {
159
+ bytes.set(k.toUint8Array(), i * Ed25519Signature.LENGTH);
160
+ });
161
+ bytes.set(this.bitmap, this.signatures.length * Ed25519Signature.LENGTH);
162
+ return bytes;
163
+ }
164
+ // endregion
165
+ // region Serializable
166
+ serialize(serializer) {
167
+ serializer.serializeBytes(this.toUint8Array());
168
+ }
169
+ static deserialize(deserializer) {
170
+ const bytes = deserializer.deserializeBytes();
171
+ const bitmap = bytes.subarray(bytes.length - 4);
172
+ const signatures = [];
173
+ for (let i = 0; i < bytes.length - bitmap.length; i += Ed25519Signature.LENGTH) {
174
+ const begin = i;
175
+ signatures.push(new Ed25519Signature(bytes.subarray(begin, begin + Ed25519Signature.LENGTH)));
176
+ }
177
+ return new _MultiEd25519Signature({ signatures, bitmap });
178
+ }
179
+ // endregion
180
+ /**
181
+ * Helper method to create a bitmap out of the specified bit positions
182
+ * @param args.bits The bitmap positions that should be set. A position starts at index 0.
183
+ * Valid position should range between 0 and 31.
184
+ * @example
185
+ * Here's an example of valid `bits`
186
+ * ```
187
+ * [0, 2, 31]
188
+ * ```
189
+ * `[0, 2, 31]` means the 1st, 3rd and 32nd bits should be set in the bitmap.
190
+ * The result bitmap should be 0b1010000000000000000000000000001
191
+ *
192
+ * @returns bitmap that is 32bit long
193
+ */
194
+ static createBitmap(args) {
195
+ const { bits } = args;
196
+ const firstBitInByte = 128;
197
+ const bitmap = new Uint8Array([0, 0, 0, 0]);
198
+ const dupCheckSet = /* @__PURE__ */ new Set();
199
+ bits.forEach((bit, index) => {
200
+ if (bit >= _MultiEd25519Signature.MAX_SIGNATURES_SUPPORTED) {
201
+ throw new Error(`Cannot have a signature larger than ${_MultiEd25519Signature.MAX_SIGNATURES_SUPPORTED - 1}.`);
202
+ }
203
+ if (dupCheckSet.has(bit)) {
204
+ throw new Error("Duplicate bits detected.");
205
+ }
206
+ if (index > 0 && bit <= bits[index - 1]) {
207
+ throw new Error("The bits need to be sorted in ascending order.");
208
+ }
209
+ dupCheckSet.add(bit);
210
+ const byteOffset = Math.floor(bit / 8);
211
+ let byte = bitmap[byteOffset];
212
+ byte |= firstBitInByte >> bit % 8;
213
+ bitmap[byteOffset] = byte;
214
+ });
215
+ return bitmap;
216
+ }
217
+ };
218
+ /**
219
+ * Maximum number of Ed25519 signatures supported
220
+ */
221
+ _MultiEd25519Signature.MAX_SIGNATURES_SUPPORTED = 32;
222
+ /**
223
+ * Number of bytes in the bitmap representing who signed the transaction (32-bits)
224
+ */
225
+ _MultiEd25519Signature.BITMAP_LEN = 4;
226
+ var MultiEd25519Signature = _MultiEd25519Signature;
227
+
228
+ export {
229
+ MultiEd25519PublicKey,
230
+ MultiEd25519Signature
231
+ };
232
+ //# sourceMappingURL=chunk-UKU6A2W2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/crypto/multiEd25519.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Deserializer, Serializer } from \"../../bcs\";\nimport { SigningScheme as AuthenticationKeyScheme } from \"../../types\";\nimport { AuthenticationKey } from \"../authenticationKey\";\nimport { Ed25519PublicKey, Ed25519Signature } from \"./ed25519\";\nimport { AccountPublicKey, VerifySignatureArgs } from \"./publicKey\";\nimport { Signature } from \"./signature\";\n\n/**\n * Represents the public key of a K-of-N Ed25519 multi-sig transaction.\n */\nexport class MultiEd25519PublicKey extends AccountPublicKey {\n /**\n * Maximum number of public keys supported\n */\n static readonly MAX_KEYS = 32;\n\n /**\n * Minimum number of public keys needed\n */\n static readonly MIN_KEYS = 2;\n\n /**\n * Minimum threshold for the number of valid signatures required\n */\n static readonly MIN_THRESHOLD = 1;\n\n /**\n * List of Ed25519 public keys for this LegacyMultiEd25519PublicKey\n */\n public readonly publicKeys: Ed25519PublicKey[];\n\n /**\n * The minimum number of valid signatures required, for the number of public keys specified\n */\n public readonly threshold: number;\n\n /**\n * Public key for a K-of-N multi-sig transaction. A K-of-N multi-sig transaction means that for such a\n * transaction to be executed, at least K out of the N authorized signers have signed the transaction\n * and passed the check conducted by the chain.\n *\n * @see {@link\n * https://aptos.dev/integration/creating-a-signed-transaction/ | Creating a Signed Transaction}\n *\n * @param args.publicKeys A list of public keys\n * @param args.threshold At least \"threshold\" signatures must be valid\n */\n constructor(args: { publicKeys: Ed25519PublicKey[]; threshold: number }) {\n super();\n const { publicKeys, threshold } = args;\n\n // Validate number of public keys\n if (publicKeys.length > MultiEd25519PublicKey.MAX_KEYS || publicKeys.length < MultiEd25519PublicKey.MIN_KEYS) {\n throw new Error(\n `Must have between ${MultiEd25519PublicKey.MIN_KEYS} and ` +\n `${MultiEd25519PublicKey.MAX_KEYS} public keys, inclusive`,\n );\n }\n\n // Validate threshold: must be between 1 and the number of public keys, inclusive\n if (threshold < MultiEd25519PublicKey.MIN_THRESHOLD || threshold > publicKeys.length) {\n throw new Error(\n `Threshold must be between ${MultiEd25519PublicKey.MIN_THRESHOLD} and ${publicKeys.length}, inclusive`,\n );\n }\n\n this.publicKeys = publicKeys;\n this.threshold = threshold;\n }\n\n // region AccountPublicKey\n\n verifySignature(args: VerifySignatureArgs): boolean {\n const { message, signature } = args;\n if (!(signature instanceof MultiEd25519Signature)) {\n return false;\n }\n\n const indices: number[] = [];\n for (let i = 0; i < 4; i += 1) {\n for (let j = 0; j < 8; j += 1) {\n // eslint-disable-next-line no-bitwise\n const bitIsSet = (signature.bitmap[i] & (1 << (7 - j))) !== 0;\n if (bitIsSet) {\n const index = i * 8 + j;\n indices.push(index);\n }\n }\n }\n\n if (indices.length !== signature.signatures.length) {\n throw new Error(\"Bitmap and signatures length mismatch\");\n }\n\n if (indices.length < this.threshold) {\n throw new Error(\"Not enough signatures\");\n }\n\n for (let i = 0; i < indices.length; i += 1) {\n const publicKey = this.publicKeys[indices[i]];\n if (!publicKey.verifySignature({ message, signature: signature.signatures[i] })) {\n return false;\n }\n }\n return true;\n }\n\n authKey(): AuthenticationKey {\n return AuthenticationKey.fromSchemeAndBytes({\n scheme: AuthenticationKeyScheme.MultiEd25519,\n input: this.toUint8Array(),\n });\n }\n\n /**\n * Converts a PublicKeys into Uint8Array (bytes) with: bytes = p1_bytes | ... | pn_bytes | threshold\n */\n toUint8Array(): Uint8Array {\n const bytes = new Uint8Array(this.publicKeys.length * Ed25519PublicKey.LENGTH + 1);\n this.publicKeys.forEach((k: Ed25519PublicKey, i: number) => {\n bytes.set(k.toUint8Array(), i * Ed25519PublicKey.LENGTH);\n });\n\n bytes[this.publicKeys.length * Ed25519PublicKey.LENGTH] = this.threshold;\n\n return bytes;\n }\n\n // endregion\n\n // region Serializable\n\n serialize(serializer: Serializer): void {\n serializer.serializeBytes(this.toUint8Array());\n }\n\n static deserialize(deserializer: Deserializer): MultiEd25519PublicKey {\n const bytes = deserializer.deserializeBytes();\n const threshold = bytes[bytes.length - 1];\n\n const keys: Ed25519PublicKey[] = [];\n\n for (let i = 0; i < bytes.length - 1; i += Ed25519PublicKey.LENGTH) {\n const begin = i;\n keys.push(new Ed25519PublicKey(bytes.subarray(begin, begin + Ed25519PublicKey.LENGTH)));\n }\n return new MultiEd25519PublicKey({ publicKeys: keys, threshold });\n }\n\n // endregion\n}\n\n/**\n * Represents the signature of a K-of-N Ed25519 multi-sig transaction.\n */\nexport class MultiEd25519Signature extends Signature {\n /**\n * Maximum number of Ed25519 signatures supported\n */\n static MAX_SIGNATURES_SUPPORTED = 32;\n\n /**\n * Number of bytes in the bitmap representing who signed the transaction (32-bits)\n */\n static BITMAP_LEN: number = 4;\n\n /**\n * The list of underlying Ed25519 signatures\n */\n public readonly signatures: Ed25519Signature[];\n\n /**\n * 32-bit Bitmap representing who signed the transaction\n *\n * This is represented where each public key can be masked to determine whether the message was signed by that key.\n */\n public readonly bitmap: Uint8Array;\n\n /**\n * Signature for a K-of-N multi-sig transaction.\n *\n * @see {@link\n * https://aptos.dev/integration/creating-a-signed-transaction/#multisignature-transactions | Creating a Signed Transaction}\n *\n * @param args.signatures A list of signatures\n * @param args.bitmap 4 bytes, at most 32 signatures are supported. If Nth bit value is `1`, the Nth\n * signature should be provided in `signatures`. Bits are read from left to right.\n * Alternatively, you can specify an array of bitmap positions.\n * Valid position should range between 0 and 31.\n * @see MultiEd25519Signature.createBitmap\n */\n constructor(args: { signatures: Ed25519Signature[]; bitmap: Uint8Array | number[] }) {\n super();\n const { signatures, bitmap } = args;\n\n if (signatures.length > MultiEd25519Signature.MAX_SIGNATURES_SUPPORTED) {\n throw new Error(\n `The number of signatures cannot be greater than ${MultiEd25519Signature.MAX_SIGNATURES_SUPPORTED}`,\n );\n }\n this.signatures = signatures;\n\n if (!(bitmap instanceof Uint8Array)) {\n this.bitmap = MultiEd25519Signature.createBitmap({ bits: bitmap });\n } else if (bitmap.length !== MultiEd25519Signature.BITMAP_LEN) {\n throw new Error(`\"bitmap\" length should be ${MultiEd25519Signature.BITMAP_LEN}`);\n } else {\n this.bitmap = bitmap;\n }\n }\n\n // region AccountSignature\n\n /**\n * Converts a MultiSignature into Uint8Array (bytes) with `bytes = s1_bytes | ... | sn_bytes | bitmap`\n */\n toUint8Array(): Uint8Array {\n const bytes = new Uint8Array(this.signatures.length * Ed25519Signature.LENGTH + MultiEd25519Signature.BITMAP_LEN);\n this.signatures.forEach((k: Ed25519Signature, i: number) => {\n bytes.set(k.toUint8Array(), i * Ed25519Signature.LENGTH);\n });\n\n bytes.set(this.bitmap, this.signatures.length * Ed25519Signature.LENGTH);\n\n return bytes;\n }\n\n // endregion\n\n // region Serializable\n\n serialize(serializer: Serializer): void {\n serializer.serializeBytes(this.toUint8Array());\n }\n\n static deserialize(deserializer: Deserializer): MultiEd25519Signature {\n const bytes = deserializer.deserializeBytes();\n const bitmap = bytes.subarray(bytes.length - 4);\n\n const signatures: Ed25519Signature[] = [];\n\n for (let i = 0; i < bytes.length - bitmap.length; i += Ed25519Signature.LENGTH) {\n const begin = i;\n signatures.push(new Ed25519Signature(bytes.subarray(begin, begin + Ed25519Signature.LENGTH)));\n }\n return new MultiEd25519Signature({ signatures, bitmap });\n }\n\n // endregion\n\n /**\n * Helper method to create a bitmap out of the specified bit positions\n * @param args.bits The bitmap positions that should be set. A position starts at index 0.\n * Valid position should range between 0 and 31.\n * @example\n * Here's an example of valid `bits`\n * ```\n * [0, 2, 31]\n * ```\n * `[0, 2, 31]` means the 1st, 3rd and 32nd bits should be set in the bitmap.\n * The result bitmap should be 0b1010000000000000000000000000001\n *\n * @returns bitmap that is 32bit long\n */\n static createBitmap(args: { bits: number[] }): Uint8Array {\n const { bits } = args;\n // Bits are read from left to right. e.g. 0b10000000 represents the first bit is set in one byte.\n // The decimal value of 0b10000000 is 128.\n const firstBitInByte = 128;\n const bitmap = new Uint8Array([0, 0, 0, 0]);\n\n // Check if duplicates exist in bits\n const dupCheckSet = new Set();\n\n bits.forEach((bit: number, index) => {\n if (bit >= MultiEd25519Signature.MAX_SIGNATURES_SUPPORTED) {\n throw new Error(`Cannot have a signature larger than ${MultiEd25519Signature.MAX_SIGNATURES_SUPPORTED - 1}.`);\n }\n\n if (dupCheckSet.has(bit)) {\n throw new Error(\"Duplicate bits detected.\");\n }\n\n if (index > 0 && bit <= bits[index - 1]) {\n throw new Error(\"The bits need to be sorted in ascending order.\");\n }\n\n dupCheckSet.add(bit);\n\n const byteOffset = Math.floor(bit / 8);\n\n let byte = bitmap[byteOffset];\n\n // eslint-disable-next-line no-bitwise\n byte |= firstBitInByte >> bit % 8;\n\n bitmap[byteOffset] = byte;\n });\n\n return bitmap;\n }\n}\n"],"mappings":"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","names":["_MultiEd25519PublicKey","AccountPublicKey","args","publicKeys","threshold","message","signature","MultiEd25519Signature","indices","j","index","AuthenticationKey","bytes","Ed25519PublicKey","k","i","serializer","deserializer","keys","begin","MultiEd25519PublicKey","_MultiEd25519Signature","Signature","signatures","bitmap","Ed25519Signature","bits","firstBitInByte","dupCheckSet","bit","byteOffset","byte"]}
1
+ {"version":3,"sources":["../../src/core/crypto/multiEd25519.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Deserializer, Serializer } from \"../../bcs\";\nimport { SigningScheme as AuthenticationKeyScheme } from \"../../types\";\nimport { AuthenticationKey } from \"../authenticationKey\";\nimport { Ed25519PublicKey, Ed25519Signature } from \"./ed25519\";\nimport { AccountPublicKey, VerifySignatureArgs } from \"./publicKey\";\nimport { Signature } from \"./signature\";\n\n/**\n * Represents the public key of a K-of-N Ed25519 multi-sig transaction.\n */\nexport class MultiEd25519PublicKey extends AccountPublicKey {\n /**\n * Maximum number of public keys supported\n */\n static readonly MAX_KEYS = 32;\n\n /**\n * Minimum number of public keys needed\n */\n static readonly MIN_KEYS = 2;\n\n /**\n * Minimum threshold for the number of valid signatures required\n */\n static readonly MIN_THRESHOLD = 1;\n\n /**\n * List of Ed25519 public keys for this LegacyMultiEd25519PublicKey\n */\n public readonly publicKeys: Ed25519PublicKey[];\n\n /**\n * The minimum number of valid signatures required, for the number of public keys specified\n */\n public readonly threshold: number;\n\n /**\n * Public key for a K-of-N multi-sig transaction. A K-of-N multi-sig transaction means that for such a\n * transaction to be executed, at least K out of the N authorized signers have signed the transaction\n * and passed the check conducted by the chain.\n *\n * @see {@link\n * https://aptos.dev/integration/creating-a-signed-transaction/ | Creating a Signed Transaction}\n *\n * @param args.publicKeys A list of public keys\n * @param args.threshold At least \"threshold\" signatures must be valid\n */\n constructor(args: { publicKeys: Ed25519PublicKey[]; threshold: number }) {\n super();\n const { publicKeys, threshold } = args;\n\n // Validate number of public keys\n if (publicKeys.length > MultiEd25519PublicKey.MAX_KEYS || publicKeys.length < MultiEd25519PublicKey.MIN_KEYS) {\n throw new Error(\n `Must have between ${MultiEd25519PublicKey.MIN_KEYS} and ` +\n `${MultiEd25519PublicKey.MAX_KEYS} public keys, inclusive`,\n );\n }\n\n // Validate threshold: must be between 1 and the number of public keys, inclusive\n if (threshold < MultiEd25519PublicKey.MIN_THRESHOLD || threshold > publicKeys.length) {\n throw new Error(\n `Threshold must be between ${MultiEd25519PublicKey.MIN_THRESHOLD} and ${publicKeys.length}, inclusive`,\n );\n }\n\n this.publicKeys = publicKeys;\n this.threshold = threshold;\n }\n\n // region AccountPublicKey\n\n verifySignature(args: VerifySignatureArgs): boolean {\n const { message, signature } = args;\n if (!(signature instanceof MultiEd25519Signature)) {\n return false;\n }\n\n const indices: number[] = [];\n for (let i = 0; i < 4; i += 1) {\n for (let j = 0; j < 8; j += 1) {\n // eslint-disable-next-line no-bitwise\n const bitIsSet = (signature.bitmap[i] & (1 << (7 - j))) !== 0;\n if (bitIsSet) {\n const index = i * 8 + j;\n indices.push(index);\n }\n }\n }\n\n if (indices.length !== signature.signatures.length) {\n throw new Error(\"Bitmap and signatures length mismatch\");\n }\n\n if (indices.length < this.threshold) {\n throw new Error(\"Not enough signatures\");\n }\n\n for (let i = 0; i < indices.length; i += 1) {\n const publicKey = this.publicKeys[indices[i]];\n if (!publicKey.verifySignature({ message, signature: signature.signatures[i] })) {\n return false;\n }\n }\n return true;\n }\n\n authKey(): AuthenticationKey {\n return AuthenticationKey.fromSchemeAndBytes({\n scheme: AuthenticationKeyScheme.MultiEd25519,\n input: this.toUint8Array(),\n });\n }\n\n /**\n * Converts a PublicKeys into Uint8Array (bytes) with: bytes = p1_bytes | ... | pn_bytes | threshold\n */\n toUint8Array(): Uint8Array {\n const bytes = new Uint8Array(this.publicKeys.length * Ed25519PublicKey.LENGTH + 1);\n this.publicKeys.forEach((k: Ed25519PublicKey, i: number) => {\n bytes.set(k.toUint8Array(), i * Ed25519PublicKey.LENGTH);\n });\n\n bytes[this.publicKeys.length * Ed25519PublicKey.LENGTH] = this.threshold;\n\n return bytes;\n }\n\n // endregion\n\n // region Serializable\n\n serialize(serializer: Serializer): void {\n serializer.serializeBytes(this.toUint8Array());\n }\n\n static deserialize(deserializer: Deserializer): MultiEd25519PublicKey {\n const bytes = deserializer.deserializeBytes();\n const threshold = bytes[bytes.length - 1];\n\n const keys: Ed25519PublicKey[] = [];\n\n for (let i = 0; i < bytes.length - 1; i += Ed25519PublicKey.LENGTH) {\n const begin = i;\n keys.push(new Ed25519PublicKey(bytes.subarray(begin, begin + Ed25519PublicKey.LENGTH)));\n }\n return new MultiEd25519PublicKey({ publicKeys: keys, threshold });\n }\n\n // endregion\n}\n\n/**\n * Represents the signature of a K-of-N Ed25519 multi-sig transaction.\n */\nexport class MultiEd25519Signature extends Signature {\n /**\n * Maximum number of Ed25519 signatures supported\n */\n static MAX_SIGNATURES_SUPPORTED = 32;\n\n /**\n * Number of bytes in the bitmap representing who signed the transaction (32-bits)\n */\n static BITMAP_LEN: number = 4;\n\n /**\n * The list of underlying Ed25519 signatures\n */\n public readonly signatures: Ed25519Signature[];\n\n /**\n * 32-bit Bitmap representing who signed the transaction\n *\n * This is represented where each public key can be masked to determine whether the message was signed by that key.\n */\n public readonly bitmap: Uint8Array;\n\n /**\n * Signature for a K-of-N multi-sig transaction.\n *\n * @see {@link\n * https://aptos.dev/integration/creating-a-signed-transaction/#multisignature-transactions | Creating a Signed Transaction}\n *\n * @param args.signatures A list of signatures\n * @param args.bitmap 4 bytes, at most 32 signatures are supported. If Nth bit value is `1`, the Nth\n * signature should be provided in `signatures`. Bits are read from left to right.\n * Alternatively, you can specify an array of bitmap positions.\n * Valid position should range between 0 and 31.\n * @see MultiEd25519Signature.createBitmap\n */\n constructor(args: { signatures: Ed25519Signature[]; bitmap: Uint8Array | number[] }) {\n super();\n const { signatures, bitmap } = args;\n\n if (signatures.length > MultiEd25519Signature.MAX_SIGNATURES_SUPPORTED) {\n throw new Error(\n `The number of signatures cannot be greater than ${MultiEd25519Signature.MAX_SIGNATURES_SUPPORTED}`,\n );\n }\n this.signatures = signatures;\n\n if (!(bitmap instanceof Uint8Array)) {\n this.bitmap = MultiEd25519Signature.createBitmap({ bits: bitmap });\n } else if (bitmap.length !== MultiEd25519Signature.BITMAP_LEN) {\n throw new Error(`\"bitmap\" length should be ${MultiEd25519Signature.BITMAP_LEN}`);\n } else {\n this.bitmap = bitmap;\n }\n }\n\n // region AccountSignature\n\n /**\n * Converts a MultiSignature into Uint8Array (bytes) with `bytes = s1_bytes | ... | sn_bytes | bitmap`\n */\n toUint8Array(): Uint8Array {\n const bytes = new Uint8Array(this.signatures.length * Ed25519Signature.LENGTH + MultiEd25519Signature.BITMAP_LEN);\n this.signatures.forEach((k: Ed25519Signature, i: number) => {\n bytes.set(k.toUint8Array(), i * Ed25519Signature.LENGTH);\n });\n\n bytes.set(this.bitmap, this.signatures.length * Ed25519Signature.LENGTH);\n\n return bytes;\n }\n\n // endregion\n\n // region Serializable\n\n serialize(serializer: Serializer): void {\n serializer.serializeBytes(this.toUint8Array());\n }\n\n static deserialize(deserializer: Deserializer): MultiEd25519Signature {\n const bytes = deserializer.deserializeBytes();\n const bitmap = bytes.subarray(bytes.length - 4);\n\n const signatures: Ed25519Signature[] = [];\n\n for (let i = 0; i < bytes.length - bitmap.length; i += Ed25519Signature.LENGTH) {\n const begin = i;\n signatures.push(new Ed25519Signature(bytes.subarray(begin, begin + Ed25519Signature.LENGTH)));\n }\n return new MultiEd25519Signature({ signatures, bitmap });\n }\n\n // endregion\n\n /**\n * Helper method to create a bitmap out of the specified bit positions\n * @param args.bits The bitmap positions that should be set. A position starts at index 0.\n * Valid position should range between 0 and 31.\n * @example\n * Here's an example of valid `bits`\n * ```\n * [0, 2, 31]\n * ```\n * `[0, 2, 31]` means the 1st, 3rd and 32nd bits should be set in the bitmap.\n * The result bitmap should be 0b1010000000000000000000000000001\n *\n * @returns bitmap that is 32bit long\n */\n static createBitmap(args: { bits: number[] }): Uint8Array {\n const { bits } = args;\n // Bits are read from left to right. e.g. 0b10000000 represents the first bit is set in one byte.\n // The decimal value of 0b10000000 is 128.\n const firstBitInByte = 128;\n const bitmap = new Uint8Array([0, 0, 0, 0]);\n\n // Check if duplicates exist in bits\n const dupCheckSet = new Set();\n\n bits.forEach((bit: number, index) => {\n if (bit >= MultiEd25519Signature.MAX_SIGNATURES_SUPPORTED) {\n throw new Error(`Cannot have a signature larger than ${MultiEd25519Signature.MAX_SIGNATURES_SUPPORTED - 1}.`);\n }\n\n if (dupCheckSet.has(bit)) {\n throw new Error(\"Duplicate bits detected.\");\n }\n\n if (index > 0 && bit <= bits[index - 1]) {\n throw new Error(\"The bits need to be sorted in ascending order.\");\n }\n\n dupCheckSet.add(bit);\n\n const byteOffset = Math.floor(bit / 8);\n\n let byte = bitmap[byteOffset];\n\n // eslint-disable-next-line no-bitwise\n byte |= firstBitInByte >> bit % 8;\n\n bitmap[byteOffset] = byte;\n });\n\n return bitmap;\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,134 @@
1
+ import {
2
+ getCurrentFungibleAssetBalances,
3
+ getFungibleAssetActivities,
4
+ getFungibleAssetMetadata,
5
+ transferFungibleAsset
6
+ } from "./chunk-NYL77J4X.mjs";
7
+ import {
8
+ waitForIndexerOnVersion
9
+ } from "./chunk-CC4DQ6NH.mjs";
10
+
11
+ // src/api/fungibleAsset.ts
12
+ var FungibleAsset = class {
13
+ constructor(config) {
14
+ this.config = config;
15
+ }
16
+ /**
17
+ * Queries all fungible asset metadata.
18
+ *
19
+ * @example
20
+ * const fungibleAsset = await aptos.getFungibleAssetMetadata()
21
+ *
22
+ * @param args.minimumLedgerVersion Optional ledger version to sync up to, before querying
23
+ * @param args.options Optional configuration for pagination and filtering
24
+ *
25
+ * @returns A list of fungible asset metadata
26
+ */
27
+ async getFungibleAssetMetadata(args) {
28
+ await waitForIndexerOnVersion({
29
+ config: this.config,
30
+ minimumLedgerVersion: args?.minimumLedgerVersion,
31
+ processorType: "fungible_asset_processor" /* FUNGIBLE_ASSET_PROCESSOR */
32
+ });
33
+ return getFungibleAssetMetadata({ aptosConfig: this.config, ...args });
34
+ }
35
+ /**
36
+ * Queries a fungible asset metadata
37
+ *
38
+ * This query returns the fungible asset metadata for a specific fungible asset.
39
+ *
40
+ * @example
41
+ * const fungibleAsset = await aptos.getFungibleAssetMetadataByAssetType({assetType:"0x123::test_coin::TestCoin"})
42
+ *
43
+ * @param args.minimumLedgerVersion Optional ledger version to sync up to, before querying
44
+ * @param args.assetType The asset type of the fungible asset.
45
+ * e.g
46
+ * "0x1::aptos_coin::AptosCoin" for Aptos Coin
47
+ * "0xc2948283c2ce03aafbb294821de7ee684b06116bb378ab614fa2de07a99355a8" - address format if this is fungible asset
48
+ *
49
+ * @returns A fungible asset metadata item
50
+ */
51
+ async getFungibleAssetMetadataByAssetType(args) {
52
+ await waitForIndexerOnVersion({
53
+ config: this.config,
54
+ minimumLedgerVersion: args?.minimumLedgerVersion,
55
+ processorType: "fungible_asset_processor" /* FUNGIBLE_ASSET_PROCESSOR */
56
+ });
57
+ const data = await getFungibleAssetMetadata({
58
+ aptosConfig: this.config,
59
+ options: {
60
+ where: {
61
+ asset_type: { _eq: args.assetType }
62
+ }
63
+ }
64
+ });
65
+ return data[0];
66
+ }
67
+ /**
68
+ * Queries all fungible asset activities
69
+ *
70
+ * @example
71
+ * const fungibleAssetActivities = await aptos.getFungibleAssetActivities()
72
+ *
73
+ * @param args.minimumLedgerVersion Optional ledger version to sync up to, before querying
74
+ * @param args.options Optional configuration for pagination and filtering
75
+ *
76
+ * @returns A list of fungible asset metadata
77
+ */
78
+ async getFungibleAssetActivities(args) {
79
+ await waitForIndexerOnVersion({
80
+ config: this.config,
81
+ minimumLedgerVersion: args?.minimumLedgerVersion,
82
+ processorType: "fungible_asset_processor" /* FUNGIBLE_ASSET_PROCESSOR */
83
+ });
84
+ return getFungibleAssetActivities({ aptosConfig: this.config, ...args });
85
+ }
86
+ /**
87
+ * Queries all fungible asset balances
88
+ *
89
+ * @example
90
+ * const fungibleAssetBalances = await aptos.getCurrentFungibleAssetBalances()
91
+ *
92
+ * @param args.minimumLedgerVersion Optional ledger version to sync up to, before querying
93
+ * @param args.options Optional configuration for pagination and filtering
94
+ *
95
+ * @returns A list of fungible asset metadata
96
+ */
97
+ async getCurrentFungibleAssetBalances(args) {
98
+ await waitForIndexerOnVersion({
99
+ config: this.config,
100
+ minimumLedgerVersion: args?.minimumLedgerVersion,
101
+ processorType: "fungible_asset_processor" /* FUNGIBLE_ASSET_PROCESSOR */
102
+ });
103
+ return getCurrentFungibleAssetBalances({ aptosConfig: this.config, ...args });
104
+ }
105
+ /**
106
+ * Transfer `amount` of fungible asset from sender's primary store to recipient's primary store.
107
+ *
108
+ * Use this method to transfer any fungible asset including fungible token.
109
+ *
110
+ * @example
111
+ * const transaction = await aptos.transferFungibleAsset({
112
+ * sender: alice,
113
+ * fungibleAssetMetadataAddress: "0x123",
114
+ * recipient: "0x456",
115
+ * amount: 5
116
+ * })
117
+ *
118
+ * @param sender The sender account
119
+ * @param fungibleAssetMetadataAddress The fungible asset account address.
120
+ * For example if you’re transferring USDT this would be the USDT address
121
+ * @param recipient The recipient account address
122
+ * @param amount Number of assets to transfer
123
+ *
124
+ * @returns A SimpleTransaction that can be simulated or submitted to chain.
125
+ */
126
+ async transferFungibleAsset(args) {
127
+ return transferFungibleAsset({ aptosConfig: this.config, ...args });
128
+ }
129
+ };
130
+
131
+ export {
132
+ FungibleAsset
133
+ };
134
+ //# sourceMappingURL=chunk-UX5NSZEN.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/api/fungibleAsset.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n AnyNumber,\n GetCurrentFungibleAssetBalancesResponse,\n GetFungibleAssetActivitiesResponse,\n GetFungibleAssetMetadataResponse,\n PaginationArgs,\n WhereArg,\n} from \"../types\";\nimport {\n getCurrentFungibleAssetBalances,\n getFungibleAssetActivities,\n getFungibleAssetMetadata,\n transferFungibleAsset,\n} from \"../internal/fungibleAsset\";\nimport {\n CurrentFungibleAssetBalancesBoolExp,\n FungibleAssetActivitiesBoolExp,\n FungibleAssetMetadataBoolExp,\n} from \"../types/generated/types\";\nimport { ProcessorType } from \"../utils/const\";\nimport { AptosConfig } from \"./aptosConfig\";\nimport { waitForIndexerOnVersion } from \"./utils\";\nimport { Account } from \"../account\";\nimport { AccountAddressInput } from \"../core\";\nimport { InputGenerateTransactionOptions } from \"../transactions\";\nimport { SimpleTransaction } from \"../transactions/instances/simpleTransaction\";\n\n/**\n * A class to query all `FungibleAsset` related queries on Aptos.\n */\nexport class FungibleAsset {\n constructor(readonly config: AptosConfig) {}\n\n /**\n * Queries all fungible asset metadata.\n *\n * @example\n * const fungibleAsset = await aptos.getFungibleAssetMetadata()\n *\n * @param args.minimumLedgerVersion Optional ledger version to sync up to, before querying\n * @param args.options Optional configuration for pagination and filtering\n *\n * @returns A list of fungible asset metadata\n */\n async getFungibleAssetMetadata(args?: {\n minimumLedgerVersion?: AnyNumber;\n options?: PaginationArgs & WhereArg<FungibleAssetMetadataBoolExp>;\n }): Promise<GetFungibleAssetMetadataResponse> {\n await waitForIndexerOnVersion({\n config: this.config,\n minimumLedgerVersion: args?.minimumLedgerVersion,\n processorType: ProcessorType.FUNGIBLE_ASSET_PROCESSOR,\n });\n return getFungibleAssetMetadata({ aptosConfig: this.config, ...args });\n }\n\n /**\n * Queries a fungible asset metadata\n *\n * This query returns the fungible asset metadata for a specific fungible asset.\n *\n * @example\n * const fungibleAsset = await aptos.getFungibleAssetMetadataByAssetType({assetType:\"0x123::test_coin::TestCoin\"})\n *\n * @param args.minimumLedgerVersion Optional ledger version to sync up to, before querying\n * @param args.assetType The asset type of the fungible asset.\n * e.g\n * \"0x1::aptos_coin::AptosCoin\" for Aptos Coin\n * \"0xc2948283c2ce03aafbb294821de7ee684b06116bb378ab614fa2de07a99355a8\" - address format if this is fungible asset\n *\n * @returns A fungible asset metadata item\n */\n async getFungibleAssetMetadataByAssetType(args: {\n assetType: string;\n minimumLedgerVersion?: AnyNumber;\n }): Promise<GetFungibleAssetMetadataResponse[0]> {\n await waitForIndexerOnVersion({\n config: this.config,\n minimumLedgerVersion: args?.minimumLedgerVersion,\n processorType: ProcessorType.FUNGIBLE_ASSET_PROCESSOR,\n });\n const data = await getFungibleAssetMetadata({\n aptosConfig: this.config,\n options: {\n where: {\n asset_type: { _eq: args.assetType },\n },\n },\n });\n\n return data[0];\n }\n\n /**\n * Queries all fungible asset activities\n *\n * @example\n * const fungibleAssetActivities = await aptos.getFungibleAssetActivities()\n *\n * @param args.minimumLedgerVersion Optional ledger version to sync up to, before querying\n * @param args.options Optional configuration for pagination and filtering\n *\n * @returns A list of fungible asset metadata\n */\n async getFungibleAssetActivities(args?: {\n minimumLedgerVersion?: AnyNumber;\n options?: PaginationArgs & WhereArg<FungibleAssetActivitiesBoolExp>;\n }): Promise<GetFungibleAssetActivitiesResponse> {\n await waitForIndexerOnVersion({\n config: this.config,\n minimumLedgerVersion: args?.minimumLedgerVersion,\n processorType: ProcessorType.FUNGIBLE_ASSET_PROCESSOR,\n });\n return getFungibleAssetActivities({ aptosConfig: this.config, ...args });\n }\n\n /**\n * Queries all fungible asset balances\n *\n * @example\n * const fungibleAssetBalances = await aptos.getCurrentFungibleAssetBalances()\n *\n * @param args.minimumLedgerVersion Optional ledger version to sync up to, before querying\n * @param args.options Optional configuration for pagination and filtering\n *\n * @returns A list of fungible asset metadata\n */\n async getCurrentFungibleAssetBalances(args?: {\n minimumLedgerVersion?: AnyNumber;\n options?: PaginationArgs & WhereArg<CurrentFungibleAssetBalancesBoolExp>;\n }): Promise<GetCurrentFungibleAssetBalancesResponse> {\n await waitForIndexerOnVersion({\n config: this.config,\n minimumLedgerVersion: args?.minimumLedgerVersion,\n processorType: ProcessorType.FUNGIBLE_ASSET_PROCESSOR,\n });\n return getCurrentFungibleAssetBalances({ aptosConfig: this.config, ...args });\n }\n\n /**\n * Transfer `amount` of fungible asset from sender's primary store to recipient's primary store.\n *\n * Use this method to transfer any fungible asset including fungible token.\n *\n * @example\n * const transaction = await aptos.transferFungibleAsset({\n * sender: alice,\n * fungibleAssetMetadataAddress: \"0x123\",\n * recipient: \"0x456\",\n * amount: 5\n * })\n *\n * @param sender The sender account\n * @param fungibleAssetMetadataAddress The fungible asset account address.\n * For example if you’re transferring USDT this would be the USDT address\n * @param recipient The recipient account address\n * @param amount Number of assets to transfer\n *\n * @returns A SimpleTransaction that can be simulated or submitted to chain.\n */\n async transferFungibleAsset(args: {\n sender: Account;\n fungibleAssetMetadataAddress: AccountAddressInput;\n recipient: AccountAddressInput;\n amount: AnyNumber;\n options?: InputGenerateTransactionOptions;\n }): Promise<SimpleTransaction> {\n return transferFungibleAsset({ aptosConfig: this.config, ...args });\n }\n}\n"],"mappings":";;;;;;;;;;;AAiCO,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAAqB,QAAqB;AAArB;AAAA,EAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAa3C,MAAM,yBAAyB,MAGe;AAC5C,UAAM,wBAAwB;AAAA,MAC5B,QAAQ,KAAK;AAAA,MACb,sBAAsB,MAAM;AAAA,MAC5B;AAAA,IACF,CAAC;AACD,WAAO,yBAAyB,EAAE,aAAa,KAAK,QAAQ,GAAG,KAAK,CAAC;AAAA,EACvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA,MAAM,oCAAoC,MAGO;AAC/C,UAAM,wBAAwB;AAAA,MAC5B,QAAQ,KAAK;AAAA,MACb,sBAAsB,MAAM;AAAA,MAC5B;AAAA,IACF,CAAC;AACD,UAAM,OAAO,MAAM,yBAAyB;AAAA,MAC1C,aAAa,KAAK;AAAA,MAClB,SAAS;AAAA,QACP,OAAO;AAAA,UACL,YAAY,EAAE,KAAK,KAAK,UAAU;AAAA,QACpC;AAAA,MACF;AAAA,IACF,CAAC;AAED,WAAO,KAAK,CAAC;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,MAAM,2BAA2B,MAGe;AAC9C,UAAM,wBAAwB;AAAA,MAC5B,QAAQ,KAAK;AAAA,MACb,sBAAsB,MAAM;AAAA,MAC5B;AAAA,IACF,CAAC;AACD,WAAO,2BAA2B,EAAE,aAAa,KAAK,QAAQ,GAAG,KAAK,CAAC;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,MAAM,gCAAgC,MAGe;AACnD,UAAM,wBAAwB;AAAA,MAC5B,QAAQ,KAAK;AAAA,MACb,sBAAsB,MAAM;AAAA,MAC5B;AAAA,IACF,CAAC;AACD,WAAO,gCAAgC,EAAE,aAAa,KAAK,QAAQ,GAAG,KAAK,CAAC;AAAA,EAC9E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBA,MAAM,sBAAsB,MAMG;AAC7B,WAAO,sBAAsB,EAAE,aAAa,KAAK,QAAQ,GAAG,KAAK,CAAC;AAAA,EACpE;AACF;","names":[]}
@@ -0,0 +1,79 @@
1
+ import {
2
+ Ed25519Account
3
+ } from "./chunk-KMXSRHJ6.mjs";
4
+ import {
5
+ SingleKeyAccount
6
+ } from "./chunk-JHDHNGJ3.mjs";
7
+ import {
8
+ Ed25519PrivateKey
9
+ } from "./chunk-RX4VG2AT.mjs";
10
+
11
+ // src/account/Account.ts
12
+ var Account = class {
13
+ static generate(args = {}) {
14
+ const { scheme = 0 /* Ed25519 */, legacy = true } = args;
15
+ if (scheme === 0 /* Ed25519 */ && legacy) {
16
+ return Ed25519Account.generate();
17
+ }
18
+ return SingleKeyAccount.generate({ scheme });
19
+ }
20
+ static fromPrivateKey(args) {
21
+ const { privateKey, address, legacy = true } = args;
22
+ if (privateKey instanceof Ed25519PrivateKey && legacy) {
23
+ return new Ed25519Account({
24
+ privateKey,
25
+ address
26
+ });
27
+ }
28
+ return new SingleKeyAccount({ privateKey, address });
29
+ }
30
+ /**
31
+ * @deprecated use `fromPrivateKey` instead.
32
+ * Instantiates an account given a private key and a specified account address.
33
+ * This is primarily used to instantiate an `Account` that has had its authentication key rotated.
34
+ *
35
+ * @param args.privateKey PrivateKey - the underlying private key for the account
36
+ * @param args.address AccountAddress - The account address the `Account` will sign for
37
+ * @param args.legacy optional. If set to false, the keypair generated is a Unified keypair. Defaults
38
+ * to generating a Legacy Ed25519 keypair
39
+ *
40
+ * @returns Account
41
+ */
42
+ static fromPrivateKeyAndAddress(args) {
43
+ return this.fromPrivateKey(args);
44
+ }
45
+ static fromDerivationPath(args) {
46
+ const { scheme = 0 /* Ed25519 */, mnemonic, path, legacy = true } = args;
47
+ if (scheme === 0 /* Ed25519 */ && legacy) {
48
+ return Ed25519Account.fromDerivationPath({ mnemonic, path });
49
+ }
50
+ return SingleKeyAccount.fromDerivationPath({ scheme, mnemonic, path });
51
+ }
52
+ /**
53
+ * @deprecated use `publicKey.authKey()` instead.
54
+ * This key enables account owners to rotate their private key(s)
55
+ * associated with the account without changing the address that hosts their account.
56
+ * See here for more info: {@link https://aptos.dev/concepts/accounts#single-signer-authentication}
57
+ *
58
+ * @param args.publicKey PublicKey - public key of the account
59
+ * @returns The authentication key for the associated account
60
+ */
61
+ static authKey(args) {
62
+ const { publicKey } = args;
63
+ return publicKey.authKey();
64
+ }
65
+ /**
66
+ * Verify the given message and signature with the public key.
67
+ * @param args.message raw message data in HexInput format
68
+ * @param args.signature signed message Signature
69
+ * @returns
70
+ */
71
+ verifySignature(args) {
72
+ return this.publicKey.verifySignature(args);
73
+ }
74
+ };
75
+
76
+ export {
77
+ Account
78
+ };
79
+ //# sourceMappingURL=chunk-VDJBDX3A.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/account/Account.ts"],"sourcesContent":["import type { AccountAuthenticator } from \"../transactions/authenticator/account\";\nimport { HexInput, SigningScheme, SigningSchemeInput } from \"../types\";\nimport type { AccountAddress, AccountAddressInput } from \"../core/accountAddress\";\nimport { AuthenticationKey } from \"../core/authenticationKey\";\nimport { AccountPublicKey, Ed25519PrivateKey, PrivateKey, Signature, VerifySignatureArgs } from \"../core/crypto\";\nimport { Ed25519Account } from \"./Ed25519Account\";\nimport { SingleKeyAccount } from \"./SingleKeyAccount\";\nimport { AnyRawTransaction } from \"../transactions/types\";\n\n/**\n * Arguments for creating an `Ed25519Account` from an `Ed25519PrivateKey`.\n * This is the default input type when passing an `Ed25519PrivateKey`.\n * In order to use the SingleKey authentication scheme, `legacy` needs to be explicitly set to false.\n */\nexport interface CreateEd25519AccountFromPrivateKeyArgs {\n privateKey: Ed25519PrivateKey;\n address?: AccountAddressInput;\n legacy?: true;\n}\n\n/**\n * Arguments for creating an `SingleKeyAccount` from an `Ed25519PrivateKey`.\n * The `legacy` argument needs to be explicitly set to false in order to\n * use the `SingleKey` authentication scheme.\n */\nexport interface CreateEd25519SingleKeyAccountFromPrivateKeyArgs {\n privateKey: Ed25519PrivateKey;\n address?: AccountAddressInput;\n legacy: false;\n}\n\n/**\n * Arguments for creating an `SingleKeyAccount` from any supported private key\n * that is not an `Ed25519PrivateKey`.\n * The `legacy` argument defaults to false and cannot be explicitly set to true.\n */\nexport interface CreateSingleKeyAccountFromPrivateKeyArgs {\n privateKey: Exclude<PrivateKey, Ed25519PrivateKey>;\n address?: AccountAddressInput;\n legacy?: false;\n}\n\n/**\n * Arguments for creating an opaque `Account` from any supported private key.\n * This is used when the private key type is not known at compilation time.\n */\nexport interface CreateAccountFromPrivateKeyArgs {\n privateKey: PrivateKey;\n address?: AccountAddressInput;\n legacy?: boolean;\n}\n\n/**\n * Arguments for generating an `Ed25519Account`.\n * This is the input type used by default.\n */\nexport interface GenerateEd25519AccountArgs {\n scheme?: SigningSchemeInput.Ed25519;\n legacy?: true;\n}\n\n/**\n * Arguments for generating an `SingleKeyAccount` with ah underlying `Ed25519PrivateKey`.\n * The `legacy` argument needs to be explicitly set to false,\n * otherwise an `Ed25519Account` will be returned instead.\n */\nexport interface GenerateEd25519SingleKeyAccountArgs {\n scheme?: SigningSchemeInput.Ed25519;\n legacy: false;\n}\n\n/**\n * Arguments for generating an `SingleKeyAccount` with any supported private key\n * that is not an `Ed25519PrivateKey`.\n * The `legacy` argument defaults to false and cannot be explicitly set to true.\n */\nexport interface GenerateSingleKeyAccountArgs {\n scheme: Exclude<SigningSchemeInput, SigningSchemeInput.Ed25519>;\n legacy?: false;\n}\n\n/**\n * Arguments for generating an opaque `Account`.\n * This is used when the input signature scheme is not known at compilation time.\n */\nexport interface GenerateAccountArgs {\n scheme?: SigningSchemeInput;\n legacy?: boolean;\n}\n\n/**\n * Arguments for deriving a private key from a mnemonic phrase and a BIP44 path.\n */\nexport interface PrivateKeyFromDerivationPathArgs {\n path: string;\n mnemonic: string;\n}\n\n/**\n * Interface for a generic Aptos account.\n *\n * The interface is defined as abstract class to provide a single entrypoint for account generation,\n * either through `Account.generate()` or `Account.fromDerivationPath`.\n * Despite this being an abstract class, it should be treated as an interface and enforced using\n * the `implements` keyword.\n *\n * Note: Generating an account instance does not create the account on-chain.\n */\nexport abstract class Account {\n /**\n * Public key associated with the account\n */\n abstract readonly publicKey: AccountPublicKey;\n\n /**\n * Account address associated with the account\n */\n abstract readonly accountAddress: AccountAddress;\n\n /**\n * Signing scheme used to sign transactions\n */\n abstract signingScheme: SigningScheme;\n\n /**\n * Derives an account from a randomly generated private key.\n * @param args.scheme The signature scheme to use, to generate the private key\n * @param args.legacy Whether to use a legacy authentication scheme, when applicable\n * @returns An account compatible with the provided signature scheme\n */\n static generate(args?: GenerateEd25519AccountArgs): Ed25519Account;\n static generate(args: GenerateEd25519SingleKeyAccountArgs): SingleKeyAccount;\n static generate(args: GenerateSingleKeyAccountArgs): SingleKeyAccount;\n static generate(args: GenerateAccountArgs): Account;\n static generate(args: GenerateAccountArgs = {}) {\n const { scheme = SigningSchemeInput.Ed25519, legacy = true } = args;\n if (scheme === SigningSchemeInput.Ed25519 && legacy) {\n return Ed25519Account.generate();\n }\n return SingleKeyAccount.generate({ scheme });\n }\n\n /**\n * Creates an account from the provided private key.\n *\n * @param args.privateKey a valid private key\n * @param args.address the account's address. If not provided, it will be derived from the public key.\n * @param args.legacy Whether to use a legacy authentication scheme, when applicable\n */\n static fromPrivateKey(args: CreateEd25519AccountFromPrivateKeyArgs): Ed25519Account;\n static fromPrivateKey(args: CreateEd25519SingleKeyAccountFromPrivateKeyArgs): SingleKeyAccount;\n static fromPrivateKey(args: CreateSingleKeyAccountFromPrivateKeyArgs): SingleKeyAccount;\n static fromPrivateKey(args: CreateAccountFromPrivateKeyArgs): Account;\n static fromPrivateKey(args: CreateAccountFromPrivateKeyArgs) {\n const { privateKey, address, legacy = true } = args;\n if (privateKey instanceof Ed25519PrivateKey && legacy) {\n return new Ed25519Account({\n privateKey,\n address,\n });\n }\n return new SingleKeyAccount({ privateKey, address });\n }\n\n /**\n * @deprecated use `fromPrivateKey` instead.\n * Instantiates an account given a private key and a specified account address.\n * This is primarily used to instantiate an `Account` that has had its authentication key rotated.\n *\n * @param args.privateKey PrivateKey - the underlying private key for the account\n * @param args.address AccountAddress - The account address the `Account` will sign for\n * @param args.legacy optional. If set to false, the keypair generated is a Unified keypair. Defaults\n * to generating a Legacy Ed25519 keypair\n *\n * @returns Account\n */\n static fromPrivateKeyAndAddress(args: CreateAccountFromPrivateKeyArgs) {\n return this.fromPrivateKey(args);\n }\n\n /**\n * Derives an account with bip44 path and mnemonics\n *\n * @param args.scheme The signature scheme to derive the private key with\n * @param args.path the BIP44 derive hardened path (e.g. m/44'/637'/0'/0'/0') for Ed25519,\n * or non-hardened path (e.g. m/44'/637'/0'/0/0) for secp256k1\n * Detailed description: {@link https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki}\n * @param args.mnemonic the mnemonic seed phrase of the account\n */\n static fromDerivationPath(args: GenerateEd25519AccountArgs & PrivateKeyFromDerivationPathArgs): Ed25519Account;\n static fromDerivationPath(\n args: GenerateEd25519SingleKeyAccountArgs & PrivateKeyFromDerivationPathArgs,\n ): SingleKeyAccount;\n static fromDerivationPath(args: GenerateSingleKeyAccountArgs & PrivateKeyFromDerivationPathArgs): SingleKeyAccount;\n static fromDerivationPath(args: GenerateAccountArgs & PrivateKeyFromDerivationPathArgs): Account;\n static fromDerivationPath(args: GenerateAccountArgs & PrivateKeyFromDerivationPathArgs) {\n const { scheme = SigningSchemeInput.Ed25519, mnemonic, path, legacy = true } = args;\n if (scheme === SigningSchemeInput.Ed25519 && legacy) {\n return Ed25519Account.fromDerivationPath({ mnemonic, path });\n }\n return SingleKeyAccount.fromDerivationPath({ scheme, mnemonic, path });\n }\n\n /**\n * @deprecated use `publicKey.authKey()` instead.\n * This key enables account owners to rotate their private key(s)\n * associated with the account without changing the address that hosts their account.\n * See here for more info: {@link https://aptos.dev/concepts/accounts#single-signer-authentication}\n *\n * @param args.publicKey PublicKey - public key of the account\n * @returns The authentication key for the associated account\n */\n static authKey(args: { publicKey: AccountPublicKey }): AuthenticationKey {\n const { publicKey } = args;\n return publicKey.authKey();\n }\n\n /**\n * Sign a message using the available signing capabilities.\n * @param message the signing message, as binary input\n * @return the AccountAuthenticator containing the signature, together with the account's public key\n */\n abstract signWithAuthenticator(message: HexInput): AccountAuthenticator;\n\n /**\n * Sign a transaction using the available signing capabilities.\n * @param transaction the raw transaction\n * @return the AccountAuthenticator containing the signature of the transaction, together with the account's public key\n */\n abstract signTransactionWithAuthenticator(transaction: AnyRawTransaction): AccountAuthenticator;\n\n /**\n * Sign the given message using the available signing capabilities.\n * @param message in HexInput format\n * @returns Signature\n */\n abstract sign(message: HexInput): Signature;\n\n /**\n * Sign the given transaction using the available signing capabilities.\n * @param transaction the transaction to be signed\n * @returns Signature\n */\n abstract signTransaction(transaction: AnyRawTransaction): Signature;\n\n /**\n * Verify the given message and signature with the public key.\n * @param args.message raw message data in HexInput format\n * @param args.signature signed message Signature\n * @returns\n */\n verifySignature(args: VerifySignatureArgs): boolean {\n return this.publicKey.verifySignature(args);\n }\n}\n"],"mappings":";;;;;;;;;;;AA4GO,IAAe,UAAf,MAAuB;AAAA,EA0B5B,OAAO,SAAS,OAA4B,CAAC,GAAG;AAC9C,UAAM,EAAE,0BAAqC,SAAS,KAAK,IAAI;AAC/D,QAAI,8BAAyC,QAAQ;AACnD,aAAO,eAAe,SAAS;AAAA,IACjC;AACA,WAAO,iBAAiB,SAAS,EAAE,OAAO,CAAC;AAAA,EAC7C;AAAA,EAaA,OAAO,eAAe,MAAuC;AAC3D,UAAM,EAAE,YAAY,SAAS,SAAS,KAAK,IAAI;AAC/C,QAAI,sBAAsB,qBAAqB,QAAQ;AACrD,aAAO,IAAI,eAAe;AAAA,QACxB;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AACA,WAAO,IAAI,iBAAiB,EAAE,YAAY,QAAQ,CAAC;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,OAAO,yBAAyB,MAAuC;AACrE,WAAO,KAAK,eAAe,IAAI;AAAA,EACjC;AAAA,EAiBA,OAAO,mBAAmB,MAA8D;AACtF,UAAM,EAAE,0BAAqC,UAAU,MAAM,SAAS,KAAK,IAAI;AAC/E,QAAI,8BAAyC,QAAQ;AACnD,aAAO,eAAe,mBAAmB,EAAE,UAAU,KAAK,CAAC;AAAA,IAC7D;AACA,WAAO,iBAAiB,mBAAmB,EAAE,QAAQ,UAAU,KAAK,CAAC;AAAA,EACvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAO,QAAQ,MAA0D;AACvE,UAAM,EAAE,UAAU,IAAI;AACtB,WAAO,UAAU,QAAQ;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoCA,gBAAgB,MAAoC;AAClD,WAAO,KAAK,UAAU,gBAAgB,IAAI;AAAA,EAC5C;AACF;","names":[]}
@@ -0,0 +1,58 @@
1
+ import {
2
+ FeePayerRawTransaction,
3
+ MultiAgentRawTransaction
4
+ } from "./chunk-2OQW7BMN.mjs";
5
+ import {
6
+ RAW_TRANSACTION_SALT,
7
+ RAW_TRANSACTION_WITH_DATA_SALT
8
+ } from "./chunk-NFJCQRVK.mjs";
9
+
10
+ // src/transactions/transactionBuilder/signingMessage.ts
11
+ import { sha3_256 as sha3Hash } from "@noble/hashes/sha3";
12
+ function deriveTransactionType(transaction) {
13
+ if (transaction.feePayerAddress) {
14
+ return new FeePayerRawTransaction(
15
+ transaction.rawTransaction,
16
+ transaction.secondarySignerAddresses ?? [],
17
+ transaction.feePayerAddress
18
+ );
19
+ }
20
+ if (transaction.secondarySignerAddresses) {
21
+ return new MultiAgentRawTransaction(transaction.rawTransaction, transaction.secondarySignerAddresses);
22
+ }
23
+ return transaction.rawTransaction;
24
+ }
25
+ function generateSigningMessage(bytes, domainSeparator) {
26
+ const hash = sha3Hash.create();
27
+ if (!domainSeparator.startsWith("APTOS::")) {
28
+ throw new Error(`Domain separator needs to start with 'APTOS::'. Provided - ${domainSeparator}`);
29
+ }
30
+ hash.update(domainSeparator);
31
+ const prefix = hash.digest();
32
+ const body = bytes;
33
+ const mergedArray = new Uint8Array(prefix.length + body.length);
34
+ mergedArray.set(prefix);
35
+ mergedArray.set(body, prefix.length);
36
+ return mergedArray;
37
+ }
38
+ function generateSigningMessageForSerializable(serializable) {
39
+ return generateSigningMessage(serializable.bcsToBytes(), `APTOS::${serializable.constructor.name}`);
40
+ }
41
+ function generateSigningMessageForTransaction(transaction) {
42
+ const rawTxn = deriveTransactionType(transaction);
43
+ if (transaction.feePayerAddress) {
44
+ return generateSigningMessage(rawTxn.bcsToBytes(), RAW_TRANSACTION_WITH_DATA_SALT);
45
+ }
46
+ if (transaction.secondarySignerAddresses) {
47
+ return generateSigningMessage(rawTxn.bcsToBytes(), RAW_TRANSACTION_WITH_DATA_SALT);
48
+ }
49
+ return generateSigningMessage(rawTxn.bcsToBytes(), RAW_TRANSACTION_SALT);
50
+ }
51
+
52
+ export {
53
+ deriveTransactionType,
54
+ generateSigningMessage,
55
+ generateSigningMessageForSerializable,
56
+ generateSigningMessageForTransaction
57
+ };
58
+ //# sourceMappingURL=chunk-VJP2VWMF.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/transactions/transactionBuilder/signingMessage.ts"],"sourcesContent":["// Copyright © Aptos Foundation\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * This file handles the generation of the signing message.\n */\nimport { sha3_256 as sha3Hash } from \"@noble/hashes/sha3\";\nimport { RAW_TRANSACTION_SALT, RAW_TRANSACTION_WITH_DATA_SALT } from \"../../utils/const\";\nimport { FeePayerRawTransaction, MultiAgentRawTransaction } from \"../instances\";\nimport { AnyRawTransaction, AnyRawTransactionInstance } from \"../types\";\nimport { Serializable } from \"../../bcs\";\n\n/**\n * Derive the raw transaction type - FeePayerRawTransaction or MultiAgentRawTransaction or RawTransaction\n *\n * @param transaction A aptos transaction type\n *\n * @returns FeePayerRawTransaction | MultiAgentRawTransaction | RawTransaction\n */\nexport function deriveTransactionType(transaction: AnyRawTransaction): AnyRawTransactionInstance {\n if (transaction.feePayerAddress) {\n return new FeePayerRawTransaction(\n transaction.rawTransaction,\n transaction.secondarySignerAddresses ?? [],\n transaction.feePayerAddress,\n );\n }\n if (transaction.secondarySignerAddresses) {\n return new MultiAgentRawTransaction(transaction.rawTransaction, transaction.secondarySignerAddresses);\n }\n\n return transaction.rawTransaction;\n}\n\n/**\n * Generates the 'signing message' form of a message to be signed.\n *\n * @param bytes The byte representation of the message to be signed and sent to the chain\n * @param domainSeparator A domain separator that starts with 'APTOS::'\n *\n * @returns The Uint8Array of the signing message\n */\nexport function generateSigningMessage(bytes: Uint8Array, domainSeparator: string): Uint8Array {\n const hash = sha3Hash.create();\n\n if (!domainSeparator.startsWith(\"APTOS::\")) {\n throw new Error(`Domain separator needs to start with 'APTOS::'. Provided - ${domainSeparator}`);\n }\n\n hash.update(domainSeparator);\n\n const prefix = hash.digest();\n\n const body = bytes;\n\n const mergedArray = new Uint8Array(prefix.length + body.length);\n mergedArray.set(prefix);\n mergedArray.set(body, prefix.length);\n\n return mergedArray;\n}\n\n/**\n * Generates the 'signing message' form of a serilizable value. It bcs serializes the value and uses the name of\n * its constructor as the domain separator.\n *\n * @param serializable An object that has a bcs serialized form\n *\n * @returns The Uint8Array of the signing message\n */\nexport function generateSigningMessageForSerializable(serializable: Serializable): Uint8Array {\n return generateSigningMessage(serializable.bcsToBytes(), `APTOS::${serializable.constructor.name}`);\n}\n\n/**\n * Generates the 'signing message' form of a transaction. It derives the type of transaction and\n * applies the appropriate domain separator based on if there is extra data such as a fee payer or\n * secondary signers.\n *\n * @param transaction A transaction that is to be signed\n *\n * @returns The Uint8Array of the signing message\n */\nexport function generateSigningMessageForTransaction(transaction: AnyRawTransaction): Uint8Array {\n const rawTxn = deriveTransactionType(transaction);\n if (transaction.feePayerAddress) {\n return generateSigningMessage(rawTxn.bcsToBytes(), RAW_TRANSACTION_WITH_DATA_SALT);\n }\n if (transaction.secondarySignerAddresses) {\n return generateSigningMessage(rawTxn.bcsToBytes(), RAW_TRANSACTION_WITH_DATA_SALT);\n }\n return generateSigningMessage(rawTxn.bcsToBytes(), RAW_TRANSACTION_SALT);\n}\n"],"mappings":";;;;;;;;;;AAMA,SAAS,YAAY,gBAAgB;AAa9B,SAAS,sBAAsB,aAA2D;AAC/F,MAAI,YAAY,iBAAiB;AAC/B,WAAO,IAAI;AAAA,MACT,YAAY;AAAA,MACZ,YAAY,4BAA4B,CAAC;AAAA,MACzC,YAAY;AAAA,IACd;AAAA,EACF;AACA,MAAI,YAAY,0BAA0B;AACxC,WAAO,IAAI,yBAAyB,YAAY,gBAAgB,YAAY,wBAAwB;AAAA,EACtG;AAEA,SAAO,YAAY;AACrB;AAUO,SAAS,uBAAuB,OAAmB,iBAAqC;AAC7F,QAAM,OAAO,SAAS,OAAO;AAE7B,MAAI,CAAC,gBAAgB,WAAW,SAAS,GAAG;AAC1C,UAAM,IAAI,MAAM,+DAA+D,eAAe,EAAE;AAAA,EAClG;AAEA,OAAK,OAAO,eAAe;AAE3B,QAAM,SAAS,KAAK,OAAO;AAE3B,QAAM,OAAO;AAEb,QAAM,cAAc,IAAI,WAAW,OAAO,SAAS,KAAK,MAAM;AAC9D,cAAY,IAAI,MAAM;AACtB,cAAY,IAAI,MAAM,OAAO,MAAM;AAEnC,SAAO;AACT;AAUO,SAAS,sCAAsC,cAAwC;AAC5F,SAAO,uBAAuB,aAAa,WAAW,GAAG,UAAU,aAAa,YAAY,IAAI,EAAE;AACpG;AAWO,SAAS,qCAAqC,aAA4C;AAC/F,QAAM,SAAS,sBAAsB,WAAW;AAChD,MAAI,YAAY,iBAAiB;AAC/B,WAAO,uBAAuB,OAAO,WAAW,GAAG,8BAA8B;AAAA,EACnF;AACA,MAAI,YAAY,0BAA0B;AACxC,WAAO,uBAAuB,OAAO,WAAW,GAAG,8BAA8B;AAAA,EACnF;AACA,SAAO,uBAAuB,OAAO,WAAW,GAAG,oBAAoB;AACzE;","names":[]}