@aptos-labs/ts-sdk 1.36.0 → 1.37.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 (799) hide show
  1. package/dist/common/{accountAddress-jrha_M3l.d.ts → accountAddress-DU4ds4Bf.d.ts} +28 -1
  2. package/dist/common/chunk-MVCKMP5U.js +4 -0
  3. package/dist/common/chunk-MVCKMP5U.js.map +1 -0
  4. package/dist/common/cli/index.d.ts +1 -1
  5. package/dist/common/cli/index.js +1 -1
  6. package/dist/common/cli/index.js.map +1 -1
  7. package/dist/common/index.d.ts +9288 -8699
  8. package/dist/common/index.js +32 -32
  9. package/dist/common/index.js.map +1 -1
  10. package/dist/esm/{Ed25519Account-D4j3_WIS.d.mts → Ed25519Account-C-AS-Kgv.d.mts} +61 -5
  11. package/dist/esm/account/AbstractKeylessAccount.d.mts +23 -13
  12. package/dist/esm/account/AbstractKeylessAccount.mjs +1 -1
  13. package/dist/esm/account/AbstractedAccount.d.mts +10 -10
  14. package/dist/esm/account/AbstractedAccount.mjs +1 -1
  15. package/dist/esm/account/Account.d.mts +6 -6
  16. package/dist/esm/account/Account.mjs +1 -1
  17. package/dist/esm/account/AccountUtils.d.mts +11 -10
  18. package/dist/esm/account/AccountUtils.mjs +1 -1
  19. package/dist/esm/account/Ed25519Account.d.mts +5 -5
  20. package/dist/esm/account/Ed25519Account.mjs +1 -1
  21. package/dist/esm/account/EphemeralKeyPair.d.mts +3 -1
  22. package/dist/esm/account/EphemeralKeyPair.mjs +1 -1
  23. package/dist/esm/account/FederatedKeylessAccount.d.mts +12 -11
  24. package/dist/esm/account/FederatedKeylessAccount.mjs +1 -1
  25. package/dist/esm/account/KeylessAccount.d.mts +12 -11
  26. package/dist/esm/account/KeylessAccount.mjs +1 -1
  27. package/dist/esm/account/MultiEd25519Account.d.mts +31 -9
  28. package/dist/esm/account/MultiEd25519Account.mjs +1 -1
  29. package/dist/esm/account/MultiKeyAccount.d.mts +38 -12
  30. package/dist/esm/account/MultiKeyAccount.mjs +1 -1
  31. package/dist/esm/account/SingleKeyAccount.d.mts +6 -6
  32. package/dist/esm/account/SingleKeyAccount.mjs +1 -1
  33. package/dist/esm/account/index.d.mts +7 -6
  34. package/dist/esm/account/index.mjs +1 -1
  35. package/dist/esm/account/utils.mjs +1 -1
  36. package/dist/esm/api/account/abstraction.d.mts +9 -9
  37. package/dist/esm/api/account/abstraction.mjs +1 -1
  38. package/dist/esm/api/account.d.mts +88 -9
  39. package/dist/esm/api/account.mjs +1 -1
  40. package/dist/esm/api/ans.d.mts +13 -13
  41. package/dist/esm/api/ans.mjs +1 -1
  42. package/dist/esm/api/aptos.d.mts +6 -5
  43. package/dist/esm/api/aptos.mjs +1 -1
  44. package/dist/esm/api/coin.d.mts +9 -9
  45. package/dist/esm/api/coin.mjs +1 -1
  46. package/dist/esm/api/digitalAsset.d.mts +5 -5
  47. package/dist/esm/api/digitalAsset.mjs +1 -1
  48. package/dist/esm/api/event.mjs +1 -1
  49. package/dist/esm/api/experimental.d.mts +7 -7
  50. package/dist/esm/api/experimental.mjs +1 -1
  51. package/dist/esm/api/faucet.mjs +1 -1
  52. package/dist/esm/api/fungibleAsset.d.mts +13 -13
  53. package/dist/esm/api/fungibleAsset.mjs +1 -1
  54. package/dist/esm/api/general.d.mts +7 -7
  55. package/dist/esm/api/general.mjs +1 -1
  56. package/dist/esm/api/index.d.mts +6 -5
  57. package/dist/esm/api/index.mjs +1 -1
  58. package/dist/esm/api/keyless.d.mts +20 -19
  59. package/dist/esm/api/keyless.mjs +1 -1
  60. package/dist/esm/api/object.mjs +1 -1
  61. package/dist/esm/api/staking.mjs +1 -1
  62. package/dist/esm/api/table.mjs +1 -1
  63. package/dist/esm/api/transaction.d.mts +4 -4
  64. package/dist/esm/api/transaction.mjs +1 -1
  65. package/dist/esm/api/transactionSubmission/build.d.mts +9 -9
  66. package/dist/esm/api/transactionSubmission/build.mjs +1 -1
  67. package/dist/esm/api/transactionSubmission/management.d.mts +8 -8
  68. package/dist/esm/api/transactionSubmission/management.mjs +1 -1
  69. package/dist/esm/api/transactionSubmission/sign.d.mts +3 -3
  70. package/dist/esm/api/transactionSubmission/sign.mjs +1 -1
  71. package/dist/esm/api/transactionSubmission/sign.mjs.map +1 -1
  72. package/dist/esm/api/transactionSubmission/simulate.d.mts +9 -9
  73. package/dist/esm/api/transactionSubmission/simulate.mjs +1 -1
  74. package/dist/esm/api/transactionSubmission/submit.d.mts +3 -3
  75. package/dist/esm/api/transactionSubmission/submit.mjs +1 -1
  76. package/dist/esm/api/utils.mjs +1 -1
  77. package/dist/esm/bcs/deserializer.mjs +1 -1
  78. package/dist/esm/bcs/index.mjs +1 -1
  79. package/dist/esm/bcs/serializable/entryFunctionBytes.mjs +1 -1
  80. package/dist/esm/bcs/serializable/fixedBytes.mjs +1 -1
  81. package/dist/esm/bcs/serializable/movePrimitives.d.mts +1 -1
  82. package/dist/esm/bcs/serializable/movePrimitives.mjs +1 -1
  83. package/dist/esm/bcs/serializable/moveStructs.mjs +1 -1
  84. package/dist/esm/bcs/serializer.mjs +1 -1
  85. package/dist/esm/{chunk-2P27DDVV.mjs → chunk-2DISMLR6.mjs} +2 -2
  86. package/dist/esm/{chunk-ACE3NEV6.mjs → chunk-2RBINVFA.mjs} +2 -2
  87. package/dist/esm/chunk-3AS5BVKL.mjs +2 -0
  88. package/dist/esm/chunk-3AS5BVKL.mjs.map +1 -0
  89. package/dist/esm/{chunk-TKXEVD7A.mjs → chunk-4FBUZY6C.mjs} +2 -2
  90. package/dist/esm/chunk-5WNHYEW2.mjs +2 -0
  91. package/dist/esm/{chunk-2SAOCLIU.mjs → chunk-6QJWFV2M.mjs} +2 -2
  92. package/dist/esm/{chunk-PDAWVDI7.mjs → chunk-7JRZLDWV.mjs} +2 -2
  93. package/dist/esm/chunk-7WPEGMD6.mjs +2 -0
  94. package/dist/esm/chunk-7WPEGMD6.mjs.map +1 -0
  95. package/dist/esm/{chunk-R6QCPXQG.mjs → chunk-B373VRCY.mjs} +2 -2
  96. package/dist/esm/chunk-B373VRCY.mjs.map +1 -0
  97. package/dist/esm/{chunk-ZD2TY5N3.mjs → chunk-BE3OXYYX.mjs} +2 -2
  98. package/dist/esm/{chunk-ZD2TY5N3.mjs.map → chunk-BE3OXYYX.mjs.map} +1 -1
  99. package/dist/esm/{chunk-A3VO773Q.mjs → chunk-BRGQM252.mjs} +2 -2
  100. package/dist/esm/{chunk-ZVYTHOS5.mjs → chunk-CICJRLYU.mjs} +2 -2
  101. package/dist/esm/{chunk-RXHER6EA.mjs → chunk-CZOZTNXJ.mjs} +2 -2
  102. package/dist/esm/chunk-DC5IVW4W.mjs +2 -0
  103. package/dist/esm/chunk-DC5IVW4W.mjs.map +1 -0
  104. package/dist/esm/chunk-DCVGWCZD.mjs +2 -0
  105. package/dist/esm/chunk-DCVGWCZD.mjs.map +1 -0
  106. package/dist/esm/chunk-DFRHNDOS.mjs +2 -0
  107. package/dist/esm/chunk-DFRHNDOS.mjs.map +1 -0
  108. package/dist/esm/{chunk-ERLDXTIY.mjs → chunk-DGH7NXHM.mjs} +2 -2
  109. package/dist/esm/{chunk-ZOY6N6UM.mjs → chunk-DH32UXHB.mjs} +2 -2
  110. package/dist/esm/chunk-EXXY72UN.mjs +2 -0
  111. package/dist/esm/{chunk-AIPHJFJL.mjs → chunk-F2GWK4YJ.mjs} +2 -2
  112. package/dist/esm/{chunk-LS3IDL2N.mjs → chunk-FU65NEDT.mjs} +2 -2
  113. package/dist/esm/{chunk-HHWJHOFZ.mjs → chunk-H3NZHL45.mjs} +2 -2
  114. package/dist/esm/chunk-HEYMZZRE.mjs +2 -0
  115. package/dist/esm/chunk-HEYMZZRE.mjs.map +1 -0
  116. package/dist/esm/chunk-KIMU5PYJ.mjs +2 -0
  117. package/dist/esm/chunk-KIMU5PYJ.mjs.map +1 -0
  118. package/dist/esm/{chunk-TTY5GFMN.mjs → chunk-L5C44K6H.mjs} +2 -2
  119. package/dist/esm/{chunk-KBC4ECVP.mjs → chunk-M7W6FZ5Z.mjs} +2 -2
  120. package/dist/esm/chunk-NDXMDJV4.mjs +2 -0
  121. package/dist/esm/{chunk-X5YB74NB.mjs.map → chunk-NDXMDJV4.mjs.map} +1 -1
  122. package/dist/esm/{chunk-AEGA5N2W.mjs → chunk-P5CIZZDK.mjs} +2 -2
  123. package/dist/esm/chunk-SZYA6IG4.mjs +4 -0
  124. package/dist/esm/chunk-SZYA6IG4.mjs.map +1 -0
  125. package/dist/esm/{chunk-HWMMVLTP.mjs → chunk-TORMKDQG.mjs} +2 -2
  126. package/dist/esm/{chunk-RIINVEZA.mjs → chunk-UQKQH5C7.mjs} +2 -2
  127. package/dist/esm/chunk-URNCRLHO.mjs +4 -0
  128. package/dist/esm/chunk-URNCRLHO.mjs.map +1 -0
  129. package/dist/esm/chunk-V5IPL4SJ.mjs +2 -0
  130. package/dist/esm/chunk-V5IPL4SJ.mjs.map +1 -0
  131. package/dist/esm/chunk-YVRPD7Z6.mjs +2 -0
  132. package/dist/esm/{chunk-JLZGYZBX.mjs.map → chunk-YVRPD7Z6.mjs.map} +1 -1
  133. package/dist/esm/chunk-ZKOF4KST.mjs +7 -0
  134. package/dist/esm/chunk-ZKOF4KST.mjs.map +1 -0
  135. package/dist/esm/cli/index.mjs +1 -1
  136. package/dist/esm/cli/localNode.mjs +1 -1
  137. package/dist/esm/client/core.mjs +1 -1
  138. package/dist/esm/client/get.d.mts +5 -1
  139. package/dist/esm/client/get.mjs +1 -1
  140. package/dist/esm/client/index.d.mts +1 -1
  141. package/dist/esm/client/index.mjs +1 -1
  142. package/dist/esm/client/post.mjs +1 -1
  143. package/dist/esm/core/account/index.mjs +1 -1
  144. package/dist/esm/core/account/utils/address.mjs +1 -1
  145. package/dist/esm/core/account/utils/index.mjs +1 -1
  146. package/dist/esm/core/accountAddress.d.mts +18 -0
  147. package/dist/esm/core/accountAddress.mjs +1 -1
  148. package/dist/esm/core/authenticationKey.d.mts +3 -1
  149. package/dist/esm/core/authenticationKey.mjs +1 -1
  150. package/dist/esm/core/crypto/abstraction.d.mts +4 -1
  151. package/dist/esm/core/crypto/abstraction.mjs +1 -1
  152. package/dist/esm/core/crypto/ed25519.d.mts +19 -2
  153. package/dist/esm/core/crypto/ed25519.mjs +1 -1
  154. package/dist/esm/core/crypto/ephemeral.d.mts +8 -1
  155. package/dist/esm/core/crypto/ephemeral.mjs +1 -1
  156. package/dist/esm/core/crypto/federatedKeyless.d.mts +11 -87
  157. package/dist/esm/core/crypto/federatedKeyless.mjs +1 -1
  158. package/dist/esm/core/crypto/index.d.mts +8 -6
  159. package/dist/esm/core/crypto/index.mjs +1 -1
  160. package/dist/esm/core/crypto/keyless.d.mts +13 -586
  161. package/dist/esm/core/crypto/keyless.mjs +1 -1
  162. package/dist/esm/core/crypto/multiEd25519.d.mts +14 -4
  163. package/dist/esm/core/crypto/multiEd25519.mjs +1 -1
  164. package/dist/esm/core/crypto/multiKey.d.mts +42 -3
  165. package/dist/esm/core/crypto/multiKey.mjs +1 -1
  166. package/dist/esm/core/crypto/privateKey.d.mts +3 -1
  167. package/dist/esm/core/crypto/privateKey.mjs +1 -1
  168. package/dist/esm/core/crypto/proof.mjs +1 -1
  169. package/dist/esm/core/crypto/publicKey.d.mts +3 -1
  170. package/dist/esm/core/crypto/publicKey.mjs +1 -1
  171. package/dist/esm/core/crypto/secp256k1.d.mts +27 -3
  172. package/dist/esm/core/crypto/secp256k1.mjs +1 -1
  173. package/dist/esm/core/crypto/signature.mjs +1 -1
  174. package/dist/esm/core/crypto/singleKey.d.mts +28 -3
  175. package/dist/esm/core/crypto/singleKey.mjs +1 -1
  176. package/dist/esm/core/index.d.mts +8 -6
  177. package/dist/esm/core/index.mjs +1 -1
  178. package/dist/esm/errors/index.d.mts +10 -2
  179. package/dist/esm/errors/index.mjs +1 -1
  180. package/dist/esm/federatedKeyless-DVfVovSR.d.mts +875 -0
  181. package/dist/esm/index.d.mts +10 -9
  182. package/dist/esm/index.mjs +1 -1
  183. package/dist/esm/internal/abstraction.d.mts +9 -9
  184. package/dist/esm/internal/abstraction.mjs +1 -1
  185. package/dist/esm/internal/account.d.mts +51 -8
  186. package/dist/esm/internal/account.mjs +1 -1
  187. package/dist/esm/internal/ans.d.mts +14 -14
  188. package/dist/esm/internal/ans.mjs +1 -1
  189. package/dist/esm/internal/coin.d.mts +11 -11
  190. package/dist/esm/internal/coin.mjs +1 -1
  191. package/dist/esm/internal/digitalAsset.d.mts +3 -3
  192. package/dist/esm/internal/digitalAsset.mjs +1 -1
  193. package/dist/esm/internal/event.mjs +1 -1
  194. package/dist/esm/internal/experimental.d.mts +7 -7
  195. package/dist/esm/internal/experimental.mjs +1 -1
  196. package/dist/esm/internal/faucet.mjs +1 -1
  197. package/dist/esm/internal/fungibleAsset.d.mts +2 -2
  198. package/dist/esm/internal/fungibleAsset.mjs +1 -1
  199. package/dist/esm/internal/general.mjs +1 -1
  200. package/dist/esm/internal/keyless.d.mts +9 -8
  201. package/dist/esm/internal/keyless.mjs +1 -1
  202. package/dist/esm/internal/object.mjs +1 -1
  203. package/dist/esm/internal/staking.mjs +1 -1
  204. package/dist/esm/internal/table.mjs +1 -1
  205. package/dist/esm/internal/transaction.mjs +1 -1
  206. package/dist/esm/internal/transactionSubmission.d.mts +6 -6
  207. package/dist/esm/internal/transactionSubmission.mjs +1 -1
  208. package/dist/esm/internal/utils/index.d.mts +1 -1
  209. package/dist/esm/internal/utils/index.mjs +1 -1
  210. package/dist/esm/internal/utils/utils.d.mts +2 -19
  211. package/dist/esm/internal/utils/utils.mjs +1 -1
  212. package/dist/esm/internal/view.d.mts +7 -7
  213. package/dist/esm/internal/view.mjs +1 -1
  214. package/dist/esm/{publicKey-BMtGNNLg.d.mts → publicKey-pDHBAZlT.d.mts} +27 -1
  215. package/dist/esm/transactions/authenticator/account.d.mts +3 -1
  216. package/dist/esm/transactions/authenticator/account.mjs +1 -1
  217. package/dist/esm/transactions/authenticator/index.d.mts +3 -1
  218. package/dist/esm/transactions/authenticator/index.mjs +1 -1
  219. package/dist/esm/transactions/authenticator/transaction.d.mts +4 -2
  220. package/dist/esm/transactions/authenticator/transaction.mjs +1 -1
  221. package/dist/esm/transactions/index.d.mts +3 -3
  222. package/dist/esm/transactions/index.mjs +1 -1
  223. package/dist/esm/transactions/instances/chainId.mjs +1 -1
  224. package/dist/esm/transactions/instances/identifier.mjs +1 -1
  225. package/dist/esm/transactions/instances/index.d.mts +4 -2
  226. package/dist/esm/transactions/instances/index.mjs +1 -1
  227. package/dist/esm/transactions/instances/moduleId.mjs +1 -1
  228. package/dist/esm/transactions/instances/multiAgentTransaction.mjs +1 -1
  229. package/dist/esm/transactions/instances/rawTransaction.mjs +1 -1
  230. package/dist/esm/transactions/instances/rotationProofChallenge.d.mts +3 -1
  231. package/dist/esm/transactions/instances/rotationProofChallenge.mjs +1 -1
  232. package/dist/esm/transactions/instances/signedTransaction.d.mts +3 -1
  233. package/dist/esm/transactions/instances/signedTransaction.mjs +1 -1
  234. package/dist/esm/transactions/instances/simpleTransaction.mjs +1 -1
  235. package/dist/esm/transactions/instances/transactionPayload.d.mts +1 -1
  236. package/dist/esm/transactions/instances/transactionPayload.mjs +1 -1
  237. package/dist/esm/transactions/management/accountSequenceNumber.d.mts +2 -2
  238. package/dist/esm/transactions/management/accountSequenceNumber.mjs +1 -1
  239. package/dist/esm/transactions/management/index.d.mts +2 -2
  240. package/dist/esm/transactions/management/index.mjs +1 -1
  241. package/dist/esm/transactions/management/transactionWorker.d.mts +3 -3
  242. package/dist/esm/transactions/management/transactionWorker.mjs +1 -1
  243. package/dist/esm/transactions/scriptComposer/index.d.mts +7 -7
  244. package/dist/esm/transactions/scriptComposer/index.mjs +1 -1
  245. package/dist/esm/transactions/transactionBuilder/helpers.d.mts +8 -8
  246. package/dist/esm/transactions/transactionBuilder/helpers.mjs +1 -1
  247. package/dist/esm/transactions/transactionBuilder/index.d.mts +7 -7
  248. package/dist/esm/transactions/transactionBuilder/index.mjs +1 -1
  249. package/dist/esm/transactions/transactionBuilder/remoteAbi.d.mts +5 -5
  250. package/dist/esm/transactions/transactionBuilder/remoteAbi.mjs +1 -1
  251. package/dist/esm/transactions/transactionBuilder/signingMessage.d.mts +7 -7
  252. package/dist/esm/transactions/transactionBuilder/signingMessage.mjs +1 -1
  253. package/dist/esm/transactions/transactionBuilder/transactionBuilder.d.mts +8 -8
  254. package/dist/esm/transactions/transactionBuilder/transactionBuilder.mjs +1 -1
  255. package/dist/esm/transactions/typeTag/index.mjs +1 -1
  256. package/dist/esm/transactions/typeTag/parser.mjs +1 -1
  257. package/dist/esm/transactions/types.d.mts +6 -6
  258. package/dist/esm/types/index.d.mts +1 -1
  259. package/dist/esm/types/index.mjs +1 -1
  260. package/dist/esm/types/indexer.d.mts +1 -1
  261. package/dist/esm/types/keyless.d.mts +1 -1
  262. package/dist/esm/types/types.d.mts +10 -1
  263. package/dist/esm/types/types.mjs +1 -1
  264. package/dist/esm/utils/helpers.d.mts +28 -1
  265. package/dist/esm/utils/helpers.mjs +1 -1
  266. package/dist/esm/utils/index.d.mts +3 -1
  267. package/dist/esm/utils/index.mjs +1 -1
  268. package/dist/esm/utils/normalizeBundle.mjs +1 -1
  269. package/dist/esm/version.d.mts +1 -1
  270. package/dist/esm/version.mjs +1 -1
  271. package/package.json +10 -4
  272. package/src/account/AbstractKeylessAccount.ts +33 -49
  273. package/src/account/Account.ts +20 -0
  274. package/src/account/Ed25519Account.ts +26 -1
  275. package/src/account/MultiEd25519Account.ts +28 -1
  276. package/src/account/MultiKeyAccount.ts +25 -16
  277. package/src/account/SingleKeyAccount.ts +35 -1
  278. package/src/api/account.ts +84 -4
  279. package/src/cli/localNode.ts +6 -15
  280. package/src/client/get.ts +45 -18
  281. package/src/core/accountAddress.ts +25 -0
  282. package/src/core/crypto/abstraction.ts +6 -1
  283. package/src/core/crypto/ed25519.ts +19 -1
  284. package/src/core/crypto/ephemeral.ts +9 -0
  285. package/src/core/crypto/federatedKeyless.ts +46 -4
  286. package/src/core/crypto/index.ts +4 -3
  287. package/src/core/crypto/keyless.ts +610 -17
  288. package/src/core/crypto/multiEd25519.ts +11 -3
  289. package/src/core/crypto/multiKey.ts +86 -5
  290. package/src/core/crypto/publicKey.ts +28 -0
  291. package/src/core/crypto/secp256k1.ts +25 -2
  292. package/src/core/crypto/singleKey.ts +41 -6
  293. package/src/errors/index.ts +50 -0
  294. package/src/internal/account.ts +84 -7
  295. package/src/internal/move/jwks/build/jwk/BuildInfo.yaml +56 -0
  296. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/account.mv +0 -0
  297. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/aggregator.mv +0 -0
  298. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/aggregator_factory.mv +0 -0
  299. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/aggregator_v2.mv +0 -0
  300. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/aptos_account.mv +0 -0
  301. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/aptos_coin.mv +0 -0
  302. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/aptos_governance.mv +0 -0
  303. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/block.mv +0 -0
  304. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/chain_id.mv +0 -0
  305. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/chain_status.mv +0 -0
  306. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/code.mv +0 -0
  307. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/coin.mv +0 -0
  308. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/config_buffer.mv +0 -0
  309. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/consensus_config.mv +0 -0
  310. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/create_signer.mv +0 -0
  311. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/delegation_pool.mv +0 -0
  312. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/dispatchable_fungible_asset.mv +0 -0
  313. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/dkg.mv +0 -0
  314. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/event.mv +0 -0
  315. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/execution_config.mv +0 -0
  316. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/function_info.mv +0 -0
  317. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/fungible_asset.mv +0 -0
  318. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/gas_schedule.mv +0 -0
  319. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/genesis.mv +0 -0
  320. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/governance_proposal.mv +0 -0
  321. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/guid.mv +0 -0
  322. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/jwk_consensus_config.mv +0 -0
  323. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/jwks.mv +0 -0
  324. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/keyless_account.mv +0 -0
  325. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/managed_coin.mv +0 -0
  326. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/multisig_account.mv +0 -0
  327. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/object.mv +0 -0
  328. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/object_code_deployment.mv +0 -0
  329. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/optional_aggregator.mv +0 -0
  330. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/primary_fungible_store.mv +0 -0
  331. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/randomness.mv +0 -0
  332. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/randomness_api_v0_config.mv +0 -0
  333. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/randomness_config.mv +0 -0
  334. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/randomness_config_seqnum.mv +0 -0
  335. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/reconfiguration.mv +0 -0
  336. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/reconfiguration_state.mv +0 -0
  337. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/reconfiguration_with_dkg.mv +0 -0
  338. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/resource_account.mv +0 -0
  339. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/stake.mv +0 -0
  340. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/staking_config.mv +0 -0
  341. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/staking_contract.mv +0 -0
  342. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/staking_proxy.mv +0 -0
  343. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/state_storage.mv +0 -0
  344. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/storage_gas.mv +0 -0
  345. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/system_addresses.mv +0 -0
  346. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/timestamp.mv +0 -0
  347. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/transaction_context.mv +0 -0
  348. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/transaction_fee.mv +0 -0
  349. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/transaction_validation.mv +0 -0
  350. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/util.mv +0 -0
  351. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/validator_consensus_info.mv +0 -0
  352. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/version.mv +0 -0
  353. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/vesting.mv +0 -0
  354. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosFramework/voting.mv +0 -0
  355. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/any.mv +0 -0
  356. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/aptos_hash.mv +0 -0
  357. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/big_vector.mv +0 -0
  358. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/bls12381.mv +0 -0
  359. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/bls12381_algebra.mv +0 -0
  360. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/bn254_algebra.mv +0 -0
  361. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/capability.mv +0 -0
  362. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/comparator.mv +0 -0
  363. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/copyable_any.mv +0 -0
  364. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/crypto_algebra.mv +0 -0
  365. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/debug.mv +0 -0
  366. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/ed25519.mv +0 -0
  367. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/fixed_point64.mv +0 -0
  368. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/from_bcs.mv +0 -0
  369. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/math128.mv +0 -0
  370. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/math64.mv +0 -0
  371. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/math_fixed.mv +0 -0
  372. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/math_fixed64.mv +0 -0
  373. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/multi_ed25519.mv +0 -0
  374. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/pool_u64.mv +0 -0
  375. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/pool_u64_unbound.mv +0 -0
  376. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/ristretto255.mv +0 -0
  377. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/ristretto255_bulletproofs.mv +0 -0
  378. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/ristretto255_elgamal.mv +0 -0
  379. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/ristretto255_pedersen.mv +0 -0
  380. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/secp256k1.mv +0 -0
  381. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/simple_map.mv +0 -0
  382. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/smart_table.mv +0 -0
  383. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/smart_vector.mv +0 -0
  384. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/string_utils.mv +0 -0
  385. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/table.mv +0 -0
  386. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/table_with_length.mv +0 -0
  387. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/AptosStdlib/type_info.mv +0 -0
  388. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/acl.mv +0 -0
  389. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/bcs.mv +0 -0
  390. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/bit_vector.mv +0 -0
  391. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/error.mv +0 -0
  392. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/features.mv +0 -0
  393. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/fixed_point32.mv +0 -0
  394. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/hash.mv +0 -0
  395. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/option.mv +0 -0
  396. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/signer.mv +0 -0
  397. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/string.mv +0 -0
  398. package/src/internal/move/jwks/build/jwk/bytecode_modules/dependencies/MoveStdlib/vector.mv +0 -0
  399. package/src/internal/move/jwks/build/jwk/bytecode_scripts/main.mv +0 -0
  400. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/account.mvsm +0 -0
  401. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/aggregator.mvsm +0 -0
  402. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/aggregator_factory.mvsm +0 -0
  403. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/aggregator_v2.mvsm +0 -0
  404. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/aptos_account.mvsm +0 -0
  405. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/aptos_coin.mvsm +0 -0
  406. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/aptos_governance.mvsm +0 -0
  407. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/block.mvsm +0 -0
  408. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/chain_id.mvsm +0 -0
  409. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/chain_status.mvsm +0 -0
  410. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/code.mvsm +0 -0
  411. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/coin.mvsm +0 -0
  412. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/config_buffer.mvsm +0 -0
  413. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/consensus_config.mvsm +0 -0
  414. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/create_signer.mvsm +0 -0
  415. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/delegation_pool.mvsm +0 -0
  416. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/dispatchable_fungible_asset.mvsm +0 -0
  417. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/dkg.mvsm +0 -0
  418. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/event.mvsm +0 -0
  419. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/execution_config.mvsm +0 -0
  420. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/function_info.mvsm +0 -0
  421. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/fungible_asset.mvsm +0 -0
  422. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/gas_schedule.mvsm +0 -0
  423. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/genesis.mvsm +0 -0
  424. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/governance_proposal.mvsm +0 -0
  425. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/guid.mvsm +0 -0
  426. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/jwk_consensus_config.mvsm +0 -0
  427. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/jwks.mvsm +0 -0
  428. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/keyless_account.mvsm +0 -0
  429. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/managed_coin.mvsm +0 -0
  430. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/multisig_account.mvsm +0 -0
  431. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/object.mvsm +0 -0
  432. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/object_code_deployment.mvsm +0 -0
  433. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/optional_aggregator.mvsm +0 -0
  434. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/primary_fungible_store.mvsm +0 -0
  435. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/randomness.mvsm +0 -0
  436. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/randomness_api_v0_config.mvsm +0 -0
  437. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/randomness_config.mvsm +0 -0
  438. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/randomness_config_seqnum.mvsm +0 -0
  439. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/reconfiguration.mvsm +0 -0
  440. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/reconfiguration_state.mvsm +0 -0
  441. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/reconfiguration_with_dkg.mvsm +0 -0
  442. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/resource_account.mvsm +0 -0
  443. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/stake.mvsm +0 -0
  444. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/staking_config.mvsm +0 -0
  445. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/staking_contract.mvsm +0 -0
  446. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/staking_proxy.mvsm +0 -0
  447. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/state_storage.mvsm +0 -0
  448. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/storage_gas.mvsm +0 -0
  449. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/system_addresses.mvsm +0 -0
  450. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/timestamp.mvsm +0 -0
  451. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/transaction_context.mvsm +0 -0
  452. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/transaction_fee.mvsm +0 -0
  453. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/transaction_validation.mvsm +0 -0
  454. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/util.mvsm +0 -0
  455. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/validator_consensus_info.mvsm +0 -0
  456. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/version.mvsm +0 -0
  457. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/vesting.mvsm +0 -0
  458. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosFramework/voting.mvsm +0 -0
  459. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/any.mvsm +0 -0
  460. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/aptos_hash.mvsm +0 -0
  461. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/big_vector.mvsm +0 -0
  462. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/bls12381.mvsm +0 -0
  463. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/bls12381_algebra.mvsm +0 -0
  464. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/bn254_algebra.mvsm +0 -0
  465. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/capability.mvsm +0 -0
  466. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/comparator.mvsm +0 -0
  467. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/copyable_any.mvsm +0 -0
  468. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/crypto_algebra.mvsm +0 -0
  469. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/debug.mvsm +0 -0
  470. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/ed25519.mvsm +0 -0
  471. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/fixed_point64.mvsm +0 -0
  472. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/from_bcs.mvsm +0 -0
  473. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/math128.mvsm +0 -0
  474. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/math64.mvsm +0 -0
  475. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/math_fixed.mvsm +0 -0
  476. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/math_fixed64.mvsm +0 -0
  477. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/multi_ed25519.mvsm +0 -0
  478. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/pool_u64.mvsm +0 -0
  479. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/pool_u64_unbound.mvsm +0 -0
  480. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/ristretto255.mvsm +0 -0
  481. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/ristretto255_bulletproofs.mvsm +0 -0
  482. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/ristretto255_elgamal.mvsm +0 -0
  483. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/ristretto255_pedersen.mvsm +0 -0
  484. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/secp256k1.mvsm +0 -0
  485. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/simple_map.mvsm +0 -0
  486. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/smart_table.mvsm +0 -0
  487. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/smart_vector.mvsm +0 -0
  488. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/string_utils.mvsm +0 -0
  489. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/table.mvsm +0 -0
  490. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/table_with_length.mvsm +0 -0
  491. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/AptosStdlib/type_info.mvsm +0 -0
  492. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/acl.mvsm +0 -0
  493. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/bcs.mvsm +0 -0
  494. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/bit_vector.mvsm +0 -0
  495. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/error.mvsm +0 -0
  496. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/features.mvsm +0 -0
  497. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/fixed_point32.mvsm +0 -0
  498. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/hash.mvsm +0 -0
  499. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/option.mvsm +0 -0
  500. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/signer.mvsm +0 -0
  501. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/string.mvsm +0 -0
  502. package/src/internal/move/jwks/build/jwk/source_maps/dependencies/MoveStdlib/vector.mvsm +0 -0
  503. package/src/internal/move/jwks/build/jwk/source_maps/main.mvsm +0 -0
  504. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/account.move +1533 -0
  505. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aggregator.move +48 -0
  506. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aggregator_factory.move +66 -0
  507. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aggregator_v2.move +280 -0
  508. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aptos_account.move +443 -0
  509. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aptos_coin.move +204 -0
  510. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/aptos_governance.move +1387 -0
  511. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/block.move +394 -0
  512. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/chain_id.move +41 -0
  513. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/chain_status.move +48 -0
  514. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/code.move +367 -0
  515. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/coin.move +2214 -0
  516. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/config_buffer.move +101 -0
  517. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/consensus_config.move +77 -0
  518. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/create_signer.move +21 -0
  519. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/delegation_pool.move +5568 -0
  520. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/dispatchable_fungible_asset.move +228 -0
  521. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/dkg.move +121 -0
  522. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/event.move +92 -0
  523. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/execution_config.move +66 -0
  524. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/function_info.move +100 -0
  525. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/fungible_asset.move +1566 -0
  526. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/gas_schedule.move +176 -0
  527. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/genesis.move +550 -0
  528. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/governance_proposal.move +23 -0
  529. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/guid.move +68 -0
  530. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/jwk_consensus_config.move +148 -0
  531. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/jwks.move +817 -0
  532. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/keyless_account.move +312 -0
  533. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/managed_coin.move +205 -0
  534. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/multisig_account.move +2477 -0
  535. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/object.move +1073 -0
  536. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/object_code_deployment.move +147 -0
  537. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/optional_aggregator.move +295 -0
  538. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/primary_fungible_store.move +405 -0
  539. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/randomness.move +574 -0
  540. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/randomness_api_v0_config.move +57 -0
  541. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/randomness_config.move +153 -0
  542. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/randomness_config_seqnum.move +49 -0
  543. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/reconfiguration.move +237 -0
  544. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/reconfiguration_state.move +132 -0
  545. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/reconfiguration_with_dkg.move +69 -0
  546. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/resource_account.move +267 -0
  547. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/stake.move +3286 -0
  548. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/staking_config.move +686 -0
  549. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/staking_contract.move +1618 -0
  550. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/staking_proxy.move +228 -0
  551. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/state_storage.move +90 -0
  552. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/storage_gas.move +622 -0
  553. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/system_addresses.move +82 -0
  554. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/timestamp.move +88 -0
  555. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/transaction_context.move +262 -0
  556. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/transaction_fee.move +457 -0
  557. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/transaction_validation.move +501 -0
  558. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/util.move +16 -0
  559. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/validator_consensus_info.move +42 -0
  560. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/version.move +115 -0
  561. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/vesting.move +2183 -0
  562. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosFramework/voting.move +1279 -0
  563. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/any.move +57 -0
  564. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/aptos_hash.move +253 -0
  565. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/big_vector.move +469 -0
  566. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/bls12381.move +985 -0
  567. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/bls12381_algebra.move +802 -0
  568. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/bn254_algebra.move +855 -0
  569. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/capability.move +193 -0
  570. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/comparator.move +173 -0
  571. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/copyable_any.move +45 -0
  572. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/crypto_algebra.move +351 -0
  573. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/debug.move +278 -0
  574. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/ed25519.move +262 -0
  575. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/fixed_point64.move +447 -0
  576. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/from_bcs.move +91 -0
  577. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/math128.move +381 -0
  578. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/math64.move +336 -0
  579. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/math_fixed.move +139 -0
  580. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/math_fixed64.move +142 -0
  581. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/multi_ed25519.move +482 -0
  582. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/pool_u64.move +571 -0
  583. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/pool_u64_unbound.move +270 -0
  584. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/ristretto255.move +1310 -0
  585. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/ristretto255_bulletproofs.move +253 -0
  586. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/ristretto255_elgamal.move +234 -0
  587. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/ristretto255_pedersen.move +158 -0
  588. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/secp256k1.move +114 -0
  589. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/simple_map.move +319 -0
  590. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/smart_table.move +769 -0
  591. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/smart_vector.move +766 -0
  592. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/string_utils.move +148 -0
  593. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/table.move +152 -0
  594. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/table_with_length.move +141 -0
  595. package/src/internal/move/jwks/build/jwk/sources/dependencies/AptosStdlib/type_info.move +351 -0
  596. package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/acl.move +46 -0
  597. package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/bcs.move +27 -0
  598. package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/bit_vector.move +239 -0
  599. package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/error.move +88 -0
  600. package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/features.move +780 -0
  601. package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/fixed_point32.move +295 -0
  602. package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/hash.move +8 -0
  603. package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/option.move +356 -0
  604. package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/signer.move +21 -0
  605. package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/string.move +93 -0
  606. package/src/internal/move/jwks/build/jwk/sources/dependencies/MoveStdlib/vector.move +669 -0
  607. package/src/internal/move/jwks/build/jwk/sources/main.move +20 -0
  608. package/src/internal/utils/utils.ts +2 -32
  609. package/src/types/keyless.ts +1 -1
  610. package/src/types/types.ts +10 -0
  611. package/src/utils/helpers.ts +61 -0
  612. package/src/version.ts +1 -1
  613. package/dist/common/chunk-PA2XFIP3.js +0 -4
  614. package/dist/common/chunk-PA2XFIP3.js.map +0 -1
  615. package/dist/esm/chunk-2N4EPY2J.mjs +0 -2
  616. package/dist/esm/chunk-2N4EPY2J.mjs.map +0 -1
  617. package/dist/esm/chunk-2OBSQ2FK.mjs +0 -2
  618. package/dist/esm/chunk-2OBSQ2FK.mjs.map +0 -1
  619. package/dist/esm/chunk-2V636AYW.mjs +0 -2
  620. package/dist/esm/chunk-36H47QOE.mjs +0 -2
  621. package/dist/esm/chunk-36H47QOE.mjs.map +0 -1
  622. package/dist/esm/chunk-3DHWWNJ3.mjs +0 -2
  623. package/dist/esm/chunk-3DHWWNJ3.mjs.map +0 -1
  624. package/dist/esm/chunk-4KKJ36IO.mjs +0 -2
  625. package/dist/esm/chunk-4KKJ36IO.mjs.map +0 -1
  626. package/dist/esm/chunk-4NMDYPUD.mjs +0 -1
  627. package/dist/esm/chunk-4NMDYPUD.mjs.map +0 -1
  628. package/dist/esm/chunk-4PW3JKQZ.mjs +0 -2
  629. package/dist/esm/chunk-4PW3JKQZ.mjs.map +0 -1
  630. package/dist/esm/chunk-4QK4SKAT.mjs +0 -2
  631. package/dist/esm/chunk-4QK4SKAT.mjs.map +0 -1
  632. package/dist/esm/chunk-4SWK3JHQ.mjs +0 -2
  633. package/dist/esm/chunk-4SWK3JHQ.mjs.map +0 -1
  634. package/dist/esm/chunk-553ZRNUL.mjs +0 -2
  635. package/dist/esm/chunk-553ZRNUL.mjs.map +0 -1
  636. package/dist/esm/chunk-5AD7ZF6G.mjs +0 -2
  637. package/dist/esm/chunk-5AD7ZF6G.mjs.map +0 -1
  638. package/dist/esm/chunk-5MVHOQKD.mjs +0 -2
  639. package/dist/esm/chunk-5MVHOQKD.mjs.map +0 -1
  640. package/dist/esm/chunk-5W5XV63W.mjs +0 -2
  641. package/dist/esm/chunk-5W5XV63W.mjs.map +0 -1
  642. package/dist/esm/chunk-5WWU3WSU.mjs +0 -2
  643. package/dist/esm/chunk-5WWU3WSU.mjs.map +0 -1
  644. package/dist/esm/chunk-6FQDCTMA.mjs +0 -2
  645. package/dist/esm/chunk-6FQDCTMA.mjs.map +0 -1
  646. package/dist/esm/chunk-6IULVNLQ.mjs +0 -2
  647. package/dist/esm/chunk-6IULVNLQ.mjs.map +0 -1
  648. package/dist/esm/chunk-6KI24ZRR.mjs +0 -2
  649. package/dist/esm/chunk-6KI24ZRR.mjs.map +0 -1
  650. package/dist/esm/chunk-6KZT3KFZ.mjs +0 -2
  651. package/dist/esm/chunk-6KZT3KFZ.mjs.map +0 -1
  652. package/dist/esm/chunk-6VGLRQBT.mjs +0 -2
  653. package/dist/esm/chunk-6VGLRQBT.mjs.map +0 -1
  654. package/dist/esm/chunk-6YPM7TK2.mjs +0 -2
  655. package/dist/esm/chunk-6YPM7TK2.mjs.map +0 -1
  656. package/dist/esm/chunk-7HC33TEX.mjs +0 -2
  657. package/dist/esm/chunk-7HC33TEX.mjs.map +0 -1
  658. package/dist/esm/chunk-7KHKP7DY.mjs +0 -2
  659. package/dist/esm/chunk-7KHKP7DY.mjs.map +0 -1
  660. package/dist/esm/chunk-7OUPEQRN.mjs +0 -2
  661. package/dist/esm/chunk-7OUPEQRN.mjs.map +0 -1
  662. package/dist/esm/chunk-APGCD5FH.mjs +0 -2
  663. package/dist/esm/chunk-APGCD5FH.mjs.map +0 -1
  664. package/dist/esm/chunk-BMPHQ3E7.mjs +0 -2
  665. package/dist/esm/chunk-BSCOVLWS.mjs +0 -1
  666. package/dist/esm/chunk-BSCOVLWS.mjs.map +0 -1
  667. package/dist/esm/chunk-CGTMSLVZ.mjs +0 -2
  668. package/dist/esm/chunk-CGTMSLVZ.mjs.map +0 -1
  669. package/dist/esm/chunk-CU6HQJSE.mjs +0 -2
  670. package/dist/esm/chunk-CU6HQJSE.mjs.map +0 -1
  671. package/dist/esm/chunk-DAR3R4UP.mjs +0 -2
  672. package/dist/esm/chunk-DAR3R4UP.mjs.map +0 -1
  673. package/dist/esm/chunk-DUJJUR7O.mjs +0 -2
  674. package/dist/esm/chunk-DUJJUR7O.mjs.map +0 -1
  675. package/dist/esm/chunk-E7FWVXGX.mjs +0 -1
  676. package/dist/esm/chunk-E7FWVXGX.mjs.map +0 -1
  677. package/dist/esm/chunk-EHTTY7EF.mjs +0 -2
  678. package/dist/esm/chunk-EHTTY7EF.mjs.map +0 -1
  679. package/dist/esm/chunk-FCHN3LT7.mjs +0 -2
  680. package/dist/esm/chunk-FCHN3LT7.mjs.map +0 -1
  681. package/dist/esm/chunk-GFPEB22G.mjs +0 -1
  682. package/dist/esm/chunk-GFPEB22G.mjs.map +0 -1
  683. package/dist/esm/chunk-GJOUTA7U.mjs +0 -2
  684. package/dist/esm/chunk-GJOUTA7U.mjs.map +0 -1
  685. package/dist/esm/chunk-H4YAL2IL.mjs +0 -2
  686. package/dist/esm/chunk-H4YAL2IL.mjs.map +0 -1
  687. package/dist/esm/chunk-HEZ2ZYZA.mjs +0 -1
  688. package/dist/esm/chunk-HEZ2ZYZA.mjs.map +0 -1
  689. package/dist/esm/chunk-HTP5ZVX5.mjs +0 -2
  690. package/dist/esm/chunk-HTP5ZVX5.mjs.map +0 -1
  691. package/dist/esm/chunk-HWNPKEOJ.mjs +0 -2
  692. package/dist/esm/chunk-HWNPKEOJ.mjs.map +0 -1
  693. package/dist/esm/chunk-IHYTP2EW.mjs +0 -1
  694. package/dist/esm/chunk-IHYTP2EW.mjs.map +0 -1
  695. package/dist/esm/chunk-ILUFGYLO.mjs +0 -2
  696. package/dist/esm/chunk-ILUFGYLO.mjs.map +0 -1
  697. package/dist/esm/chunk-IM4O756A.mjs +0 -2
  698. package/dist/esm/chunk-IM4O756A.mjs.map +0 -1
  699. package/dist/esm/chunk-IMYNN4TW.mjs +0 -2
  700. package/dist/esm/chunk-IMYNN4TW.mjs.map +0 -1
  701. package/dist/esm/chunk-JA7CXAVY.mjs +0 -2
  702. package/dist/esm/chunk-JA7CXAVY.mjs.map +0 -1
  703. package/dist/esm/chunk-JBARRS6K.mjs +0 -2
  704. package/dist/esm/chunk-JBARRS6K.mjs.map +0 -1
  705. package/dist/esm/chunk-JLZGYZBX.mjs +0 -2
  706. package/dist/esm/chunk-JNNFNYDO.mjs +0 -2
  707. package/dist/esm/chunk-JNNFNYDO.mjs.map +0 -1
  708. package/dist/esm/chunk-JXHGJ3AA.mjs +0 -2
  709. package/dist/esm/chunk-JXHGJ3AA.mjs.map +0 -1
  710. package/dist/esm/chunk-K4JUKMMY.mjs +0 -2
  711. package/dist/esm/chunk-K4JUKMMY.mjs.map +0 -1
  712. package/dist/esm/chunk-LET633ZK.mjs +0 -2
  713. package/dist/esm/chunk-LET633ZK.mjs.map +0 -1
  714. package/dist/esm/chunk-LQOSHBB7.mjs +0 -4
  715. package/dist/esm/chunk-LQOSHBB7.mjs.map +0 -1
  716. package/dist/esm/chunk-M2GGYCLU.mjs +0 -2
  717. package/dist/esm/chunk-M2GGYCLU.mjs.map +0 -1
  718. package/dist/esm/chunk-MY2BEHYF.mjs +0 -2
  719. package/dist/esm/chunk-MY2BEHYF.mjs.map +0 -1
  720. package/dist/esm/chunk-MZVVBJVV.mjs +0 -2
  721. package/dist/esm/chunk-MZVVBJVV.mjs.map +0 -1
  722. package/dist/esm/chunk-N73S2K2V.mjs +0 -2
  723. package/dist/esm/chunk-N73S2K2V.mjs.map +0 -1
  724. package/dist/esm/chunk-NIDF2LHF.mjs +0 -2
  725. package/dist/esm/chunk-NIDF2LHF.mjs.map +0 -1
  726. package/dist/esm/chunk-OSZWSLJA.mjs +0 -2
  727. package/dist/esm/chunk-OSZWSLJA.mjs.map +0 -1
  728. package/dist/esm/chunk-P265EC4T.mjs +0 -2
  729. package/dist/esm/chunk-P265EC4T.mjs.map +0 -1
  730. package/dist/esm/chunk-PE7KT5ZB.mjs +0 -2
  731. package/dist/esm/chunk-PE7KT5ZB.mjs.map +0 -1
  732. package/dist/esm/chunk-PICZWW35.mjs +0 -2
  733. package/dist/esm/chunk-PICZWW35.mjs.map +0 -1
  734. package/dist/esm/chunk-PWGTRRSJ.mjs +0 -2
  735. package/dist/esm/chunk-PWGTRRSJ.mjs.map +0 -1
  736. package/dist/esm/chunk-Q3AVJUBL.mjs +0 -2
  737. package/dist/esm/chunk-Q3AVJUBL.mjs.map +0 -1
  738. package/dist/esm/chunk-QLEZDMIK.mjs +0 -2
  739. package/dist/esm/chunk-QLEZDMIK.mjs.map +0 -1
  740. package/dist/esm/chunk-QXTQNFEQ.mjs +0 -2
  741. package/dist/esm/chunk-QXTQNFEQ.mjs.map +0 -1
  742. package/dist/esm/chunk-R6I6Z3AA.mjs +0 -2
  743. package/dist/esm/chunk-R6I6Z3AA.mjs.map +0 -1
  744. package/dist/esm/chunk-R6QCPXQG.mjs.map +0 -1
  745. package/dist/esm/chunk-RMMOF53Q.mjs +0 -1
  746. package/dist/esm/chunk-RMMOF53Q.mjs.map +0 -1
  747. package/dist/esm/chunk-SCLWOTHD.mjs +0 -2
  748. package/dist/esm/chunk-SCLWOTHD.mjs.map +0 -1
  749. package/dist/esm/chunk-SZU5Q6CF.mjs +0 -2
  750. package/dist/esm/chunk-SZU5Q6CF.mjs.map +0 -1
  751. package/dist/esm/chunk-T3VLXADE.mjs +0 -2
  752. package/dist/esm/chunk-T3VLXADE.mjs.map +0 -1
  753. package/dist/esm/chunk-TJICLFR2.mjs +0 -2
  754. package/dist/esm/chunk-TJICLFR2.mjs.map +0 -1
  755. package/dist/esm/chunk-U6ZD22B5.mjs +0 -2
  756. package/dist/esm/chunk-U6ZD22B5.mjs.map +0 -1
  757. package/dist/esm/chunk-UOBDL2BZ.mjs +0 -2
  758. package/dist/esm/chunk-UOBDL2BZ.mjs.map +0 -1
  759. package/dist/esm/chunk-UP36QQGG.mjs +0 -4
  760. package/dist/esm/chunk-UP36QQGG.mjs.map +0 -1
  761. package/dist/esm/chunk-VIXTXBYA.mjs +0 -2
  762. package/dist/esm/chunk-VIXTXBYA.mjs.map +0 -1
  763. package/dist/esm/chunk-WYV4W2IM.mjs +0 -2
  764. package/dist/esm/chunk-WYV4W2IM.mjs.map +0 -1
  765. package/dist/esm/chunk-X5ORWYVO.mjs +0 -7
  766. package/dist/esm/chunk-X5ORWYVO.mjs.map +0 -1
  767. package/dist/esm/chunk-X5UJYMJU.mjs +0 -2
  768. package/dist/esm/chunk-X5UJYMJU.mjs.map +0 -1
  769. package/dist/esm/chunk-X5YB74NB.mjs +0 -2
  770. package/dist/esm/chunk-X6H4G6NE.mjs +0 -2
  771. package/dist/esm/chunk-X6H4G6NE.mjs.map +0 -1
  772. package/dist/esm/chunk-XFL3B4WZ.mjs +0 -2
  773. package/dist/esm/chunk-XFL3B4WZ.mjs.map +0 -1
  774. package/dist/esm/chunk-XX4SFNZY.mjs +0 -2
  775. package/dist/esm/chunk-XX4SFNZY.mjs.map +0 -1
  776. package/dist/esm/chunk-YMXJ6GYE.mjs +0 -2
  777. package/dist/esm/chunk-YMXJ6GYE.mjs.map +0 -1
  778. package/dist/esm/chunk-ZJCTELB4.mjs +0 -2
  779. package/dist/esm/chunk-ZJCTELB4.mjs.map +0 -1
  780. /package/dist/esm/{chunk-2P27DDVV.mjs.map → chunk-2DISMLR6.mjs.map} +0 -0
  781. /package/dist/esm/{chunk-ACE3NEV6.mjs.map → chunk-2RBINVFA.mjs.map} +0 -0
  782. /package/dist/esm/{chunk-TKXEVD7A.mjs.map → chunk-4FBUZY6C.mjs.map} +0 -0
  783. /package/dist/esm/{chunk-BMPHQ3E7.mjs.map → chunk-5WNHYEW2.mjs.map} +0 -0
  784. /package/dist/esm/{chunk-2SAOCLIU.mjs.map → chunk-6QJWFV2M.mjs.map} +0 -0
  785. /package/dist/esm/{chunk-PDAWVDI7.mjs.map → chunk-7JRZLDWV.mjs.map} +0 -0
  786. /package/dist/esm/{chunk-A3VO773Q.mjs.map → chunk-BRGQM252.mjs.map} +0 -0
  787. /package/dist/esm/{chunk-ZVYTHOS5.mjs.map → chunk-CICJRLYU.mjs.map} +0 -0
  788. /package/dist/esm/{chunk-RXHER6EA.mjs.map → chunk-CZOZTNXJ.mjs.map} +0 -0
  789. /package/dist/esm/{chunk-ERLDXTIY.mjs.map → chunk-DGH7NXHM.mjs.map} +0 -0
  790. /package/dist/esm/{chunk-ZOY6N6UM.mjs.map → chunk-DH32UXHB.mjs.map} +0 -0
  791. /package/dist/esm/{chunk-2V636AYW.mjs.map → chunk-EXXY72UN.mjs.map} +0 -0
  792. /package/dist/esm/{chunk-AIPHJFJL.mjs.map → chunk-F2GWK4YJ.mjs.map} +0 -0
  793. /package/dist/esm/{chunk-LS3IDL2N.mjs.map → chunk-FU65NEDT.mjs.map} +0 -0
  794. /package/dist/esm/{chunk-HHWJHOFZ.mjs.map → chunk-H3NZHL45.mjs.map} +0 -0
  795. /package/dist/esm/{chunk-TTY5GFMN.mjs.map → chunk-L5C44K6H.mjs.map} +0 -0
  796. /package/dist/esm/{chunk-KBC4ECVP.mjs.map → chunk-M7W6FZ5Z.mjs.map} +0 -0
  797. /package/dist/esm/{chunk-AEGA5N2W.mjs.map → chunk-P5CIZZDK.mjs.map} +0 -0
  798. /package/dist/esm/{chunk-HWMMVLTP.mjs.map → chunk-TORMKDQG.mjs.map} +0 -0
  799. /package/dist/esm/{chunk-RIINVEZA.mjs.map → chunk-UQKQH5C7.mjs.map} +0 -0
@@ -0,0 +1,1310 @@
1
+ /// This module contains functions for Ristretto255 curve arithmetic, assuming addition as the group operation.
2
+ ///
3
+ /// The order of the Ristretto255 elliptic curve group is $\ell = 2^252 + 27742317777372353535851937790883648493$, same
4
+ /// as the order of the prime-order subgroup of Curve25519.
5
+ ///
6
+ /// This module provides two structs for encoding Ristretto elliptic curves to the developer:
7
+ ///
8
+ /// - First, a 32-byte-sized CompressedRistretto struct, which is used to persist points in storage.
9
+ ///
10
+ /// - Second, a larger, in-memory, RistrettoPoint struct, which is decompressable from a CompressedRistretto struct. This
11
+ /// larger struct can be used for fast arithmetic operations (additions, multiplications, etc.). The results can be saved
12
+ /// back into storage by compressing RistrettoPoint structs back to CompressedRistretto structs.
13
+ ///
14
+ /// This module also provides a Scalar struct for persisting scalars in storage and doing fast arithmetic on them.
15
+ ///
16
+ /// One invariant maintained by this module is that all CompressedRistretto structs store a canonically-encoded point,
17
+ /// which can always be decompressed into a valid point on the curve as a RistrettoPoint struct. Unfortunately, due to
18
+ /// limitations in our underlying curve25519-dalek elliptic curve library, this decompression will unnecessarily verify
19
+ /// the validity of the point and thus slightly decrease performance.
20
+ ///
21
+ /// Similarly, all Scalar structs store a canonically-encoded scalar, which can always be safely operated on using
22
+ /// arithmetic operations.
23
+ ///
24
+ /// In the future, we might support additional features:
25
+ ///
26
+ /// * For scalars:
27
+ /// - batch_invert()
28
+ ///
29
+ /// * For points:
30
+ /// - double()
31
+ /// + The challenge is that curve25519-dalek does NOT export double for Ristretto points (nor for Edwards)
32
+ ///
33
+ /// - double_and_compress_batch()
34
+ ///
35
+ /// - fixed-base, variable-time via optional_mixed_multiscalar_mul() in VartimePrecomputedMultiscalarMul
36
+ /// + This would require a storage-friendly RistrettoBasepointTable and an in-memory variant of it too
37
+ /// + Similar to the CompressedRistretto and RistrettoPoint structs in this module
38
+ /// + The challenge is that curve25519-dalek's RistrettoBasepointTable is not serializable
39
+
40
+ module aptos_std::ristretto255 {
41
+ use std::features;
42
+ use std::option::Option;
43
+
44
+ #[test_only]
45
+ use std::option;
46
+
47
+ //
48
+ // Constants
49
+ //
50
+
51
+ /// The order of the Ristretto255 group and its scalar field, in little-endian.
52
+ const ORDER_ELL: vector<u8> = x"edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010";
53
+
54
+ /// `ORDER_ELL` - 1: i.e., the "largest", reduced scalar in the field
55
+ const L_MINUS_ONE: vector<u8> = x"ecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010";
56
+
57
+ /// The maximum size in bytes of a canonically-encoded Scalar is 32 bytes.
58
+ const MAX_SCALAR_NUM_BYTES: u64 = 32u64;
59
+
60
+ /// The maximum size in bits of a canonically-encoded Scalar is 256 bits.
61
+ const MAX_SCALAR_NUM_BITS: u64 = 256u64;
62
+
63
+ /// The maximum size in bytes of a canonically-encoded Ristretto255 point is 32 bytes.
64
+ const MAX_POINT_NUM_BYTES: u64 = 32u64;
65
+
66
+ /// The basepoint (generator) of the Ristretto255 group
67
+ const BASE_POINT: vector<u8> = x"e2f2ae0a6abc4e71a884a961c500515f58e30b6aa582dd8db6a65945e08d2d76";
68
+
69
+ /// The hash of the basepoint of the Ristretto255 group using SHA3_512
70
+ const HASH_BASE_POINT: vector<u8> = x"8c9240b456a9e6dc65c377a1048d745f94a08cdb7f44cbcd7b46f34048871134";
71
+
72
+ //
73
+ // Reasons for error codes
74
+ //
75
+
76
+ /// The number of scalars does not match the number of points.
77
+ const E_DIFFERENT_NUM_POINTS_AND_SCALARS: u64 = 1;
78
+ /// Expected more than zero points as input.
79
+ const E_ZERO_POINTS: u64 = 2;
80
+ /// Expected more than zero scalars as input.
81
+ const E_ZERO_SCALARS: u64 = 3;
82
+ /// Too many points have been created in the current transaction execution.
83
+ const E_TOO_MANY_POINTS_CREATED: u64 = 4;
84
+ /// The native function has not been deployed yet.
85
+ const E_NATIVE_FUN_NOT_AVAILABLE: u64 = 5;
86
+
87
+ //
88
+ // Scalar and point structs
89
+ //
90
+
91
+ /// This struct represents a scalar as a little-endian byte encoding of an integer in $\mathbb{Z}_\ell$, which is
92
+ /// stored in `data`. Here, \ell denotes the order of the scalar field (and the underlying elliptic curve group).
93
+ struct Scalar has copy, store, drop {
94
+ data: vector<u8>
95
+ }
96
+
97
+ /// This struct represents a serialized point on the Ristretto255 curve, in 32 bytes.
98
+ /// This struct can be decompressed from storage into an in-memory RistrettoPoint, on which fast curve arithmetic
99
+ /// can be performed.
100
+ struct CompressedRistretto has copy, store, drop {
101
+ data: vector<u8>
102
+ }
103
+
104
+ /// This struct represents an in-memory Ristretto255 point and supports fast curve arithmetic.
105
+ ///
106
+ /// An important invariant: There will never be two RistrettoPoint's constructed with the same handle. One can have
107
+ /// immutable references to the same RistrettoPoint, of course.
108
+ struct RistrettoPoint has drop {
109
+ handle: u64
110
+ }
111
+
112
+ //
113
+ // Functions for arithmetic on points
114
+ //
115
+
116
+ /// Returns the identity point as a CompressedRistretto.
117
+ public fun point_identity_compressed(): CompressedRistretto {
118
+ CompressedRistretto {
119
+ data: x"0000000000000000000000000000000000000000000000000000000000000000"
120
+ }
121
+ }
122
+
123
+ /// Returns the identity point as a CompressedRistretto.
124
+ public fun point_identity(): RistrettoPoint {
125
+ RistrettoPoint {
126
+ handle: point_identity_internal()
127
+ }
128
+ }
129
+
130
+ /// Returns the basepoint (generator) of the Ristretto255 group as a compressed point
131
+ public fun basepoint_compressed(): CompressedRistretto {
132
+ CompressedRistretto {
133
+ data: BASE_POINT
134
+ }
135
+ }
136
+
137
+ /// Returns the hash-to-point result of serializing the basepoint of the Ristretto255 group.
138
+ /// For use as the random value basepoint in Pedersen commitments
139
+ public fun hash_to_point_base(): RistrettoPoint {
140
+ let comp_res = CompressedRistretto { data: HASH_BASE_POINT };
141
+ point_decompress(&comp_res)
142
+ }
143
+
144
+ /// Returns the basepoint (generator) of the Ristretto255 group
145
+ public fun basepoint(): RistrettoPoint {
146
+ let (handle, _) = point_decompress_internal(BASE_POINT);
147
+
148
+ RistrettoPoint {
149
+ handle
150
+ }
151
+ }
152
+
153
+ /// Multiplies the basepoint (generator) of the Ristretto255 group by a scalar and returns the result.
154
+ /// This call is much faster than `point_mul(&basepoint(), &some_scalar)` because of precomputation tables.
155
+ public fun basepoint_mul(a: &Scalar): RistrettoPoint {
156
+ RistrettoPoint {
157
+ handle: basepoint_mul_internal(a.data)
158
+ }
159
+ }
160
+
161
+ /// Creates a new CompressedRistretto point from a sequence of 32 bytes. If those bytes do not represent a valid
162
+ /// point, returns None.
163
+ public fun new_compressed_point_from_bytes(bytes: vector<u8>): Option<CompressedRistretto> {
164
+ if (point_is_canonical_internal(bytes)) {
165
+ std::option::some(CompressedRistretto {
166
+ data: bytes
167
+ })
168
+ } else {
169
+ std::option::none<CompressedRistretto>()
170
+ }
171
+ }
172
+
173
+ /// Creates a new RistrettoPoint from a sequence of 32 bytes. If those bytes do not represent a valid point,
174
+ /// returns None.
175
+ public fun new_point_from_bytes(bytes: vector<u8>): Option<RistrettoPoint> {
176
+ let (handle, is_canonical) = point_decompress_internal(bytes);
177
+ if (is_canonical) {
178
+ std::option::some(RistrettoPoint { handle })
179
+ } else {
180
+ std::option::none<RistrettoPoint>()
181
+ }
182
+ }
183
+
184
+ /// Given a compressed ristretto point `point`, returns the byte representation of that point
185
+ public fun compressed_point_to_bytes(point: CompressedRistretto): vector<u8> {
186
+ point.data
187
+ }
188
+
189
+ /// DEPRECATED: Use the more clearly-named `new_point_from_sha2_512`
190
+ ///
191
+ /// Hashes the input to a uniformly-at-random RistrettoPoint via SHA512.
192
+ public fun new_point_from_sha512(sha2_512_input: vector<u8>): RistrettoPoint {
193
+ new_point_from_sha2_512(sha2_512_input)
194
+ }
195
+
196
+ /// Hashes the input to a uniformly-at-random RistrettoPoint via SHA2-512.
197
+ public fun new_point_from_sha2_512(sha2_512_input: vector<u8>): RistrettoPoint {
198
+ RistrettoPoint {
199
+ handle: new_point_from_sha512_internal(sha2_512_input)
200
+ }
201
+ }
202
+
203
+ /// Samples a uniformly-at-random RistrettoPoint given a sequence of 64 uniformly-at-random bytes. This function
204
+ /// can be used to build a collision-resistant hash function that maps 64-byte messages to RistrettoPoint's.
205
+ public fun new_point_from_64_uniform_bytes(bytes: vector<u8>): Option<RistrettoPoint> {
206
+ if (std::vector::length(&bytes) == 64) {
207
+ std::option::some(RistrettoPoint {
208
+ handle: new_point_from_64_uniform_bytes_internal(bytes)
209
+ })
210
+ } else {
211
+ std::option::none<RistrettoPoint>()
212
+ }
213
+ }
214
+
215
+ /// Decompresses a CompressedRistretto from storage into a RistrettoPoint which can be used for fast arithmetic.
216
+ public fun point_decompress(point: &CompressedRistretto): RistrettoPoint {
217
+ // NOTE: Our CompressedRistretto invariant assures us that every CompressedRistretto in storage is a valid
218
+ // RistrettoPoint
219
+ let (handle, _) = point_decompress_internal(point.data);
220
+ RistrettoPoint { handle }
221
+ }
222
+
223
+ /// Clones a RistrettoPoint.
224
+ public fun point_clone(point: &RistrettoPoint): RistrettoPoint {
225
+ if(!features::bulletproofs_enabled()) {
226
+ abort(std::error::invalid_state(E_NATIVE_FUN_NOT_AVAILABLE))
227
+ };
228
+
229
+ RistrettoPoint {
230
+ handle: point_clone_internal(point.handle)
231
+ }
232
+ }
233
+
234
+ /// Compresses a RistrettoPoint to a CompressedRistretto which can be put in storage.
235
+ public fun point_compress(point: &RistrettoPoint): CompressedRistretto {
236
+ CompressedRistretto {
237
+ data: point_compress_internal(point)
238
+ }
239
+ }
240
+
241
+ /// Returns the sequence of bytes representin this Ristretto point.
242
+ /// To convert a RistrettoPoint 'p' to bytes, first compress it via `c = point_compress(&p)`, and then call this
243
+ /// function on `c`.
244
+ public fun point_to_bytes(point: &CompressedRistretto): vector<u8> {
245
+ point.data
246
+ }
247
+
248
+ /// Returns a * point.
249
+ public fun point_mul(point: &RistrettoPoint, a: &Scalar): RistrettoPoint {
250
+ RistrettoPoint {
251
+ handle: point_mul_internal(point, a.data, false)
252
+ }
253
+ }
254
+
255
+ /// Sets a *= point and returns 'a'.
256
+ public fun point_mul_assign(point: &mut RistrettoPoint, a: &Scalar): &mut RistrettoPoint {
257
+ point_mul_internal(point, a.data, true);
258
+ point
259
+ }
260
+
261
+ /// Returns (a * a_base + b * base_point), where base_point is the Ristretto basepoint encoded in `BASE_POINT`.
262
+ public fun basepoint_double_mul(a: &Scalar, a_base: &RistrettoPoint, b: &Scalar): RistrettoPoint {
263
+ RistrettoPoint {
264
+ handle: basepoint_double_mul_internal(a.data, a_base, b.data)
265
+ }
266
+ }
267
+
268
+ /// Returns a + b
269
+ public fun point_add(a: &RistrettoPoint, b: &RistrettoPoint): RistrettoPoint {
270
+ RistrettoPoint {
271
+ handle: point_add_internal(a, b, false)
272
+ }
273
+ }
274
+
275
+ /// Sets a += b and returns 'a'.
276
+ public fun point_add_assign(a: &mut RistrettoPoint, b: &RistrettoPoint): &mut RistrettoPoint {
277
+ point_add_internal(a, b, true);
278
+ a
279
+ }
280
+
281
+ /// Returns a - b
282
+ public fun point_sub(a: &RistrettoPoint, b: &RistrettoPoint): RistrettoPoint {
283
+ RistrettoPoint {
284
+ handle: point_sub_internal(a, b, false)
285
+ }
286
+ }
287
+
288
+ /// Sets a -= b and returns 'a'.
289
+ public fun point_sub_assign(a: &mut RistrettoPoint, b: &RistrettoPoint): &mut RistrettoPoint {
290
+ point_sub_internal(a, b, true);
291
+ a
292
+ }
293
+
294
+ /// Returns -a
295
+ public fun point_neg(a: &RistrettoPoint): RistrettoPoint {
296
+ RistrettoPoint {
297
+ handle: point_neg_internal(a, false)
298
+ }
299
+ }
300
+
301
+ /// Sets a = -a, and returns 'a'.
302
+ public fun point_neg_assign(a: &mut RistrettoPoint): &mut RistrettoPoint {
303
+ point_neg_internal(a, true);
304
+ a
305
+ }
306
+
307
+ /// Returns true if the two RistrettoPoints are the same points on the elliptic curve.
308
+ native public fun point_equals(g: &RistrettoPoint, h: &RistrettoPoint): bool;
309
+
310
+ /// Computes a double-scalar multiplication, returning a_1 p_1 + a_2 p_2
311
+ /// This function is much faster than computing each a_i p_i using `point_mul` and adding up the results using `point_add`.
312
+ public fun double_scalar_mul(scalar1: &Scalar, point1: &RistrettoPoint, scalar2: &Scalar, point2: &RistrettoPoint): RistrettoPoint {
313
+ if(!features::bulletproofs_enabled()) {
314
+ abort(std::error::invalid_state(E_NATIVE_FUN_NOT_AVAILABLE))
315
+ };
316
+
317
+ RistrettoPoint {
318
+ handle: double_scalar_mul_internal(point1.handle, point2.handle, scalar1.data, scalar2.data)
319
+ }
320
+ }
321
+
322
+ /// Computes a multi-scalar multiplication, returning a_1 p_1 + a_2 p_2 + ... + a_n p_n.
323
+ /// This function is much faster than computing each a_i p_i using `point_mul` and adding up the results using `point_add`.
324
+ public fun multi_scalar_mul(points: &vector<RistrettoPoint>, scalars: &vector<Scalar>): RistrettoPoint {
325
+ assert!(!std::vector::is_empty(points), std::error::invalid_argument(E_ZERO_POINTS));
326
+ assert!(!std::vector::is_empty(scalars), std::error::invalid_argument(E_ZERO_SCALARS));
327
+ assert!(std::vector::length(points) == std::vector::length(scalars), std::error::invalid_argument(E_DIFFERENT_NUM_POINTS_AND_SCALARS));
328
+
329
+ RistrettoPoint {
330
+ handle: multi_scalar_mul_internal<RistrettoPoint, Scalar>(points, scalars)
331
+ }
332
+ }
333
+
334
+ //
335
+ // Functions for arithmetic on Scalars
336
+ //
337
+
338
+ /// Given a sequence of 32 bytes, checks if they canonically-encode a Scalar and return it.
339
+ /// Otherwise, returns None.
340
+ public fun new_scalar_from_bytes(bytes: vector<u8>): Option<Scalar> {
341
+ if (scalar_is_canonical_internal(bytes)) {
342
+ std::option::some(Scalar {
343
+ data: bytes
344
+ })
345
+ } else {
346
+ std::option::none<Scalar>()
347
+ }
348
+ }
349
+
350
+ /// DEPRECATED: Use the more clearly-named `new_scalar_from_sha2_512`
351
+ ///
352
+ /// Hashes the input to a uniformly-at-random Scalar via SHA2-512
353
+ public fun new_scalar_from_sha512(sha2_512_input: vector<u8>): Scalar {
354
+ new_scalar_from_sha2_512(sha2_512_input)
355
+ }
356
+
357
+ /// Hashes the input to a uniformly-at-random Scalar via SHA2-512
358
+ public fun new_scalar_from_sha2_512(sha2_512_input: vector<u8>): Scalar {
359
+ Scalar {
360
+ data: scalar_from_sha512_internal(sha2_512_input)
361
+ }
362
+ }
363
+
364
+ /// Creates a Scalar from an u8.
365
+ public fun new_scalar_from_u8(byte: u8): Scalar {
366
+ let s = scalar_zero();
367
+ let byte_zero = std::vector::borrow_mut(&mut s.data, 0);
368
+ *byte_zero = byte;
369
+
370
+ s
371
+ }
372
+
373
+ /// Creates a Scalar from an u32.
374
+ public fun new_scalar_from_u32(four_bytes: u32): Scalar {
375
+ Scalar {
376
+ data: scalar_from_u64_internal((four_bytes as u64))
377
+ }
378
+ }
379
+
380
+ /// Creates a Scalar from an u64.
381
+ public fun new_scalar_from_u64(eight_bytes: u64): Scalar {
382
+ Scalar {
383
+ data: scalar_from_u64_internal(eight_bytes)
384
+ }
385
+ }
386
+
387
+ /// Creates a Scalar from an u128.
388
+ public fun new_scalar_from_u128(sixteen_bytes: u128): Scalar {
389
+ Scalar {
390
+ data: scalar_from_u128_internal(sixteen_bytes)
391
+ }
392
+ }
393
+
394
+ /// Creates a Scalar from 32 bytes by reducing the little-endian-encoded number in those bytes modulo $\ell$.
395
+ public fun new_scalar_reduced_from_32_bytes(bytes: vector<u8>): Option<Scalar> {
396
+ if (std::vector::length(&bytes) == 32) {
397
+ std::option::some(Scalar {
398
+ data: scalar_reduced_from_32_bytes_internal(bytes)
399
+ })
400
+ } else {
401
+ std::option::none()
402
+ }
403
+ }
404
+
405
+ /// Samples a scalar uniformly-at-random given 64 uniform-at-random bytes as input by reducing the little-endian-encoded number
406
+ /// in those bytes modulo $\ell$.
407
+ public fun new_scalar_uniform_from_64_bytes(bytes: vector<u8>): Option<Scalar> {
408
+ if (std::vector::length(&bytes) == 64) {
409
+ std::option::some(Scalar {
410
+ data: scalar_uniform_from_64_bytes_internal(bytes)
411
+ })
412
+ } else {
413
+ std::option::none()
414
+ }
415
+ }
416
+
417
+ /// Returns 0 as a Scalar.
418
+ public fun scalar_zero(): Scalar {
419
+ Scalar {
420
+ data: x"0000000000000000000000000000000000000000000000000000000000000000"
421
+ }
422
+ }
423
+
424
+ /// Returns true if the given Scalar equals 0.
425
+ public fun scalar_is_zero(s: &Scalar): bool {
426
+ s.data == x"0000000000000000000000000000000000000000000000000000000000000000"
427
+ }
428
+
429
+ /// Returns 1 as a Scalar.
430
+ public fun scalar_one(): Scalar {
431
+ Scalar {
432
+ data: x"0100000000000000000000000000000000000000000000000000000000000000"
433
+ }
434
+ }
435
+
436
+ /// Returns true if the given Scalar equals 1.
437
+ public fun scalar_is_one(s: &Scalar): bool {
438
+ s.data == x"0100000000000000000000000000000000000000000000000000000000000000"
439
+ }
440
+
441
+ /// Returns true if the two scalars are equal.
442
+ public fun scalar_equals(lhs: &Scalar, rhs: &Scalar): bool {
443
+ lhs.data == rhs.data
444
+ }
445
+
446
+ /// Returns the inverse s^{-1} mod \ell of a scalar s.
447
+ /// Returns None if s is zero.
448
+ public fun scalar_invert(s: &Scalar): Option<Scalar> {
449
+ if (scalar_is_zero(s)) {
450
+ std::option::none<Scalar>()
451
+ } else {
452
+ std::option::some(Scalar {
453
+ data: scalar_invert_internal(s.data)
454
+ })
455
+ }
456
+ }
457
+
458
+ /// Returns the product of the two scalars.
459
+ public fun scalar_mul(a: &Scalar, b: &Scalar): Scalar {
460
+ Scalar {
461
+ data: scalar_mul_internal(a.data, b.data)
462
+ }
463
+ }
464
+
465
+ /// Computes the product of 'a' and 'b' and assigns the result to 'a'.
466
+ /// Returns 'a'.
467
+ public fun scalar_mul_assign(a: &mut Scalar, b: &Scalar): &mut Scalar {
468
+ a.data = scalar_mul(a, b).data;
469
+ a
470
+ }
471
+
472
+ /// Returns the sum of the two scalars.
473
+ public fun scalar_add(a: &Scalar, b: &Scalar): Scalar {
474
+ Scalar {
475
+ data: scalar_add_internal(a.data, b.data)
476
+ }
477
+ }
478
+
479
+ /// Computes the sum of 'a' and 'b' and assigns the result to 'a'
480
+ /// Returns 'a'.
481
+ public fun scalar_add_assign(a: &mut Scalar, b: &Scalar): &mut Scalar {
482
+ a.data = scalar_add(a, b).data;
483
+ a
484
+ }
485
+
486
+ /// Returns the difference of the two scalars.
487
+ public fun scalar_sub(a: &Scalar, b: &Scalar): Scalar {
488
+ Scalar {
489
+ data: scalar_sub_internal(a.data, b.data)
490
+ }
491
+ }
492
+
493
+ /// Subtracts 'b' from 'a' and assigns the result to 'a'.
494
+ /// Returns 'a'.
495
+ public fun scalar_sub_assign(a: &mut Scalar, b: &Scalar): &mut Scalar {
496
+ a.data = scalar_sub(a, b).data;
497
+ a
498
+ }
499
+
500
+ /// Returns the negation of 'a': i.e., $(0 - a) \mod \ell$.
501
+ public fun scalar_neg(a: &Scalar): Scalar {
502
+ Scalar {
503
+ data: scalar_neg_internal(a.data)
504
+ }
505
+ }
506
+
507
+ /// Replaces 'a' by its negation.
508
+ /// Returns 'a'.
509
+ public fun scalar_neg_assign(a: &mut Scalar): &mut Scalar {
510
+ a.data = scalar_neg(a).data;
511
+ a
512
+ }
513
+
514
+ /// Returns the byte-representation of the scalar.
515
+ public fun scalar_to_bytes(s: &Scalar): vector<u8> {
516
+ s.data
517
+ }
518
+
519
+ //
520
+ // Only used internally for implementing CompressedRistretto and RistrettoPoint
521
+ //
522
+
523
+ // NOTE: This was supposed to be more clearly named with *_sha2_512_*.
524
+ native fun new_point_from_sha512_internal(sha2_512_input: vector<u8>): u64;
525
+
526
+ native fun new_point_from_64_uniform_bytes_internal(bytes: vector<u8>): u64;
527
+
528
+ native fun point_is_canonical_internal(bytes: vector<u8>): bool;
529
+
530
+ native fun point_identity_internal(): u64;
531
+
532
+ native fun point_decompress_internal(maybe_non_canonical_bytes: vector<u8>): (u64, bool);
533
+
534
+ native fun point_clone_internal(point_handle: u64): u64;
535
+ native fun point_compress_internal(point: &RistrettoPoint): vector<u8>;
536
+
537
+ native fun point_mul_internal(point: &RistrettoPoint, a: vector<u8>, in_place: bool): u64;
538
+
539
+ native fun basepoint_mul_internal(a: vector<u8>): u64;
540
+
541
+ native fun basepoint_double_mul_internal(a: vector<u8>, some_point: &RistrettoPoint, b: vector<u8>): u64;
542
+
543
+ native fun point_add_internal(a: &RistrettoPoint, b: &RistrettoPoint, in_place: bool): u64;
544
+
545
+ native fun point_sub_internal(a: &RistrettoPoint, b: &RistrettoPoint, in_place: bool): u64;
546
+
547
+ native fun point_neg_internal(a: &RistrettoPoint, in_place: bool): u64;
548
+
549
+ native fun double_scalar_mul_internal(point1: u64, point2: u64, scalar1: vector<u8>, scalar2: vector<u8>): u64;
550
+
551
+ /// The generic arguments are needed to deal with some Move VM peculiarities which prevent us from borrowing the
552
+ /// points (or scalars) inside a &vector in Rust.
553
+ ///
554
+ /// WARNING: This function can only be called with P = RistrettoPoint and S = Scalar.
555
+ native fun multi_scalar_mul_internal<P, S>(points: &vector<P>, scalars: &vector<S>): u64;
556
+
557
+ //
558
+ // Only used internally for implementing Scalar.
559
+ //
560
+
561
+ native fun scalar_is_canonical_internal(s: vector<u8>): bool;
562
+
563
+ native fun scalar_from_u64_internal(num: u64): vector<u8>;
564
+
565
+ native fun scalar_from_u128_internal(num: u128): vector<u8>;
566
+
567
+ native fun scalar_reduced_from_32_bytes_internal(bytes: vector<u8>): vector<u8>;
568
+
569
+ native fun scalar_uniform_from_64_bytes_internal(bytes: vector<u8>): vector<u8>;
570
+
571
+ native fun scalar_invert_internal(bytes: vector<u8>): vector<u8>;
572
+
573
+ // NOTE: This was supposed to be more clearly named with *_sha2_512_*.
574
+ native fun scalar_from_sha512_internal(sha2_512_input: vector<u8>): vector<u8>;
575
+
576
+ native fun scalar_mul_internal(a_bytes: vector<u8>, b_bytes: vector<u8>): vector<u8>;
577
+
578
+ native fun scalar_add_internal(a_bytes: vector<u8>, b_bytes: vector<u8>): vector<u8>;
579
+
580
+ native fun scalar_sub_internal(a_bytes: vector<u8>, b_bytes: vector<u8>): vector<u8>;
581
+
582
+ native fun scalar_neg_internal(a_bytes: vector<u8>): vector<u8>;
583
+
584
+ #[test_only]
585
+ native fun random_scalar_internal(): vector<u8>;
586
+
587
+ //
588
+ // Test-only functions
589
+ //
590
+
591
+ #[test_only]
592
+ public fun random_scalar(): Scalar {
593
+ Scalar {
594
+ data: random_scalar_internal()
595
+ }
596
+ }
597
+
598
+ #[test_only]
599
+ public fun random_point(): RistrettoPoint {
600
+ let s = random_scalar();
601
+
602
+ basepoint_mul(&s)
603
+ }
604
+
605
+ //
606
+ // Testing constants
607
+ //
608
+
609
+ // The scalar 2
610
+ #[test_only]
611
+ const TWO_SCALAR: vector<u8> = x"0200000000000000000000000000000000000000000000000000000000000000";
612
+
613
+ // Non-canonical scalar: the order \ell of the group + 1
614
+ #[test_only]
615
+ const L_PLUS_ONE: vector<u8> = x"eed3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010";
616
+
617
+ // Non-canonical scalar: the order \ell of the group + 2
618
+ #[test_only]
619
+ const L_PLUS_TWO: vector<u8> = x"efd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010";
620
+
621
+ // Some random scalar denoted by X
622
+ #[test_only]
623
+ const X_SCALAR: vector<u8> = x"4e5ab4345d4708845913b4641bc27d5252a585101bcc4244d449f4a879d9f204";
624
+
625
+ // X^{-1} = 1/X = 6859937278830797291664592131120606308688036382723378951768035303146619657244
626
+ // 0x1CDC17FCE0E9A5BBD9247E56BB016347BBBA31EDD5A9BB96D50BCD7A3F962A0F
627
+ #[test_only]
628
+ const X_INV_SCALAR: vector<u8> = x"1cdc17fce0e9a5bbd9247e56bb016347bbba31edd5a9bb96d50bcd7a3f962a0f";
629
+
630
+ // Some random scalar Y = 2592331292931086675770238855846338635550719849568364935475441891787804997264
631
+ #[test_only]
632
+ const Y_SCALAR: vector<u8> = x"907633fe1c4b66a4a28d2dd7678386c353d0de5455d4fc9de8ef7ac31f35bb05";
633
+
634
+ // X * Y = 5690045403673944803228348699031245560686958845067437804563560795922180092780
635
+ #[test_only]
636
+ const X_TIMES_Y_SCALAR: vector<u8> = x"6c3374a1894f62210aaa2fe186a6f92ce0aa75c2779581c295fc08179a73940c";
637
+
638
+ // X + 2^256 * X \mod \ell
639
+ #[test_only]
640
+ const REDUCED_X_PLUS_2_TO_256_TIMES_X_SCALAR: vector<u8> = x"d89ab38bd279024745639ed817ad3f64cc005b32db9939f91c521fc564a5c008";
641
+
642
+ // sage: l = 2^252 + 27742317777372353535851937790883648493
643
+ // sage: big = 2^256 - 1
644
+ // sage: repr((big % l).digits(256))
645
+ #[test_only]
646
+ const REDUCED_2_256_MINUS_1_SCALAR: vector<u8> = x"1c95988d7431ecd670cf7d73f45befc6feffffffffffffffffffffffffffff0f";
647
+
648
+ #[test_only]
649
+ const NON_CANONICAL_ALL_ONES: vector<u8> = x"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF";
650
+
651
+ #[test_only]
652
+ const A_SCALAR: vector<u8> = x"1a0e978a90f6622d3747023f8ad8264da758aa1b88e040d1589e7b7f2376ef09";
653
+
654
+ // Generated in curve25519-dalek via:
655
+ // ```
656
+ // let mut hasher = sha2::Sha512::default();
657
+ // hasher.update(b"bello!");
658
+ // let s = Scalar::from_hash(hasher);
659
+ // println!("scalar: {:x?}", s.to_bytes());
660
+ // ```
661
+ #[test_only]
662
+ const B_SCALAR: vector<u8> = x"dbfd97afd38a06f0138d0527efb28ead5b7109b486465913bf3aa472a8ed4e0d";
663
+
664
+ #[test_only]
665
+ const A_TIMES_B_SCALAR: vector<u8> = x"2ab50e383d7c210f74d5387330735f18315112d10dfb98fcce1e2620c0c01402";
666
+
667
+ #[test_only]
668
+ const A_PLUS_B_SCALAR: vector<u8> = x"083839dd491e57c5743710c39a91d6e502cab3cf0e279ae417d91ff2cb633e07";
669
+
670
+ #[test_only]
671
+ /// A_SCALAR * BASE_POINT, computed by modifying a test in curve25519-dalek in src/edwards.rs to do:
672
+ /// ```
673
+ /// let comp = RistrettoPoint(A_TIMES_BASEPOINT.decompress().unwrap()).compress();
674
+ /// println!("hex: {:x?}", comp.to_bytes());
675
+ /// ```
676
+ const A_TIMES_BASE_POINT: vector<u8> = x"96d52d9262ee1e1aae79fbaee8c1d9068b0d01bf9a4579e618090c3d1088ae10";
677
+
678
+ #[test_only]
679
+ const A_POINT: vector<u8> = x"e87feda199d72b83de4f5b2d45d34805c57019c6c59c42cb70ee3d19aa996f75";
680
+ #[test_only]
681
+ const B_POINT: vector<u8> = x"fa0b3624b081c62f364d0b2839dcc76d7c3ab0e27e31beb2b9ed766575f28e76";
682
+ #[test_only]
683
+ const A_PLUS_B_POINT: vector<u8> = x"70cf3753475b9ff33e2f84413ed6b5052073bccc0a0a81789d3e5675dc258056";
684
+
685
+ // const NON_CANONICAL_LARGEST_ED25519_S: vector<u8> = x"f8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f";
686
+ // const CANONICAL_LARGEST_ED25519_S_PLUS_ONE: vector<u8> = x"7e344775474a7f9723b63a8be92ae76dffffffffffffffffffffffffffffff0f";
687
+ // const CANONICAL_LARGEST_ED25519_S_MINUS_ONE: vector<u8> = x"7c344775474a7f9723b63a8be92ae76dffffffffffffffffffffffffffffff0f";
688
+
689
+ //
690
+ // Tests
691
+ //
692
+
693
+ #[test]
694
+ fun test_point_decompression() {
695
+ let compressed = new_compressed_point_from_bytes(A_POINT);
696
+ assert!(std::option::is_some(&compressed), 1);
697
+
698
+ let point = new_point_from_bytes(A_POINT);
699
+ assert!(std::option::is_some(&point), 1);
700
+
701
+ let point = std::option::extract(&mut point);
702
+ let compressed = std::option::extract(&mut compressed);
703
+ let same_point = point_decompress(&compressed);
704
+
705
+ assert!(point_equals(&point, &same_point), 1);
706
+ }
707
+
708
+ #[test]
709
+ fun test_point_equals() {
710
+ let g = basepoint();
711
+ let same_g = std::option::extract(&mut new_point_from_bytes(BASE_POINT));
712
+ let ag = std::option::extract(&mut new_point_from_bytes(A_TIMES_BASE_POINT));
713
+
714
+ assert!(point_equals(&g, &same_g), 1);
715
+ assert!(!point_equals(&g, &ag), 1);
716
+ }
717
+
718
+ #[test]
719
+ fun test_point_mul() {
720
+ // fetch g
721
+ let g = basepoint();
722
+ // fetch a
723
+ let a = std::option::extract(&mut new_scalar_from_bytes(A_SCALAR));
724
+ // fetch expected a*g
725
+ let ag = std::option::extract(&mut new_point_from_bytes(A_TIMES_BASE_POINT));
726
+
727
+ // compute a*g
728
+ let p = point_mul(&g, &a);
729
+
730
+ // sanity-check the handles
731
+ assert!(g.handle == 0, 1);
732
+ assert!(ag.handle == 1, 1);
733
+ assert!(p.handle == 2, 1);
734
+
735
+ assert!(!point_equals(&g, &ag), 1); // make sure input g remains unmodifed
736
+ assert!(point_equals(&p, &ag), 1); // make sure output a*g is correct
737
+ }
738
+
739
+ #[test]
740
+ fun test_point_mul_assign() {
741
+ let g = basepoint();
742
+ assert!(g.handle == 0, 1);
743
+
744
+ let a = std::option::extract(&mut new_scalar_from_bytes(A_SCALAR));
745
+
746
+ let ag = std::option::extract(&mut new_point_from_bytes(A_TIMES_BASE_POINT));
747
+ assert!(ag.handle == 1, 1);
748
+ assert!(!point_equals(&g, &ag), 1);
749
+
750
+ {
751
+ // NOTE: new_g is just a mutable reference to g
752
+ let upd_g = point_mul_assign(&mut g, &a);
753
+
754
+ // in a mul_assign the returned &mut RistrettoPoint reference should have the same handle as 'g'
755
+ assert!(upd_g.handle == 0, 1);
756
+
757
+ assert!(point_equals(upd_g, &ag), 1);
758
+ };
759
+
760
+ assert!(point_equals(&g, &ag), 1);
761
+ }
762
+
763
+ #[test]
764
+ fun test_point_add() {
765
+ // fetch a
766
+ let a = std::option::extract(&mut new_point_from_bytes(A_POINT));
767
+
768
+ // fetch b
769
+ let b = std::option::extract(&mut new_point_from_bytes(B_POINT));
770
+
771
+ // fetch expected a + b
772
+ let a_plus_b = std::option::extract(&mut new_point_from_bytes(A_PLUS_B_POINT));
773
+
774
+ // compute a*g
775
+ let result = point_add(&a, &b);
776
+
777
+ assert!(!point_equals(&a, &b), 1);
778
+
779
+ // sanity-check the handles
780
+ assert!(a.handle == 0, 1);
781
+ assert!(b.handle == 1, 1);
782
+ assert!(a_plus_b.handle == 2, 1);
783
+ assert!(result.handle == 3, 1);
784
+
785
+ assert!(!point_equals(&a, &result), 1); // make sure input a remains unmodifed
786
+ assert!(!point_equals(&b, &result), 1); // make sure input b remains unmodifed
787
+ assert!(point_equals(&a_plus_b, &result), 1); // make sure output a+b is correct
788
+ }
789
+
790
+ #[test]
791
+ fun test_point_add_assign_0_0() {
792
+ test_point_add_assign_internal(0, 0);
793
+ }
794
+
795
+ #[test]
796
+ fun test_point_add_assign_1_0() {
797
+ test_point_add_assign_internal(1, 0);
798
+ }
799
+
800
+ #[test]
801
+ fun test_point_add_assign_0_1() {
802
+ test_point_add_assign_internal(0, 1);
803
+ }
804
+
805
+ #[test]
806
+ fun test_point_add_assign_3_7() {
807
+ test_point_add_assign_internal(3, 7);
808
+ }
809
+
810
+ #[test_only]
811
+ fun test_point_add_assign_internal(before_a_gap: u64, before_b_gap: u64) {
812
+ // create extra RistrettoPoints here, so as to generate different PointStore layouts inside the native Rust implementation
813
+ let c = before_a_gap;
814
+ while (c > 0) {
815
+ let _ignore = std::option::extract(&mut new_point_from_bytes(BASE_POINT));
816
+
817
+ c = c - 1;
818
+ };
819
+
820
+ // fetch a
821
+ let a = std::option::extract(&mut new_point_from_bytes(A_POINT));
822
+
823
+ // create extra RistrettoPoints here, so as to generate different PointStore layouts inside the native Rust implementation
824
+ let c = before_b_gap;
825
+ while (c > 0) {
826
+ let _ignore = std::option::extract(&mut new_point_from_bytes(BASE_POINT));
827
+
828
+ c = c - 1;
829
+ };
830
+ // fetch b
831
+ let b = std::option::extract(&mut new_point_from_bytes(B_POINT));
832
+
833
+ let a_plus_b = std::option::extract(&mut new_point_from_bytes(A_PLUS_B_POINT));
834
+
835
+ // sanity-check the handles
836
+ assert!(a.handle == before_a_gap, 1);
837
+ assert!(b.handle == 1 + before_a_gap + before_b_gap, 1);
838
+ assert!(a_plus_b.handle == 2 + before_a_gap + before_b_gap, 1);
839
+
840
+ assert!(!point_equals(&a, &b), 1);
841
+ assert!(!point_equals(&a, &a_plus_b), 1);
842
+
843
+ {
844
+ // NOTE: new_h is just a mutable reference to g
845
+ let upd_a = point_add_assign(&mut a, &b);
846
+
847
+ // in a add_assign the returned &mut RistrettoPoint reference should have the same handle as 'a'
848
+ assert!(upd_a.handle == before_a_gap, 1);
849
+
850
+ assert!(point_equals(upd_a, &a_plus_b), 1);
851
+ };
852
+
853
+ assert!(point_equals(&a, &a_plus_b), 1);
854
+ }
855
+
856
+ #[test]
857
+ fun test_point_sub() {
858
+ // fetch a
859
+ let a = std::option::extract(&mut new_point_from_bytes(A_POINT));
860
+
861
+ // fetch b
862
+ let b = std::option::extract(&mut new_point_from_bytes(B_POINT));
863
+
864
+ // fetch expected a + b
865
+ let a_plus_b = std::option::extract(&mut new_point_from_bytes(A_PLUS_B_POINT));
866
+
867
+ // compute a*g
868
+ let result = point_sub(&a_plus_b, &b);
869
+
870
+ assert!(!point_equals(&a, &b), 1);
871
+
872
+ // sanity-check the handles
873
+ assert!(a.handle == 0, 1);
874
+ assert!(b.handle == 1, 1);
875
+ assert!(a_plus_b.handle == 2, 1);
876
+ assert!(result.handle == 3, 1);
877
+
878
+ assert!(!point_equals(&a_plus_b, &result), 1); // make sure input a_plus_b remains unmodifed
879
+ assert!(!point_equals(&b, &result), 1); // make sure input b remains unmodifed
880
+ assert!(point_equals(&a, &result), 1); // make sure output 'a+b-b' is correct
881
+ }
882
+
883
+ #[test]
884
+ fun test_point_neg() {
885
+ let a = std::option::extract(&mut new_point_from_bytes(A_POINT));
886
+
887
+ let neg_a = point_neg(&a);
888
+
889
+ assert!(a.handle != neg_a.handle, 1);
890
+ assert!(!point_equals(&a, &neg_a), 1);
891
+ assert!(!point_equals(&point_add(&point_identity(), &a), &neg_a), 1);
892
+ assert!(point_equals(&point_add(&a, &neg_a), &point_identity()), 1);
893
+
894
+ let handle = a.handle;
895
+ let neg_a_ref = point_neg_assign(&mut a);
896
+ assert!(handle == neg_a_ref.handle, 1);
897
+ assert!(point_equals(neg_a_ref, &neg_a), 1);
898
+ }
899
+
900
+ #[test]
901
+ fun test_basepoint_mul() {
902
+ let a = Scalar { data: A_SCALAR };
903
+ let basepoint = basepoint();
904
+ let expected = point_mul(&basepoint, &a);
905
+ assert!(point_equals(&expected, &basepoint_mul(&a)), 1);
906
+ }
907
+
908
+ #[test(fx = @std)]
909
+ fun test_basepoint_double_mul(fx: signer) {
910
+ features::change_feature_flags_for_testing(&fx, vector[ features::get_bulletproofs_feature() ], vector[]);
911
+
912
+ let expected = option::extract(&mut new_point_from_bytes(x"be5d615d8b8f996723cdc6e1895b8b6d312cc75d1ffb0259873b99396a38c05a"));
913
+
914
+ let a = Scalar { data: A_SCALAR };
915
+ let a_point = option::extract(&mut new_point_from_bytes(A_POINT));
916
+ let b = Scalar { data: B_SCALAR };
917
+ let actual = basepoint_double_mul(&a, &a_point, &b);
918
+
919
+ assert!(point_equals(&expected, &actual), 1);
920
+
921
+ let expected = double_scalar_mul(&a, &a_point, &b, &basepoint());
922
+ assert!(point_equals(&expected, &actual), 1);
923
+ }
924
+
925
+ #[test]
926
+ #[expected_failure]
927
+ fun test_multi_scalar_mul_aborts_empty_scalars() {
928
+ multi_scalar_mul(&vector[ basepoint() ], &vector[]);
929
+ }
930
+
931
+ #[test]
932
+ #[expected_failure]
933
+ fun test_multi_scalar_mul_aborts_empty_points() {
934
+ multi_scalar_mul(&vector[ ], &vector[ Scalar { data: A_SCALAR } ]);
935
+ }
936
+
937
+ #[test]
938
+ #[expected_failure]
939
+ fun test_multi_scalar_mul_aborts_empty_all() {
940
+ multi_scalar_mul(&vector[ ], &vector[ ]);
941
+ }
942
+
943
+ #[test]
944
+ #[expected_failure]
945
+ fun test_multi_scalar_mul_aborts_different_sizes() {
946
+ multi_scalar_mul(&vector[ basepoint() ], &vector[ Scalar { data: A_SCALAR }, Scalar { data: B_SCALAR } ]);
947
+ }
948
+
949
+ #[test]
950
+ fun test_multi_scalar_mul_single() {
951
+ // Test single exp
952
+ let points = vector[
953
+ basepoint(),
954
+ ];
955
+
956
+ let scalars = vector[
957
+ Scalar { data: A_SCALAR },
958
+ ];
959
+
960
+ let result = multi_scalar_mul(&points, &scalars);
961
+ let expected = std::option::extract(&mut new_point_from_bytes(A_TIMES_BASE_POINT));
962
+
963
+ assert!(point_equals(&result, &expected), 1);
964
+ }
965
+
966
+ #[test]
967
+ fun test_multi_scalar_mul_double() {
968
+ // Test double exp
969
+ let points = vector[
970
+ basepoint(),
971
+ basepoint(),
972
+ ];
973
+
974
+ let scalars = vector[
975
+ Scalar { data: A_SCALAR },
976
+ Scalar { data: B_SCALAR },
977
+ ];
978
+
979
+ let result = multi_scalar_mul(&points, &scalars);
980
+ let expected = basepoint_double_mul(
981
+ std::vector::borrow(&scalars, 0),
982
+ &basepoint(),
983
+ std::vector::borrow(&scalars, 1));
984
+
985
+ assert!(point_equals(&result, &expected), 1);
986
+ }
987
+
988
+ #[test]
989
+ fun test_multi_scalar_mul_many() {
990
+ let scalars = vector[
991
+ new_scalar_from_sha2_512(b"1"),
992
+ new_scalar_from_sha2_512(b"2"),
993
+ new_scalar_from_sha2_512(b"3"),
994
+ new_scalar_from_sha2_512(b"4"),
995
+ new_scalar_from_sha2_512(b"5"),
996
+ ];
997
+
998
+ let points = vector[
999
+ new_point_from_sha2_512(b"1"),
1000
+ new_point_from_sha2_512(b"2"),
1001
+ new_point_from_sha2_512(b"3"),
1002
+ new_point_from_sha2_512(b"4"),
1003
+ new_point_from_sha2_512(b"5"),
1004
+ ];
1005
+
1006
+ let expected = std::option::extract(&mut new_point_from_bytes(x"c4a98fbe6bd0f315a0c150858aec8508be397443093e955ef982e299c1318928"));
1007
+ let result = multi_scalar_mul(&points, &scalars);
1008
+
1009
+ assert!(point_equals(&expected, &result), 1);
1010
+ }
1011
+
1012
+ #[test]
1013
+ fun test_new_point_from_sha2_512() {
1014
+ let msg = b"To really appreciate architecture, you may even need to commit a murder";
1015
+ let expected = option::extract(&mut new_point_from_bytes(x"baaa91eb43e5e2f12ffc96347e14bc458fdb1772b2232b08977ee61ea9f84e31"));
1016
+
1017
+ assert!(point_equals(&expected, &new_point_from_sha2_512(msg)), 1);
1018
+ }
1019
+
1020
+ #[test]
1021
+ fun test_new_point_from_64_uniform_bytes() {
1022
+ let bytes_64 = x"baaa91eb43e5e2f12ffc96347e14bc458fdb1772b2232b08977ee61ea9f84e31e87feda199d72b83de4f5b2d45d34805c57019c6c59c42cb70ee3d19aa996f75";
1023
+ let expected = option::extract(&mut new_point_from_bytes(x"4a8e429f906478654232d7ae180ad60854754944ac67f38e20d8fa79e4b7d71e"));
1024
+
1025
+ let point = option::extract(&mut new_point_from_64_uniform_bytes(bytes_64));
1026
+ assert!(point_equals(&expected, &point), 1);
1027
+ }
1028
+
1029
+ #[test]
1030
+ fun test_scalar_basic_viability() {
1031
+ // Test conversion from u8
1032
+ let two = Scalar { data: TWO_SCALAR };
1033
+ assert!(scalar_equals(&new_scalar_from_u8(2u8), &two), 1);
1034
+
1035
+ // Test conversion from u64
1036
+ assert!(scalar_equals(&new_scalar_from_u64(2u64), &two), 1);
1037
+
1038
+ // Test conversion from u128
1039
+ assert!(scalar_equals(&new_scalar_from_u128(2u128), &two), 1);
1040
+
1041
+ // Test (0 - 1) % order = order - 1
1042
+ assert!(scalar_equals(&scalar_sub(&scalar_zero(), &scalar_one()), &Scalar { data: L_MINUS_ONE }), 1);
1043
+ }
1044
+
1045
+ #[test]
1046
+ /// Tests deserializing a Scalar from a sequence of canonical bytes
1047
+ fun test_scalar_from_canonical_bytes() {
1048
+ // Too few bytes
1049
+ assert!(std::option::is_none(&new_scalar_from_bytes(x"00")), 1);
1050
+
1051
+ // 32 zero bytes are canonical
1052
+ assert!(std::option::is_some(&new_scalar_from_bytes(x"0000000000000000000000000000000000000000000000000000000000000000")), 1);
1053
+
1054
+ // Non-canonical because unreduced
1055
+ assert!(std::option::is_none(&new_scalar_from_bytes(x"1010101010101010101010101010101010101010101010101010101010101010")), 1);
1056
+
1057
+ // Canonical because \ell - 1
1058
+ assert!(std::option::is_some(&new_scalar_from_bytes(L_MINUS_ONE)), 1);
1059
+
1060
+ // Non-canonical because \ell
1061
+ assert!(std::option::is_none(&new_scalar_from_bytes(ORDER_ELL)), 1);
1062
+
1063
+ // Non-canonical because \ell+1
1064
+ assert!(std::option::is_none(&new_scalar_from_bytes(L_PLUS_ONE)), 1);
1065
+
1066
+ // Non-canonical because \ell+2
1067
+ assert!(std::option::is_none(&new_scalar_from_bytes(L_PLUS_TWO)), 1);
1068
+
1069
+ // Non-canonical because high bit is set
1070
+ let non_canonical_highbit = vector[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128];
1071
+ let non_canonical_highbit_hex = x"0000000000000000000000000000000000000000000000000000000000000080";
1072
+ assert!(non_canonical_highbit == non_canonical_highbit_hex, 1);
1073
+ assert!(std::option::is_none(&new_scalar_from_bytes(non_canonical_highbit)), 1);
1074
+ }
1075
+
1076
+ #[test]
1077
+ fun test_scalar_zero() {
1078
+ // 0 == 0
1079
+ assert!(scalar_is_zero(&scalar_zero()), 1);
1080
+ assert!(scalar_is_zero(&new_scalar_from_u8(0u8)), 1);
1081
+
1082
+ // 0 != 1
1083
+ assert!(scalar_is_zero(&scalar_one()) == false, 1);
1084
+
1085
+ // Pick a random scalar by hashing from some "random" bytes
1086
+ let s = new_scalar_from_sha2_512(x"deadbeef");
1087
+
1088
+ // Technically, there is a negligible probability (i.e., 1/2^\ell) that the hashed s is zero or one
1089
+ assert!(scalar_is_zero(&s) == false, 1);
1090
+ assert!(scalar_is_one(&s) == false, 1);
1091
+
1092
+ // Multiply 0 with a random scalar and make sure you get zero
1093
+ assert!(scalar_is_zero(&scalar_mul(&scalar_zero(), &s)), 1);
1094
+ assert!(scalar_is_zero(&scalar_mul(&s, &scalar_zero())), 1);
1095
+ }
1096
+
1097
+ #[test]
1098
+ fun test_scalar_one() {
1099
+ // 1 == 1
1100
+ assert!(scalar_is_one(&scalar_one()), 1);
1101
+ assert!(scalar_is_one(&new_scalar_from_u8(1u8)), 1);
1102
+
1103
+ // 1 != 0
1104
+ assert!(scalar_is_one(&scalar_zero()) == false, 1);
1105
+
1106
+ // Pick a random scalar by hashing from some "random" bytes
1107
+ let s = new_scalar_from_sha2_512(x"deadbeef");
1108
+ let inv = scalar_invert(&s);
1109
+
1110
+ // Technically, there is a negligible probability (i.e., 1/2^\ell) that s was zero and the call above returned None
1111
+ assert!(std::option::is_some(&inv), 1);
1112
+
1113
+ let inv = std::option::extract(&mut inv);
1114
+
1115
+ // Multiply s with s^{-1} and make sure you get one
1116
+ assert!(scalar_is_one(&scalar_mul(&s, &inv)), 1);
1117
+ assert!(scalar_is_one(&scalar_mul(&inv, &s)), 1);
1118
+ }
1119
+
1120
+ #[test]
1121
+ fun test_scalar_from_sha2_512() {
1122
+ // Test a specific message hashes correctly to the field
1123
+ let str: vector<u8> = vector[];
1124
+ std::vector::append(&mut str, b"To really appreciate architecture, you may even need to commit a murder.");
1125
+ std::vector::append(&mut str, b"While the programs used for The Manhattan Transcripts are of the most extreme");
1126
+ std::vector::append(&mut str, b"nature, they also parallel the most common formula plot: the archetype of");
1127
+ std::vector::append(&mut str, b"murder. Other phantasms were occasionally used to underline the fact that");
1128
+ std::vector::append(&mut str, b"perhaps all architecture, rather than being about functional standards, is");
1129
+ std::vector::append(&mut str, b"about love and death.");
1130
+
1131
+ let s = new_scalar_from_sha2_512(str);
1132
+
1133
+ let expected: vector<u8> = vector[
1134
+ 21, 88, 208, 252, 63, 122, 210, 152,
1135
+ 154, 38, 15, 23, 16, 167, 80, 150,
1136
+ 192, 221, 77, 226, 62, 25, 224, 148,
1137
+ 239, 48, 176, 10, 185, 69, 168, 11
1138
+ ];
1139
+
1140
+ assert!(s.data == expected, 1)
1141
+ }
1142
+
1143
+ #[test]
1144
+ fun test_scalar_invert() {
1145
+ // Cannot invert zero
1146
+ assert!(std::option::is_none(&scalar_invert(&scalar_zero())), 1);
1147
+
1148
+ // One's inverse is one
1149
+ let one = scalar_invert(&scalar_one());
1150
+ assert!(std::option::is_some(&one), 1);
1151
+
1152
+ let one = std::option::extract(&mut one);
1153
+ assert!(scalar_is_one(&one), 1);
1154
+
1155
+ // Test a random point X's inverse is correct
1156
+ let x = Scalar { data: X_SCALAR };
1157
+ let xinv = scalar_invert(&x);
1158
+ assert!(std::option::is_some(&xinv), 1);
1159
+
1160
+ let xinv = std::option::extract(&mut xinv);
1161
+ let xinv_expected = Scalar { data: X_INV_SCALAR };
1162
+
1163
+ assert!(scalar_equals(&xinv, &xinv_expected), 1)
1164
+ }
1165
+
1166
+ #[test]
1167
+ fun test_scalar_neg() {
1168
+ // -(-X) == X
1169
+ let x = Scalar { data: X_SCALAR };
1170
+
1171
+ let x_neg = scalar_neg(&x);
1172
+ let x_neg_neg = scalar_neg(&x_neg);
1173
+
1174
+ assert!(scalar_equals(&x, &x_neg_neg), 1);
1175
+ }
1176
+
1177
+ #[test]
1178
+ fun test_scalar_neg_assign() {
1179
+ let x = Scalar { data: X_SCALAR };
1180
+ let x_copy = x;
1181
+
1182
+ scalar_neg_assign(&mut x);
1183
+ assert!(!scalar_equals(&x, &x_copy), 1);
1184
+ scalar_neg_assign(&mut x);
1185
+ assert!(scalar_equals(&x, &x_copy), 1);
1186
+
1187
+ assert!(scalar_equals(scalar_neg_assign(scalar_neg_assign(&mut x)), &x_copy), 1);
1188
+ }
1189
+
1190
+ #[test]
1191
+ fun test_scalar_mul() {
1192
+ // X * 1 == X
1193
+ let x = Scalar { data: X_SCALAR };
1194
+ assert!(scalar_equals(&x, &scalar_mul(&x, &scalar_one())), 1);
1195
+
1196
+ // Test multiplication of two random scalars
1197
+ let y = Scalar { data: Y_SCALAR };
1198
+ let x_times_y = Scalar { data: X_TIMES_Y_SCALAR };
1199
+ assert!(scalar_equals(&scalar_mul(&x, &y), &x_times_y), 1);
1200
+
1201
+ // A * B
1202
+ assert!(scalar_equals(&scalar_mul(&Scalar { data: A_SCALAR }, &Scalar { data: B_SCALAR }), &Scalar { data: A_TIMES_B_SCALAR }), 1);
1203
+ }
1204
+
1205
+ #[test]
1206
+ fun test_scalar_mul_assign() {
1207
+ let x = Scalar { data: X_SCALAR };
1208
+ let y = Scalar { data: Y_SCALAR };
1209
+ let x_times_y = Scalar { data: X_TIMES_Y_SCALAR };
1210
+
1211
+ scalar_mul_assign(&mut x, &y);
1212
+
1213
+ assert!(scalar_equals(&x, &x_times_y), 1);
1214
+ }
1215
+
1216
+ #[test]
1217
+ fun test_scalar_add() {
1218
+ // Addition reduces: \ell-1 + 1 = \ell = 0
1219
+ let ell_minus_one = Scalar { data: L_MINUS_ONE };
1220
+ assert!(scalar_is_zero(&scalar_add(&ell_minus_one, &scalar_one())), 1);
1221
+
1222
+ // 1 + 1 = 2
1223
+ let two = Scalar { data: TWO_SCALAR };
1224
+ assert!(scalar_equals(&scalar_add(&scalar_one(), &scalar_one()), &two), 1);
1225
+
1226
+ // A + B
1227
+ assert!(scalar_equals(&scalar_add(&Scalar { data: A_SCALAR }, &Scalar { data: B_SCALAR }), &Scalar { data: A_PLUS_B_SCALAR }), 1);
1228
+ }
1229
+
1230
+ #[test]
1231
+ fun test_scalar_sub() {
1232
+ // Subtraction reduces: 0 - 1 = \ell - 1
1233
+ let ell_minus_one = Scalar { data: L_MINUS_ONE };
1234
+ assert!(scalar_equals(&scalar_sub(&scalar_zero(), &scalar_one()), &ell_minus_one), 1);
1235
+
1236
+ // 2 - 1 = 1
1237
+ let two = Scalar { data: TWO_SCALAR };
1238
+ assert!(scalar_is_one(&scalar_sub(&two, &scalar_one())), 1);
1239
+
1240
+ // 1 - 2 = -1 = \ell - 1
1241
+ let ell_minus_one = Scalar { data: L_MINUS_ONE };
1242
+ assert!(scalar_equals(&scalar_sub(&scalar_one(), &two), &ell_minus_one), 1);
1243
+ }
1244
+
1245
+ #[test]
1246
+ fun test_scalar_reduced_from_32_bytes() {
1247
+ // \ell + 2 = 0 + 2 = 2 (modulo \ell)
1248
+ let s = std::option::extract(&mut new_scalar_reduced_from_32_bytes(L_PLUS_TWO));
1249
+ let two = Scalar { data: TWO_SCALAR };
1250
+ assert!(scalar_equals(&s, &two), 1);
1251
+
1252
+ // Reducing the all 1's bit vector yields $(2^256 - 1) \mod \ell$
1253
+ let biggest = std::option::extract(&mut new_scalar_reduced_from_32_bytes(NON_CANONICAL_ALL_ONES));
1254
+ assert!(scalar_equals(&biggest, &Scalar { data: REDUCED_2_256_MINUS_1_SCALAR }), 1);
1255
+ }
1256
+
1257
+ #[test]
1258
+ fun test_scalar_from_64_uniform_bytes() {
1259
+ // Test X + 2^256 * X reduces correctly
1260
+ let x_plus_2_to_256_times_x: vector<u8> = vector[];
1261
+
1262
+ std::vector::append(&mut x_plus_2_to_256_times_x, X_SCALAR);
1263
+ std::vector::append(&mut x_plus_2_to_256_times_x, X_SCALAR);
1264
+
1265
+ let reduced = std::option::extract(&mut new_scalar_uniform_from_64_bytes(x_plus_2_to_256_times_x));
1266
+ let expected = Scalar { data: REDUCED_X_PLUS_2_TO_256_TIMES_X_SCALAR };
1267
+ assert!(scalar_equals(&reduced, &expected), 1)
1268
+ }
1269
+
1270
+ #[test]
1271
+ fun test_scalar_to_bytes() {
1272
+ // zero is canonical
1273
+ assert!(scalar_is_canonical_internal(scalar_zero().data), 1);
1274
+
1275
+ // ...but if we maul it and set the high bit to 1, it is non-canonical
1276
+ let non_can = scalar_zero();
1277
+ let last_byte = std::vector::borrow_mut(&mut non_can.data, 31);
1278
+ *last_byte = 128;
1279
+ assert!(!scalar_is_canonical_internal(non_can.data), 1);
1280
+
1281
+ // This test makes sure scalar_to_bytes does not return a mutable reference to a scalar's bits
1282
+ let non_can = scalar_zero();
1283
+ let bytes = scalar_to_bytes(&scalar_zero());
1284
+ let last_byte = std::vector::borrow_mut(&mut bytes, 31);
1285
+ *last_byte = 128;
1286
+ assert!(scalar_is_canonical_internal(non_can.data), 1);
1287
+ assert!(scalar_equals(&non_can, &scalar_zero()), 1);
1288
+ }
1289
+
1290
+ #[test]
1291
+ fun test_num_points_within_limit() {
1292
+ let limit = 10000;
1293
+ let i = 0;
1294
+ while (i < limit) {
1295
+ point_identity();
1296
+ i = i + 1;
1297
+ }
1298
+ }
1299
+
1300
+ #[test]
1301
+ #[expected_failure(abort_code=0x090004, location=Self)]
1302
+ fun test_num_points_limit_exceeded() {
1303
+ let limit = 10001;
1304
+ let i = 0;
1305
+ while (i < limit) {
1306
+ point_identity();
1307
+ i = i + 1;
1308
+ }
1309
+ }
1310
+ }