wowok 2.1.10 → 2.1.13

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 (896) hide show
  1. package/dist/cjs/bcs/bcs.d.ts +199 -199
  2. package/dist/cjs/bcs/bcs.js +273 -318
  3. package/dist/cjs/bcs/bcs.js.map +1 -0
  4. package/dist/cjs/bcs/effects.d.ts +109 -109
  5. package/dist/cjs/bcs/effects.js +205 -230
  6. package/dist/cjs/bcs/effects.js.map +1 -0
  7. package/dist/cjs/bcs/index.d.ts +1 -2584
  8. package/dist/cjs/bcs/index.js +61 -76
  9. package/dist/cjs/bcs/index.js.map +1 -0
  10. package/dist/cjs/bcs/pure.js +38 -58
  11. package/dist/cjs/bcs/pure.js.map +1 -0
  12. package/dist/cjs/bcs/type-tag-serializer.js +102 -114
  13. package/dist/cjs/bcs/type-tag-serializer.js.map +1 -0
  14. package/dist/cjs/bcs/types.js +6 -23
  15. package/dist/cjs/bcs/types.js.map +1 -0
  16. package/dist/cjs/client/index.js +17 -33
  17. package/dist/cjs/client/index.js.map +1 -0
  18. package/dist/cjs/client/network.js +25 -40
  19. package/dist/cjs/client/network.js.map +1 -0
  20. package/dist/cjs/cryptography/index.js +29 -45
  21. package/dist/cjs/cryptography/index.js.map +1 -0
  22. package/dist/cjs/cryptography/intent.d.ts +1 -1
  23. package/dist/cjs/cryptography/intent.js +20 -31
  24. package/dist/cjs/cryptography/intent.js.map +1 -0
  25. package/dist/cjs/cryptography/keypair.js +102 -116
  26. package/dist/cjs/cryptography/keypair.js.map +1 -0
  27. package/dist/cjs/cryptography/mnemonics.js +43 -41
  28. package/dist/cjs/cryptography/mnemonics.js.map +1 -0
  29. package/dist/cjs/cryptography/publickey.js +112 -134
  30. package/dist/cjs/cryptography/publickey.js.map +1 -0
  31. package/dist/cjs/cryptography/signature-scheme.js +24 -43
  32. package/dist/cjs/cryptography/signature-scheme.js.map +1 -0
  33. package/dist/cjs/cryptography/signature.d.ts +2 -24
  34. package/dist/cjs/cryptography/signature.js +50 -67
  35. package/dist/cjs/cryptography/signature.js.map +1 -0
  36. package/dist/cjs/experimental/cache.js +65 -0
  37. package/dist/cjs/experimental/cache.js.map +1 -0
  38. package/dist/cjs/experimental/client.js +27 -0
  39. package/dist/cjs/experimental/client.js.map +1 -0
  40. package/dist/cjs/experimental/core.js +89 -0
  41. package/dist/cjs/experimental/core.js.map +1 -0
  42. package/dist/cjs/experimental/errors.js +32 -0
  43. package/dist/cjs/experimental/errors.js.map +1 -0
  44. package/dist/cjs/experimental/index.js +15 -0
  45. package/dist/cjs/experimental/index.js.map +1 -0
  46. package/dist/cjs/experimental/persistent-storage.js +343 -0
  47. package/dist/cjs/experimental/persistent-storage.js.map +1 -0
  48. package/dist/cjs/experimental/persistent-storage.test.js +200 -0
  49. package/dist/cjs/experimental/persistent-storage.test.js.map +1 -0
  50. package/dist/cjs/experimental/transports/utils.js +104 -0
  51. package/dist/cjs/experimental/transports/utils.js.map +1 -0
  52. package/dist/cjs/experimental/types.js +6 -0
  53. package/dist/cjs/experimental/types.js.map +1 -0
  54. package/dist/cjs/faucet/faucet.js +106 -124
  55. package/dist/cjs/faucet/faucet.js.map +1 -0
  56. package/dist/cjs/faucet/index.js +12 -28
  57. package/dist/cjs/faucet/index.js.map +1 -0
  58. package/dist/cjs/grpc/client.js +47 -62
  59. package/dist/cjs/grpc/client.js.map +1 -0
  60. package/dist/cjs/grpc/core.js +580 -617
  61. package/dist/cjs/grpc/core.js.map +1 -0
  62. package/dist/cjs/grpc/index.js +9 -25
  63. package/dist/cjs/grpc/index.js.map +1 -0
  64. package/dist/cjs/grpc/proto/google/protobuf/any.js +168 -135
  65. package/dist/cjs/grpc/proto/google/protobuf/any.js.map +1 -0
  66. package/dist/cjs/grpc/proto/google/protobuf/duration.js +105 -90
  67. package/dist/cjs/grpc/proto/google/protobuf/duration.js.map +1 -0
  68. package/dist/cjs/grpc/proto/google/protobuf/empty.js +50 -28
  69. package/dist/cjs/grpc/proto/google/protobuf/empty.js.map +1 -0
  70. package/dist/cjs/grpc/proto/google/protobuf/field_mask.js +96 -75
  71. package/dist/cjs/grpc/proto/google/protobuf/field_mask.js.map +1 -0
  72. package/dist/cjs/grpc/proto/google/protobuf/struct.js +266 -215
  73. package/dist/cjs/grpc/proto/google/protobuf/struct.js.map +1 -0
  74. package/dist/cjs/grpc/proto/google/protobuf/timestamp.js +150 -131
  75. package/dist/cjs/grpc/proto/google/protobuf/timestamp.js.map +1 -0
  76. package/dist/cjs/grpc/proto/google/rpc/error_details.js +331 -302
  77. package/dist/cjs/grpc/proto/google/rpc/error_details.js.map +1 -0
  78. package/dist/cjs/grpc/proto/google/rpc/status.js +50 -50
  79. package/dist/cjs/grpc/proto/google/rpc/status.js.map +1 -0
  80. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js +84 -68
  81. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js.map +1 -0
  82. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js +45 -50
  83. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js.map +1 -0
  84. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js +38 -43
  85. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js.map +1 -0
  86. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js +70 -75
  87. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js.map +1 -0
  88. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js +79 -81
  89. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js.map +1 -0
  90. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js +183 -166
  91. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js.map +1 -0
  92. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js +369 -296
  93. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js.map +1 -0
  94. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js +80 -85
  95. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js.map +1 -0
  96. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js +31 -28
  97. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js.map +1 -0
  98. package/dist/cjs/grpc/proto/sui/rpc/v2/event.js +81 -83
  99. package/dist/cjs/grpc/proto/sui/rpc/v2/event.js.map +1 -0
  100. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js +80 -85
  101. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js.map +1 -0
  102. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js +876 -506
  103. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js.map +1 -0
  104. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js +56 -61
  105. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js.map +1 -0
  106. package/dist/cjs/grpc/proto/sui/rpc/v2/input.js +103 -83
  107. package/dist/cjs/grpc/proto/sui/rpc/v2/input.js.map +1 -0
  108. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js +76 -78
  109. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js.map +1 -0
  110. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js +69 -119
  111. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js.map +1 -0
  112. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js +392 -350
  113. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js.map +1 -0
  114. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js +599 -473
  115. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js.map +1 -0
  116. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js +46 -78
  117. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js.map +1 -0
  118. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js +242 -224
  119. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js.map +1 -0
  120. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js +32 -52
  121. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js.map +1 -0
  122. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js +139 -134
  123. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js.map +1 -0
  124. package/dist/cjs/grpc/proto/sui/rpc/v2/object.js +109 -111
  125. package/dist/cjs/grpc/proto/sui/rpc/v2/object.js.map +1 -0
  126. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js +46 -51
  127. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js.map +1 -0
  128. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js +76 -61
  129. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js.map +1 -0
  130. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js +46 -59
  131. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js.map +1 -0
  132. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js +568 -522
  133. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js.map +1 -0
  134. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js +54 -32
  135. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js.map +1 -0
  136. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +27 -47
  137. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js.map +1 -0
  138. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js +83 -86
  139. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js.map +1 -0
  140. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js +53 -85
  141. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js.map +1 -0
  142. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js +645 -529
  143. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js.map +1 -0
  144. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js +37 -51
  145. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js.map +1 -0
  146. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js +58 -61
  147. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js.map +1 -0
  148. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js +749 -730
  149. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js.map +1 -0
  150. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js +1218 -975
  151. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js.map +1 -0
  152. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +32 -46
  153. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js.map +1 -0
  154. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js +186 -167
  155. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js.map +1 -0
  156. package/dist/cjs/index.js +96 -91
  157. package/dist/cjs/index.js.map +1 -0
  158. package/dist/cjs/jsonRpc/client.js +654 -743
  159. package/dist/cjs/jsonRpc/client.js.map +1 -0
  160. package/dist/cjs/jsonRpc/core.d.ts +7 -7
  161. package/dist/cjs/jsonRpc/core.js +562 -606
  162. package/dist/cjs/jsonRpc/core.js.map +1 -0
  163. package/dist/cjs/jsonRpc/errors.js +38 -56
  164. package/dist/cjs/jsonRpc/errors.js.map +1 -0
  165. package/dist/cjs/jsonRpc/http-transport.js +70 -114
  166. package/dist/cjs/jsonRpc/http-transport.js.map +1 -0
  167. package/dist/cjs/jsonRpc/index.js +14 -30
  168. package/dist/cjs/jsonRpc/index.js.map +1 -0
  169. package/dist/cjs/jsonRpc/json-rpc-resolver.js +286 -290
  170. package/dist/cjs/jsonRpc/json-rpc-resolver.js.map +1 -0
  171. package/dist/cjs/jsonRpc/rpc-websocket-client.js +150 -207
  172. package/dist/cjs/jsonRpc/rpc-websocket-client.js.map +1 -0
  173. package/dist/cjs/jsonRpc/types/chain.js +4 -15
  174. package/dist/cjs/jsonRpc/types/chain.js.map +1 -0
  175. package/dist/cjs/jsonRpc/types/changes.js +4 -15
  176. package/dist/cjs/jsonRpc/types/changes.js.map +1 -0
  177. package/dist/cjs/jsonRpc/types/coins.js +4 -15
  178. package/dist/cjs/jsonRpc/types/coins.js.map +1 -0
  179. package/dist/cjs/jsonRpc/types/common.js +4 -15
  180. package/dist/cjs/jsonRpc/types/common.js.map +1 -0
  181. package/dist/cjs/jsonRpc/types/generated.d.ts +1 -1
  182. package/dist/cjs/jsonRpc/types/generated.js +4 -15
  183. package/dist/cjs/jsonRpc/types/generated.js.map +1 -0
  184. package/dist/cjs/jsonRpc/types/index.js +4 -15
  185. package/dist/cjs/jsonRpc/types/index.js.map +1 -0
  186. package/dist/cjs/jsonRpc/types/params.js +4 -15
  187. package/dist/cjs/jsonRpc/types/params.js.map +1 -0
  188. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js +54 -69
  189. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js.map +1 -0
  190. package/dist/cjs/keypairs/ed25519/index.js +10 -26
  191. package/dist/cjs/keypairs/ed25519/index.js.map +1 -0
  192. package/dist/cjs/keypairs/ed25519/keypair.js +134 -159
  193. package/dist/cjs/keypairs/ed25519/keypair.js.map +1 -0
  194. package/dist/cjs/keypairs/ed25519/publickey.js +70 -84
  195. package/dist/cjs/keypairs/ed25519/publickey.js.map +1 -0
  196. package/dist/cjs/keypairs/index.js +21 -19
  197. package/dist/cjs/keypairs/index.js.map +1 -0
  198. package/dist/cjs/keypairs/passkey/index.js +11 -27
  199. package/dist/cjs/keypairs/passkey/index.js.map +1 -0
  200. package/dist/cjs/keypairs/passkey/keypair.js +245 -256
  201. package/dist/cjs/keypairs/passkey/keypair.js.map +1 -0
  202. package/dist/cjs/keypairs/passkey/publickey.js +163 -162
  203. package/dist/cjs/keypairs/passkey/publickey.js.map +1 -0
  204. package/dist/cjs/keypairs/passkey/types.js +4 -15
  205. package/dist/cjs/keypairs/passkey/types.js.map +1 -0
  206. package/dist/cjs/keypairs/secp256k1/index.js +10 -26
  207. package/dist/cjs/keypairs/secp256k1/index.js.map +1 -0
  208. package/dist/cjs/keypairs/secp256k1/keypair.js +129 -151
  209. package/dist/cjs/keypairs/secp256k1/keypair.js.map +1 -0
  210. package/dist/cjs/keypairs/secp256k1/publickey.js +71 -89
  211. package/dist/cjs/keypairs/secp256k1/publickey.js.map +1 -0
  212. package/dist/cjs/keypairs/secp256r1/index.js +10 -26
  213. package/dist/cjs/keypairs/secp256r1/index.js.map +1 -0
  214. package/dist/cjs/keypairs/secp256r1/keypair.js +127 -148
  215. package/dist/cjs/keypairs/secp256r1/keypair.js.map +1 -0
  216. package/dist/cjs/keypairs/secp256r1/publickey.js +72 -90
  217. package/dist/cjs/keypairs/secp256r1/publickey.js.map +1 -0
  218. package/dist/cjs/multisig/index.js +10 -26
  219. package/dist/cjs/multisig/index.js.map +1 -0
  220. package/dist/cjs/multisig/publickey.d.ts +1 -1
  221. package/dist/cjs/multisig/publickey.js +228 -276
  222. package/dist/cjs/multisig/publickey.js.map +1 -0
  223. package/dist/cjs/multisig/signer.js +62 -110
  224. package/dist/cjs/multisig/signer.js.map +1 -0
  225. package/dist/cjs/transactions/Arguments.d.ts +4 -4
  226. package/dist/cjs/transactions/Arguments.js +13 -34
  227. package/dist/cjs/transactions/Arguments.js.map +1 -0
  228. package/dist/cjs/transactions/Commands.js +111 -141
  229. package/dist/cjs/transactions/Commands.js.map +1 -0
  230. package/dist/cjs/transactions/Inputs.js +53 -82
  231. package/dist/cjs/transactions/Inputs.js.map +1 -0
  232. package/dist/cjs/transactions/ObjectCache.d.ts +8 -8
  233. package/dist/cjs/transactions/ObjectCache.js +204 -241
  234. package/dist/cjs/transactions/ObjectCache.js.map +1 -0
  235. package/dist/cjs/transactions/Transaction.d.ts +31 -31
  236. package/dist/cjs/transactions/Transaction.js +628 -719
  237. package/dist/cjs/transactions/Transaction.js.map +1 -0
  238. package/dist/cjs/transactions/TransactionData.d.ts +9 -9
  239. package/dist/cjs/transactions/TransactionData.js +396 -440
  240. package/dist/cjs/transactions/TransactionData.js.map +1 -0
  241. package/dist/cjs/transactions/__tests__/Transaction.test.js +169 -0
  242. package/dist/cjs/transactions/__tests__/Transaction.test.js.map +1 -0
  243. package/dist/cjs/transactions/__tests__/bcs.test.js +202 -0
  244. package/dist/cjs/transactions/__tests__/bcs.test.js.map +1 -0
  245. package/dist/cjs/transactions/data/internal.js +166 -207
  246. package/dist/cjs/transactions/data/internal.js.map +1 -0
  247. package/dist/cjs/transactions/data/v1.js +436 -495
  248. package/dist/cjs/transactions/data/v1.js.map +1 -0
  249. package/dist/cjs/transactions/data/v2.d.ts +5 -5
  250. package/dist/cjs/transactions/data/v2.js +94 -107
  251. package/dist/cjs/transactions/data/v2.js.map +1 -0
  252. package/dist/cjs/transactions/executor/caching.js +71 -113
  253. package/dist/cjs/transactions/executor/caching.js.map +1 -0
  254. package/dist/cjs/transactions/executor/parallel.js +339 -378
  255. package/dist/cjs/transactions/executor/parallel.js.map +1 -0
  256. package/dist/cjs/transactions/executor/queue.js +60 -80
  257. package/dist/cjs/transactions/executor/queue.js.map +1 -0
  258. package/dist/cjs/transactions/executor/serial.d.ts +4 -4
  259. package/dist/cjs/transactions/executor/serial.js +102 -131
  260. package/dist/cjs/transactions/executor/serial.js.map +1 -0
  261. package/dist/cjs/transactions/hash.js +17 -28
  262. package/dist/cjs/transactions/hash.js.map +1 -0
  263. package/dist/cjs/transactions/index.js +33 -49
  264. package/dist/cjs/transactions/index.js.map +1 -0
  265. package/dist/cjs/transactions/intents/CoinWithBalance.js +137 -191
  266. package/dist/cjs/transactions/intents/CoinWithBalance.js.map +1 -0
  267. package/dist/cjs/transactions/object.js +88 -111
  268. package/dist/cjs/transactions/object.js.map +1 -0
  269. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js +20 -32
  270. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js.map +1 -0
  271. package/dist/cjs/transactions/pure.js +38 -60
  272. package/dist/cjs/transactions/pure.js.map +1 -0
  273. package/dist/cjs/transactions/resolve.js +62 -88
  274. package/dist/cjs/transactions/resolve.js.map +1 -0
  275. package/dist/cjs/transactions/serializer.js +150 -163
  276. package/dist/cjs/transactions/serializer.js.map +1 -0
  277. package/dist/cjs/transactions/utils.d.ts +1 -1
  278. package/dist/cjs/transactions/utils.js +114 -125
  279. package/dist/cjs/transactions/utils.js.map +1 -0
  280. package/dist/cjs/utils/constants.js +29 -56
  281. package/dist/cjs/utils/constants.js.map +1 -0
  282. package/dist/cjs/utils/derived-objects.js +14 -30
  283. package/dist/cjs/utils/derived-objects.js.map +1 -0
  284. package/dist/cjs/utils/dynamic-fields.js +20 -37
  285. package/dist/cjs/utils/dynamic-fields.js.map +1 -0
  286. package/dist/cjs/utils/format.js +14 -30
  287. package/dist/cjs/utils/format.js.map +1 -0
  288. package/dist/cjs/utils/index.js +50 -64
  289. package/dist/cjs/utils/index.js.map +1 -0
  290. package/dist/cjs/utils/move-registry.js +37 -35
  291. package/dist/cjs/utils/move-registry.js.map +1 -0
  292. package/dist/cjs/utils/sui-types.js +74 -68
  293. package/dist/cjs/utils/sui-types.js.map +1 -0
  294. package/dist/cjs/utils/suins.js +30 -46
  295. package/dist/cjs/utils/suins.js.map +1 -0
  296. package/dist/cjs/verify/index.js +12 -27
  297. package/dist/cjs/verify/index.js.map +1 -0
  298. package/dist/cjs/verify/verify.js +83 -110
  299. package/dist/cjs/verify/verify.js.map +1 -0
  300. package/dist/cjs/version.js +8 -25
  301. package/dist/cjs/version.js.map +1 -0
  302. package/dist/cjs/w/call/allocation.js +323 -413
  303. package/dist/cjs/w/call/allocation.js.map +1 -0
  304. package/dist/cjs/w/call/arb.js +105 -136
  305. package/dist/cjs/w/call/arb.js.map +1 -0
  306. package/dist/cjs/w/call/arbitration.js +1206 -1581
  307. package/dist/cjs/w/call/arbitration.js.map +1 -0
  308. package/dist/cjs/w/call/base.js +303 -333
  309. package/dist/cjs/w/call/base.js.map +1 -0
  310. package/dist/cjs/w/call/contact.js +335 -452
  311. package/dist/cjs/w/call/contact.js.map +1 -0
  312. package/dist/cjs/w/call/demand.js +690 -844
  313. package/dist/cjs/w/call/demand.js.map +1 -0
  314. package/dist/cjs/w/call/entity.js +167 -201
  315. package/dist/cjs/w/call/entity.js.map +1 -0
  316. package/dist/cjs/w/call/guard-ins.js +4376 -4389
  317. package/dist/cjs/w/call/guard-ins.js.map +1 -0
  318. package/dist/cjs/w/call/guard.js +1078 -1112
  319. package/dist/cjs/w/call/guard.js.map +1 -0
  320. package/dist/cjs/w/call/index.js +69 -70
  321. package/dist/cjs/w/call/index.js.map +1 -0
  322. package/dist/cjs/w/call/machine.js +1105 -1419
  323. package/dist/cjs/w/call/machine.js.map +1 -0
  324. package/dist/cjs/w/call/order.js +314 -454
  325. package/dist/cjs/w/call/order.js.map +1 -0
  326. package/dist/cjs/w/call/passport.js +214 -253
  327. package/dist/cjs/w/call/passport.js.map +1 -0
  328. package/dist/cjs/w/call/payment.js +187 -224
  329. package/dist/cjs/w/call/payment.js.map +1 -0
  330. package/dist/cjs/w/call/permission.js +1183 -1294
  331. package/dist/cjs/w/call/permission.js.map +1 -0
  332. package/dist/cjs/w/call/personal.js +132 -170
  333. package/dist/cjs/w/call/personal.js.map +1 -0
  334. package/dist/cjs/w/call/progress.js +634 -794
  335. package/dist/cjs/w/call/progress.js.map +1 -0
  336. package/dist/cjs/w/call/proof.js +67 -116
  337. package/dist/cjs/w/call/proof.js.map +1 -0
  338. package/dist/cjs/w/call/repository.js +1037 -1251
  339. package/dist/cjs/w/call/repository.js.map +1 -0
  340. package/dist/cjs/w/call/resource.js +111 -131
  341. package/dist/cjs/w/call/resource.js.map +1 -0
  342. package/dist/cjs/w/call/reward.js +675 -853
  343. package/dist/cjs/w/call/reward.js.map +1 -0
  344. package/dist/cjs/w/call/service.js +1879 -2385
  345. package/dist/cjs/w/call/service.js.map +1 -0
  346. package/dist/cjs/w/call/treasury.js +841 -1138
  347. package/dist/cjs/w/call/treasury.js.map +1 -0
  348. package/dist/cjs/w/call/util.js +593 -624
  349. package/dist/cjs/w/call/util.js.map +1 -0
  350. package/dist/cjs/w/common.d.ts +1 -1
  351. package/dist/cjs/w/common.js +548 -518
  352. package/dist/cjs/w/common.js.map +1 -0
  353. package/dist/cjs/w/exception.js +574 -584
  354. package/dist/cjs/w/exception.js.map +1 -0
  355. package/dist/cjs/w/index.js +26 -23
  356. package/dist/cjs/w/index.js.map +1 -0
  357. package/dist/cjs/w/local/account.js +664 -741
  358. package/dist/cjs/w/local/account.js.map +1 -0
  359. package/dist/cjs/w/local/cache.js +180 -166
  360. package/dist/cjs/w/local/cache.js.map +1 -0
  361. package/dist/cjs/w/local/config.js +51 -80
  362. package/dist/cjs/w/local/config.js.map +1 -0
  363. package/dist/cjs/w/local/index.js +225 -290
  364. package/dist/cjs/w/local/index.js.map +1 -0
  365. package/dist/cjs/w/local/local.d.ts +2 -2
  366. package/dist/cjs/w/local/local.js +638 -646
  367. package/dist/cjs/w/local/local.js.map +1 -0
  368. package/dist/cjs/w/local/storage.js +210 -164
  369. package/dist/cjs/w/local/storage.js.map +1 -0
  370. package/dist/cjs/w/local/token.js +158 -175
  371. package/dist/cjs/w/local/token.js.map +1 -0
  372. package/dist/cjs/w/local/util.js +80 -51
  373. package/dist/cjs/w/local/util.js.map +1 -0
  374. package/dist/cjs/w/local/wip.js +1078 -802
  375. package/dist/cjs/w/local/wip.js.map +1 -0
  376. package/dist/cjs/w/messenger/crypto.js +496 -389
  377. package/dist/cjs/w/messenger/crypto.js.map +1 -0
  378. package/dist/cjs/w/messenger/index.js +53 -35
  379. package/dist/cjs/w/messenger/index.js.map +1 -0
  380. package/dist/cjs/w/messenger/messenger-api.js +1159 -1035
  381. package/dist/cjs/w/messenger/messenger-api.js.map +1 -0
  382. package/dist/cjs/w/messenger/messenger-manager.js +954 -1083
  383. package/dist/cjs/w/messenger/messenger-manager.js.map +1 -0
  384. package/dist/cjs/w/messenger/messenger.d.ts +1 -1
  385. package/dist/cjs/w/messenger/messenger.js +1304 -1450
  386. package/dist/cjs/w/messenger/messenger.js.map +1 -0
  387. package/dist/cjs/w/messenger/server.js +390 -512
  388. package/dist/cjs/w/messenger/server.js.map +1 -0
  389. package/dist/cjs/w/messenger/session.js +399 -403
  390. package/dist/cjs/w/messenger/session.js.map +1 -0
  391. package/dist/cjs/w/messenger/storage.js +881 -777
  392. package/dist/cjs/w/messenger/storage.js.map +1 -0
  393. package/dist/cjs/w/messenger/types.d.ts +2 -2
  394. package/dist/cjs/w/messenger/types.js +83 -103
  395. package/dist/cjs/w/messenger/types.js.map +1 -0
  396. package/dist/cjs/w/messenger/utils.js +29 -34
  397. package/dist/cjs/w/messenger/utils.js.map +1 -0
  398. package/dist/cjs/w/query/bult-in.js +101 -110
  399. package/dist/cjs/w/query/bult-in.js.map +1 -0
  400. package/dist/cjs/w/query/event.js +134 -146
  401. package/dist/cjs/w/query/event.js.map +1 -0
  402. package/dist/cjs/w/query/index.js +22 -20
  403. package/dist/cjs/w/query/index.js.map +1 -0
  404. package/dist/cjs/w/query/object.js +1576 -1576
  405. package/dist/cjs/w/query/object.js.map +1 -0
  406. package/dist/cjs/w/query/received.js +66 -88
  407. package/dist/cjs/w/query/received.js.map +1 -0
  408. package/dist/cjs/w/query/util.js +53 -77
  409. package/dist/cjs/w/query/util.js.map +1 -0
  410. package/dist/cjs/w/util.js +589 -675
  411. package/dist/cjs/w/util.js.map +1 -0
  412. package/dist/esm/bcs/bcs.d.ts +199 -199
  413. package/dist/esm/bcs/bcs.js +269 -310
  414. package/dist/esm/bcs/bcs.js.map +1 -0
  415. package/dist/esm/bcs/effects.d.ts +109 -109
  416. package/dist/esm/bcs/effects.js +171 -179
  417. package/dist/esm/bcs/effects.js.map +1 -0
  418. package/dist/esm/bcs/index.d.ts +1 -2584
  419. package/dist/esm/bcs/index.js +51 -94
  420. package/dist/esm/bcs/index.js.map +1 -0
  421. package/dist/esm/bcs/pure.js +35 -38
  422. package/dist/esm/bcs/pure.js.map +1 -0
  423. package/dist/esm/bcs/type-tag-serializer.js +98 -95
  424. package/dist/esm/bcs/type-tag-serializer.js.map +1 -0
  425. package/dist/esm/bcs/types.js +5 -5
  426. package/dist/esm/bcs/types.js.map +1 -0
  427. package/dist/esm/client/index.js +7 -23
  428. package/dist/esm/client/index.js.map +1 -0
  429. package/dist/esm/client/network.js +23 -22
  430. package/dist/esm/client/network.js.map +1 -0
  431. package/dist/esm/cryptography/index.js +9 -46
  432. package/dist/esm/cryptography/index.js.map +1 -0
  433. package/dist/esm/cryptography/intent.d.ts +1 -1
  434. package/dist/esm/cryptography/intent.js +18 -12
  435. package/dist/esm/cryptography/intent.js.map +1 -0
  436. package/dist/esm/cryptography/keypair.js +95 -99
  437. package/dist/esm/cryptography/keypair.js.map +1 -0
  438. package/dist/esm/cryptography/mnemonics.js +40 -24
  439. package/dist/esm/cryptography/mnemonics.js.map +1 -0
  440. package/dist/esm/cryptography/publickey.js +104 -115
  441. package/dist/esm/cryptography/publickey.js.map +1 -0
  442. package/dist/esm/cryptography/signature-scheme.js +22 -24
  443. package/dist/esm/cryptography/signature-scheme.js.map +1 -0
  444. package/dist/esm/cryptography/signature.d.ts +2 -24
  445. package/dist/esm/cryptography/signature.js +44 -48
  446. package/dist/esm/cryptography/signature.js.map +1 -0
  447. package/dist/esm/experimental/cache.js +61 -0
  448. package/dist/esm/experimental/cache.js.map +1 -0
  449. package/dist/esm/experimental/client.js +23 -0
  450. package/dist/esm/experimental/client.js.map +1 -0
  451. package/dist/esm/experimental/core.js +85 -0
  452. package/dist/esm/experimental/core.js.map +1 -0
  453. package/dist/esm/experimental/errors.js +27 -0
  454. package/dist/esm/experimental/errors.js.map +1 -0
  455. package/dist/esm/experimental/index.js +8 -0
  456. package/dist/esm/experimental/index.js.map +1 -0
  457. package/dist/esm/experimental/persistent-storage.js +337 -0
  458. package/dist/esm/experimental/persistent-storage.js.map +1 -0
  459. package/dist/esm/experimental/persistent-storage.test.js +198 -0
  460. package/dist/esm/experimental/persistent-storage.test.js.map +1 -0
  461. package/dist/esm/experimental/transports/utils.js +100 -0
  462. package/dist/esm/experimental/transports/utils.js.map +1 -0
  463. package/dist/esm/experimental/types.js +5 -0
  464. package/dist/esm/experimental/types.js.map +1 -0
  465. package/dist/esm/faucet/faucet.js +104 -111
  466. package/dist/esm/faucet/faucet.js.map +1 -0
  467. package/dist/esm/faucet/index.js +4 -16
  468. package/dist/esm/faucet/index.js.map +1 -0
  469. package/dist/esm/grpc/client.js +34 -34
  470. package/dist/esm/grpc/client.js.map +1 -0
  471. package/dist/esm/grpc/core.js +570 -601
  472. package/dist/esm/grpc/core.js.map +1 -0
  473. package/dist/esm/grpc/index.js +5 -6
  474. package/dist/esm/grpc/index.js.map +1 -0
  475. package/dist/esm/grpc/proto/google/protobuf/any.js +161 -111
  476. package/dist/esm/grpc/proto/google/protobuf/any.js.map +1 -0
  477. package/dist/esm/grpc/proto/google/protobuf/duration.js +99 -67
  478. package/dist/esm/grpc/proto/google/protobuf/duration.js.map +1 -0
  479. package/dist/esm/grpc/proto/google/protobuf/empty.js +46 -7
  480. package/dist/esm/grpc/proto/google/protobuf/empty.js.map +1 -0
  481. package/dist/esm/grpc/proto/google/protobuf/field_mask.js +90 -52
  482. package/dist/esm/grpc/proto/google/protobuf/field_mask.js.map +1 -0
  483. package/dist/esm/grpc/proto/google/protobuf/struct.js +258 -190
  484. package/dist/esm/grpc/proto/google/protobuf/struct.js.map +1 -0
  485. package/dist/esm/grpc/proto/google/protobuf/timestamp.js +144 -108
  486. package/dist/esm/grpc/proto/google/protobuf/timestamp.js.map +1 -0
  487. package/dist/esm/grpc/proto/google/rpc/error_details.js +313 -267
  488. package/dist/esm/grpc/proto/google/rpc/error_details.js.map +1 -0
  489. package/dist/esm/grpc/proto/google/rpc/status.js +45 -28
  490. package/dist/esm/grpc/proto/google/rpc/status.js.map +1 -0
  491. package/dist/esm/grpc/proto/sui/rpc/v2/argument.js +80 -47
  492. package/dist/esm/grpc/proto/sui/rpc/v2/argument.js.map +1 -0
  493. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js +41 -29
  494. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js.map +1 -0
  495. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js +34 -22
  496. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js.map +1 -0
  497. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js +61 -49
  498. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js.map +1 -0
  499. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js +72 -57
  500. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js.map +1 -0
  501. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js +173 -139
  502. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js.map +1 -0
  503. package/dist/esm/grpc/proto/sui/rpc/v2/effects.js +358 -268
  504. package/dist/esm/grpc/proto/sui/rpc/v2/effects.js.map +1 -0
  505. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js +72 -60
  506. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js.map +1 -0
  507. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js +29 -9
  508. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js.map +1 -0
  509. package/dist/esm/grpc/proto/sui/rpc/v2/event.js +74 -59
  510. package/dist/esm/grpc/proto/sui/rpc/v2/event.js.map +1 -0
  511. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js +69 -57
  512. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js.map +1 -0
  513. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js +861 -474
  514. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js.map +1 -0
  515. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js +52 -40
  516. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js.map +1 -0
  517. package/dist/esm/grpc/proto/sui/rpc/v2/input.js +98 -61
  518. package/dist/esm/grpc/proto/sui/rpc/v2/input.js.map +1 -0
  519. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js +71 -56
  520. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js.map +1 -0
  521. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js +65 -100
  522. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js.map +1 -0
  523. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js +365 -306
  524. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js.map +1 -0
  525. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js +585 -442
  526. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js.map +1 -0
  527. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js +42 -59
  528. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js.map +1 -0
  529. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js +226 -191
  530. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js.map +1 -0
  531. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js +28 -33
  532. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js.map +1 -0
  533. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js +129 -107
  534. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js.map +1 -0
  535. package/dist/esm/grpc/proto/sui/rpc/v2/object.js +100 -85
  536. package/dist/esm/grpc/proto/sui/rpc/v2/object.js.map +1 -0
  537. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js +42 -30
  538. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js.map +1 -0
  539. package/dist/esm/grpc/proto/sui/rpc/v2/owner.js +72 -40
  540. package/dist/esm/grpc/proto/sui/rpc/v2/owner.js.map +1 -0
  541. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js +42 -38
  542. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js.map +1 -0
  543. package/dist/esm/grpc/proto/sui/rpc/v2/signature.js +544 -481
  544. package/dist/esm/grpc/proto/sui/rpc/v2/signature.js.map +1 -0
  545. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js +52 -13
  546. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js.map +1 -0
  547. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +23 -28
  548. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js.map +1 -0
  549. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js +74 -60
  550. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js.map +1 -0
  551. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js +49 -66
  552. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js.map +1 -0
  553. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js +623 -490
  554. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js.map +1 -0
  555. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js +33 -32
  556. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js.map +1 -0
  557. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js +50 -36
  558. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js.map +1 -0
  559. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js +737 -701
  560. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js.map +1 -0
  561. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js +1177 -917
  562. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js.map +1 -0
  563. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +28 -27
  564. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js.map +1 -0
  565. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js +169 -133
  566. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js.map +1 -0
  567. package/dist/esm/index.js +21 -107
  568. package/dist/esm/index.js.map +1 -0
  569. package/dist/esm/jsonRpc/client.js +646 -727
  570. package/dist/esm/jsonRpc/client.js.map +1 -0
  571. package/dist/esm/jsonRpc/core.d.ts +7 -7
  572. package/dist/esm/jsonRpc/core.js +550 -581
  573. package/dist/esm/jsonRpc/core.js.map +1 -0
  574. package/dist/esm/jsonRpc/errors.js +36 -41
  575. package/dist/esm/jsonRpc/errors.js.map +1 -0
  576. package/dist/esm/jsonRpc/http-transport.js +65 -93
  577. package/dist/esm/jsonRpc/http-transport.js.map +1 -0
  578. package/dist/esm/jsonRpc/index.js +6 -20
  579. package/dist/esm/jsonRpc/index.js.map +1 -0
  580. package/dist/esm/jsonRpc/json-rpc-resolver.js +281 -276
  581. package/dist/esm/jsonRpc/json-rpc-resolver.js.map +1 -0
  582. package/dist/esm/jsonRpc/rpc-websocket-client.js +147 -189
  583. package/dist/esm/jsonRpc/rpc-websocket-client.js.map +1 -0
  584. package/dist/esm/jsonRpc/types/chain.js +4 -0
  585. package/dist/esm/jsonRpc/types/chain.js.map +1 -0
  586. package/dist/esm/jsonRpc/types/changes.js +4 -0
  587. package/dist/esm/jsonRpc/types/changes.js.map +1 -0
  588. package/dist/esm/jsonRpc/types/coins.js +4 -0
  589. package/dist/esm/jsonRpc/types/coins.js.map +1 -0
  590. package/dist/esm/jsonRpc/types/common.js +4 -0
  591. package/dist/esm/jsonRpc/types/common.js.map +1 -0
  592. package/dist/esm/jsonRpc/types/generated.d.ts +1 -1
  593. package/dist/esm/jsonRpc/types/generated.js +4 -0
  594. package/dist/esm/jsonRpc/types/generated.js.map +1 -0
  595. package/dist/esm/jsonRpc/types/index.js +4 -0
  596. package/dist/esm/jsonRpc/types/index.js.map +1 -0
  597. package/dist/esm/jsonRpc/types/params.js +4 -0
  598. package/dist/esm/jsonRpc/types/params.js.map +1 -0
  599. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js +49 -48
  600. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js.map +1 -0
  601. package/dist/esm/keypairs/ed25519/index.js +5 -10
  602. package/dist/esm/keypairs/ed25519/index.js.map +1 -0
  603. package/dist/esm/keypairs/ed25519/keypair.js +128 -146
  604. package/dist/esm/keypairs/ed25519/keypair.js.map +1 -0
  605. package/dist/esm/keypairs/ed25519/publickey.js +64 -67
  606. package/dist/esm/keypairs/ed25519/publickey.js.map +1 -0
  607. package/dist/esm/keypairs/index.js +3 -0
  608. package/dist/esm/keypairs/index.js.map +1 -0
  609. package/dist/esm/keypairs/passkey/index.js +5 -12
  610. package/dist/esm/keypairs/passkey/index.js.map +1 -0
  611. package/dist/esm/keypairs/passkey/keypair.js +236 -243
  612. package/dist/esm/keypairs/passkey/keypair.js.map +1 -0
  613. package/dist/esm/keypairs/passkey/publickey.js +154 -140
  614. package/dist/esm/keypairs/passkey/publickey.js.map +1 -0
  615. package/dist/esm/keypairs/passkey/types.js +4 -0
  616. package/dist/esm/keypairs/passkey/types.js.map +1 -0
  617. package/dist/esm/keypairs/secp256k1/index.js +5 -10
  618. package/dist/esm/keypairs/secp256k1/index.js.map +1 -0
  619. package/dist/esm/keypairs/secp256k1/keypair.js +120 -134
  620. package/dist/esm/keypairs/secp256k1/keypair.js.map +1 -0
  621. package/dist/esm/keypairs/secp256k1/publickey.js +64 -71
  622. package/dist/esm/keypairs/secp256k1/publickey.js.map +1 -0
  623. package/dist/esm/keypairs/secp256r1/index.js +5 -10
  624. package/dist/esm/keypairs/secp256r1/index.js.map +1 -0
  625. package/dist/esm/keypairs/secp256r1/keypair.js +118 -131
  626. package/dist/esm/keypairs/secp256r1/keypair.js.map +1 -0
  627. package/dist/esm/keypairs/secp256r1/publickey.js +63 -66
  628. package/dist/esm/keypairs/secp256r1/publickey.js.map +1 -0
  629. package/dist/esm/multisig/index.js +5 -10
  630. package/dist/esm/multisig/index.js.map +1 -0
  631. package/dist/esm/multisig/publickey.d.ts +1 -1
  632. package/dist/esm/multisig/publickey.js +216 -253
  633. package/dist/esm/multisig/publickey.js.map +1 -0
  634. package/dist/esm/multisig/signer.js +57 -89
  635. package/dist/esm/multisig/signer.js.map +1 -0
  636. package/dist/esm/transactions/Arguments.d.ts +4 -4
  637. package/dist/esm/transactions/Arguments.js +9 -13
  638. package/dist/esm/transactions/Arguments.js.map +1 -0
  639. package/dist/esm/transactions/Commands.js +105 -118
  640. package/dist/esm/transactions/Commands.js.map +1 -0
  641. package/dist/esm/transactions/Inputs.js +49 -61
  642. package/dist/esm/transactions/Inputs.js.map +1 -0
  643. package/dist/esm/transactions/ObjectCache.d.ts +8 -8
  644. package/dist/esm/transactions/ObjectCache.js +200 -223
  645. package/dist/esm/transactions/ObjectCache.js.map +1 -0
  646. package/dist/esm/transactions/Transaction.d.ts +32 -32
  647. package/dist/esm/transactions/Transaction.js +611 -696
  648. package/dist/esm/transactions/Transaction.js.map +1 -0
  649. package/dist/esm/transactions/TransactionData.d.ts +9 -9
  650. package/dist/esm/transactions/TransactionData.js +386 -415
  651. package/dist/esm/transactions/TransactionData.js.map +1 -0
  652. package/dist/esm/transactions/__tests__/Transaction.test.js +167 -0
  653. package/dist/esm/transactions/__tests__/Transaction.test.js.map +1 -0
  654. package/dist/esm/transactions/__tests__/bcs.test.js +200 -0
  655. package/dist/esm/transactions/__tests__/bcs.test.js.map +1 -0
  656. package/dist/esm/transactions/data/internal.js +158 -205
  657. package/dist/esm/transactions/data/internal.js.map +1 -0
  658. package/dist/esm/transactions/data/v1.js +419 -487
  659. package/dist/esm/transactions/data/v1.js.map +1 -0
  660. package/dist/esm/transactions/data/v2.d.ts +5 -5
  661. package/dist/esm/transactions/data/v2.js +89 -107
  662. package/dist/esm/transactions/data/v2.js.map +1 -0
  663. package/dist/esm/transactions/executor/caching.d.ts +2 -2
  664. package/dist/esm/transactions/executor/caching.js +66 -93
  665. package/dist/esm/transactions/executor/caching.js.map +1 -0
  666. package/dist/esm/transactions/executor/parallel.js +329 -352
  667. package/dist/esm/transactions/executor/parallel.js.map +1 -0
  668. package/dist/esm/transactions/executor/queue.js +58 -64
  669. package/dist/esm/transactions/executor/queue.js.map +1 -0
  670. package/dist/esm/transactions/executor/serial.d.ts +5 -5
  671. package/dist/esm/transactions/executor/serial.js +96 -110
  672. package/dist/esm/transactions/executor/serial.js.map +1 -0
  673. package/dist/esm/transactions/hash.js +15 -9
  674. package/dist/esm/transactions/hash.js.map +1 -0
  675. package/dist/esm/transactions/index.js +15 -41
  676. package/dist/esm/transactions/index.js.map +1 -0
  677. package/dist/esm/transactions/intents/CoinWithBalance.js +127 -165
  678. package/dist/esm/transactions/intents/CoinWithBalance.js.map +1 -0
  679. package/dist/esm/transactions/object.js +86 -92
  680. package/dist/esm/transactions/object.js.map +1 -0
  681. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js +18 -15
  682. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js.map +1 -0
  683. package/dist/esm/transactions/pure.js +34 -39
  684. package/dist/esm/transactions/pure.js.map +1 -0
  685. package/dist/esm/transactions/resolve.js +58 -69
  686. package/dist/esm/transactions/resolve.js.map +1 -0
  687. package/dist/esm/transactions/serializer.js +145 -144
  688. package/dist/esm/transactions/serializer.js.map +1 -0
  689. package/dist/esm/transactions/utils.d.ts +1 -1
  690. package/dist/esm/transactions/utils.js +110 -109
  691. package/dist/esm/transactions/utils.js.map +1 -0
  692. package/dist/esm/utils/constants.js +26 -36
  693. package/dist/esm/utils/constants.js.map +1 -0
  694. package/dist/esm/utils/derived-objects.js +11 -10
  695. package/dist/esm/utils/derived-objects.js.map +1 -0
  696. package/dist/esm/utils/dynamic-fields.js +16 -16
  697. package/dist/esm/utils/dynamic-fields.js.map +1 -0
  698. package/dist/esm/utils/format.js +13 -13
  699. package/dist/esm/utils/format.js.map +1 -0
  700. package/dist/esm/utils/index.js +15 -76
  701. package/dist/esm/utils/index.js.map +1 -0
  702. package/dist/esm/utils/move-registry.js +34 -17
  703. package/dist/esm/utils/move-registry.js.map +1 -0
  704. package/dist/esm/utils/sui-types.js +70 -54
  705. package/dist/esm/utils/sui-types.js.map +1 -0
  706. package/dist/esm/utils/suins.js +29 -29
  707. package/dist/esm/utils/suins.js.map +1 -0
  708. package/dist/esm/verify/index.js +5 -14
  709. package/dist/esm/verify/index.js.map +1 -0
  710. package/dist/esm/verify/verify.js +76 -93
  711. package/dist/esm/verify/verify.js.map +1 -0
  712. package/dist/esm/version.js +6 -6
  713. package/dist/esm/version.js.map +1 -0
  714. package/dist/esm/w/call/allocation.js +307 -402
  715. package/dist/esm/w/call/allocation.js.map +1 -0
  716. package/dist/esm/w/call/arb.js +100 -129
  717. package/dist/esm/w/call/arb.js.map +1 -0
  718. package/dist/esm/w/call/arbitration.js +1170 -1568
  719. package/dist/esm/w/call/arbitration.js.map +1 -0
  720. package/dist/esm/w/call/base.js +288 -315
  721. package/dist/esm/w/call/base.js.map +1 -0
  722. package/dist/esm/w/call/contact.js +318 -442
  723. package/dist/esm/w/call/contact.js.map +1 -0
  724. package/dist/esm/w/call/demand.js +673 -841
  725. package/dist/esm/w/call/demand.js.map +1 -0
  726. package/dist/esm/w/call/entity.js +162 -203
  727. package/dist/esm/w/call/entity.js.map +1 -0
  728. package/dist/esm/w/call/guard-ins.js +4373 -4371
  729. package/dist/esm/w/call/guard-ins.js.map +1 -0
  730. package/dist/esm/w/call/guard.js +1061 -1108
  731. package/dist/esm/w/call/guard.js.map +1 -0
  732. package/dist/esm/w/call/index.js +24 -56
  733. package/dist/esm/w/call/index.js.map +1 -0
  734. package/dist/esm/w/call/machine.js +1086 -1433
  735. package/dist/esm/w/call/machine.js.map +1 -0
  736. package/dist/esm/w/call/order.js +301 -448
  737. package/dist/esm/w/call/order.js.map +1 -0
  738. package/dist/esm/w/call/passport.js +204 -240
  739. package/dist/esm/w/call/passport.js.map +1 -0
  740. package/dist/esm/w/call/payment.js +177 -215
  741. package/dist/esm/w/call/payment.js.map +1 -0
  742. package/dist/esm/w/call/permission.js +1172 -1320
  743. package/dist/esm/w/call/permission.js.map +1 -0
  744. package/dist/esm/w/call/personal.js +121 -156
  745. package/dist/esm/w/call/personal.js.map +1 -0
  746. package/dist/esm/w/call/progress.js +625 -797
  747. package/dist/esm/w/call/progress.js.map +1 -0
  748. package/dist/esm/w/call/proof.js +61 -103
  749. package/dist/esm/w/call/proof.js.map +1 -0
  750. package/dist/esm/w/call/repository.js +1017 -1251
  751. package/dist/esm/w/call/repository.js.map +1 -0
  752. package/dist/esm/w/call/resource.js +108 -124
  753. package/dist/esm/w/call/resource.js.map +1 -0
  754. package/dist/esm/w/call/reward.js +660 -847
  755. package/dist/esm/w/call/reward.js.map +1 -0
  756. package/dist/esm/w/call/service.js +1849 -2400
  757. package/dist/esm/w/call/service.js.map +1 -0
  758. package/dist/esm/w/call/treasury.js +815 -1125
  759. package/dist/esm/w/call/treasury.js.map +1 -0
  760. package/dist/esm/w/call/util.js +553 -576
  761. package/dist/esm/w/call/util.js.map +1 -0
  762. package/dist/esm/w/common.d.ts +1 -1
  763. package/dist/esm/w/common.js +579 -580
  764. package/dist/esm/w/common.js.map +1 -0
  765. package/dist/esm/w/exception.js +570 -573
  766. package/dist/esm/w/exception.js.map +1 -0
  767. package/dist/esm/w/index.js +4 -0
  768. package/dist/esm/w/index.js.map +1 -0
  769. package/dist/esm/w/local/account.js +652 -709
  770. package/dist/esm/w/local/account.js.map +1 -0
  771. package/dist/esm/w/local/cache.js +176 -147
  772. package/dist/esm/w/local/cache.js.map +1 -0
  773. package/dist/esm/w/local/config.js +46 -60
  774. package/dist/esm/w/local/config.js.map +1 -0
  775. package/dist/esm/w/local/index.js +196 -273
  776. package/dist/esm/w/local/index.js.map +1 -0
  777. package/dist/esm/w/local/local.d.ts +2 -2
  778. package/dist/esm/w/local/local.js +631 -626
  779. package/dist/esm/w/local/local.js.map +1 -0
  780. package/dist/esm/w/local/storage.js +168 -136
  781. package/dist/esm/w/local/storage.js.map +1 -0
  782. package/dist/esm/w/local/token.js +149 -151
  783. package/dist/esm/w/local/token.js.map +1 -0
  784. package/dist/esm/w/local/util.js +45 -22
  785. package/dist/esm/w/local/util.js.map +1 -0
  786. package/dist/esm/w/local/wip.js +1038 -781
  787. package/dist/esm/w/local/wip.js.map +1 -0
  788. package/dist/esm/w/messenger/crypto.js +491 -387
  789. package/dist/esm/w/messenger/crypto.js.map +1 -0
  790. package/dist/esm/w/messenger/index.js +27 -24
  791. package/dist/esm/w/messenger/index.js.map +1 -0
  792. package/dist/esm/w/messenger/messenger-api.js +1111 -1017
  793. package/dist/esm/w/messenger/messenger-api.js.map +1 -0
  794. package/dist/esm/w/messenger/messenger-manager.js +944 -1052
  795. package/dist/esm/w/messenger/messenger-manager.js.map +1 -0
  796. package/dist/esm/w/messenger/messenger.d.ts +1 -1
  797. package/dist/esm/w/messenger/messenger.js +1258 -1421
  798. package/dist/esm/w/messenger/messenger.js.map +1 -0
  799. package/dist/esm/w/messenger/server.js +388 -499
  800. package/dist/esm/w/messenger/server.js.map +1 -0
  801. package/dist/esm/w/messenger/session.js +394 -399
  802. package/dist/esm/w/messenger/session.js.map +1 -0
  803. package/dist/esm/w/messenger/storage.js +840 -751
  804. package/dist/esm/w/messenger/storage.js.map +1 -0
  805. package/dist/esm/w/messenger/types.d.ts +2 -2
  806. package/dist/esm/w/messenger/types.js +80 -85
  807. package/dist/esm/w/messenger/types.js.map +1 -0
  808. package/dist/esm/w/messenger/utils.js +28 -16
  809. package/dist/esm/w/messenger/utils.js.map +1 -0
  810. package/dist/esm/w/query/bult-in.js +95 -100
  811. package/dist/esm/w/query/bult-in.js.map +1 -0
  812. package/dist/esm/w/query/event.js +128 -125
  813. package/dist/esm/w/query/event.js.map +1 -0
  814. package/dist/esm/w/query/index.js +3 -0
  815. package/dist/esm/w/query/index.js.map +1 -0
  816. package/dist/esm/w/query/object.js +1560 -1574
  817. package/dist/esm/w/query/object.js.map +1 -0
  818. package/dist/esm/w/query/received.js +57 -63
  819. package/dist/esm/w/query/received.js.map +1 -0
  820. package/dist/esm/w/query/util.js +48 -56
  821. package/dist/esm/w/query/util.js.map +1 -0
  822. package/dist/esm/w/util.js +578 -673
  823. package/dist/esm/w/util.js.map +1 -0
  824. package/package.json +13 -7
  825. package/prebuilds/better-sqlite3-v12.9.0-node-v115-darwin-arm64.node +0 -0
  826. package/prebuilds/better-sqlite3-v12.9.0-node-v115-darwin-x64.node +0 -0
  827. package/prebuilds/better-sqlite3-v12.9.0-node-v115-linux-arm.node +0 -0
  828. package/prebuilds/better-sqlite3-v12.9.0-node-v115-linux-arm64.node +0 -0
  829. package/prebuilds/better-sqlite3-v12.9.0-node-v115-linux-x64.node +0 -0
  830. package/prebuilds/better-sqlite3-v12.9.0-node-v115-win32-arm64.node +0 -0
  831. package/prebuilds/better-sqlite3-v12.9.0-node-v115-win32-x64.node +0 -0
  832. package/prebuilds/better-sqlite3-v12.9.0-node-v127-darwin-arm64.node +0 -0
  833. package/prebuilds/better-sqlite3-v12.9.0-node-v127-darwin-x64.node +0 -0
  834. package/prebuilds/better-sqlite3-v12.9.0-node-v127-linux-arm.node +0 -0
  835. package/prebuilds/better-sqlite3-v12.9.0-node-v127-linux-arm64.node +0 -0
  836. package/prebuilds/better-sqlite3-v12.9.0-node-v127-linux-x64.node +0 -0
  837. package/prebuilds/better-sqlite3-v12.9.0-node-v127-win32-arm64.node +0 -0
  838. package/prebuilds/better-sqlite3-v12.9.0-node-v127-win32-x64.node +0 -0
  839. package/scripts/download-prebuilds.js +234 -0
  840. package/scripts/install-better-sqlite3.js +377 -0
  841. package/dist/cjs/graphql/client.js +0 -98
  842. package/dist/cjs/graphql/core.js +0 -506
  843. package/dist/cjs/graphql/generated/2024.1/tada-env.js +0 -13141
  844. package/dist/cjs/graphql/generated/2024.1/tsconfig.tada.js +0 -11
  845. package/dist/cjs/graphql/generated/2024.4/tada-env.js +0 -13287
  846. package/dist/cjs/graphql/generated/2024.4/tsconfig.tada.js +0 -11
  847. package/dist/cjs/graphql/generated/latest/tada-env.js +0 -12925
  848. package/dist/cjs/graphql/generated/latest/tsconfig.tada.js +0 -11
  849. package/dist/cjs/graphql/generated/queries.js +0 -807
  850. package/dist/cjs/graphql/index.js +0 -25
  851. package/dist/cjs/graphql/schemas/2024.1/index.js +0 -28
  852. package/dist/cjs/graphql/schemas/2024.4/index.js +0 -28
  853. package/dist/cjs/graphql/schemas/latest/index.js +0 -28
  854. package/dist/cjs/graphql/types.js +0 -16
  855. package/dist/cjs/package.json +0 -5
  856. package/dist/cjs/w/local/.eslintrc.js +0 -15
  857. package/dist/cjs/w/messenger/.eslintrc.js +0 -15
  858. package/dist/cjs/zklogin/address.js +0 -93
  859. package/dist/cjs/zklogin/bcs.js +0 -41
  860. package/dist/cjs/zklogin/index.js +0 -45
  861. package/dist/cjs/zklogin/jwt-decode.js +0 -88
  862. package/dist/cjs/zklogin/jwt-utils.js +0 -128
  863. package/dist/cjs/zklogin/nonce.js +0 -60
  864. package/dist/cjs/zklogin/poseidon.js +0 -64
  865. package/dist/cjs/zklogin/publickey.js +0 -281
  866. package/dist/cjs/zklogin/signature.js +0 -57
  867. package/dist/cjs/zklogin/utils.js +0 -98
  868. package/dist/esm/graphql/client.js +0 -79
  869. package/dist/esm/graphql/core.js +0 -505
  870. package/dist/esm/graphql/generated/2024.1/tada-env.js +0 -13121
  871. package/dist/esm/graphql/generated/2024.1/tsconfig.tada.js +0 -16
  872. package/dist/esm/graphql/generated/2024.4/tada-env.js +0 -13267
  873. package/dist/esm/graphql/generated/2024.4/tsconfig.tada.js +0 -16
  874. package/dist/esm/graphql/generated/latest/tada-env.js +0 -12905
  875. package/dist/esm/graphql/generated/latest/tsconfig.tada.js +0 -16
  876. package/dist/esm/graphql/generated/queries.js +0 -788
  877. package/dist/esm/graphql/index.js +0 -8
  878. package/dist/esm/graphql/schemas/2024.1/index.js +0 -8
  879. package/dist/esm/graphql/schemas/2024.4/index.js +0 -8
  880. package/dist/esm/graphql/schemas/latest/index.js +0 -8
  881. package/dist/esm/graphql/types.js +0 -0
  882. package/dist/esm/package.json +0 -5
  883. package/dist/esm/w/local/.eslintrc.js +0 -23
  884. package/dist/esm/w/messenger/.eslintrc.js +0 -23
  885. package/dist/esm/zklogin/address.js +0 -78
  886. package/dist/esm/zklogin/bcs.js +0 -21
  887. package/dist/esm/zklogin/index.js +0 -38
  888. package/dist/esm/zklogin/jwt-decode.js +0 -68
  889. package/dist/esm/zklogin/jwt-utils.js +0 -108
  890. package/dist/esm/zklogin/nonce.js +0 -40
  891. package/dist/esm/zklogin/poseidon.js +0 -61
  892. package/dist/esm/zklogin/publickey.js +0 -265
  893. package/dist/esm/zklogin/signature.js +0 -37
  894. package/dist/esm/zklogin/utils.js +0 -78
  895. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  896. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,448 +1,555 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var crypto_exports = {};
20
- __export(crypto_exports, {
21
- arrayBufferToUint8Array: () => arrayBufferToUint8Array,
22
- base64ToBytes: () => base64ToBytes,
23
- bufferEqual: () => bufferEqual,
24
- bytesToBase64: () => bytesToBase64,
25
- bytesToHex: () => bytesToHex,
26
- calculateMerkleLeafHash: () => calculateMerkleLeafHash,
27
- computeNewRoot: () => computeNewRoot,
28
- generateNonce: () => generateNonce,
29
- hashMessage: () => hashMessage,
30
- hashPlaintext: () => hashPlaintext,
31
- hashSha256: () => hashSha256,
32
- hexToBytes: () => hexToBytes,
33
- merkleHash: () => merkleHash,
34
- recoverXed25519FromX25519PrivateKey: () => recoverXed25519FromX25519PrivateKey,
35
- uint8ArrayToArrayBuffer: () => uint8ArrayToArrayBuffer,
36
- verifyEd25519Signature: () => verifyEd25519Signature,
37
- verifyMerkleChain: () => verifyMerkleChain,
38
- verifyMerkleProof: () => verifyMerkleProof,
39
- verifyMessage: () => verifyMessage,
40
- verifySingleMerkleRoot: () => verifySingleMerkleRoot,
41
- verifyWtsMessages: () => verifyWtsMessages
42
- });
43
- module.exports = __toCommonJS(crypto_exports);
44
- var import_ed25519 = require("@noble/curves/ed25519");
45
- var import_sha256 = require("@noble/hashes/sha256");
46
- var import_utils = require("@noble/hashes/utils");
2
+ // Copyright (c) Wowok.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.recoverXed25519FromX25519PrivateKey = recoverXed25519FromX25519PrivateKey;
6
+ exports.hashSha256 = hashSha256;
7
+ exports.hashMessage = hashMessage;
8
+ exports.hashPlaintext = hashPlaintext;
9
+ exports.generateNonce = generateNonce;
10
+ exports.bytesToBase64 = bytesToBase64;
11
+ exports.base64ToBytes = base64ToBytes;
12
+ exports.bytesToHex = bytesToHex;
13
+ exports.hexToBytes = hexToBytes;
14
+ exports.arrayBufferToUint8Array = arrayBufferToUint8Array;
15
+ exports.uint8ArrayToArrayBuffer = uint8ArrayToArrayBuffer;
16
+ exports.bufferEqual = bufferEqual;
17
+ exports.calculateMerkleLeafHash = calculateMerkleLeafHash;
18
+ exports.merkleHash = merkleHash;
19
+ exports.computeNewRoot = computeNewRoot;
20
+ exports.verifyMerkleProof = verifyMerkleProof;
21
+ exports.verifyMerkleChain = verifyMerkleChain;
22
+ exports.verifySingleMerkleRoot = verifySingleMerkleRoot;
23
+ exports.verifyMessage = verifyMessage;
24
+ exports.verifyEd25519Signature = verifyEd25519Signature;
25
+ exports.verifyWtsMessages = verifyWtsMessages;
26
+ /**
27
+ * Messenger 加密工具模块
28
+ *
29
+ * 基于 Signal Protocol (双棘轮算法) 的端到端加密实现
30
+ * 使用 XEd25519 进行密钥转换,兼容 Ed25519 签名
31
+ */
32
+ const ed25519_1 = require("@noble/curves/ed25519");
33
+ const sha256_1 = require("@noble/hashes/sha256");
34
+ const utils_1 = require("@noble/hashes/utils");
35
+ // ========== 签名与验证(内部函数) ==========
36
+ /**
37
+ * 使用 Ed25519 公钥验证签名(内部使用)
38
+ */
47
39
  function verifyEd25519(publicKey, message, signature) {
48
- try {
49
- return import_ed25519.ed25519.verify(signature, message, publicKey);
50
- } catch {
51
- return false;
52
- }
40
+ try {
41
+ return ed25519_1.ed25519.verify(signature, message, publicKey);
42
+ }
43
+ catch {
44
+ return false;
45
+ }
53
46
  }
47
+ // ========== 密钥生成 ==========
48
+ /**
49
+ * 从 X25519 私钥恢复 XEd25519 密钥对
50
+ */
54
51
  function recoverXed25519FromX25519PrivateKey(x25519PrivateKey) {
55
- const x25519PublicKey = import_ed25519.x25519.getPublicKey(x25519PrivateKey);
56
- const ed25519PrivateKey = x25519PrivateKey;
57
- const ed25519PublicKey = import_ed25519.ed25519.getPublicKey(ed25519PrivateKey);
58
- return {
59
- x25519PublicKey,
60
- x25519PrivateKey,
61
- ed25519PrivateKey,
62
- ed25519PublicKey
63
- };
52
+ const x25519PublicKey = ed25519_1.x25519.getPublicKey(x25519PrivateKey);
53
+ const ed25519PrivateKey = x25519PrivateKey;
54
+ const ed25519PublicKey = ed25519_1.ed25519.getPublicKey(ed25519PrivateKey);
55
+ return {
56
+ x25519PublicKey,
57
+ x25519PrivateKey,
58
+ ed25519PrivateKey,
59
+ ed25519PublicKey,
60
+ };
64
61
  }
62
+ // ========== 哈希函数 ==========
63
+ /**
64
+ * 计算 SHA-256 哈希
65
+ */
65
66
  function hashSha256(data) {
66
- return (0, import_sha256.sha256)(data);
67
+ return (0, sha256_1.sha256)(data);
67
68
  }
69
+ /**
70
+ * 计算消息哈希(用于 Merkle Tree 叶子节点)
71
+ */
68
72
  function hashMessage(data) {
69
- const hash = (0, import_sha256.sha256)(new TextEncoder().encode(data));
70
- return bytesToHex(hash);
73
+ const hash = (0, sha256_1.sha256)(new TextEncoder().encode(data));
74
+ return bytesToHex(hash);
71
75
  }
76
+ /**
77
+ * 计算明文哈希(用于 Merkle Tree 证明)
78
+ * plaintext_hash = SHA256(plaintext + client_timestamp + guardAddress + passportAddress)
79
+ */
72
80
  function hashPlaintext(plaintext, clientTimestamp, guardAddress, passportAddress, lastReceivedLeafIndex) {
73
- let data = plaintext + clientTimestamp.toString();
74
- if (lastReceivedLeafIndex !== void 0 && lastReceivedLeafIndex >= 0) {
75
- data += lastReceivedLeafIndex.toString();
76
- }
77
- if (guardAddress) {
78
- data += guardAddress;
79
- }
80
- if (passportAddress) {
81
- data += passportAddress;
82
- }
83
- const hash = (0, import_sha256.sha256)(new TextEncoder().encode(data));
84
- return "0x" + bytesToHex(hash);
81
+ let data = plaintext + clientTimestamp.toString();
82
+ // 【新增】包含 lastReceivedLeafIndex 在哈希计算中
83
+ if (lastReceivedLeafIndex !== undefined && lastReceivedLeafIndex >= 0) {
84
+ data += lastReceivedLeafIndex.toString();
85
+ }
86
+ if (guardAddress) {
87
+ data += guardAddress;
88
+ }
89
+ if (passportAddress) {
90
+ data += passportAddress;
91
+ }
92
+ const hash = (0, sha256_1.sha256)(new TextEncoder().encode(data));
93
+ return "0x" + bytesToHex(hash);
85
94
  }
95
+ // ========== 工具函数 ==========
96
+ /**
97
+ * 生成随机 nonce
98
+ */
86
99
  function generateNonce() {
87
- return bytesToHex((0, import_utils.randomBytes)(16));
100
+ return bytesToHex((0, utils_1.randomBytes)(16));
88
101
  }
102
+ /**
103
+ * Uint8Array 转 Base64
104
+ */
89
105
  function bytesToBase64(bytes) {
90
- return Buffer.from(bytes).toString("base64");
106
+ return Buffer.from(bytes).toString("base64");
91
107
  }
108
+ /**
109
+ * Base64 转 Uint8Array
110
+ */
92
111
  function base64ToBytes(base64) {
93
- return new Uint8Array(Buffer.from(base64, "base64"));
112
+ return new Uint8Array(Buffer.from(base64, "base64"));
94
113
  }
114
+ /**
115
+ * Uint8Array 转 Hex
116
+ */
95
117
  function bytesToHex(bytes) {
96
- return Buffer.from(bytes).toString("hex");
118
+ return Buffer.from(bytes).toString("hex");
97
119
  }
120
+ /**
121
+ * Hex 转 Uint8Array
122
+ */
98
123
  function hexToBytes(hex) {
99
- return new Uint8Array(Buffer.from(hex, "hex"));
124
+ return new Uint8Array(Buffer.from(hex, "hex"));
100
125
  }
126
+ /**
127
+ * ArrayBuffer 转 Uint8Array
128
+ */
101
129
  function arrayBufferToUint8Array(buf) {
102
- return new Uint8Array(buf);
130
+ return new Uint8Array(buf);
103
131
  }
132
+ /**
133
+ * Uint8Array 转 ArrayBuffer
134
+ */
104
135
  function uint8ArrayToArrayBuffer(arr) {
105
- const result = arr.buffer.slice(
106
- arr.byteOffset,
107
- arr.byteOffset + arr.byteLength
108
- );
109
- return result;
136
+ const result = arr.buffer.slice(arr.byteOffset, arr.byteOffset + arr.byteLength);
137
+ return result;
110
138
  }
139
+ /**
140
+ * 比较两个 ArrayBuffer 是否相等
141
+ */
111
142
  function bufferEqual(a, b) {
112
- if (a.byteLength !== b.byteLength) return false;
113
- const va = new Uint8Array(a);
114
- const vb = new Uint8Array(b);
115
- for (let i = 0; i < va.length; i++) {
116
- if (va[i] !== vb[i]) return false;
117
- }
118
- return true;
143
+ if (a.byteLength !== b.byteLength)
144
+ return false;
145
+ const va = new Uint8Array(a);
146
+ const vb = new Uint8Array(b);
147
+ for (let i = 0; i < va.length; i++) {
148
+ if (va[i] !== vb[i])
149
+ return false;
150
+ }
151
+ return true;
119
152
  }
153
+ /**
154
+ * 计算 Merkle 叶子哈希(与服务器端 calculate_message_hash 一致)
155
+ * leaf_hash = SHA256(plaintext_hash.as_bytes() + server_timestamp.to_le_bytes())
156
+ */
120
157
  function calculateMerkleLeafHash(plaintextHash, serverTimestamp) {
121
- const plaintextHashBytes = new TextEncoder().encode(plaintextHash);
122
- const timestampBuffer = new ArrayBuffer(8);
123
- const timestampView = new DataView(timestampBuffer);
124
- timestampView.setBigUint64(0, BigInt(serverTimestamp), true);
125
- const timestampBytes = new Uint8Array(timestampBuffer);
126
- const combined = new Uint8Array(
127
- plaintextHashBytes.length + timestampBytes.length
128
- );
129
- combined.set(plaintextHashBytes);
130
- combined.set(timestampBytes, plaintextHashBytes.length);
131
- const hash = (0, import_sha256.sha256)(combined);
132
- return "0x" + bytesToHex(hash);
158
+ const plaintextHashBytes = new TextEncoder().encode(plaintextHash);
159
+ const timestampBuffer = new ArrayBuffer(8);
160
+ const timestampView = new DataView(timestampBuffer);
161
+ timestampView.setBigUint64(0, BigInt(serverTimestamp), true);
162
+ const timestampBytes = new Uint8Array(timestampBuffer);
163
+ const combined = new Uint8Array(plaintextHashBytes.length + timestampBytes.length);
164
+ combined.set(plaintextHashBytes);
165
+ combined.set(timestampBytes, plaintextHashBytes.length);
166
+ const hash = (0, sha256_1.sha256)(combined);
167
+ return "0x" + bytesToHex(hash);
133
168
  }
169
+ // ========== Merkle Tree 工具 ==========
170
+ /**
171
+ * 计算两个哈希的父节点哈希
172
+ */
134
173
  function merkleHash(left, right) {
135
- const leftBytes = hexToBytes(left.replace(/^0x/, ""));
136
- const rightBytes = hexToBytes(right.replace(/^0x/, ""));
137
- const combined = new Uint8Array(leftBytes.length + rightBytes.length);
138
- combined.set(leftBytes);
139
- combined.set(rightBytes, leftBytes.length);
140
- return "0x" + bytesToHex((0, import_sha256.sha256)(combined));
174
+ const leftBytes = hexToBytes(left.replace(/^0x/, ""));
175
+ const rightBytes = hexToBytes(right.replace(/^0x/, ""));
176
+ const combined = new Uint8Array(leftBytes.length + rightBytes.length);
177
+ combined.set(leftBytes);
178
+ combined.set(rightBytes, leftBytes.length);
179
+ return "0x" + bytesToHex((0, sha256_1.sha256)(combined));
141
180
  }
181
+ /**
182
+ * 计算新的 Merkle Root(与服务器保持一致)
183
+ *
184
+ * 服务器算法:
185
+ * new_root = SHA256(prev_root + leaf_hash + leaf_index_le_bytes)
186
+ *
187
+ * @param prevRoot 前一个 Root(hex 格式,带或不带 0x 前缀)
188
+ * @param leafHash 叶子节点哈希(hex 格式,带或不带 0x 前缀)
189
+ * @param leafIndex 叶子节点索引
190
+ * @returns 新的 Root(带 0x 前缀的 hex)
191
+ */
142
192
  function computeNewRoot(prevRoot, leafHash, leafIndex) {
143
- const prevRootBytes = new TextEncoder().encode(prevRoot);
144
- const leafHashBytes = new TextEncoder().encode(leafHash);
145
- const leafIndexBuffer = new ArrayBuffer(4);
146
- const leafIndexView = new DataView(leafIndexBuffer);
147
- leafIndexView.setUint32(0, leafIndex, true);
148
- const leafIndexBytes = new Uint8Array(leafIndexBuffer);
149
- const combined = new Uint8Array(
150
- prevRootBytes.length + leafHashBytes.length + leafIndexBytes.length
151
- );
152
- combined.set(prevRootBytes);
153
- combined.set(leafHashBytes, prevRootBytes.length);
154
- combined.set(leafIndexBytes, prevRootBytes.length + leafHashBytes.length);
155
- return "0x" + bytesToHex((0, import_sha256.sha256)(combined));
193
+ // 与服务器端一致:直接对 hex 字符串编码(而不是解码 hex)
194
+ const prevRootBytes = new TextEncoder().encode(prevRoot);
195
+ const leafHashBytes = new TextEncoder().encode(leafHash);
196
+ // leaf_index 使用小端字节序 (u32)
197
+ const leafIndexBuffer = new ArrayBuffer(4);
198
+ const leafIndexView = new DataView(leafIndexBuffer);
199
+ leafIndexView.setUint32(0, leafIndex, true); // true = little endian
200
+ const leafIndexBytes = new Uint8Array(leafIndexBuffer);
201
+ // 组合:prev_root + leaf_hash + leaf_index
202
+ const combined = new Uint8Array(prevRootBytes.length + leafHashBytes.length + leafIndexBytes.length);
203
+ combined.set(prevRootBytes);
204
+ combined.set(leafHashBytes, prevRootBytes.length);
205
+ combined.set(leafIndexBytes, prevRootBytes.length + leafHashBytes.length);
206
+ return "0x" + bytesToHex((0, sha256_1.sha256)(combined));
156
207
  }
208
+ /**
209
+ * 验证 Merkle Proof
210
+ */
157
211
  function verifyMerkleProof(leafHash, proof) {
158
- let current = leafHash;
159
- for (let i = 0; i < proof.siblings.length; i++) {
160
- if (proof.indices[i] === 0) {
161
- current = merkleHash(current, proof.siblings[i]);
162
- } else {
163
- current = merkleHash(proof.siblings[i], current);
212
+ let current = leafHash;
213
+ for (let i = 0; i < proof.siblings.length; i++) {
214
+ if (proof.indices[i] === 0) {
215
+ // 当前是左子节点
216
+ current = merkleHash(current, proof.siblings[i]);
217
+ }
218
+ else {
219
+ // 当前是右子节点
220
+ current = merkleHash(proof.siblings[i], current);
221
+ }
164
222
  }
165
- }
166
- return current === proof.root;
223
+ return current === proof.root;
167
224
  }
225
+ /**
226
+ * 验证 Merkle Root 链的完整性和时序性
227
+ *
228
+ * 客户端使用此函数独立校验消息链的完整性,通过相同的算法核对 Merkle Tree root 的前后关系
229
+ *
230
+ * @param messages 按顺序排列的消息列表(按 leafIndex 排序)
231
+ * @param initialRoot 初始 Root(可选,默认为全0)
232
+ * @returns 验证结果
233
+ *
234
+ * @example
235
+ * ```typescript
236
+ * const messages = [
237
+ * { leafIndex: 0, prevRoot: "0x00...", newRoot: "0xabc...", plaintextHash: "0x123..." },
238
+ * { leafIndex: 1, prevRoot: "0xabc...", newRoot: "0xdef...", plaintextHash: "0x456..." },
239
+ * ];
240
+ * const result = verifyMerkleChain(messages);
241
+ * if (result.valid) {
242
+ * console.log("Merkle 链验证通过");
243
+ * } else {
244
+ * console.error("验证失败:", result.error);
245
+ * }
246
+ * ```
247
+ */
168
248
  function verifyMerkleChain(messages, initialRoot) {
169
- if (messages.length === 0) {
170
- return { valid: true };
171
- }
172
- const sortedMessages = [...messages].sort(
173
- (a, b) => a.leafIndex - b.leafIndex
174
- );
175
- const zeroRoot = initialRoot || "0x" + "0".repeat(64);
176
- let expectedPrevRoot = zeroRoot;
177
- for (const msg of sortedMessages) {
178
- if (msg.prevRoot.toLowerCase() !== expectedPrevRoot.toLowerCase()) {
179
- return {
180
- valid: false,
181
- error: `Root chain broken at leafIndex ${msg.leafIndex}: expected prevRoot ${expectedPrevRoot}, got ${msg.prevRoot}`,
182
- expectedRoot: expectedPrevRoot,
183
- actualRoot: msg.prevRoot
184
- };
249
+ if (messages.length === 0) {
250
+ return { valid: true };
185
251
  }
186
- const result = verifySingleMerkleRoot(
187
- msg.prevRoot,
188
- msg.newRoot,
189
- msg.plaintextHash,
190
- msg.serverTimestamp,
191
- msg.leafIndex
192
- );
193
- if (!result.valid) {
194
- return {
195
- valid: false,
196
- error: `${result.error} at leafIndex ${msg.leafIndex}`,
197
- expectedRoot: result.expectedRoot,
198
- actualRoot: result.actualRoot
199
- };
252
+ // leafIndex 排序
253
+ const sortedMessages = [...messages].sort((a, b) => a.leafIndex - b.leafIndex);
254
+ // 初始 Root
255
+ const zeroRoot = initialRoot || "0x" + "0".repeat(64);
256
+ let expectedPrevRoot = zeroRoot;
257
+ for (const msg of sortedMessages) {
258
+ // 1. 验证 prevRoot 是否匹配预期(链式连续性检查)
259
+ if (msg.prevRoot.toLowerCase() !== expectedPrevRoot.toLowerCase()) {
260
+ return {
261
+ valid: false,
262
+ error: `Root chain broken at leafIndex ${msg.leafIndex}: expected prevRoot ${expectedPrevRoot}, got ${msg.prevRoot}`,
263
+ expectedRoot: expectedPrevRoot,
264
+ actualRoot: msg.prevRoot,
265
+ };
266
+ }
267
+ // 2. 复用 verifySingleMerkleRoot 验证单个消息的 Root 计算
268
+ const result = verifySingleMerkleRoot(msg.prevRoot, msg.newRoot, msg.plaintextHash, msg.serverTimestamp, msg.leafIndex);
269
+ if (!result.valid) {
270
+ // 添加 leafIndex 上下文到错误信息
271
+ return {
272
+ valid: false,
273
+ error: `${result.error} at leafIndex ${msg.leafIndex}`,
274
+ expectedRoot: result.expectedRoot,
275
+ actualRoot: result.actualRoot,
276
+ };
277
+ }
278
+ // 3. 更新预期的 prevRoot 为当前的 newRoot
279
+ expectedPrevRoot = msg.newRoot;
200
280
  }
201
- expectedPrevRoot = msg.newRoot;
202
- }
203
- return { valid: true };
281
+ return { valid: true };
204
282
  }
283
+ /**
284
+ * 验证单个消息的 Merkle Root 计算
285
+ *
286
+ * 用于验证服务器返回的 Merkle 数据是否正确
287
+ *
288
+ * @param prevRoot 前一个 Root
289
+ * @param newRoot 新的 Root(服务器返回)
290
+ * @param plaintextHash 明文哈希
291
+ * @param serverTimestamp 服务器时间戳
292
+ * @param leafIndex 叶子索引
293
+ * @returns 验证结果
294
+ */
205
295
  function verifySingleMerkleRoot(prevRoot, newRoot, plaintextHash, serverTimestamp, leafIndex) {
206
- const leafHash = calculateMerkleLeafHash(plaintextHash, serverTimestamp);
207
- const computedRoot = computeNewRoot(prevRoot, leafHash, leafIndex);
208
- if (computedRoot.toLowerCase() !== newRoot.toLowerCase()) {
209
- return {
210
- valid: false,
211
- error: `Root computation mismatch: expected ${computedRoot}, got ${newRoot}`,
212
- expectedRoot: computedRoot,
213
- actualRoot: newRoot
214
- };
215
- }
216
- return { valid: true };
296
+ // 计算正确的 leafHash
297
+ const leafHash = calculateMerkleLeafHash(plaintextHash, serverTimestamp);
298
+ const computedRoot = computeNewRoot(prevRoot, leafHash, leafIndex);
299
+ if (computedRoot.toLowerCase() !== newRoot.toLowerCase()) {
300
+ return {
301
+ valid: false,
302
+ error: `Root computation mismatch: expected ${computedRoot}, got ${newRoot}`,
303
+ expectedRoot: computedRoot,
304
+ actualRoot: newRoot,
305
+ };
306
+ }
307
+ return { valid: true };
217
308
  }
309
+ /**
310
+ * 通用消息验证函数
311
+ *
312
+ * 基于 Message 结构中保存的数据验证消息的完整性和 Merkle 证明
313
+ *
314
+ * @param params 验证参数
315
+ * @returns 验证结果
316
+ *
317
+ * @example
318
+ * ```typescript
319
+ * const result = verifyMessage({
320
+ * messageId: "msg-123",
321
+ * plaintext: "Hello",
322
+ * plaintextHash: "0xabc...",
323
+ * createdAt: 1234567890,
324
+ * guardAddress: "0x...",
325
+ * passportAddress: "0x...",
326
+ * merkleMetadata: { ... }
327
+ * });
328
+ *
329
+ * if (!result.valid) {
330
+ * throw new Error(result.error);
331
+ * }
332
+ * ```
333
+ */
218
334
  function verifyMessage(params) {
219
- const {
220
- messageId,
221
- plaintext,
222
- plaintextHash,
223
- createdAt,
224
- guardAddress,
225
- passportAddress,
226
- lastReceivedLeafIndex,
227
- serverSignature,
228
- serverPublicKey,
229
- merkleMetadata
230
- } = params;
231
- const computedPlaintextHash = hashPlaintext(
232
- plaintext,
233
- createdAt,
234
- guardAddress,
235
- passportAddress,
236
- lastReceivedLeafIndex
237
- );
238
- const normalizeHash = (hash) => {
239
- return hash.toLowerCase().replace(/^0x/, "");
240
- };
241
- if (normalizeHash(computedPlaintextHash) !== normalizeHash(plaintextHash)) {
242
- return {
243
- valid: false,
244
- error: `Plaintext hash mismatch for message ${messageId}: expected ${plaintextHash}, got ${computedPlaintextHash}`,
245
- failedCheck: "plaintext"
335
+ const { messageId, plaintext, plaintextHash, createdAt, guardAddress, passportAddress, lastReceivedLeafIndex, serverSignature, serverPublicKey, merkleMetadata, } = params;
336
+ // 1. 验证 plaintextHash(本地验证)
337
+ // 【更新】包含 lastReceivedLeafIndex 在哈希计算中
338
+ const computedPlaintextHash = hashPlaintext(plaintext, createdAt, guardAddress, passportAddress, lastReceivedLeafIndex);
339
+ // 标准化哈希值(移除 0x 前缀,转小写)
340
+ const normalizeHash = (hash) => {
341
+ return hash.toLowerCase().replace(/^0x/, "");
246
342
  };
247
- }
248
- if (merkleMetadata) {
249
- if (merkleMetadata.proofSiblings && merkleMetadata.proofIndices) {
250
- const bodyB64 = bytesToBase64(new TextEncoder().encode(plaintext));
251
- const leafHash = hashMessage(bodyB64);
252
- const proofValid = verifyMerkleProof(leafHash, {
253
- root: merkleMetadata.newRoot,
254
- siblings: merkleMetadata.proofSiblings,
255
- indices: merkleMetadata.proofIndices
256
- });
257
- if (!proofValid) {
343
+ if (normalizeHash(computedPlaintextHash) !== normalizeHash(plaintextHash)) {
258
344
  return {
259
- valid: false,
260
- error: `Merkle proof verification failed for message ${messageId}`,
261
- failedCheck: "merkle"
345
+ valid: false,
346
+ error: `Plaintext hash mismatch for message ${messageId}: expected ${plaintextHash}, got ${computedPlaintextHash}`,
347
+ failedCheck: "plaintext",
262
348
  };
263
- }
264
- }
265
- const serverTimestamp = merkleMetadata.serverTimestamp;
266
- if (!serverTimestamp) {
267
- return {
268
- valid: false,
269
- error: `Missing server timestamp for Merkle root verification in message ${messageId}`,
270
- failedCheck: "merkle"
271
- };
272
- }
273
- if (!merkleMetadata.prevRoot) {
274
- return {
275
- valid: false,
276
- error: `Missing prevRoot for Merkle root verification in message ${messageId}`,
277
- failedCheck: "merkle"
278
- };
279
- }
280
- const rootValid = verifySingleMerkleRoot(
281
- merkleMetadata.prevRoot,
282
- merkleMetadata.newRoot,
283
- plaintextHash,
284
- serverTimestamp,
285
- merkleMetadata.leafIndex
286
- );
287
- if (!rootValid.valid) {
288
- return {
289
- valid: false,
290
- error: `Merkle root verification failed for message ${messageId}: ${rootValid.error}`,
291
- failedCheck: "merkle"
292
- };
293
349
  }
294
- }
295
- if (serverSignature && serverPublicKey) {
296
- const timestamp = merkleMetadata?.serverTimestamp;
297
- if (!timestamp) {
298
- return {
299
- valid: false,
300
- error: `Missing server timestamp for signature verification in message ${messageId}`,
301
- failedCheck: "merkle"
302
- };
350
+ // 2. 如果提供了 Merkle 元数据,验证 Merkle
351
+ if (merkleMetadata) {
352
+ // 2.1 验证 Merkle Proof(消息是否在树中)
353
+ // 注意:服务器拉取消息时不返回 proofSiblings 和 proofIndices
354
+ // 只有在发送消息时返回的 merkleMetadata 才包含这些字段
355
+ if (merkleMetadata.proofSiblings && merkleMetadata.proofIndices) {
356
+ const bodyB64 = bytesToBase64(new TextEncoder().encode(plaintext));
357
+ const leafHash = hashMessage(bodyB64);
358
+ const proofValid = verifyMerkleProof(leafHash, {
359
+ root: merkleMetadata.newRoot,
360
+ siblings: merkleMetadata.proofSiblings,
361
+ indices: merkleMetadata.proofIndices,
362
+ });
363
+ if (!proofValid) {
364
+ return {
365
+ valid: false,
366
+ error: `Merkle proof verification failed for message ${messageId}`,
367
+ failedCheck: "merkle",
368
+ };
369
+ }
370
+ }
371
+ // 2.2 验证 Root 计算是否正确
372
+ // 必须使用服务器时间戳进行验证
373
+ const serverTimestamp = merkleMetadata.serverTimestamp;
374
+ if (!serverTimestamp) {
375
+ return {
376
+ valid: false,
377
+ error: `Missing server timestamp for Merkle root verification in message ${messageId}`,
378
+ failedCheck: "merkle",
379
+ };
380
+ }
381
+ if (!merkleMetadata.prevRoot) {
382
+ return {
383
+ valid: false,
384
+ error: `Missing prevRoot for Merkle root verification in message ${messageId}`,
385
+ failedCheck: "merkle",
386
+ };
387
+ }
388
+ const rootValid = verifySingleMerkleRoot(merkleMetadata.prevRoot, merkleMetadata.newRoot, plaintextHash, serverTimestamp, merkleMetadata.leafIndex);
389
+ if (!rootValid.valid) {
390
+ return {
391
+ valid: false,
392
+ error: `Merkle root verification failed for message ${messageId}: ${rootValid.error}`,
393
+ failedCheck: "merkle",
394
+ };
395
+ }
303
396
  }
304
- if (!merkleMetadata?.newRoot) {
305
- return {
306
- valid: false,
307
- error: `Missing newRoot for signature verification in message ${messageId}`,
308
- failedCheck: "merkle"
309
- };
397
+ // 3. 验证服务器签名(如果提供了签名和公钥)
398
+ if (serverSignature && serverPublicKey) {
399
+ // 必须使用服务器时间戳进行验证,不能使用客户端时间
400
+ const timestamp = merkleMetadata?.serverTimestamp;
401
+ if (!timestamp) {
402
+ return {
403
+ valid: false,
404
+ error: `Missing server timestamp for signature verification in message ${messageId}`,
405
+ failedCheck: "merkle",
406
+ };
407
+ }
408
+ // 验证必需的字段
409
+ if (!merkleMetadata?.newRoot) {
410
+ return {
411
+ valid: false,
412
+ error: `Missing newRoot for signature verification in message ${messageId}`,
413
+ failedCheck: "merkle",
414
+ };
415
+ }
416
+ if (!merkleMetadata?.prevRoot) {
417
+ return {
418
+ valid: false,
419
+ error: `Missing prevRoot for signature verification in message ${messageId}`,
420
+ failedCheck: "merkle",
421
+ };
422
+ }
423
+ const signData = `${merkleMetadata.prevRoot}:${merkleMetadata.newRoot}:${timestamp}:${serverPublicKey}`;
424
+ const signatureValid = verifyEd25519Signature(serverPublicKey, signData, serverSignature);
425
+ if (!signatureValid) {
426
+ return {
427
+ valid: false,
428
+ error: `Server signature verification failed for message ${messageId}`,
429
+ failedCheck: "merkle",
430
+ };
431
+ }
310
432
  }
311
- if (!merkleMetadata?.prevRoot) {
312
- return {
313
- valid: false,
314
- error: `Missing prevRoot for signature verification in message ${messageId}`,
315
- failedCheck: "merkle"
316
- };
317
- }
318
- const signData = `${merkleMetadata.prevRoot}:${merkleMetadata.newRoot}:${timestamp}:${serverPublicKey}`;
319
- const signatureValid = verifyEd25519Signature(
320
- serverPublicKey,
321
- signData,
322
- serverSignature
323
- );
324
- if (!signatureValid) {
325
- return {
326
- valid: false,
327
- error: `Server signature verification failed for message ${messageId}`,
328
- failedCheck: "merkle"
329
- };
330
- }
331
- }
332
- return { valid: true };
433
+ return { valid: true };
333
434
  }
435
+ /**
436
+ * 验证 Ed25519 签名(十六进制格式)
437
+ *
438
+ * @param publicKeyHex 公钥(十六进制字符串)
439
+ * @param message 消息内容
440
+ * @param signatureHex 签名(十六进制字符串)
441
+ * @returns 验证结果
442
+ */
334
443
  function verifyEd25519Signature(publicKeyHex, message, signatureHex) {
335
- try {
336
- const publicKey = hexToBytes(publicKeyHex.replace("0x", ""));
337
- const signature = hexToBytes(signatureHex.replace("0x", ""));
338
- const messageBytes = new TextEncoder().encode(message);
339
- return verifyEd25519(publicKey, messageBytes, signature);
340
- } catch {
341
- return false;
342
- }
444
+ try {
445
+ const publicKey = hexToBytes(publicKeyHex.replace("0x", ""));
446
+ const signature = hexToBytes(signatureHex.replace("0x", ""));
447
+ const messageBytes = new TextEncoder().encode(message);
448
+ return verifyEd25519(publicKey, messageBytes, signature);
449
+ }
450
+ catch {
451
+ return false;
452
+ }
343
453
  }
454
+ /**
455
+ * 验证 WTS 文件中的消息
456
+ *
457
+ * @param messages WTS 消息列表(按 leafIndex 排序)
458
+ * @returns 验证结果
459
+ */
344
460
  function verifyWtsMessages(messages) {
345
- if (messages.length === 0) {
346
- return { valid: true };
347
- }
348
- const sortedMessages = [...messages].sort(
349
- (a, b) => a.leafIndex - b.leafIndex
350
- );
351
- for (let i = 0; i < sortedMessages.length; i++) {
352
- const msg = sortedMessages[i];
353
- if (msg.plaintext != null) {
354
- const computedHash = hashPlaintext(
355
- msg.plaintext || "",
356
- msg.clientTimestamp,
357
- msg.guardAddress,
358
- msg.passportAddress,
359
- msg.lastReceivedLeafIndex
360
- );
361
- if (computedHash.toLowerCase() !== msg.plaintextHash.toLowerCase()) {
362
- return {
363
- valid: false,
364
- error: `Plaintext hash mismatch for message ${msg.id} at index ${i}`,
365
- failedMessageIndex: i,
366
- failedCheck: "plaintext"
367
- };
368
- }
461
+ if (messages.length === 0) {
462
+ return { valid: true };
369
463
  }
370
- if (msg.merkleProof) {
371
- const bodyB64 = bytesToBase64(
372
- new TextEncoder().encode(msg.plaintext || "")
373
- );
374
- const leafHash = hashMessage(bodyB64);
375
- const proofValid = verifyMerkleProof(leafHash, {
376
- root: msg.merkleRoot,
377
- siblings: msg.merkleProof.siblings,
378
- indices: msg.merkleProof.indices
379
- });
380
- if (!proofValid) {
381
- return {
382
- valid: false,
383
- error: `Merkle proof verification failed for message ${msg.id} at index ${i}`,
384
- failedMessageIndex: i,
385
- failedCheck: "merkle"
386
- };
387
- }
464
+ // leafIndex 排序
465
+ const sortedMessages = [...messages].sort((a, b) => a.leafIndex - b.leafIndex);
466
+ // 验证每条消息
467
+ for (let i = 0; i < sortedMessages.length; i++) {
468
+ const msg = sortedMessages[i];
469
+ // 1. 如果提供了明文,验证 plaintextHash
470
+ if (msg.plaintext != null) {
471
+ const computedHash = hashPlaintext(msg.plaintext || "", msg.clientTimestamp, msg.guardAddress, msg.passportAddress, msg.lastReceivedLeafIndex);
472
+ if (computedHash.toLowerCase() !== msg.plaintextHash.toLowerCase()) {
473
+ return {
474
+ valid: false,
475
+ error: `Plaintext hash mismatch for message ${msg.id} at index ${i}`,
476
+ failedMessageIndex: i,
477
+ failedCheck: "plaintext",
478
+ };
479
+ }
480
+ }
481
+ // 2. 如果提供了 Merkle Proof,验证 Merkle
482
+ if (msg.merkleProof) {
483
+ const bodyB64 = bytesToBase64(new TextEncoder().encode(msg.plaintext || ""));
484
+ const leafHash = hashMessage(bodyB64);
485
+ const proofValid = verifyMerkleProof(leafHash, {
486
+ root: msg.merkleRoot,
487
+ siblings: msg.merkleProof.siblings,
488
+ indices: msg.merkleProof.indices,
489
+ });
490
+ if (!proofValid) {
491
+ return {
492
+ valid: false,
493
+ error: `Merkle proof verification failed for message ${msg.id} at index ${i}`,
494
+ failedMessageIndex: i,
495
+ failedCheck: "merkle",
496
+ };
497
+ }
498
+ }
499
+ // 3. 验证服务器签名(如果提供了签名和公钥)
500
+ if (msg.serverSignature && msg.serverPublicKey) {
501
+ // 验证必需的字段
502
+ if (!msg.merkleRoot) {
503
+ return {
504
+ valid: false,
505
+ error: `Missing merkleRoot for message ${msg.id} at index ${i}`,
506
+ failedMessageIndex: i,
507
+ failedCheck: "merkle",
508
+ };
509
+ }
510
+ if (!msg.timestamp) {
511
+ return {
512
+ valid: false,
513
+ error: `Missing timestamp for message ${msg.id} at index ${i}`,
514
+ failedMessageIndex: i,
515
+ failedCheck: "merkle",
516
+ };
517
+ }
518
+ if (!msg.prevRoot) {
519
+ return {
520
+ valid: false,
521
+ error: `Missing prevRoot for message ${msg.id} at index ${i}`,
522
+ failedMessageIndex: i,
523
+ failedCheck: "merkle",
524
+ };
525
+ }
526
+ const signData = `${msg.prevRoot}:${msg.merkleRoot}:${msg.timestamp}:${msg.serverPublicKey}`;
527
+ const signatureValid = verifyEd25519Signature(msg.serverPublicKey, signData, msg.serverSignature);
528
+ if (!signatureValid) {
529
+ return {
530
+ valid: false,
531
+ error: `Server signature verification failed for message ${msg.id} at index ${i}`,
532
+ failedMessageIndex: i,
533
+ failedCheck: "merkle",
534
+ };
535
+ }
536
+ }
388
537
  }
389
- if (msg.serverSignature && msg.serverPublicKey) {
390
- if (!msg.merkleRoot) {
538
+ // 4. 验证 Merkle 链的连续性
539
+ const chainResult = verifyMerkleChain(sortedMessages.map((msg) => ({
540
+ leafIndex: msg.leafIndex,
541
+ prevRoot: msg.merkleRoot, // WTS 中只保存了最终的 merkleRoot
542
+ newRoot: msg.merkleRoot,
543
+ plaintextHash: msg.plaintextHash,
544
+ serverTimestamp: msg.timestamp,
545
+ })));
546
+ if (!chainResult.valid) {
391
547
  return {
392
- valid: false,
393
- error: `Missing merkleRoot for message ${msg.id} at index ${i}`,
394
- failedMessageIndex: i,
395
- failedCheck: "merkle"
548
+ valid: false,
549
+ error: chainResult.error,
550
+ failedCheck: "chain",
396
551
  };
397
- }
398
- if (!msg.timestamp) {
399
- return {
400
- valid: false,
401
- error: `Missing timestamp for message ${msg.id} at index ${i}`,
402
- failedMessageIndex: i,
403
- failedCheck: "merkle"
404
- };
405
- }
406
- if (!msg.prevRoot) {
407
- return {
408
- valid: false,
409
- error: `Missing prevRoot for message ${msg.id} at index ${i}`,
410
- failedMessageIndex: i,
411
- failedCheck: "merkle"
412
- };
413
- }
414
- const signData = `${msg.prevRoot}:${msg.merkleRoot}:${msg.timestamp}:${msg.serverPublicKey}`;
415
- const signatureValid = verifyEd25519Signature(
416
- msg.serverPublicKey,
417
- signData,
418
- msg.serverSignature
419
- );
420
- if (!signatureValid) {
421
- return {
422
- valid: false,
423
- error: `Server signature verification failed for message ${msg.id} at index ${i}`,
424
- failedMessageIndex: i,
425
- failedCheck: "merkle"
426
- };
427
- }
428
552
  }
429
- }
430
- const chainResult = verifyMerkleChain(
431
- sortedMessages.map((msg) => ({
432
- leafIndex: msg.leafIndex,
433
- prevRoot: msg.merkleRoot,
434
- // WTS 中只保存了最终的 merkleRoot
435
- newRoot: msg.merkleRoot,
436
- plaintextHash: msg.plaintextHash,
437
- serverTimestamp: msg.timestamp
438
- }))
439
- );
440
- if (!chainResult.valid) {
441
- return {
442
- valid: false,
443
- error: chainResult.error,
444
- failedCheck: "chain"
445
- };
446
- }
447
- return { valid: true };
553
+ return { valid: true };
448
554
  }
555
+ //# sourceMappingURL=crypto.js.map