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,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