wowok 2.1.9 → 2.1.12

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 (887) hide show
  1. package/NOTICE +46 -0
  2. package/dist/cjs/bcs/bcs.d.ts +199 -199
  3. package/dist/cjs/bcs/bcs.js +273 -318
  4. package/dist/cjs/bcs/bcs.js.map +1 -0
  5. package/dist/cjs/bcs/effects.d.ts +109 -109
  6. package/dist/cjs/bcs/effects.js +205 -230
  7. package/dist/cjs/bcs/effects.js.map +1 -0
  8. package/dist/cjs/bcs/index.d.ts +1 -2584
  9. package/dist/cjs/bcs/index.js +61 -76
  10. package/dist/cjs/bcs/index.js.map +1 -0
  11. package/dist/cjs/bcs/pure.js +38 -58
  12. package/dist/cjs/bcs/pure.js.map +1 -0
  13. package/dist/cjs/bcs/type-tag-serializer.js +102 -114
  14. package/dist/cjs/bcs/type-tag-serializer.js.map +1 -0
  15. package/dist/cjs/bcs/types.js +6 -23
  16. package/dist/cjs/bcs/types.js.map +1 -0
  17. package/dist/cjs/client/index.js +17 -33
  18. package/dist/cjs/client/index.js.map +1 -0
  19. package/dist/cjs/client/network.js +25 -40
  20. package/dist/cjs/client/network.js.map +1 -0
  21. package/dist/cjs/cryptography/index.js +29 -45
  22. package/dist/cjs/cryptography/index.js.map +1 -0
  23. package/dist/cjs/cryptography/intent.d.ts +1 -1
  24. package/dist/cjs/cryptography/intent.js +20 -31
  25. package/dist/cjs/cryptography/intent.js.map +1 -0
  26. package/dist/cjs/cryptography/keypair.js +102 -116
  27. package/dist/cjs/cryptography/keypair.js.map +1 -0
  28. package/dist/cjs/cryptography/mnemonics.js +43 -41
  29. package/dist/cjs/cryptography/mnemonics.js.map +1 -0
  30. package/dist/cjs/cryptography/publickey.js +112 -134
  31. package/dist/cjs/cryptography/publickey.js.map +1 -0
  32. package/dist/cjs/cryptography/signature-scheme.js +24 -43
  33. package/dist/cjs/cryptography/signature-scheme.js.map +1 -0
  34. package/dist/cjs/cryptography/signature.d.ts +2 -24
  35. package/dist/cjs/cryptography/signature.js +50 -67
  36. package/dist/cjs/cryptography/signature.js.map +1 -0
  37. package/dist/cjs/experimental/cache.js +65 -0
  38. package/dist/cjs/experimental/cache.js.map +1 -0
  39. package/dist/cjs/experimental/client.js +27 -0
  40. package/dist/cjs/experimental/client.js.map +1 -0
  41. package/dist/cjs/experimental/core.js +89 -0
  42. package/dist/cjs/experimental/core.js.map +1 -0
  43. package/dist/cjs/experimental/errors.js +32 -0
  44. package/dist/cjs/experimental/errors.js.map +1 -0
  45. package/dist/cjs/experimental/index.js +15 -0
  46. package/dist/cjs/experimental/index.js.map +1 -0
  47. package/dist/cjs/experimental/persistent-storage.js +343 -0
  48. package/dist/cjs/experimental/persistent-storage.js.map +1 -0
  49. package/dist/cjs/experimental/persistent-storage.test.js +200 -0
  50. package/dist/cjs/experimental/persistent-storage.test.js.map +1 -0
  51. package/dist/cjs/experimental/transports/utils.js +104 -0
  52. package/dist/cjs/experimental/transports/utils.js.map +1 -0
  53. package/dist/cjs/experimental/types.js +6 -0
  54. package/dist/cjs/experimental/types.js.map +1 -0
  55. package/dist/cjs/faucet/faucet.js +106 -124
  56. package/dist/cjs/faucet/faucet.js.map +1 -0
  57. package/dist/cjs/faucet/index.js +12 -28
  58. package/dist/cjs/faucet/index.js.map +1 -0
  59. package/dist/cjs/grpc/client.js +47 -62
  60. package/dist/cjs/grpc/client.js.map +1 -0
  61. package/dist/cjs/grpc/core.js +580 -617
  62. package/dist/cjs/grpc/core.js.map +1 -0
  63. package/dist/cjs/grpc/index.js +9 -25
  64. package/dist/cjs/grpc/index.js.map +1 -0
  65. package/dist/cjs/grpc/proto/google/protobuf/any.js +168 -135
  66. package/dist/cjs/grpc/proto/google/protobuf/any.js.map +1 -0
  67. package/dist/cjs/grpc/proto/google/protobuf/duration.js +105 -90
  68. package/dist/cjs/grpc/proto/google/protobuf/duration.js.map +1 -0
  69. package/dist/cjs/grpc/proto/google/protobuf/empty.js +50 -28
  70. package/dist/cjs/grpc/proto/google/protobuf/empty.js.map +1 -0
  71. package/dist/cjs/grpc/proto/google/protobuf/field_mask.js +96 -75
  72. package/dist/cjs/grpc/proto/google/protobuf/field_mask.js.map +1 -0
  73. package/dist/cjs/grpc/proto/google/protobuf/struct.js +266 -215
  74. package/dist/cjs/grpc/proto/google/protobuf/struct.js.map +1 -0
  75. package/dist/cjs/grpc/proto/google/protobuf/timestamp.js +150 -131
  76. package/dist/cjs/grpc/proto/google/protobuf/timestamp.js.map +1 -0
  77. package/dist/cjs/grpc/proto/google/rpc/error_details.js +331 -302
  78. package/dist/cjs/grpc/proto/google/rpc/error_details.js.map +1 -0
  79. package/dist/cjs/grpc/proto/google/rpc/status.js +50 -50
  80. package/dist/cjs/grpc/proto/google/rpc/status.js.map +1 -0
  81. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js +84 -68
  82. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js.map +1 -0
  83. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js +45 -50
  84. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js.map +1 -0
  85. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js +38 -43
  86. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js.map +1 -0
  87. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js +70 -75
  88. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js.map +1 -0
  89. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js +79 -81
  90. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js.map +1 -0
  91. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js +183 -166
  92. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js.map +1 -0
  93. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js +369 -296
  94. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js.map +1 -0
  95. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js +80 -85
  96. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js.map +1 -0
  97. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js +31 -28
  98. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js.map +1 -0
  99. package/dist/cjs/grpc/proto/sui/rpc/v2/event.js +81 -83
  100. package/dist/cjs/grpc/proto/sui/rpc/v2/event.js.map +1 -0
  101. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js +80 -85
  102. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js.map +1 -0
  103. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js +876 -506
  104. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js.map +1 -0
  105. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js +56 -61
  106. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js.map +1 -0
  107. package/dist/cjs/grpc/proto/sui/rpc/v2/input.js +103 -83
  108. package/dist/cjs/grpc/proto/sui/rpc/v2/input.js.map +1 -0
  109. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js +76 -78
  110. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js.map +1 -0
  111. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js +69 -119
  112. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js.map +1 -0
  113. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js +392 -350
  114. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js.map +1 -0
  115. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js +599 -473
  116. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js.map +1 -0
  117. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js +46 -78
  118. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js.map +1 -0
  119. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js +242 -224
  120. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js.map +1 -0
  121. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js +32 -52
  122. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js.map +1 -0
  123. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js +139 -134
  124. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js.map +1 -0
  125. package/dist/cjs/grpc/proto/sui/rpc/v2/object.js +109 -111
  126. package/dist/cjs/grpc/proto/sui/rpc/v2/object.js.map +1 -0
  127. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js +46 -51
  128. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js.map +1 -0
  129. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js +76 -61
  130. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js.map +1 -0
  131. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js +46 -59
  132. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js.map +1 -0
  133. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js +568 -522
  134. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js.map +1 -0
  135. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js +54 -32
  136. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js.map +1 -0
  137. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +27 -47
  138. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js.map +1 -0
  139. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js +83 -86
  140. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js.map +1 -0
  141. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js +53 -85
  142. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js.map +1 -0
  143. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js +645 -529
  144. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js.map +1 -0
  145. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js +37 -51
  146. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js.map +1 -0
  147. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js +58 -61
  148. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js.map +1 -0
  149. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js +749 -730
  150. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js.map +1 -0
  151. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js +1218 -975
  152. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js.map +1 -0
  153. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +32 -46
  154. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js.map +1 -0
  155. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js +186 -167
  156. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js.map +1 -0
  157. package/dist/cjs/index.js +96 -91
  158. package/dist/cjs/index.js.map +1 -0
  159. package/dist/cjs/jsonRpc/client.js +654 -743
  160. package/dist/cjs/jsonRpc/client.js.map +1 -0
  161. package/dist/cjs/jsonRpc/core.d.ts +7 -7
  162. package/dist/cjs/jsonRpc/core.js +562 -606
  163. package/dist/cjs/jsonRpc/core.js.map +1 -0
  164. package/dist/cjs/jsonRpc/errors.js +38 -56
  165. package/dist/cjs/jsonRpc/errors.js.map +1 -0
  166. package/dist/cjs/jsonRpc/http-transport.js +70 -114
  167. package/dist/cjs/jsonRpc/http-transport.js.map +1 -0
  168. package/dist/cjs/jsonRpc/index.js +14 -30
  169. package/dist/cjs/jsonRpc/index.js.map +1 -0
  170. package/dist/cjs/jsonRpc/json-rpc-resolver.js +286 -290
  171. package/dist/cjs/jsonRpc/json-rpc-resolver.js.map +1 -0
  172. package/dist/cjs/jsonRpc/rpc-websocket-client.js +150 -207
  173. package/dist/cjs/jsonRpc/rpc-websocket-client.js.map +1 -0
  174. package/dist/cjs/jsonRpc/types/chain.js +4 -15
  175. package/dist/cjs/jsonRpc/types/chain.js.map +1 -0
  176. package/dist/cjs/jsonRpc/types/changes.js +4 -15
  177. package/dist/cjs/jsonRpc/types/changes.js.map +1 -0
  178. package/dist/cjs/jsonRpc/types/coins.js +4 -15
  179. package/dist/cjs/jsonRpc/types/coins.js.map +1 -0
  180. package/dist/cjs/jsonRpc/types/common.js +4 -15
  181. package/dist/cjs/jsonRpc/types/common.js.map +1 -0
  182. package/dist/cjs/jsonRpc/types/generated.d.ts +1 -1
  183. package/dist/cjs/jsonRpc/types/generated.js +4 -15
  184. package/dist/cjs/jsonRpc/types/generated.js.map +1 -0
  185. package/dist/cjs/jsonRpc/types/index.js +4 -15
  186. package/dist/cjs/jsonRpc/types/index.js.map +1 -0
  187. package/dist/cjs/jsonRpc/types/params.js +4 -15
  188. package/dist/cjs/jsonRpc/types/params.js.map +1 -0
  189. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js +54 -69
  190. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js.map +1 -0
  191. package/dist/cjs/keypairs/ed25519/index.js +10 -26
  192. package/dist/cjs/keypairs/ed25519/index.js.map +1 -0
  193. package/dist/cjs/keypairs/ed25519/keypair.js +134 -159
  194. package/dist/cjs/keypairs/ed25519/keypair.js.map +1 -0
  195. package/dist/cjs/keypairs/ed25519/publickey.js +70 -84
  196. package/dist/cjs/keypairs/ed25519/publickey.js.map +1 -0
  197. package/dist/cjs/keypairs/index.js +21 -19
  198. package/dist/cjs/keypairs/index.js.map +1 -0
  199. package/dist/cjs/keypairs/passkey/index.js +11 -27
  200. package/dist/cjs/keypairs/passkey/index.js.map +1 -0
  201. package/dist/cjs/keypairs/passkey/keypair.js +245 -256
  202. package/dist/cjs/keypairs/passkey/keypair.js.map +1 -0
  203. package/dist/cjs/keypairs/passkey/publickey.js +163 -162
  204. package/dist/cjs/keypairs/passkey/publickey.js.map +1 -0
  205. package/dist/cjs/keypairs/passkey/types.js +4 -15
  206. package/dist/cjs/keypairs/passkey/types.js.map +1 -0
  207. package/dist/cjs/keypairs/secp256k1/index.js +10 -26
  208. package/dist/cjs/keypairs/secp256k1/index.js.map +1 -0
  209. package/dist/cjs/keypairs/secp256k1/keypair.js +129 -151
  210. package/dist/cjs/keypairs/secp256k1/keypair.js.map +1 -0
  211. package/dist/cjs/keypairs/secp256k1/publickey.js +71 -89
  212. package/dist/cjs/keypairs/secp256k1/publickey.js.map +1 -0
  213. package/dist/cjs/keypairs/secp256r1/index.js +10 -26
  214. package/dist/cjs/keypairs/secp256r1/index.js.map +1 -0
  215. package/dist/cjs/keypairs/secp256r1/keypair.js +127 -148
  216. package/dist/cjs/keypairs/secp256r1/keypair.js.map +1 -0
  217. package/dist/cjs/keypairs/secp256r1/publickey.js +72 -90
  218. package/dist/cjs/keypairs/secp256r1/publickey.js.map +1 -0
  219. package/dist/cjs/multisig/index.js +10 -26
  220. package/dist/cjs/multisig/index.js.map +1 -0
  221. package/dist/cjs/multisig/publickey.d.ts +1 -1
  222. package/dist/cjs/multisig/publickey.js +228 -276
  223. package/dist/cjs/multisig/publickey.js.map +1 -0
  224. package/dist/cjs/multisig/signer.js +62 -110
  225. package/dist/cjs/multisig/signer.js.map +1 -0
  226. package/dist/cjs/transactions/Arguments.d.ts +4 -4
  227. package/dist/cjs/transactions/Arguments.js +13 -34
  228. package/dist/cjs/transactions/Arguments.js.map +1 -0
  229. package/dist/cjs/transactions/Commands.js +111 -141
  230. package/dist/cjs/transactions/Commands.js.map +1 -0
  231. package/dist/cjs/transactions/Inputs.js +53 -82
  232. package/dist/cjs/transactions/Inputs.js.map +1 -0
  233. package/dist/cjs/transactions/ObjectCache.d.ts +8 -8
  234. package/dist/cjs/transactions/ObjectCache.js +204 -241
  235. package/dist/cjs/transactions/ObjectCache.js.map +1 -0
  236. package/dist/cjs/transactions/Transaction.d.ts +31 -31
  237. package/dist/cjs/transactions/Transaction.js +628 -719
  238. package/dist/cjs/transactions/Transaction.js.map +1 -0
  239. package/dist/cjs/transactions/TransactionData.d.ts +9 -9
  240. package/dist/cjs/transactions/TransactionData.js +396 -440
  241. package/dist/cjs/transactions/TransactionData.js.map +1 -0
  242. package/dist/cjs/transactions/__tests__/Transaction.test.js +169 -0
  243. package/dist/cjs/transactions/__tests__/Transaction.test.js.map +1 -0
  244. package/dist/cjs/transactions/__tests__/bcs.test.js +202 -0
  245. package/dist/cjs/transactions/__tests__/bcs.test.js.map +1 -0
  246. package/dist/cjs/transactions/data/internal.js +166 -207
  247. package/dist/cjs/transactions/data/internal.js.map +1 -0
  248. package/dist/cjs/transactions/data/v1.js +436 -495
  249. package/dist/cjs/transactions/data/v1.js.map +1 -0
  250. package/dist/cjs/transactions/data/v2.d.ts +5 -5
  251. package/dist/cjs/transactions/data/v2.js +94 -107
  252. package/dist/cjs/transactions/data/v2.js.map +1 -0
  253. package/dist/cjs/transactions/executor/caching.js +71 -113
  254. package/dist/cjs/transactions/executor/caching.js.map +1 -0
  255. package/dist/cjs/transactions/executor/parallel.js +339 -378
  256. package/dist/cjs/transactions/executor/parallel.js.map +1 -0
  257. package/dist/cjs/transactions/executor/queue.js +60 -80
  258. package/dist/cjs/transactions/executor/queue.js.map +1 -0
  259. package/dist/cjs/transactions/executor/serial.d.ts +4 -4
  260. package/dist/cjs/transactions/executor/serial.js +102 -131
  261. package/dist/cjs/transactions/executor/serial.js.map +1 -0
  262. package/dist/cjs/transactions/hash.js +17 -28
  263. package/dist/cjs/transactions/hash.js.map +1 -0
  264. package/dist/cjs/transactions/index.js +33 -49
  265. package/dist/cjs/transactions/index.js.map +1 -0
  266. package/dist/cjs/transactions/intents/CoinWithBalance.js +137 -191
  267. package/dist/cjs/transactions/intents/CoinWithBalance.js.map +1 -0
  268. package/dist/cjs/transactions/object.js +88 -111
  269. package/dist/cjs/transactions/object.js.map +1 -0
  270. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js +20 -32
  271. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js.map +1 -0
  272. package/dist/cjs/transactions/pure.js +38 -60
  273. package/dist/cjs/transactions/pure.js.map +1 -0
  274. package/dist/cjs/transactions/resolve.js +62 -88
  275. package/dist/cjs/transactions/resolve.js.map +1 -0
  276. package/dist/cjs/transactions/serializer.js +150 -163
  277. package/dist/cjs/transactions/serializer.js.map +1 -0
  278. package/dist/cjs/transactions/utils.d.ts +1 -1
  279. package/dist/cjs/transactions/utils.js +114 -125
  280. package/dist/cjs/transactions/utils.js.map +1 -0
  281. package/dist/cjs/utils/constants.js +29 -56
  282. package/dist/cjs/utils/constants.js.map +1 -0
  283. package/dist/cjs/utils/derived-objects.js +14 -30
  284. package/dist/cjs/utils/derived-objects.js.map +1 -0
  285. package/dist/cjs/utils/dynamic-fields.js +20 -37
  286. package/dist/cjs/utils/dynamic-fields.js.map +1 -0
  287. package/dist/cjs/utils/format.js +14 -30
  288. package/dist/cjs/utils/format.js.map +1 -0
  289. package/dist/cjs/utils/index.js +50 -64
  290. package/dist/cjs/utils/index.js.map +1 -0
  291. package/dist/cjs/utils/move-registry.js +37 -35
  292. package/dist/cjs/utils/move-registry.js.map +1 -0
  293. package/dist/cjs/utils/sui-types.js +74 -68
  294. package/dist/cjs/utils/sui-types.js.map +1 -0
  295. package/dist/cjs/utils/suins.js +30 -46
  296. package/dist/cjs/utils/suins.js.map +1 -0
  297. package/dist/cjs/verify/index.js +12 -27
  298. package/dist/cjs/verify/index.js.map +1 -0
  299. package/dist/cjs/verify/verify.js +83 -110
  300. package/dist/cjs/verify/verify.js.map +1 -0
  301. package/dist/cjs/version.js +8 -25
  302. package/dist/cjs/version.js.map +1 -0
  303. package/dist/cjs/w/call/allocation.js +323 -413
  304. package/dist/cjs/w/call/allocation.js.map +1 -0
  305. package/dist/cjs/w/call/arb.js +105 -136
  306. package/dist/cjs/w/call/arb.js.map +1 -0
  307. package/dist/cjs/w/call/arbitration.js +1206 -1581
  308. package/dist/cjs/w/call/arbitration.js.map +1 -0
  309. package/dist/cjs/w/call/base.js +303 -333
  310. package/dist/cjs/w/call/base.js.map +1 -0
  311. package/dist/cjs/w/call/contact.js +335 -452
  312. package/dist/cjs/w/call/contact.js.map +1 -0
  313. package/dist/cjs/w/call/demand.js +690 -844
  314. package/dist/cjs/w/call/demand.js.map +1 -0
  315. package/dist/cjs/w/call/entity.js +167 -201
  316. package/dist/cjs/w/call/entity.js.map +1 -0
  317. package/dist/cjs/w/call/guard-ins.d.ts +1 -0
  318. package/dist/cjs/w/call/guard-ins.js +4376 -4384
  319. package/dist/cjs/w/call/guard-ins.js.map +1 -0
  320. package/dist/cjs/w/call/guard.d.ts +10 -0
  321. package/dist/cjs/w/call/guard.js +1078 -1119
  322. package/dist/cjs/w/call/guard.js.map +1 -0
  323. package/dist/cjs/w/call/index.d.ts +1 -1
  324. package/dist/cjs/w/call/index.js +69 -69
  325. package/dist/cjs/w/call/index.js.map +1 -0
  326. package/dist/cjs/w/call/machine.js +1105 -1419
  327. package/dist/cjs/w/call/machine.js.map +1 -0
  328. package/dist/cjs/w/call/order.js +314 -454
  329. package/dist/cjs/w/call/order.js.map +1 -0
  330. package/dist/cjs/w/call/passport.js +214 -253
  331. package/dist/cjs/w/call/passport.js.map +1 -0
  332. package/dist/cjs/w/call/payment.js +187 -224
  333. package/dist/cjs/w/call/payment.js.map +1 -0
  334. package/dist/cjs/w/call/permission.js +1183 -1294
  335. package/dist/cjs/w/call/permission.js.map +1 -0
  336. package/dist/cjs/w/call/personal.js +132 -170
  337. package/dist/cjs/w/call/personal.js.map +1 -0
  338. package/dist/cjs/w/call/progress.js +634 -794
  339. package/dist/cjs/w/call/progress.js.map +1 -0
  340. package/dist/cjs/w/call/proof.js +67 -116
  341. package/dist/cjs/w/call/proof.js.map +1 -0
  342. package/dist/cjs/w/call/repository.js +1037 -1251
  343. package/dist/cjs/w/call/repository.js.map +1 -0
  344. package/dist/cjs/w/call/resource.js +111 -131
  345. package/dist/cjs/w/call/resource.js.map +1 -0
  346. package/dist/cjs/w/call/reward.js +675 -853
  347. package/dist/cjs/w/call/reward.js.map +1 -0
  348. package/dist/cjs/w/call/service.js +1879 -2385
  349. package/dist/cjs/w/call/service.js.map +1 -0
  350. package/dist/cjs/w/call/treasury.js +841 -1138
  351. package/dist/cjs/w/call/treasury.js.map +1 -0
  352. package/dist/cjs/w/call/util.js +593 -624
  353. package/dist/cjs/w/call/util.js.map +1 -0
  354. package/dist/cjs/w/common.d.ts +1 -1
  355. package/dist/cjs/w/common.js +548 -518
  356. package/dist/cjs/w/common.js.map +1 -0
  357. package/dist/cjs/w/exception.js +574 -584
  358. package/dist/cjs/w/exception.js.map +1 -0
  359. package/dist/cjs/w/index.js +26 -23
  360. package/dist/cjs/w/index.js.map +1 -0
  361. package/dist/cjs/w/local/account.js +664 -741
  362. package/dist/cjs/w/local/account.js.map +1 -0
  363. package/dist/cjs/w/local/cache.js +180 -166
  364. package/dist/cjs/w/local/cache.js.map +1 -0
  365. package/dist/cjs/w/local/config.js +51 -80
  366. package/dist/cjs/w/local/config.js.map +1 -0
  367. package/dist/cjs/w/local/index.js +225 -290
  368. package/dist/cjs/w/local/index.js.map +1 -0
  369. package/dist/cjs/w/local/local.d.ts +2 -2
  370. package/dist/cjs/w/local/local.js +638 -646
  371. package/dist/cjs/w/local/local.js.map +1 -0
  372. package/dist/cjs/w/local/storage.js +210 -164
  373. package/dist/cjs/w/local/storage.js.map +1 -0
  374. package/dist/cjs/w/local/token.js +158 -175
  375. package/dist/cjs/w/local/token.js.map +1 -0
  376. package/dist/cjs/w/local/util.js +80 -51
  377. package/dist/cjs/w/local/util.js.map +1 -0
  378. package/dist/cjs/w/local/wip.js +1078 -802
  379. package/dist/cjs/w/local/wip.js.map +1 -0
  380. package/dist/cjs/w/messenger/crypto.js +496 -389
  381. package/dist/cjs/w/messenger/crypto.js.map +1 -0
  382. package/dist/cjs/w/messenger/index.js +53 -35
  383. package/dist/cjs/w/messenger/index.js.map +1 -0
  384. package/dist/cjs/w/messenger/messenger-api.js +1159 -1035
  385. package/dist/cjs/w/messenger/messenger-api.js.map +1 -0
  386. package/dist/cjs/w/messenger/messenger-manager.js +954 -1083
  387. package/dist/cjs/w/messenger/messenger-manager.js.map +1 -0
  388. package/dist/cjs/w/messenger/messenger.d.ts +1 -1
  389. package/dist/cjs/w/messenger/messenger.js +1304 -1450
  390. package/dist/cjs/w/messenger/messenger.js.map +1 -0
  391. package/dist/cjs/w/messenger/server.js +390 -512
  392. package/dist/cjs/w/messenger/server.js.map +1 -0
  393. package/dist/cjs/w/messenger/session.js +399 -403
  394. package/dist/cjs/w/messenger/session.js.map +1 -0
  395. package/dist/cjs/w/messenger/storage.js +881 -777
  396. package/dist/cjs/w/messenger/storage.js.map +1 -0
  397. package/dist/cjs/w/messenger/types.d.ts +2 -2
  398. package/dist/cjs/w/messenger/types.js +83 -103
  399. package/dist/cjs/w/messenger/types.js.map +1 -0
  400. package/dist/cjs/w/messenger/utils.js +29 -34
  401. package/dist/cjs/w/messenger/utils.js.map +1 -0
  402. package/dist/cjs/w/query/bult-in.js +101 -110
  403. package/dist/cjs/w/query/bult-in.js.map +1 -0
  404. package/dist/cjs/w/query/event.js +134 -146
  405. package/dist/cjs/w/query/event.js.map +1 -0
  406. package/dist/cjs/w/query/index.js +22 -20
  407. package/dist/cjs/w/query/index.js.map +1 -0
  408. package/dist/cjs/w/query/object.js +1576 -1576
  409. package/dist/cjs/w/query/object.js.map +1 -0
  410. package/dist/cjs/w/query/received.js +66 -88
  411. package/dist/cjs/w/query/received.js.map +1 -0
  412. package/dist/cjs/w/query/util.js +53 -77
  413. package/dist/cjs/w/query/util.js.map +1 -0
  414. package/dist/cjs/w/util.js +589 -675
  415. package/dist/cjs/w/util.js.map +1 -0
  416. package/dist/esm/bcs/bcs.d.ts +199 -199
  417. package/dist/esm/bcs/bcs.js +269 -310
  418. package/dist/esm/bcs/bcs.js.map +1 -0
  419. package/dist/esm/bcs/effects.d.ts +109 -109
  420. package/dist/esm/bcs/effects.js +171 -179
  421. package/dist/esm/bcs/effects.js.map +1 -0
  422. package/dist/esm/bcs/index.d.ts +1 -2584
  423. package/dist/esm/bcs/index.js +51 -94
  424. package/dist/esm/bcs/index.js.map +1 -0
  425. package/dist/esm/bcs/pure.js +35 -38
  426. package/dist/esm/bcs/pure.js.map +1 -0
  427. package/dist/esm/bcs/type-tag-serializer.js +98 -95
  428. package/dist/esm/bcs/type-tag-serializer.js.map +1 -0
  429. package/dist/esm/bcs/types.js +5 -5
  430. package/dist/esm/bcs/types.js.map +1 -0
  431. package/dist/esm/client/index.js +7 -23
  432. package/dist/esm/client/index.js.map +1 -0
  433. package/dist/esm/client/network.js +23 -22
  434. package/dist/esm/client/network.js.map +1 -0
  435. package/dist/esm/cryptography/index.js +9 -46
  436. package/dist/esm/cryptography/index.js.map +1 -0
  437. package/dist/esm/cryptography/intent.d.ts +1 -1
  438. package/dist/esm/cryptography/intent.js +18 -12
  439. package/dist/esm/cryptography/intent.js.map +1 -0
  440. package/dist/esm/cryptography/keypair.js +95 -99
  441. package/dist/esm/cryptography/keypair.js.map +1 -0
  442. package/dist/esm/cryptography/mnemonics.js +40 -24
  443. package/dist/esm/cryptography/mnemonics.js.map +1 -0
  444. package/dist/esm/cryptography/publickey.js +104 -115
  445. package/dist/esm/cryptography/publickey.js.map +1 -0
  446. package/dist/esm/cryptography/signature-scheme.js +22 -24
  447. package/dist/esm/cryptography/signature-scheme.js.map +1 -0
  448. package/dist/esm/cryptography/signature.d.ts +2 -24
  449. package/dist/esm/cryptography/signature.js +44 -48
  450. package/dist/esm/cryptography/signature.js.map +1 -0
  451. package/dist/esm/experimental/cache.js +61 -0
  452. package/dist/esm/experimental/cache.js.map +1 -0
  453. package/dist/esm/experimental/client.js +23 -0
  454. package/dist/esm/experimental/client.js.map +1 -0
  455. package/dist/esm/experimental/core.js +85 -0
  456. package/dist/esm/experimental/core.js.map +1 -0
  457. package/dist/esm/experimental/errors.js +27 -0
  458. package/dist/esm/experimental/errors.js.map +1 -0
  459. package/dist/esm/experimental/index.js +8 -0
  460. package/dist/esm/experimental/index.js.map +1 -0
  461. package/dist/esm/experimental/persistent-storage.js +337 -0
  462. package/dist/esm/experimental/persistent-storage.js.map +1 -0
  463. package/dist/esm/experimental/persistent-storage.test.js +198 -0
  464. package/dist/esm/experimental/persistent-storage.test.js.map +1 -0
  465. package/dist/esm/experimental/transports/utils.js +100 -0
  466. package/dist/esm/experimental/transports/utils.js.map +1 -0
  467. package/dist/esm/experimental/types.js +5 -0
  468. package/dist/esm/experimental/types.js.map +1 -0
  469. package/dist/esm/faucet/faucet.js +104 -111
  470. package/dist/esm/faucet/faucet.js.map +1 -0
  471. package/dist/esm/faucet/index.js +4 -16
  472. package/dist/esm/faucet/index.js.map +1 -0
  473. package/dist/esm/grpc/client.js +34 -34
  474. package/dist/esm/grpc/client.js.map +1 -0
  475. package/dist/esm/grpc/core.js +570 -601
  476. package/dist/esm/grpc/core.js.map +1 -0
  477. package/dist/esm/grpc/index.js +5 -6
  478. package/dist/esm/grpc/index.js.map +1 -0
  479. package/dist/esm/grpc/proto/google/protobuf/any.js +161 -111
  480. package/dist/esm/grpc/proto/google/protobuf/any.js.map +1 -0
  481. package/dist/esm/grpc/proto/google/protobuf/duration.js +99 -67
  482. package/dist/esm/grpc/proto/google/protobuf/duration.js.map +1 -0
  483. package/dist/esm/grpc/proto/google/protobuf/empty.js +46 -7
  484. package/dist/esm/grpc/proto/google/protobuf/empty.js.map +1 -0
  485. package/dist/esm/grpc/proto/google/protobuf/field_mask.js +90 -52
  486. package/dist/esm/grpc/proto/google/protobuf/field_mask.js.map +1 -0
  487. package/dist/esm/grpc/proto/google/protobuf/struct.js +258 -190
  488. package/dist/esm/grpc/proto/google/protobuf/struct.js.map +1 -0
  489. package/dist/esm/grpc/proto/google/protobuf/timestamp.js +144 -108
  490. package/dist/esm/grpc/proto/google/protobuf/timestamp.js.map +1 -0
  491. package/dist/esm/grpc/proto/google/rpc/error_details.js +313 -267
  492. package/dist/esm/grpc/proto/google/rpc/error_details.js.map +1 -0
  493. package/dist/esm/grpc/proto/google/rpc/status.js +45 -28
  494. package/dist/esm/grpc/proto/google/rpc/status.js.map +1 -0
  495. package/dist/esm/grpc/proto/sui/rpc/v2/argument.js +80 -47
  496. package/dist/esm/grpc/proto/sui/rpc/v2/argument.js.map +1 -0
  497. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js +41 -29
  498. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js.map +1 -0
  499. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js +34 -22
  500. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js.map +1 -0
  501. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js +61 -49
  502. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js.map +1 -0
  503. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js +72 -57
  504. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js.map +1 -0
  505. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js +173 -139
  506. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js.map +1 -0
  507. package/dist/esm/grpc/proto/sui/rpc/v2/effects.js +358 -268
  508. package/dist/esm/grpc/proto/sui/rpc/v2/effects.js.map +1 -0
  509. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js +72 -60
  510. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js.map +1 -0
  511. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js +29 -9
  512. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js.map +1 -0
  513. package/dist/esm/grpc/proto/sui/rpc/v2/event.js +74 -59
  514. package/dist/esm/grpc/proto/sui/rpc/v2/event.js.map +1 -0
  515. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js +69 -57
  516. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js.map +1 -0
  517. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js +861 -474
  518. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js.map +1 -0
  519. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js +52 -40
  520. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js.map +1 -0
  521. package/dist/esm/grpc/proto/sui/rpc/v2/input.js +98 -61
  522. package/dist/esm/grpc/proto/sui/rpc/v2/input.js.map +1 -0
  523. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js +71 -56
  524. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js.map +1 -0
  525. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js +65 -100
  526. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js.map +1 -0
  527. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js +365 -306
  528. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js.map +1 -0
  529. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js +585 -442
  530. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js.map +1 -0
  531. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js +42 -59
  532. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js.map +1 -0
  533. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js +226 -191
  534. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js.map +1 -0
  535. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js +28 -33
  536. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js.map +1 -0
  537. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js +129 -107
  538. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js.map +1 -0
  539. package/dist/esm/grpc/proto/sui/rpc/v2/object.js +100 -85
  540. package/dist/esm/grpc/proto/sui/rpc/v2/object.js.map +1 -0
  541. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js +42 -30
  542. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js.map +1 -0
  543. package/dist/esm/grpc/proto/sui/rpc/v2/owner.js +72 -40
  544. package/dist/esm/grpc/proto/sui/rpc/v2/owner.js.map +1 -0
  545. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js +42 -38
  546. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js.map +1 -0
  547. package/dist/esm/grpc/proto/sui/rpc/v2/signature.js +544 -481
  548. package/dist/esm/grpc/proto/sui/rpc/v2/signature.js.map +1 -0
  549. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js +52 -13
  550. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js.map +1 -0
  551. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +23 -28
  552. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js.map +1 -0
  553. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js +74 -60
  554. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js.map +1 -0
  555. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js +49 -66
  556. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js.map +1 -0
  557. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js +623 -490
  558. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js.map +1 -0
  559. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js +33 -32
  560. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js.map +1 -0
  561. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js +50 -36
  562. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js.map +1 -0
  563. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js +737 -701
  564. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js.map +1 -0
  565. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js +1177 -917
  566. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js.map +1 -0
  567. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +28 -27
  568. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js.map +1 -0
  569. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js +169 -133
  570. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js.map +1 -0
  571. package/dist/esm/index.js +21 -107
  572. package/dist/esm/index.js.map +1 -0
  573. package/dist/esm/jsonRpc/client.js +646 -727
  574. package/dist/esm/jsonRpc/client.js.map +1 -0
  575. package/dist/esm/jsonRpc/core.d.ts +7 -7
  576. package/dist/esm/jsonRpc/core.js +550 -581
  577. package/dist/esm/jsonRpc/core.js.map +1 -0
  578. package/dist/esm/jsonRpc/errors.js +36 -41
  579. package/dist/esm/jsonRpc/errors.js.map +1 -0
  580. package/dist/esm/jsonRpc/http-transport.js +65 -93
  581. package/dist/esm/jsonRpc/http-transport.js.map +1 -0
  582. package/dist/esm/jsonRpc/index.js +6 -20
  583. package/dist/esm/jsonRpc/index.js.map +1 -0
  584. package/dist/esm/jsonRpc/json-rpc-resolver.js +281 -276
  585. package/dist/esm/jsonRpc/json-rpc-resolver.js.map +1 -0
  586. package/dist/esm/jsonRpc/rpc-websocket-client.js +147 -189
  587. package/dist/esm/jsonRpc/rpc-websocket-client.js.map +1 -0
  588. package/dist/esm/jsonRpc/types/chain.js +4 -0
  589. package/dist/esm/jsonRpc/types/chain.js.map +1 -0
  590. package/dist/esm/jsonRpc/types/changes.js +4 -0
  591. package/dist/esm/jsonRpc/types/changes.js.map +1 -0
  592. package/dist/esm/jsonRpc/types/coins.js +4 -0
  593. package/dist/esm/jsonRpc/types/coins.js.map +1 -0
  594. package/dist/esm/jsonRpc/types/common.js +4 -0
  595. package/dist/esm/jsonRpc/types/common.js.map +1 -0
  596. package/dist/esm/jsonRpc/types/generated.d.ts +1 -1
  597. package/dist/esm/jsonRpc/types/generated.js +4 -0
  598. package/dist/esm/jsonRpc/types/generated.js.map +1 -0
  599. package/dist/esm/jsonRpc/types/index.js +4 -0
  600. package/dist/esm/jsonRpc/types/index.js.map +1 -0
  601. package/dist/esm/jsonRpc/types/params.js +4 -0
  602. package/dist/esm/jsonRpc/types/params.js.map +1 -0
  603. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js +49 -48
  604. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js.map +1 -0
  605. package/dist/esm/keypairs/ed25519/index.js +5 -10
  606. package/dist/esm/keypairs/ed25519/index.js.map +1 -0
  607. package/dist/esm/keypairs/ed25519/keypair.js +128 -146
  608. package/dist/esm/keypairs/ed25519/keypair.js.map +1 -0
  609. package/dist/esm/keypairs/ed25519/publickey.js +64 -67
  610. package/dist/esm/keypairs/ed25519/publickey.js.map +1 -0
  611. package/dist/esm/keypairs/index.js +3 -0
  612. package/dist/esm/keypairs/index.js.map +1 -0
  613. package/dist/esm/keypairs/passkey/index.js +5 -12
  614. package/dist/esm/keypairs/passkey/index.js.map +1 -0
  615. package/dist/esm/keypairs/passkey/keypair.js +236 -243
  616. package/dist/esm/keypairs/passkey/keypair.js.map +1 -0
  617. package/dist/esm/keypairs/passkey/publickey.js +154 -140
  618. package/dist/esm/keypairs/passkey/publickey.js.map +1 -0
  619. package/dist/esm/keypairs/passkey/types.js +4 -0
  620. package/dist/esm/keypairs/passkey/types.js.map +1 -0
  621. package/dist/esm/keypairs/secp256k1/index.js +5 -10
  622. package/dist/esm/keypairs/secp256k1/index.js.map +1 -0
  623. package/dist/esm/keypairs/secp256k1/keypair.js +120 -134
  624. package/dist/esm/keypairs/secp256k1/keypair.js.map +1 -0
  625. package/dist/esm/keypairs/secp256k1/publickey.js +64 -71
  626. package/dist/esm/keypairs/secp256k1/publickey.js.map +1 -0
  627. package/dist/esm/keypairs/secp256r1/index.js +5 -10
  628. package/dist/esm/keypairs/secp256r1/index.js.map +1 -0
  629. package/dist/esm/keypairs/secp256r1/keypair.js +118 -131
  630. package/dist/esm/keypairs/secp256r1/keypair.js.map +1 -0
  631. package/dist/esm/keypairs/secp256r1/publickey.js +63 -66
  632. package/dist/esm/keypairs/secp256r1/publickey.js.map +1 -0
  633. package/dist/esm/multisig/index.js +5 -10
  634. package/dist/esm/multisig/index.js.map +1 -0
  635. package/dist/esm/multisig/publickey.d.ts +1 -1
  636. package/dist/esm/multisig/publickey.js +216 -253
  637. package/dist/esm/multisig/publickey.js.map +1 -0
  638. package/dist/esm/multisig/signer.js +57 -89
  639. package/dist/esm/multisig/signer.js.map +1 -0
  640. package/dist/esm/transactions/Arguments.d.ts +4 -4
  641. package/dist/esm/transactions/Arguments.js +9 -13
  642. package/dist/esm/transactions/Arguments.js.map +1 -0
  643. package/dist/esm/transactions/Commands.js +105 -118
  644. package/dist/esm/transactions/Commands.js.map +1 -0
  645. package/dist/esm/transactions/Inputs.js +49 -61
  646. package/dist/esm/transactions/Inputs.js.map +1 -0
  647. package/dist/esm/transactions/ObjectCache.d.ts +8 -8
  648. package/dist/esm/transactions/ObjectCache.js +200 -223
  649. package/dist/esm/transactions/ObjectCache.js.map +1 -0
  650. package/dist/esm/transactions/Transaction.d.ts +32 -32
  651. package/dist/esm/transactions/Transaction.js +611 -696
  652. package/dist/esm/transactions/Transaction.js.map +1 -0
  653. package/dist/esm/transactions/TransactionData.d.ts +9 -9
  654. package/dist/esm/transactions/TransactionData.js +386 -415
  655. package/dist/esm/transactions/TransactionData.js.map +1 -0
  656. package/dist/esm/transactions/__tests__/Transaction.test.js +167 -0
  657. package/dist/esm/transactions/__tests__/Transaction.test.js.map +1 -0
  658. package/dist/esm/transactions/__tests__/bcs.test.js +200 -0
  659. package/dist/esm/transactions/__tests__/bcs.test.js.map +1 -0
  660. package/dist/esm/transactions/data/internal.js +158 -205
  661. package/dist/esm/transactions/data/internal.js.map +1 -0
  662. package/dist/esm/transactions/data/v1.js +419 -487
  663. package/dist/esm/transactions/data/v1.js.map +1 -0
  664. package/dist/esm/transactions/data/v2.d.ts +5 -5
  665. package/dist/esm/transactions/data/v2.js +89 -107
  666. package/dist/esm/transactions/data/v2.js.map +1 -0
  667. package/dist/esm/transactions/executor/caching.d.ts +2 -2
  668. package/dist/esm/transactions/executor/caching.js +66 -93
  669. package/dist/esm/transactions/executor/caching.js.map +1 -0
  670. package/dist/esm/transactions/executor/parallel.js +329 -352
  671. package/dist/esm/transactions/executor/parallel.js.map +1 -0
  672. package/dist/esm/transactions/executor/queue.js +58 -64
  673. package/dist/esm/transactions/executor/queue.js.map +1 -0
  674. package/dist/esm/transactions/executor/serial.d.ts +5 -5
  675. package/dist/esm/transactions/executor/serial.js +96 -110
  676. package/dist/esm/transactions/executor/serial.js.map +1 -0
  677. package/dist/esm/transactions/hash.js +15 -9
  678. package/dist/esm/transactions/hash.js.map +1 -0
  679. package/dist/esm/transactions/index.js +15 -41
  680. package/dist/esm/transactions/index.js.map +1 -0
  681. package/dist/esm/transactions/intents/CoinWithBalance.js +127 -165
  682. package/dist/esm/transactions/intents/CoinWithBalance.js.map +1 -0
  683. package/dist/esm/transactions/object.js +86 -92
  684. package/dist/esm/transactions/object.js.map +1 -0
  685. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js +18 -15
  686. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js.map +1 -0
  687. package/dist/esm/transactions/pure.js +34 -39
  688. package/dist/esm/transactions/pure.js.map +1 -0
  689. package/dist/esm/transactions/resolve.js +58 -69
  690. package/dist/esm/transactions/resolve.js.map +1 -0
  691. package/dist/esm/transactions/serializer.js +145 -144
  692. package/dist/esm/transactions/serializer.js.map +1 -0
  693. package/dist/esm/transactions/utils.d.ts +1 -1
  694. package/dist/esm/transactions/utils.js +110 -109
  695. package/dist/esm/transactions/utils.js.map +1 -0
  696. package/dist/esm/utils/constants.js +26 -36
  697. package/dist/esm/utils/constants.js.map +1 -0
  698. package/dist/esm/utils/derived-objects.js +11 -10
  699. package/dist/esm/utils/derived-objects.js.map +1 -0
  700. package/dist/esm/utils/dynamic-fields.js +16 -16
  701. package/dist/esm/utils/dynamic-fields.js.map +1 -0
  702. package/dist/esm/utils/format.js +13 -13
  703. package/dist/esm/utils/format.js.map +1 -0
  704. package/dist/esm/utils/index.js +15 -76
  705. package/dist/esm/utils/index.js.map +1 -0
  706. package/dist/esm/utils/move-registry.js +34 -17
  707. package/dist/esm/utils/move-registry.js.map +1 -0
  708. package/dist/esm/utils/sui-types.js +70 -54
  709. package/dist/esm/utils/sui-types.js.map +1 -0
  710. package/dist/esm/utils/suins.js +29 -29
  711. package/dist/esm/utils/suins.js.map +1 -0
  712. package/dist/esm/verify/index.js +5 -14
  713. package/dist/esm/verify/index.js.map +1 -0
  714. package/dist/esm/verify/verify.js +76 -93
  715. package/dist/esm/verify/verify.js.map +1 -0
  716. package/dist/esm/version.js +6 -6
  717. package/dist/esm/version.js.map +1 -0
  718. package/dist/esm/w/call/allocation.js +307 -402
  719. package/dist/esm/w/call/allocation.js.map +1 -0
  720. package/dist/esm/w/call/arb.js +100 -129
  721. package/dist/esm/w/call/arb.js.map +1 -0
  722. package/dist/esm/w/call/arbitration.js +1170 -1568
  723. package/dist/esm/w/call/arbitration.js.map +1 -0
  724. package/dist/esm/w/call/base.js +288 -315
  725. package/dist/esm/w/call/base.js.map +1 -0
  726. package/dist/esm/w/call/contact.js +318 -442
  727. package/dist/esm/w/call/contact.js.map +1 -0
  728. package/dist/esm/w/call/demand.js +673 -841
  729. package/dist/esm/w/call/demand.js.map +1 -0
  730. package/dist/esm/w/call/entity.js +162 -203
  731. package/dist/esm/w/call/entity.js.map +1 -0
  732. package/dist/esm/w/call/guard-ins.d.ts +1 -0
  733. package/dist/esm/w/call/guard-ins.js +4373 -4366
  734. package/dist/esm/w/call/guard-ins.js.map +1 -0
  735. package/dist/esm/w/call/guard.d.ts +10 -0
  736. package/dist/esm/w/call/guard.js +1061 -1115
  737. package/dist/esm/w/call/guard.js.map +1 -0
  738. package/dist/esm/w/call/index.d.ts +1 -1
  739. package/dist/esm/w/call/index.js +24 -54
  740. package/dist/esm/w/call/index.js.map +1 -0
  741. package/dist/esm/w/call/machine.js +1086 -1433
  742. package/dist/esm/w/call/machine.js.map +1 -0
  743. package/dist/esm/w/call/order.js +301 -448
  744. package/dist/esm/w/call/order.js.map +1 -0
  745. package/dist/esm/w/call/passport.js +204 -240
  746. package/dist/esm/w/call/passport.js.map +1 -0
  747. package/dist/esm/w/call/payment.js +177 -215
  748. package/dist/esm/w/call/payment.js.map +1 -0
  749. package/dist/esm/w/call/permission.js +1172 -1320
  750. package/dist/esm/w/call/permission.js.map +1 -0
  751. package/dist/esm/w/call/personal.js +121 -156
  752. package/dist/esm/w/call/personal.js.map +1 -0
  753. package/dist/esm/w/call/progress.js +625 -797
  754. package/dist/esm/w/call/progress.js.map +1 -0
  755. package/dist/esm/w/call/proof.js +61 -103
  756. package/dist/esm/w/call/proof.js.map +1 -0
  757. package/dist/esm/w/call/repository.js +1017 -1251
  758. package/dist/esm/w/call/repository.js.map +1 -0
  759. package/dist/esm/w/call/resource.js +108 -124
  760. package/dist/esm/w/call/resource.js.map +1 -0
  761. package/dist/esm/w/call/reward.js +660 -847
  762. package/dist/esm/w/call/reward.js.map +1 -0
  763. package/dist/esm/w/call/service.js +1849 -2400
  764. package/dist/esm/w/call/service.js.map +1 -0
  765. package/dist/esm/w/call/treasury.js +815 -1125
  766. package/dist/esm/w/call/treasury.js.map +1 -0
  767. package/dist/esm/w/call/util.js +553 -576
  768. package/dist/esm/w/call/util.js.map +1 -0
  769. package/dist/esm/w/common.d.ts +1 -1
  770. package/dist/esm/w/common.js +579 -580
  771. package/dist/esm/w/common.js.map +1 -0
  772. package/dist/esm/w/exception.js +570 -573
  773. package/dist/esm/w/exception.js.map +1 -0
  774. package/dist/esm/w/index.js +4 -0
  775. package/dist/esm/w/index.js.map +1 -0
  776. package/dist/esm/w/local/account.js +652 -709
  777. package/dist/esm/w/local/account.js.map +1 -0
  778. package/dist/esm/w/local/cache.js +176 -147
  779. package/dist/esm/w/local/cache.js.map +1 -0
  780. package/dist/esm/w/local/config.js +46 -60
  781. package/dist/esm/w/local/config.js.map +1 -0
  782. package/dist/esm/w/local/index.js +196 -273
  783. package/dist/esm/w/local/index.js.map +1 -0
  784. package/dist/esm/w/local/local.d.ts +2 -2
  785. package/dist/esm/w/local/local.js +631 -626
  786. package/dist/esm/w/local/local.js.map +1 -0
  787. package/dist/esm/w/local/storage.js +168 -136
  788. package/dist/esm/w/local/storage.js.map +1 -0
  789. package/dist/esm/w/local/token.js +149 -151
  790. package/dist/esm/w/local/token.js.map +1 -0
  791. package/dist/esm/w/local/util.js +45 -22
  792. package/dist/esm/w/local/util.js.map +1 -0
  793. package/dist/esm/w/local/wip.js +1038 -781
  794. package/dist/esm/w/local/wip.js.map +1 -0
  795. package/dist/esm/w/messenger/crypto.js +491 -387
  796. package/dist/esm/w/messenger/crypto.js.map +1 -0
  797. package/dist/esm/w/messenger/index.js +27 -24
  798. package/dist/esm/w/messenger/index.js.map +1 -0
  799. package/dist/esm/w/messenger/messenger-api.js +1111 -1017
  800. package/dist/esm/w/messenger/messenger-api.js.map +1 -0
  801. package/dist/esm/w/messenger/messenger-manager.js +944 -1052
  802. package/dist/esm/w/messenger/messenger-manager.js.map +1 -0
  803. package/dist/esm/w/messenger/messenger.d.ts +1 -1
  804. package/dist/esm/w/messenger/messenger.js +1258 -1421
  805. package/dist/esm/w/messenger/messenger.js.map +1 -0
  806. package/dist/esm/w/messenger/server.js +388 -499
  807. package/dist/esm/w/messenger/server.js.map +1 -0
  808. package/dist/esm/w/messenger/session.js +394 -399
  809. package/dist/esm/w/messenger/session.js.map +1 -0
  810. package/dist/esm/w/messenger/storage.js +840 -751
  811. package/dist/esm/w/messenger/storage.js.map +1 -0
  812. package/dist/esm/w/messenger/types.d.ts +2 -2
  813. package/dist/esm/w/messenger/types.js +80 -85
  814. package/dist/esm/w/messenger/types.js.map +1 -0
  815. package/dist/esm/w/messenger/utils.js +28 -16
  816. package/dist/esm/w/messenger/utils.js.map +1 -0
  817. package/dist/esm/w/query/bult-in.js +95 -100
  818. package/dist/esm/w/query/bult-in.js.map +1 -0
  819. package/dist/esm/w/query/event.js +128 -125
  820. package/dist/esm/w/query/event.js.map +1 -0
  821. package/dist/esm/w/query/index.js +3 -0
  822. package/dist/esm/w/query/index.js.map +1 -0
  823. package/dist/esm/w/query/object.js +1560 -1574
  824. package/dist/esm/w/query/object.js.map +1 -0
  825. package/dist/esm/w/query/received.js +57 -63
  826. package/dist/esm/w/query/received.js.map +1 -0
  827. package/dist/esm/w/query/util.js +48 -56
  828. package/dist/esm/w/query/util.js.map +1 -0
  829. package/dist/esm/w/util.js +578 -673
  830. package/dist/esm/w/util.js.map +1 -0
  831. package/package.json +14 -9
  832. package/dist/cjs/graphql/client.js +0 -98
  833. package/dist/cjs/graphql/core.js +0 -506
  834. package/dist/cjs/graphql/generated/2024.1/tada-env.js +0 -13141
  835. package/dist/cjs/graphql/generated/2024.1/tsconfig.tada.js +0 -11
  836. package/dist/cjs/graphql/generated/2024.4/tada-env.js +0 -13287
  837. package/dist/cjs/graphql/generated/2024.4/tsconfig.tada.js +0 -11
  838. package/dist/cjs/graphql/generated/latest/tada-env.js +0 -12925
  839. package/dist/cjs/graphql/generated/latest/tsconfig.tada.js +0 -11
  840. package/dist/cjs/graphql/generated/queries.js +0 -807
  841. package/dist/cjs/graphql/index.js +0 -25
  842. package/dist/cjs/graphql/schemas/2024.1/index.js +0 -28
  843. package/dist/cjs/graphql/schemas/2024.4/index.js +0 -28
  844. package/dist/cjs/graphql/schemas/latest/index.js +0 -28
  845. package/dist/cjs/graphql/types.js +0 -16
  846. package/dist/cjs/package.json +0 -5
  847. package/dist/cjs/w/local/.eslintrc.js +0 -15
  848. package/dist/cjs/w/messenger/.eslintrc.js +0 -15
  849. package/dist/cjs/zklogin/address.js +0 -93
  850. package/dist/cjs/zklogin/bcs.js +0 -41
  851. package/dist/cjs/zklogin/index.js +0 -45
  852. package/dist/cjs/zklogin/jwt-decode.js +0 -88
  853. package/dist/cjs/zklogin/jwt-utils.js +0 -128
  854. package/dist/cjs/zklogin/nonce.js +0 -60
  855. package/dist/cjs/zklogin/poseidon.js +0 -64
  856. package/dist/cjs/zklogin/publickey.js +0 -281
  857. package/dist/cjs/zklogin/signature.js +0 -57
  858. package/dist/cjs/zklogin/utils.js +0 -98
  859. package/dist/esm/graphql/client.js +0 -79
  860. package/dist/esm/graphql/core.js +0 -505
  861. package/dist/esm/graphql/generated/2024.1/tada-env.js +0 -13121
  862. package/dist/esm/graphql/generated/2024.1/tsconfig.tada.js +0 -16
  863. package/dist/esm/graphql/generated/2024.4/tada-env.js +0 -13267
  864. package/dist/esm/graphql/generated/2024.4/tsconfig.tada.js +0 -16
  865. package/dist/esm/graphql/generated/latest/tada-env.js +0 -12905
  866. package/dist/esm/graphql/generated/latest/tsconfig.tada.js +0 -16
  867. package/dist/esm/graphql/generated/queries.js +0 -788
  868. package/dist/esm/graphql/index.js +0 -8
  869. package/dist/esm/graphql/schemas/2024.1/index.js +0 -8
  870. package/dist/esm/graphql/schemas/2024.4/index.js +0 -8
  871. package/dist/esm/graphql/schemas/latest/index.js +0 -8
  872. package/dist/esm/graphql/types.js +0 -0
  873. package/dist/esm/package.json +0 -5
  874. package/dist/esm/w/local/.eslintrc.js +0 -23
  875. package/dist/esm/w/messenger/.eslintrc.js +0 -23
  876. package/dist/esm/zklogin/address.js +0 -78
  877. package/dist/esm/zklogin/bcs.js +0 -21
  878. package/dist/esm/zklogin/index.js +0 -38
  879. package/dist/esm/zklogin/jwt-decode.js +0 -68
  880. package/dist/esm/zklogin/jwt-utils.js +0 -108
  881. package/dist/esm/zklogin/nonce.js +0 -40
  882. package/dist/esm/zklogin/poseidon.js +0 -61
  883. package/dist/esm/zklogin/publickey.js +0 -265
  884. package/dist/esm/zklogin/signature.js +0 -37
  885. package/dist/esm/zklogin/utils.js +0 -78
  886. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  887. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,418 +1,414 @@
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 __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
21
- var session_exports = {};
22
- __export(session_exports, {
23
- MessengerSession: () => MessengerSession
24
- });
25
- module.exports = __toCommonJS(session_exports);
26
- var import_libsignal_protocol_typescript = require("libsignal-protocol-typescript");
27
- var import_account = require("../local/account.js");
28
- var import_storage = require("./storage.js");
29
- var import_server = require("./server.js");
30
- var import_crypto = require("./crypto.js");
31
- var import_types = require("./types.js");
2
+ // Copyright (c) Wowok.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.MessengerSession = void 0;
6
+ /**
7
+ * Messenger 会话管理模块
8
+ *
9
+ * 基于 Signal Protocol 的双棘轮算法实现端到端加密
10
+ * 负责:
11
+ * 1. 身份密钥管理(与 wowok 账户体系集成)
12
+ * 2. 会话建立和维护
13
+ * 3. 消息加密和解密
14
+ */
15
+ const libsignal_protocol_typescript_1 = require("libsignal-protocol-typescript");
16
+ const account_js_1 = require("../local/account.js");
17
+ const storage_js_1 = require("./storage.js");
18
+ const server_js_1 = require("./server.js");
19
+ const crypto_js_1 = require("./crypto.js");
20
+ const types_js_1 = require("./types.js");
32
21
  class MessengerSession {
33
- constructor(userAddress, config) {
34
- __publicField(this, "store");
35
- __publicField(this, "serverClient");
36
- __publicField(this, "config");
37
- __publicField(this, "identity", null);
38
- this.store = new import_storage.SignalProtocolStorage(userAddress);
39
- this.config = { ...import_types.DEFAULT_MESSENGER_CONFIG, ...config };
40
- this.serverClient = new import_server.MessengerServerClient(this.config);
41
- }
42
- /**
43
- * 获取或创建本地身份
44
- *
45
- * 从 wowok 账户的 ED25519 私钥确定性派生 X25519 密钥对,
46
- * 确保恢复钱包后加密身份不变。
47
- */
48
- async ensureIdentity(userAddress) {
49
- if (this.identity) {
50
- return this.identity;
22
+ store;
23
+ serverClient;
24
+ config;
25
+ identity = null;
26
+ constructor(userAddress, config) {
27
+ this.store = new storage_js_1.SignalProtocolStorage(userAddress);
28
+ this.config = { ...types_js_1.DEFAULT_MESSENGER_CONFIG, ...config };
29
+ this.serverClient = new server_js_1.MessengerServerClient(this.config);
51
30
  }
52
- const existingSignalIdentity = await this.store.getIdentityKeyPair();
53
- const existingRegId = await this.store.getLocalRegistrationId();
54
- if (existingSignalIdentity && existingRegId) {
55
- const x25519PrivateKey = new Uint8Array(
56
- existingSignalIdentity.privKey
57
- );
58
- const xed255192 = (0, import_crypto.recoverXed25519FromX25519PrivateKey)(x25519PrivateKey);
59
- this.identity = {
60
- xed25519: xed255192,
61
- signalIdentity: existingSignalIdentity,
62
- registrationId: existingRegId
63
- };
64
- return this.identity;
65
- }
66
- if (!userAddress) {
67
- throw new import_types.MessengerError(
68
- import_types.MessengerErrorCode.IDENTITY_NOT_FOUND,
69
- "userAddress is required to derive identity"
70
- );
71
- }
72
- const { privateKey, publicKey } = await import_account.Account.Instance().deriveX25519KeyPair(userAddress);
73
- const registrationId = this.deriveRegistrationId(publicKey);
74
- const prefixedPublicKey = new Uint8Array(33);
75
- prefixedPublicKey[0] = 5;
76
- prefixedPublicKey.set(publicKey, 1);
77
- const signalIdentity = {
78
- privKey: privateKey.buffer.slice(
79
- privateKey.byteOffset,
80
- privateKey.byteOffset + privateKey.byteLength
81
- ),
82
- pubKey: prefixedPublicKey.buffer.slice(
83
- prefixedPublicKey.byteOffset,
84
- prefixedPublicKey.byteOffset + prefixedPublicKey.byteLength
85
- )
86
- };
87
- await this.store.setIdentity(signalIdentity, registrationId);
88
- const xed25519 = (0, import_crypto.recoverXed25519FromX25519PrivateKey)(privateKey);
89
- this.identity = {
90
- xed25519,
91
- signalIdentity,
92
- registrationId
93
- };
94
- return this.identity;
95
- }
96
- /**
97
- * 从公钥确定性派生注册 ID
98
- * 确保同一账户的注册 ID 始终相同
99
- */
100
- deriveRegistrationId(publicKey) {
101
- const id = publicKey[0] << 8 | publicKey[1];
102
- return id === 0 ? 1 : id;
103
- }
104
- /**
105
- * 注册设备到服务器
106
- */
107
- async registerDevice(userAddress) {
108
- const identity = await this.ensureIdentity(userAddress);
109
- const prekeys = await this.generatePreKeyBatch(
110
- this.config.prekey_count
111
- );
112
- const prefixedIdentityKey = (0, import_crypto.arrayBufferToUint8Array)(
113
- identity.signalIdentity.pubKey
114
- );
115
- const account = await import_account.Account.Instance().get(userAddress, false);
116
- if (!account?.pubkey) {
117
- throw new import_types.MessengerError(
118
- import_types.MessengerErrorCode.IDENTITY_NOT_FOUND,
119
- `Account not found for ${userAddress}`
120
- );
121
- }
122
- const timestamp = Date.now();
123
- const nonce = this.generateNonce();
124
- const message = `register:${account.pubkey}:${timestamp}:${nonce}`;
125
- const signResult = await import_account.Account.Instance().signData(
126
- userAddress,
127
- message
128
- );
129
- const signature = Buffer.from(signResult.signature.slice(2), "hex");
130
- const registerRequest = {
131
- userAddress,
132
- deviceId: import_types.DEFAULT_DEVICE_ID,
133
- registrationId: identity.registrationId,
134
- identityKey: (0, import_crypto.bytesToBase64)(prefixedIdentityKey),
135
- prekeys,
136
- publicKey: account.pubkey,
137
- signatureScheme: "ED25519",
138
- signature: (0, import_crypto.bytesToBase64)(signature),
139
- timestamp,
140
- nonce
141
- };
142
- await this.serverClient.registerDevice(registerRequest);
143
- }
144
- /**
145
- * 生成预密钥批次
146
- */
147
- async generatePreKeyBatch(count) {
148
- if (count <= 0) return [];
149
- const identity = await this.ensureIdentity();
150
- const meta = await this.store.getMeta();
151
- let nextPreKeyId = meta.nextPreKeyId || 1;
152
- const prekeys = [];
153
- for (let i = 0; i < count; i++) {
154
- const keyId = nextPreKeyId + i;
155
- const signedPreKey = await import_libsignal_protocol_typescript.KeyHelper.generateSignedPreKey(
156
- identity.signalIdentity,
157
- keyId
158
- );
159
- const prekeyPublicKey = (0, import_crypto.arrayBufferToUint8Array)(
160
- signedPreKey.keyPair.pubKey
161
- );
162
- const prefixedPublicKey = prekeyPublicKey;
163
- const signature = (0, import_crypto.arrayBufferToUint8Array)(signedPreKey.signature);
164
- await this.store.storePreKey(keyId, signedPreKey.keyPair);
165
- await this.store.storeSignedPreKey(keyId, signedPreKey.keyPair);
166
- prekeys.push({
167
- keyId,
168
- publicKey: (0, import_crypto.bytesToBase64)(prefixedPublicKey),
169
- signature: (0, import_crypto.bytesToBase64)(signature)
170
- });
31
+ /**
32
+ * 获取或创建本地身份
33
+ *
34
+ * wowok 账户的 ED25519 私钥确定性派生 X25519 密钥对,
35
+ * 确保恢复钱包后加密身份不变。
36
+ */
37
+ async ensureIdentity(userAddress) {
38
+ if (this.identity) {
39
+ return this.identity;
40
+ }
41
+ // 尝试从存储加载
42
+ const existingSignalIdentity = await this.store.getIdentityKeyPair();
43
+ const existingRegId = await this.store.getLocalRegistrationId();
44
+ if (existingSignalIdentity && existingRegId) {
45
+ const x25519PrivateKey = new Uint8Array(existingSignalIdentity.privKey);
46
+ const xed25519 = (0, crypto_js_1.recoverXed25519FromX25519PrivateKey)(x25519PrivateKey);
47
+ this.identity = {
48
+ xed25519,
49
+ signalIdentity: existingSignalIdentity,
50
+ registrationId: existingRegId,
51
+ };
52
+ return this.identity;
53
+ }
54
+ // ED25519 私钥确定性派生 X25519 密钥对
55
+ if (!userAddress) {
56
+ throw new types_js_1.MessengerError(types_js_1.MessengerErrorCode.IDENTITY_NOT_FOUND, "userAddress is required to derive identity");
57
+ }
58
+ // 从 Account 派生 X25519 密钥对
59
+ const { privateKey, publicKey } = await account_js_1.Account.Instance().deriveX25519KeyPair(userAddress);
60
+ // 生成注册 ID(可以从公钥派生,确保确定性)
61
+ const registrationId = this.deriveRegistrationId(publicKey);
62
+ // 转换为 Signal Protocol 格式
63
+ // Signal Protocol 要求公钥带 0x05 前缀(33字节),私钥32字节
64
+ const prefixedPublicKey = new Uint8Array(33);
65
+ prefixedPublicKey[0] = 0x05; // Signal Protocol 标准前缀
66
+ prefixedPublicKey.set(publicKey, 1);
67
+ const signalIdentity = {
68
+ privKey: privateKey.buffer.slice(privateKey.byteOffset, privateKey.byteOffset + privateKey.byteLength),
69
+ pubKey: prefixedPublicKey.buffer.slice(prefixedPublicKey.byteOffset, prefixedPublicKey.byteOffset + prefixedPublicKey.byteLength),
70
+ };
71
+ await this.store.setIdentity(signalIdentity, registrationId);
72
+ const xed25519 = (0, crypto_js_1.recoverXed25519FromX25519PrivateKey)(privateKey);
73
+ this.identity = {
74
+ xed25519,
75
+ signalIdentity,
76
+ registrationId,
77
+ };
78
+ return this.identity;
171
79
  }
172
- nextPreKeyId += count;
173
- await this.store.setMeta({ nextPreKeyId });
174
- return prekeys;
175
- }
176
- /**
177
- * 确保服务器上有足够可用的预密钥
178
- *
179
- * 逻辑:查询服务器当前预密钥数量,按需生成并上传,补充到服务器最大容量
180
- */
181
- async ensurePreKeys(userAddress, force = false) {
182
- const status = await this.serverClient.getPrekeyStatus(userAddress);
183
- if (!force && status.currentCount >= status.maxAllowed) {
184
- throw new import_types.MessengerError(
185
- import_types.MessengerErrorCode.PREKEYS_FULL,
186
- `Prekeys already full on server: ${status.currentCount}/${status.maxAllowed}`
187
- );
80
+ /**
81
+ * 从公钥确定性派生注册 ID
82
+ * 确保同一账户的注册 ID 始终相同
83
+ */
84
+ deriveRegistrationId(publicKey) {
85
+ // 取公钥前 2 字节作为注册 ID(范围 0-65535)
86
+ // 确保不为 0(Signal Protocol 要求)
87
+ const id = (publicKey[0] << 8) | publicKey[1];
88
+ return id === 0 ? 1 : id;
188
89
  }
189
- const needCount = status.maxAllowed - status.currentCount;
190
- if (needCount <= 0) {
191
- return;
90
+ /**
91
+ * 注册设备到服务器
92
+ */
93
+ async registerDevice(userAddress) {
94
+ const identity = await this.ensureIdentity(userAddress);
95
+ // 首次注册时上传最大数量的预密钥
96
+ const prekeys = await this.generatePreKeyBatch(this.config.prekey_count);
97
+ // 注意:KeyHelper.generateIdentityKeyPair 返回的 identityKey 已经带有 0x05 前缀了
98
+ // 不要再次 encodeX25519PublicKey,否则会有双重前缀!
99
+ const prefixedIdentityKey = (0, crypto_js_1.arrayBufferToUint8Array)(identity.signalIdentity.pubKey);
100
+ // 获取账户信息用于签名
101
+ const account = await account_js_1.Account.Instance().get(userAddress, false);
102
+ if (!account?.pubkey) {
103
+ throw new types_js_1.MessengerError(types_js_1.MessengerErrorCode.IDENTITY_NOT_FOUND, `Account not found for ${userAddress}`);
104
+ }
105
+ // 构造签名
106
+ const timestamp = Date.now();
107
+ const nonce = this.generateNonce();
108
+ const message = `register:${account.pubkey}:${timestamp}:${nonce}`;
109
+ const signResult = await account_js_1.Account.Instance().signData(userAddress, message);
110
+ const signature = Buffer.from(signResult.signature.slice(2), "hex");
111
+ const registerRequest = {
112
+ userAddress,
113
+ deviceId: types_js_1.DEFAULT_DEVICE_ID,
114
+ registrationId: identity.registrationId,
115
+ identityKey: (0, crypto_js_1.bytesToBase64)(prefixedIdentityKey),
116
+ prekeys,
117
+ publicKey: account.pubkey,
118
+ signatureScheme: "ED25519",
119
+ signature: (0, crypto_js_1.bytesToBase64)(signature),
120
+ timestamp,
121
+ nonce,
122
+ };
123
+ await this.serverClient.registerDevice(registerRequest);
192
124
  }
193
- await this.ensureIdentity(userAddress);
194
- const prekeys = await this.generatePreKeyBatch(needCount);
195
- const account = await import_account.Account.Instance().get(userAddress, false);
196
- if (!account?.pubkey) {
197
- throw new import_types.MessengerError(
198
- import_types.MessengerErrorCode.IDENTITY_NOT_FOUND,
199
- `Account not found for ${userAddress}`
200
- );
125
+ /**
126
+ * 生成预密钥批次
127
+ */
128
+ async generatePreKeyBatch(count) {
129
+ if (count <= 0)
130
+ return [];
131
+ const identity = await this.ensureIdentity();
132
+ const meta = await this.store.getMeta();
133
+ let nextPreKeyId = meta.nextPreKeyId || 1;
134
+ const prekeys = [];
135
+ for (let i = 0; i < count; i++) {
136
+ const keyId = nextPreKeyId + i;
137
+ // 使用双棘轮库的 KeyHelper.generateSignedPreKey 生成带 X25519 签名的 signed prekey
138
+ const signedPreKey = await libsignal_protocol_typescript_1.KeyHelper.generateSignedPreKey(identity.signalIdentity, keyId);
139
+ const prekeyPublicKey = (0, crypto_js_1.arrayBufferToUint8Array)(signedPreKey.keyPair.pubKey);
140
+ // 注意:KeyHelper.generateSignedPreKey 返回的 prekey 已经带有 0x05 前缀了
141
+ // 不要再次 encodeX25519PublicKey,否则会有双重前缀!
142
+ const prefixedPublicKey = prekeyPublicKey;
143
+ // 双棘轮库已经生成了 X25519 签名,直接使用
144
+ const signature = (0, crypto_js_1.arrayBufferToUint8Array)(signedPreKey.signature);
145
+ await this.store.storePreKey(keyId, signedPreKey.keyPair);
146
+ await this.store.storeSignedPreKey(keyId, signedPreKey.keyPair);
147
+ prekeys.push({
148
+ keyId,
149
+ publicKey: (0, crypto_js_1.bytesToBase64)(prefixedPublicKey),
150
+ signature: (0, crypto_js_1.bytesToBase64)(signature),
151
+ });
152
+ }
153
+ nextPreKeyId += count;
154
+ await this.store.setMeta({ nextPreKeyId });
155
+ return prekeys;
201
156
  }
202
- const timestamp = Date.now();
203
- const nonce = this.generateNonce();
204
- const message = `upload_prekeys:${account.pubkey}:${timestamp}:${nonce}`;
205
- const signResult = await import_account.Account.Instance().signData(
206
- userAddress,
207
- message
208
- );
209
- const signature = Buffer.from(signResult.signature.slice(2), "hex");
210
- await this.serverClient.uploadPreKeys({
211
- userAddress,
212
- prekeys,
213
- publicKey: account.pubkey,
214
- signatureScheme: "ED25519",
215
- signature: (0, import_crypto.bytesToBase64)(signature),
216
- timestamp,
217
- nonce
218
- });
219
- }
220
- /**
221
- * 生成随机 nonce
222
- */
223
- generateNonce() {
224
- const array = new Uint8Array(16);
225
- crypto.getRandomValues(array);
226
- return Array.from(array, (b) => b.toString(16).padStart(2, "0")).join(
227
- ""
228
- );
229
- }
230
- /**
231
- * 建立与对方的会话
232
- */
233
- async establishSession(myAddress, peerAddress, peerDeviceId = import_types.DEFAULT_DEVICE_ID) {
234
- const protocolAddress = new import_libsignal_protocol_typescript.SignalProtocolAddress(
235
- peerAddress,
236
- peerDeviceId
237
- );
238
- const existingSession = await this.store.loadSession(
239
- protocolAddress.toString()
240
- );
241
- if (existingSession) {
242
- return;
157
+ /**
158
+ * 确保服务器上有足够可用的预密钥
159
+ *
160
+ * 逻辑:查询服务器当前预密钥数量,按需生成并上传,补充到服务器最大容量
161
+ */
162
+ async ensurePreKeys(userAddress, force = false) {
163
+ // 1. 查询服务器当前预密钥状态
164
+ const status = await this.serverClient.getPrekeyStatus(userAddress);
165
+ // 2. 如果服务器已满且非强制模式,直接返回
166
+ if (!force && status.currentCount >= status.maxAllowed) {
167
+ throw new types_js_1.MessengerError(types_js_1.MessengerErrorCode.PREKEYS_FULL, `Prekeys already full on server: ${status.currentCount}/${status.maxAllowed}`);
168
+ }
169
+ // 3. 计算需要补充的数量
170
+ const needCount = status.maxAllowed - status.currentCount;
171
+ if (needCount <= 0) {
172
+ /*console.log(
173
+ `No need to refill prekeys, server has ${status.currentCount}/${status.maxAllowed}`,
174
+ );*/
175
+ return;
176
+ }
177
+ /*console.log(
178
+ `Refilling prekeys: server has ${status.currentCount}/${status.maxAllowed}, need ${needCount}`,
179
+ );*/
180
+ // 4. 确保身份已初始化
181
+ await this.ensureIdentity(userAddress);
182
+ // 5. 生成所需数量的预密钥
183
+ const prekeys = await this.generatePreKeyBatch(needCount);
184
+ // 6. 获取账户信息用于签名
185
+ const account = await account_js_1.Account.Instance().get(userAddress, false);
186
+ if (!account?.pubkey) {
187
+ throw new types_js_1.MessengerError(types_js_1.MessengerErrorCode.IDENTITY_NOT_FOUND, `Account not found for ${userAddress}`);
188
+ }
189
+ // 7. 构造上传请求(包含签名)
190
+ // 8. 生成签名
191
+ const timestamp = Date.now();
192
+ const nonce = this.generateNonce();
193
+ const message = `upload_prekeys:${account.pubkey}:${timestamp}:${nonce}`;
194
+ const signResult = await account_js_1.Account.Instance().signData(userAddress, message);
195
+ const signature = Buffer.from(signResult.signature.slice(2), "hex");
196
+ // 9. 上传预密钥(服务器会自动丢弃超过最大数量的部分)
197
+ await this.serverClient.uploadPreKeys({
198
+ userAddress,
199
+ prekeys,
200
+ publicKey: account.pubkey,
201
+ signatureScheme: "ED25519",
202
+ signature: (0, crypto_js_1.bytesToBase64)(signature),
203
+ timestamp,
204
+ nonce,
205
+ });
243
206
  }
244
- const account = await import_account.Account.Instance().get(myAddress, false);
245
- if (!account?.pubkey) {
246
- throw new import_types.MessengerError(
247
- import_types.MessengerErrorCode.IDENTITY_NOT_FOUND,
248
- `Account not found for ${myAddress}`
249
- );
207
+ /**
208
+ * 生成随机 nonce
209
+ */
210
+ generateNonce() {
211
+ const array = new Uint8Array(16);
212
+ crypto.getRandomValues(array);
213
+ return Array.from(array, (b) => b.toString(16).padStart(2, "0")).join("");
250
214
  }
251
- const timestamp = Date.now();
252
- const nonce = this.generateNonce();
253
- const publicKeyWithFlag = account.pubkey;
254
- const message = `get_bundle:${myAddress}:${timestamp}:${nonce}`;
255
- const signResult = await import_account.Account.Instance().signData(
256
- myAddress,
257
- message
258
- );
259
- const signature = Buffer.from(signResult.signature.slice(2), "hex");
260
- const remoteBundle = await this.serverClient.fetchRemoteBundle(
261
- peerAddress,
262
- myAddress,
263
- publicKeyWithFlag,
264
- {
265
- signatureScheme: "ED25519",
266
- signature: (0, import_crypto.bytesToBase64)(new Uint8Array(signature)),
267
- timestamp,
268
- nonce
269
- },
270
- peerDeviceId
271
- );
272
- const preferredPreKey = remoteBundle.signedPrekey;
273
- if (!preferredPreKey) {
274
- throw new import_types.MessengerError(
275
- import_types.MessengerErrorCode.IDENTITY_NOT_FOUND,
276
- `No signed prekey available for ${peerAddress}`
277
- );
215
+ /**
216
+ * 建立与对方的会话
217
+ */
218
+ async establishSession(myAddress, peerAddress, peerDeviceId = types_js_1.DEFAULT_DEVICE_ID) {
219
+ const protocolAddress = new libsignal_protocol_typescript_1.SignalProtocolAddress(peerAddress, peerDeviceId);
220
+ // 检查是否已有会话
221
+ const existingSession = await this.store.loadSession(protocolAddress.toString());
222
+ if (existingSession) {
223
+ return;
224
+ }
225
+ // 获取账户信息以生成签名
226
+ const account = await account_js_1.Account.Instance().get(myAddress, false);
227
+ if (!account?.pubkey) {
228
+ throw new types_js_1.MessengerError(types_js_1.MessengerErrorCode.IDENTITY_NOT_FOUND, `Account not found for ${myAddress}`);
229
+ }
230
+ // 构造签名
231
+ const timestamp = Date.now();
232
+ const nonce = this.generateNonce();
233
+ const publicKeyWithFlag = account.pubkey;
234
+ // 签名格式: get_bundle:{address}:{timestamp}:{nonce}
235
+ const message = `get_bundle:${myAddress}:${timestamp}:${nonce}`;
236
+ const signResult = await account_js_1.Account.Instance().signData(myAddress, message);
237
+ const signature = Buffer.from(signResult.signature.slice(2), "hex");
238
+ // 获取对方密钥包(带签名验证)
239
+ const remoteBundle = await this.serverClient.fetchRemoteBundle(peerAddress, myAddress, publicKeyWithFlag, {
240
+ signatureScheme: "ED25519",
241
+ signature: (0, crypto_js_1.bytesToBase64)(new Uint8Array(signature)),
242
+ timestamp,
243
+ nonce,
244
+ }, peerDeviceId);
245
+ const preferredPreKey = remoteBundle.signedPrekey;
246
+ if (!preferredPreKey) {
247
+ throw new types_js_1.MessengerError(types_js_1.MessengerErrorCode.IDENTITY_NOT_FOUND, `No signed prekey available for ${peerAddress}`);
248
+ }
249
+ // 转换为 Signal Protocol 设备格式
250
+ const identityKeyBytes = (0, crypto_js_1.base64ToBytes)(remoteBundle.identityKey);
251
+ const preKeyPublicBytes = (0, crypto_js_1.base64ToBytes)(preferredPreKey.publicKey);
252
+ const signatureBytes = (0, crypto_js_1.base64ToBytes)(preferredPreKey.signature);
253
+ // 注意:identityKey 和 signedPreKey.publicKey 都不要 decode 去掉前缀!
254
+ // 因为当初签名时用的就是带 0x05 前缀的原始公钥!
255
+ const originalIdentityKeyWithPrefix = new Uint8Array(identityKeyBytes);
256
+ const originalPreKeyWithPrefix = new Uint8Array(preKeyPublicBytes);
257
+ const device = {
258
+ registrationId: remoteBundle.registrationId,
259
+ identityKey: originalIdentityKeyWithPrefix.buffer.slice(originalIdentityKeyWithPrefix.byteOffset, originalIdentityKeyWithPrefix.byteOffset +
260
+ originalIdentityKeyWithPrefix.byteLength),
261
+ signedPreKey: {
262
+ keyId: preferredPreKey.keyId,
263
+ publicKey: originalPreKeyWithPrefix.buffer.slice(originalPreKeyWithPrefix.byteOffset, originalPreKeyWithPrefix.byteOffset +
264
+ originalPreKeyWithPrefix.byteLength),
265
+ signature: new Uint8Array(signatureBytes).buffer.slice(signatureBytes.byteOffset, signatureBytes.byteOffset + signatureBytes.byteLength),
266
+ },
267
+ // 服务器只提供 signedPreKey,没有单独的 one-time preKey
268
+ // 这是可以的,Signal Protocol 支持仅使用 signedPreKey 建立会话
269
+ preKey: undefined,
270
+ };
271
+ // 建立会话
272
+ const builder = new libsignal_protocol_typescript_1.SessionBuilder(this.store, protocolAddress);
273
+ await builder.processPreKey(device);
274
+ // 显式存储对方的身份密钥,以便后续解密对方的回复
275
+ // 使用 protocolAddress.toString() 作为键(包含 deviceId)
276
+ await this.store.saveIdentity(protocolAddress.toString(), device.identityKey);
278
277
  }
279
- const identityKeyBytes = (0, import_crypto.base64ToBytes)(remoteBundle.identityKey);
280
- const preKeyPublicBytes = (0, import_crypto.base64ToBytes)(preferredPreKey.publicKey);
281
- const signatureBytes = (0, import_crypto.base64ToBytes)(preferredPreKey.signature);
282
- const originalIdentityKeyWithPrefix = new Uint8Array(identityKeyBytes);
283
- const originalPreKeyWithPrefix = new Uint8Array(preKeyPublicBytes);
284
- const device = {
285
- registrationId: remoteBundle.registrationId,
286
- identityKey: originalIdentityKeyWithPrefix.buffer.slice(
287
- originalIdentityKeyWithPrefix.byteOffset,
288
- originalIdentityKeyWithPrefix.byteOffset + originalIdentityKeyWithPrefix.byteLength
289
- ),
290
- signedPreKey: {
291
- keyId: preferredPreKey.keyId,
292
- publicKey: originalPreKeyWithPrefix.buffer.slice(
293
- originalPreKeyWithPrefix.byteOffset,
294
- originalPreKeyWithPrefix.byteOffset + originalPreKeyWithPrefix.byteLength
295
- ),
296
- signature: new Uint8Array(signatureBytes).buffer.slice(
297
- signatureBytes.byteOffset,
298
- signatureBytes.byteOffset + signatureBytes.byteLength
299
- )
300
- },
301
- // 服务器只提供 signedPreKey,没有单独的 one-time preKey
302
- // 这是可以的,Signal Protocol 支持仅使用 signedPreKey 建立会话
303
- preKey: void 0
304
- };
305
- const builder = new import_libsignal_protocol_typescript.SessionBuilder(this.store, protocolAddress);
306
- await builder.processPreKey(device);
307
- await this.store.saveIdentity(
308
- protocolAddress.toString(),
309
- device.identityKey
310
- );
311
- }
312
- /**
313
- * 加密消息
314
- * @param myAddress 发送方地址
315
- * @param peerAddress 接收方地址
316
- * @param plaintext 明文
317
- * @param peerDeviceId 设备ID
318
- * @returns 加密后的消息(type 表示底层 Signal Protocol 消息类型:3=PreKeyMessage, 1=WhisperMessage)
319
- */
320
- async encryptMessage(myAddress, peerAddress, plaintext, peerDeviceId = import_types.DEFAULT_DEVICE_ID) {
321
- const protocolAddress = new import_libsignal_protocol_typescript.SignalProtocolAddress(
322
- peerAddress,
323
- peerDeviceId
324
- );
325
- const sessionKey = protocolAddress.toString();
326
- const existingSession = await this.store.loadSession(sessionKey);
327
- const isNewSession = !existingSession;
328
- if (isNewSession) {
329
- await this.establishSession(myAddress, peerAddress, peerDeviceId);
278
+ /**
279
+ * 加密消息
280
+ * @param myAddress 发送方地址
281
+ * @param peerAddress 接收方地址
282
+ * @param plaintext 明文
283
+ * @param peerDeviceId 设备ID
284
+ * @returns 加密后的消息(type 表示底层 Signal Protocol 消息类型:3=PreKeyMessage, 1=WhisperMessage)
285
+ */
286
+ async encryptMessage(myAddress, peerAddress, plaintext, peerDeviceId = types_js_1.DEFAULT_DEVICE_ID) {
287
+ const protocolAddress = new libsignal_protocol_typescript_1.SignalProtocolAddress(peerAddress, peerDeviceId);
288
+ // 检查是否已有会话(用于确定底层消息类型)
289
+ const sessionKey = protocolAddress.toString();
290
+ const existingSession = await this.store.loadSession(sessionKey);
291
+ const isNewSession = !existingSession;
292
+ // 只有在新会话时才建立会话,避免重置已存在的会话状态
293
+ if (isNewSession) {
294
+ await this.establishSession(myAddress, peerAddress, peerDeviceId);
295
+ }
296
+ const cipher = new libsignal_protocol_typescript_1.SessionCipher(this.store, protocolAddress);
297
+ const encoder = new TextEncoder();
298
+ const cipherMessage = await cipher.encrypt(encoder.encode(plaintext).buffer);
299
+ // Convert body to ArrayBuffer if it's a string
300
+ let bodyBuffer;
301
+ if (typeof cipherMessage.body === "string") {
302
+ const bodyBytes = Buffer.from(cipherMessage.body, "binary");
303
+ bodyBuffer = new Uint8Array(bodyBytes).buffer;
304
+ }
305
+ else if (cipherMessage.body) {
306
+ bodyBuffer = cipherMessage.body;
307
+ }
308
+ else {
309
+ throw new types_js_1.MessengerError(types_js_1.MessengerErrorCode.ENCRYPTION_FAILED, "Cipher message body is empty");
310
+ }
311
+ // 使用 SessionCipher 返回的消息类型(1 或 3)
312
+ // SessionCipher 根据 session.pendingPreKey 是否存在来决定消息类型
313
+ /*const msgType = cipherMessage.type === 3 ? "PREKEY" : "WHISPER";
314
+ console.log(
315
+ `[Session Debug] 加密完成: msgType=${msgType}(${cipherMessage.type}), bodyLength=${bodyBuffer.byteLength}, isNewSession=${isNewSession}`,
316
+ );*/
317
+ return {
318
+ type: cipherMessage.type,
319
+ body: bodyBuffer,
320
+ registrationId: cipherMessage.registrationId,
321
+ };
330
322
  }
331
- const cipher = new import_libsignal_protocol_typescript.SessionCipher(this.store, protocolAddress);
332
- const encoder = new TextEncoder();
333
- const cipherMessage = await cipher.encrypt(
334
- encoder.encode(plaintext).buffer
335
- );
336
- let bodyBuffer;
337
- if (typeof cipherMessage.body === "string") {
338
- const bodyBytes = Buffer.from(cipherMessage.body, "binary");
339
- bodyBuffer = new Uint8Array(bodyBytes).buffer;
340
- } else if (cipherMessage.body) {
341
- bodyBuffer = cipherMessage.body;
342
- } else {
343
- throw new import_types.MessengerError(
344
- import_types.MessengerErrorCode.ENCRYPTION_FAILED,
345
- "Cipher message body is empty"
346
- );
323
+ /**
324
+ * 解密消息
325
+ */
326
+ async decryptMessage(myAddress, peerAddress, ciphertext, msgType, peerDeviceId = types_js_1.DEFAULT_DEVICE_ID) {
327
+ const protocolAddress = new libsignal_protocol_typescript_1.SignalProtocolAddress(peerAddress, peerDeviceId);
328
+ // Signal 协议中,接收方直接使用自己的私钥解密消息
329
+ // decryptPreKeyWhisperMessage 会自动处理会话建立,不需要预先获取发送方的密钥包
330
+ // 发送方使用接收方的预密钥公钥加密,接收方使用自己的预密钥私钥解密
331
+ const cipher = new libsignal_protocol_typescript_1.SessionCipher(this.store, protocolAddress);
332
+ const decoder = new TextDecoder();
333
+ // 检查会话状态
334
+ const sessionKey = protocolAddress.toString();
335
+ const existingSession = await this.store.loadSession(sessionKey);
336
+ let plaintextBuffer;
337
+ const ciphertextArray = new Uint8Array(ciphertext);
338
+ let ciphertextBinary = "";
339
+ for (let i = 0; i < ciphertextArray.length; i++) {
340
+ ciphertextBinary += String.fromCharCode(ciphertextArray[i]);
341
+ }
342
+ try {
343
+ if (msgType === types_js_1.MessageType.PREKEY_MESSAGE) {
344
+ // 【新增】如果已有会话,说明对方重置了会话,需要删除旧会话
345
+ if (existingSession) {
346
+ await this.store.removeSession(sessionKey);
347
+ // 重新创建 cipher(使用更新后的 store)
348
+ const newCipher = new libsignal_protocol_typescript_1.SessionCipher(this.store, protocolAddress);
349
+ plaintextBuffer =
350
+ await newCipher.decryptPreKeyWhisperMessage(ciphertextBinary, "binary");
351
+ }
352
+ else {
353
+ plaintextBuffer = await cipher.decryptPreKeyWhisperMessage(ciphertextBinary, "binary");
354
+ }
355
+ }
356
+ else {
357
+ // 解密前检查会话状态
358
+ /*const sessionBefore = await this.store.loadSession(sessionKey);
359
+ console.log(
360
+ `[Session Debug] 解密前会话状态: ${sessionBefore ? "存在" : "不存在"}`,
361
+ );*/
362
+ plaintextBuffer = await cipher.decryptWhisperMessage(ciphertextBinary, "binary");
363
+ // 解密后检查会话状态
364
+ /*const sessionAfter = await this.store.loadSession(sessionKey);
365
+ console.log(
366
+ `[Session Debug] 解密后会话状态: ${sessionAfter ? "存在" : "不存在"}`,
367
+ );*/
368
+ }
369
+ }
370
+ catch (error) {
371
+ /*console.error(`[Session Debug] 解密失败:`);
372
+ console.error(
373
+ ` 错误类型: ${error instanceof Error ? error.constructor.name : typeof error}`,
374
+ );
375
+ console.error(
376
+ ` 错误消息: ${error instanceof Error ? error.message : String(error)}`,
377
+ );
378
+ if (error instanceof Error && error.stack) {
379
+ console.error(` 堆栈: ${error.stack.split("\n")[0]}`);
380
+ }
381
+ console.error(` 上下文:`);
382
+ console.error(` - myAddress: ${myAddress}`);
383
+ console.error(` - peerAddress: ${peerAddress}`);
384
+ console.error(
385
+ ` - msgType: ${msgType} (${msgType === MessageType.PREKEY_MESSAGE ? "PREKEY" : "WHISPER"})`,
386
+ );
387
+ console.error(` - sessionKey: ${sessionKey}`);
388
+ console.error(
389
+ ` - existingSession: ${existingSession ? "存在" : "不存在"}`,
390
+ );
391
+ console.error(` - ciphertext.length: ${ciphertext.byteLength}`);
392
+ */
393
+ console.log("error:", error);
394
+ throw error;
395
+ }
396
+ return decoder.decode(plaintextBuffer);
347
397
  }
348
- return {
349
- type: cipherMessage.type,
350
- body: bodyBuffer,
351
- registrationId: cipherMessage.registrationId
352
- };
353
- }
354
- /**
355
- * 解密消息
356
- */
357
- async decryptMessage(myAddress, peerAddress, ciphertext, msgType, peerDeviceId = import_types.DEFAULT_DEVICE_ID) {
358
- const protocolAddress = new import_libsignal_protocol_typescript.SignalProtocolAddress(
359
- peerAddress,
360
- peerDeviceId
361
- );
362
- const cipher = new import_libsignal_protocol_typescript.SessionCipher(this.store, protocolAddress);
363
- const decoder = new TextDecoder();
364
- const sessionKey = protocolAddress.toString();
365
- const existingSession = await this.store.loadSession(sessionKey);
366
- let plaintextBuffer;
367
- const ciphertextArray = new Uint8Array(ciphertext);
368
- let ciphertextBinary = "";
369
- for (let i = 0; i < ciphertextArray.length; i++) {
370
- ciphertextBinary += String.fromCharCode(ciphertextArray[i]);
398
+ /**
399
+ * 获取本地身份公钥
400
+ */
401
+ async getIdentityKey() {
402
+ const identity = await this.ensureIdentity();
403
+ return (0, crypto_js_1.bytesToBase64)((0, crypto_js_1.arrayBufferToUint8Array)(identity.signalIdentity.pubKey));
371
404
  }
372
- try {
373
- if (msgType === import_types.MessageType.PREKEY_MESSAGE) {
374
- if (existingSession) {
375
- await this.store.removeSession(sessionKey);
376
- const newCipher = new import_libsignal_protocol_typescript.SessionCipher(
377
- this.store,
378
- protocolAddress
379
- );
380
- plaintextBuffer = await newCipher.decryptPreKeyWhisperMessage(
381
- ciphertextBinary,
382
- "binary"
383
- );
384
- } else {
385
- plaintextBuffer = await cipher.decryptPreKeyWhisperMessage(
386
- ciphertextBinary,
387
- "binary"
388
- );
389
- }
390
- } else {
391
- plaintextBuffer = await cipher.decryptWhisperMessage(
392
- ciphertextBinary,
393
- "binary"
394
- );
395
- }
396
- } catch (error) {
397
- console.log("error:", error);
398
- throw error;
405
+ /**
406
+ * 获取注册 ID
407
+ */
408
+ async getRegistrationId() {
409
+ const identity = await this.ensureIdentity();
410
+ return identity.registrationId;
399
411
  }
400
- return decoder.decode(plaintextBuffer);
401
- }
402
- /**
403
- * 获取本地身份公钥
404
- */
405
- async getIdentityKey() {
406
- const identity = await this.ensureIdentity();
407
- return (0, import_crypto.bytesToBase64)(
408
- (0, import_crypto.arrayBufferToUint8Array)(identity.signalIdentity.pubKey)
409
- );
410
- }
411
- /**
412
- * 获取注册 ID
413
- */
414
- async getRegistrationId() {
415
- const identity = await this.ensureIdentity();
416
- return identity.registrationId;
417
- }
418
412
  }
413
+ exports.MessengerSession = MessengerSession;
414
+ //# sourceMappingURL=session.js.map