wowok 1.8.2 → 2.1.9

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 (892) hide show
  1. package/README.md +4 -33
  2. package/dist/cjs/bcs/bcs.d.ts +1973 -0
  3. package/dist/cjs/bcs/bcs.js +327 -0
  4. package/dist/cjs/bcs/effects.d.ts +579 -0
  5. package/dist/cjs/bcs/effects.js +231 -0
  6. package/dist/cjs/bcs/index.d.ts +2589 -0
  7. package/dist/cjs/bcs/index.js +79 -0
  8. package/dist/cjs/bcs/pure.d.ts +22 -0
  9. package/dist/cjs/bcs/pure.js +62 -0
  10. package/dist/cjs/bcs/type-tag-serializer.d.ts +7 -0
  11. package/dist/cjs/bcs/type-tag-serializer.js +124 -0
  12. package/dist/cjs/bcs/types.d.ts +114 -0
  13. package/dist/cjs/bcs/types.js +26 -0
  14. package/dist/cjs/client/index.d.ts +5 -0
  15. package/dist/cjs/client/index.js +34 -0
  16. package/dist/cjs/client/network.d.ts +5 -0
  17. package/dist/cjs/client/network.js +43 -0
  18. package/dist/cjs/cryptography/index.d.ts +7 -0
  19. package/dist/cjs/cryptography/index.js +46 -0
  20. package/dist/cjs/cryptography/intent.d.ts +6 -0
  21. package/dist/cjs/cryptography/intent.js +34 -0
  22. package/dist/cjs/cryptography/keypair.d.ts +73 -0
  23. package/dist/cjs/cryptography/keypair.js +125 -0
  24. package/dist/cjs/cryptography/mnemonics.d.ts +27 -0
  25. package/dist/cjs/cryptography/mnemonics.js +50 -0
  26. package/dist/cjs/cryptography/publickey.d.ts +67 -0
  27. package/dist/cjs/cryptography/publickey.js +142 -0
  28. package/dist/cjs/cryptography/signature-scheme.d.ts +24 -0
  29. package/dist/cjs/cryptography/signature-scheme.js +47 -0
  30. package/dist/cjs/cryptography/signature.d.ts +62 -0
  31. package/dist/cjs/cryptography/signature.js +71 -0
  32. package/dist/cjs/experimental/cache.d.ts +12 -0
  33. package/dist/cjs/experimental/client.d.ts +12 -0
  34. package/dist/cjs/experimental/core.d.ts +33 -0
  35. package/dist/cjs/experimental/errors.d.ts +8 -0
  36. package/dist/cjs/experimental/index.d.ts +7 -0
  37. package/dist/cjs/experimental/persistent-storage.d.ts +134 -0
  38. package/dist/cjs/experimental/persistent-storage.test.d.ts +5 -0
  39. package/dist/cjs/experimental/transports/utils.d.ts +3 -0
  40. package/dist/cjs/experimental/types.d.ts +367 -0
  41. package/dist/cjs/faucet/faucet.d.ts +66 -0
  42. package/dist/cjs/faucet/faucet.js +138 -0
  43. package/dist/cjs/faucet/index.d.ts +1 -0
  44. package/dist/cjs/faucet/index.js +29 -0
  45. package/dist/cjs/graphql/client.js +98 -0
  46. package/dist/cjs/graphql/core.js +506 -0
  47. package/dist/cjs/graphql/generated/2024.1/tada-env.js +13141 -0
  48. package/dist/cjs/graphql/generated/2024.1/tsconfig.tada.js +11 -0
  49. package/dist/cjs/graphql/generated/2024.4/tada-env.js +13287 -0
  50. package/dist/cjs/graphql/generated/2024.4/tsconfig.tada.js +11 -0
  51. package/dist/cjs/graphql/generated/latest/tada-env.js +12925 -0
  52. package/dist/cjs/graphql/generated/latest/tsconfig.tada.js +11 -0
  53. package/dist/cjs/graphql/generated/queries.js +807 -0
  54. package/dist/cjs/graphql/index.js +25 -0
  55. package/dist/cjs/graphql/schemas/2024.1/index.js +28 -0
  56. package/dist/cjs/graphql/schemas/2024.4/index.js +28 -0
  57. package/dist/cjs/graphql/schemas/latest/index.js +28 -0
  58. package/dist/cjs/graphql/types.js +16 -0
  59. package/dist/cjs/grpc/client.d.ts +32 -0
  60. package/dist/cjs/grpc/client.js +64 -0
  61. package/dist/cjs/grpc/core.d.ts +28 -0
  62. package/dist/cjs/grpc/core.js +645 -0
  63. package/dist/cjs/grpc/index.d.ts +4 -0
  64. package/dist/cjs/grpc/index.js +26 -0
  65. package/dist/cjs/grpc/proto/google/protobuf/any.d.ts +173 -0
  66. package/dist/cjs/grpc/proto/google/protobuf/any.js +138 -0
  67. package/dist/cjs/grpc/proto/google/protobuf/duration.d.ts +104 -0
  68. package/dist/cjs/grpc/proto/google/protobuf/duration.js +94 -0
  69. package/dist/cjs/grpc/proto/google/protobuf/empty.d.ts +25 -0
  70. package/dist/cjs/grpc/proto/google/protobuf/empty.js +30 -0
  71. package/dist/cjs/grpc/proto/google/protobuf/field_mask.d.ts +231 -0
  72. package/dist/cjs/grpc/proto/google/protobuf/field_mask.js +77 -0
  73. package/dist/cjs/grpc/proto/google/protobuf/struct.d.ts +169 -0
  74. package/dist/cjs/grpc/proto/google/protobuf/struct.js +224 -0
  75. package/dist/cjs/grpc/proto/google/protobuf/timestamp.d.ts +145 -0
  76. package/dist/cjs/grpc/proto/google/protobuf/timestamp.js +134 -0
  77. package/dist/cjs/grpc/proto/google/rpc/error_details.d.ts +525 -0
  78. package/dist/cjs/grpc/proto/google/rpc/error_details.js +317 -0
  79. package/dist/cjs/grpc/proto/google/rpc/status.d.ts +46 -0
  80. package/dist/cjs/grpc/proto/google/rpc/status.js +52 -0
  81. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.d.ts +66 -0
  82. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js +70 -0
  83. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.d.ts +34 -0
  84. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js +52 -0
  85. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.d.ts +30 -0
  86. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js +45 -0
  87. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.d.ts +68 -0
  88. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js +77 -0
  89. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.d.ts +74 -0
  90. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js +84 -0
  91. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.d.ts +195 -0
  92. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js +170 -0
  93. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.d.ts +338 -0
  94. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js +300 -0
  95. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.d.ts +62 -0
  96. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js +87 -0
  97. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.d.ts +17 -0
  98. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js +29 -0
  99. package/dist/cjs/grpc/proto/sui/rpc/v2/event.d.ts +88 -0
  100. package/dist/cjs/grpc/proto/sui/rpc/v2/event.js +86 -0
  101. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.d.ts +80 -0
  102. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js +87 -0
  103. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.d.ts +843 -0
  104. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js +519 -0
  105. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.d.ts +41 -0
  106. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js +63 -0
  107. package/dist/cjs/grpc/proto/sui/rpc/v2/input.d.ts +98 -0
  108. package/dist/cjs/grpc/proto/sui/rpc/v2/input.js +85 -0
  109. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.d.ts +70 -0
  110. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js +81 -0
  111. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.d.ts +95 -0
  112. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js +122 -0
  113. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.d.ts +420 -0
  114. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js +368 -0
  115. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.d.ts +579 -0
  116. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js +485 -0
  117. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.d.ts +61 -0
  118. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js +81 -0
  119. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.d.ts +229 -0
  120. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js +241 -0
  121. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.d.ts +41 -0
  122. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js +55 -0
  123. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.d.ts +144 -0
  124. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js +141 -0
  125. package/dist/cjs/grpc/proto/sui/rpc/v2/object.d.ts +127 -0
  126. package/dist/cjs/grpc/proto/sui/rpc/v2/object.js +114 -0
  127. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.d.ts +34 -0
  128. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js +53 -0
  129. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.d.ts +61 -0
  130. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js +63 -0
  131. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.d.ts +30 -0
  132. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js +61 -0
  133. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.d.ts +630 -0
  134. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js +541 -0
  135. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.d.ts +40 -0
  136. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js +33 -0
  137. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.ts +35 -0
  138. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +50 -0
  139. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.d.ts +79 -0
  140. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js +90 -0
  141. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.d.ts +71 -0
  142. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js +88 -0
  143. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.d.ts +690 -0
  144. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js +546 -0
  145. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.d.ts +55 -0
  146. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js +54 -0
  147. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.d.ts +57 -0
  148. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js +65 -0
  149. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.d.ts +684 -0
  150. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js +740 -0
  151. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.d.ts +1321 -0
  152. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js +1005 -0
  153. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.ts +41 -0
  154. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +49 -0
  155. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.d.ts +184 -0
  156. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js +177 -0
  157. package/dist/cjs/index.d.ts +25 -0
  158. package/dist/cjs/index.js +93 -0
  159. package/dist/cjs/jsonRpc/client.d.ts +261 -0
  160. package/dist/cjs/jsonRpc/client.js +747 -0
  161. package/dist/cjs/jsonRpc/core.d.ts +87 -0
  162. package/dist/cjs/jsonRpc/core.js +638 -0
  163. package/dist/cjs/jsonRpc/errors.d.ts +12 -0
  164. package/dist/cjs/jsonRpc/errors.js +65 -0
  165. package/dist/cjs/jsonRpc/http-transport.d.ts +42 -0
  166. package/dist/cjs/jsonRpc/http-transport.js +121 -0
  167. package/dist/cjs/jsonRpc/index.d.ts +4 -0
  168. package/dist/cjs/jsonRpc/index.js +31 -0
  169. package/dist/cjs/jsonRpc/json-rpc-resolver.d.ts +4 -0
  170. package/dist/cjs/jsonRpc/json-rpc-resolver.js +321 -0
  171. package/dist/cjs/jsonRpc/rpc-websocket-client.d.ts +43 -0
  172. package/dist/cjs/jsonRpc/rpc-websocket-client.js +220 -0
  173. package/dist/cjs/jsonRpc/types/chain.d.ts +99 -0
  174. package/dist/cjs/jsonRpc/types/chain.js +16 -0
  175. package/dist/cjs/jsonRpc/types/changes.d.ts +19 -0
  176. package/dist/cjs/jsonRpc/types/changes.js +16 -0
  177. package/dist/cjs/jsonRpc/types/coins.d.ts +6 -0
  178. package/dist/cjs/jsonRpc/types/coins.js +16 -0
  179. package/dist/cjs/jsonRpc/types/common.d.ts +2 -0
  180. package/dist/cjs/jsonRpc/types/common.js +16 -0
  181. package/dist/cjs/jsonRpc/types/generated.d.ts +1492 -0
  182. package/dist/cjs/jsonRpc/types/generated.js +16 -0
  183. package/dist/cjs/jsonRpc/types/index.d.ts +6 -0
  184. package/dist/cjs/jsonRpc/types/index.js +16 -0
  185. package/dist/cjs/jsonRpc/types/params.d.ts +656 -0
  186. package/dist/cjs/jsonRpc/types/params.js +16 -0
  187. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.d.ts +8 -0
  188. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js +82 -0
  189. package/dist/cjs/keypairs/ed25519/index.d.ts +2 -0
  190. package/dist/cjs/keypairs/ed25519/index.js +27 -0
  191. package/dist/cjs/keypairs/ed25519/keypair.d.ts +74 -0
  192. package/dist/cjs/keypairs/ed25519/keypair.js +169 -0
  193. package/dist/cjs/keypairs/ed25519/publickey.d.ts +30 -0
  194. package/dist/cjs/keypairs/ed25519/publickey.js +90 -0
  195. package/dist/cjs/keypairs/index.d.ts +4 -0
  196. package/dist/cjs/keypairs/index.js +21 -0
  197. package/dist/cjs/keypairs/passkey/index.d.ts +3 -0
  198. package/dist/cjs/keypairs/passkey/index.js +28 -0
  199. package/dist/cjs/keypairs/passkey/keypair.d.ts +113 -0
  200. package/dist/cjs/keypairs/passkey/keypair.js +268 -0
  201. package/dist/cjs/keypairs/passkey/publickey.d.ts +72 -0
  202. package/dist/cjs/keypairs/passkey/publickey.js +175 -0
  203. package/dist/cjs/keypairs/passkey/types.d.ts +12 -0
  204. package/dist/cjs/keypairs/passkey/types.js +16 -0
  205. package/dist/cjs/keypairs/secp256k1/index.d.ts +2 -0
  206. package/dist/cjs/keypairs/secp256k1/index.js +27 -0
  207. package/dist/cjs/keypairs/secp256k1/keypair.d.ts +73 -0
  208. package/dist/cjs/keypairs/secp256k1/keypair.js +159 -0
  209. package/dist/cjs/keypairs/secp256k1/publickey.d.ts +30 -0
  210. package/dist/cjs/keypairs/secp256k1/publickey.js +95 -0
  211. package/dist/cjs/keypairs/secp256r1/index.d.ts +2 -0
  212. package/dist/cjs/keypairs/secp256r1/index.js +27 -0
  213. package/dist/cjs/keypairs/secp256r1/keypair.d.ts +73 -0
  214. package/dist/cjs/keypairs/secp256r1/keypair.js +155 -0
  215. package/dist/cjs/keypairs/secp256r1/publickey.d.ts +30 -0
  216. package/dist/cjs/keypairs/secp256r1/publickey.js +96 -0
  217. package/dist/cjs/multisig/index.d.ts +2 -0
  218. package/dist/cjs/multisig/index.js +27 -0
  219. package/dist/cjs/multisig/publickey.d.ts +79 -0
  220. package/dist/cjs/multisig/publickey.js +296 -0
  221. package/dist/cjs/multisig/signer.d.ts +20 -0
  222. package/dist/cjs/multisig/signer.js +114 -0
  223. package/dist/cjs/package.json +5 -0
  224. package/dist/cjs/transactions/Arguments.d.ts +57 -0
  225. package/dist/cjs/transactions/Arguments.js +36 -0
  226. package/dist/cjs/transactions/Commands.d.ts +57 -0
  227. package/dist/cjs/transactions/Commands.js +143 -0
  228. package/dist/cjs/transactions/Inputs.d.ts +22 -0
  229. package/dist/cjs/transactions/Inputs.js +87 -0
  230. package/dist/cjs/transactions/ObjectCache.d.ts +83 -0
  231. package/dist/cjs/transactions/ObjectCache.js +251 -0
  232. package/dist/cjs/transactions/Transaction.d.ts +710 -0
  233. package/dist/cjs/transactions/Transaction.js +742 -0
  234. package/dist/cjs/transactions/TransactionData.d.ts +73 -0
  235. package/dist/cjs/transactions/TransactionData.js +472 -0
  236. package/dist/cjs/transactions/__tests__/Transaction.test.d.ts +1 -0
  237. package/dist/cjs/transactions/__tests__/bcs.test.d.ts +1 -0
  238. package/dist/cjs/transactions/data/internal.d.ts +1010 -0
  239. package/dist/cjs/transactions/data/internal.js +230 -0
  240. package/dist/cjs/transactions/data/v1.d.ts +312 -0
  241. package/dist/cjs/transactions/data/v1.js +538 -0
  242. package/dist/cjs/transactions/data/v2.d.ts +153 -0
  243. package/dist/cjs/transactions/data/v2.js +124 -0
  244. package/dist/cjs/transactions/executor/caching.d.ts +31 -0
  245. package/dist/cjs/transactions/executor/caching.js +118 -0
  246. package/dist/cjs/transactions/executor/parallel.d.ts +37 -0
  247. package/dist/cjs/transactions/executor/parallel.js +395 -0
  248. package/dist/cjs/transactions/executor/queue.d.ts +11 -0
  249. package/dist/cjs/transactions/executor/queue.js +87 -0
  250. package/dist/cjs/transactions/executor/serial.d.ts +31 -0
  251. package/dist/cjs/transactions/executor/serial.js +136 -0
  252. package/dist/cjs/transactions/hash.d.ts +7 -0
  253. package/dist/cjs/transactions/hash.js +31 -0
  254. package/dist/cjs/transactions/index.d.ts +21 -0
  255. package/dist/cjs/transactions/index.js +50 -0
  256. package/dist/cjs/transactions/intents/CoinWithBalance.d.ts +9 -0
  257. package/dist/cjs/transactions/intents/CoinWithBalance.js +206 -0
  258. package/dist/cjs/transactions/object.d.ts +24 -0
  259. package/dist/cjs/transactions/object.js +116 -0
  260. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.d.ts +31 -0
  261. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js +37 -0
  262. package/dist/cjs/transactions/pure.d.ts +20 -0
  263. package/dist/cjs/transactions/pure.js +64 -0
  264. package/dist/cjs/transactions/resolve.d.ts +13 -0
  265. package/dist/cjs/transactions/resolve.js +103 -0
  266. package/dist/cjs/transactions/serializer.d.ts +7 -0
  267. package/dist/cjs/transactions/serializer.js +189 -0
  268. package/dist/cjs/transactions/utils.d.ts +10 -0
  269. package/dist/cjs/transactions/utils.js +143 -0
  270. package/dist/cjs/utils/constants.d.ts +17 -0
  271. package/dist/cjs/utils/constants.js +57 -0
  272. package/dist/cjs/utils/derived-objects.d.ts +5 -0
  273. package/dist/cjs/utils/derived-objects.js +33 -0
  274. package/dist/cjs/utils/dynamic-fields.d.ts +2 -0
  275. package/dist/cjs/utils/dynamic-fields.js +40 -0
  276. package/dist/cjs/utils/format.d.ts +2 -0
  277. package/dist/cjs/utils/format.js +35 -0
  278. package/dist/cjs/utils/index.d.ts +8 -0
  279. package/dist/cjs/utils/index.js +65 -0
  280. package/dist/cjs/utils/move-registry.d.ts +6 -0
  281. package/dist/cjs/utils/move-registry.js +44 -0
  282. package/dist/cjs/utils/sui-types.d.ts +26 -0
  283. package/dist/cjs/utils/sui-types.js +90 -0
  284. package/dist/cjs/utils/suins.d.ts +2 -0
  285. package/dist/cjs/utils/suins.js +56 -0
  286. package/dist/cjs/verify/index.d.ts +1 -0
  287. package/dist/cjs/verify/index.js +28 -0
  288. package/dist/cjs/verify/verify.d.ts +16 -0
  289. package/dist/cjs/verify/verify.js +125 -0
  290. package/dist/cjs/version.d.ts +2 -0
  291. package/dist/cjs/version.js +26 -0
  292. package/dist/cjs/w/call/allocation.d.ts +35 -0
  293. package/dist/cjs/w/call/allocation.js +439 -0
  294. package/dist/cjs/w/call/arb.d.ts +17 -0
  295. package/dist/cjs/w/call/arb.js +149 -0
  296. package/dist/cjs/w/call/arbitration.d.ts +106 -0
  297. package/dist/cjs/w/call/arbitration.js +1623 -0
  298. package/dist/cjs/w/call/base.d.ts +42 -0
  299. package/dist/cjs/w/call/base.js +363 -0
  300. package/dist/cjs/w/call/contact.d.ts +45 -0
  301. package/dist/cjs/w/call/contact.js +479 -0
  302. package/dist/cjs/w/call/demand.d.ts +79 -0
  303. package/dist/cjs/w/call/demand.js +872 -0
  304. package/dist/cjs/w/call/entity.d.ts +33 -0
  305. package/dist/cjs/w/call/entity.js +230 -0
  306. package/dist/cjs/w/call/guard-ins.d.ts +31 -0
  307. package/dist/cjs/w/call/guard-ins.js +4391 -0
  308. package/dist/cjs/w/call/guard.d.ts +254 -0
  309. package/dist/cjs/w/call/guard.js +1210 -0
  310. package/dist/cjs/w/call/index.d.ts +37 -0
  311. package/dist/cjs/w/call/index.js +71 -0
  312. package/dist/cjs/w/call/machine.d.ts +124 -0
  313. package/dist/cjs/w/call/machine.js +1486 -0
  314. package/dist/cjs/w/call/order.d.ts +73 -0
  315. package/dist/cjs/w/call/order.js +485 -0
  316. package/dist/cjs/w/call/passport.d.ts +24 -0
  317. package/dist/cjs/w/call/passport.js +281 -0
  318. package/dist/cjs/w/call/payment.d.ts +27 -0
  319. package/dist/cjs/w/call/payment.js +241 -0
  320. package/dist/cjs/w/call/permission.d.ts +222 -0
  321. package/dist/cjs/w/call/permission.js +1368 -0
  322. package/dist/cjs/w/call/personal.d.ts +51 -0
  323. package/dist/cjs/w/call/personal.js +184 -0
  324. package/dist/cjs/w/call/progress.d.ts +94 -0
  325. package/dist/cjs/w/call/progress.js +833 -0
  326. package/dist/cjs/w/call/proof.d.ts +27 -0
  327. package/dist/cjs/w/call/proof.js +124 -0
  328. package/dist/cjs/w/call/repository.d.ts +97 -0
  329. package/dist/cjs/w/call/repository.js +1324 -0
  330. package/dist/cjs/w/call/resource.d.ts +27 -0
  331. package/dist/cjs/w/call/resource.js +149 -0
  332. package/dist/cjs/w/call/reward.d.ts +52 -0
  333. package/dist/cjs/w/call/reward.js +879 -0
  334. package/dist/cjs/w/call/service.d.ts +184 -0
  335. package/dist/cjs/w/call/service.js +2468 -0
  336. package/dist/cjs/w/call/treasury.d.ts +77 -0
  337. package/dist/cjs/w/call/treasury.js +1192 -0
  338. package/dist/cjs/w/call/util.d.ts +12 -0
  339. package/dist/cjs/w/call/util.js +661 -0
  340. package/dist/cjs/w/common.d.ts +359 -0
  341. package/dist/cjs/w/common.js +625 -0
  342. package/dist/cjs/w/exception.d.ts +82 -0
  343. package/dist/cjs/w/exception.js +604 -0
  344. package/dist/cjs/w/index.d.ts +8 -0
  345. package/dist/cjs/w/index.js +25 -0
  346. package/dist/cjs/w/local/.eslintrc.js +15 -0
  347. package/dist/cjs/w/local/account.d.ts +134 -0
  348. package/dist/cjs/w/local/account.js +770 -0
  349. package/dist/cjs/w/local/cache.d.ts +35 -0
  350. package/dist/cjs/w/local/cache.js +181 -0
  351. package/dist/cjs/w/local/config.d.ts +15 -0
  352. package/dist/cjs/w/local/config.js +83 -0
  353. package/dist/cjs/w/local/index.d.ts +193 -0
  354. package/dist/cjs/w/local/index.js +322 -0
  355. package/dist/cjs/w/local/local.d.ts +93 -0
  356. package/dist/cjs/w/local/local.js +673 -0
  357. package/dist/cjs/w/local/storage.d.ts +61 -0
  358. package/dist/cjs/w/local/storage.js +219 -0
  359. package/dist/cjs/w/local/token.d.ts +22 -0
  360. package/dist/cjs/w/local/token.js +182 -0
  361. package/dist/cjs/w/local/util.d.ts +5 -0
  362. package/dist/cjs/w/local/util.js +57 -0
  363. package/dist/cjs/w/local/wip.d.ts +218 -0
  364. package/dist/cjs/w/local/wip.js +911 -0
  365. package/dist/cjs/w/messenger/.eslintrc.js +15 -0
  366. package/dist/cjs/w/messenger/crypto.d.ts +269 -0
  367. package/dist/cjs/w/messenger/crypto.js +448 -0
  368. package/dist/cjs/w/messenger/index.d.ts +23 -0
  369. package/dist/cjs/w/messenger/index.js +37 -0
  370. package/dist/cjs/w/messenger/messenger-api.d.ts +225 -0
  371. package/dist/cjs/w/messenger/messenger-api.js +1247 -0
  372. package/dist/cjs/w/messenger/messenger-manager.d.ts +80 -0
  373. package/dist/cjs/w/messenger/messenger-manager.js +1143 -0
  374. package/dist/cjs/w/messenger/messenger.d.ts +231 -0
  375. package/dist/cjs/w/messenger/messenger.js +1512 -0
  376. package/dist/cjs/w/messenger/server.d.ts +134 -0
  377. package/dist/cjs/w/messenger/server.js +535 -0
  378. package/dist/cjs/w/messenger/session.d.ts +78 -0
  379. package/dist/cjs/w/messenger/session.js +418 -0
  380. package/dist/cjs/w/messenger/storage.d.ts +192 -0
  381. package/dist/cjs/w/messenger/storage.js +964 -0
  382. package/dist/cjs/w/messenger/types.d.ts +705 -0
  383. package/dist/cjs/w/messenger/types.js +107 -0
  384. package/dist/cjs/w/messenger/utils.d.ts +15 -0
  385. package/dist/cjs/w/messenger/utils.js +37 -0
  386. package/dist/cjs/w/query/bult-in.d.ts +73 -0
  387. package/dist/cjs/w/query/bult-in.js +121 -0
  388. package/dist/cjs/w/query/event.d.ts +82 -0
  389. package/dist/cjs/w/query/event.js +157 -0
  390. package/dist/cjs/w/query/index.d.ts +5 -0
  391. package/dist/cjs/w/query/index.js +22 -0
  392. package/dist/cjs/w/query/object.d.ts +658 -0
  393. package/dist/cjs/w/query/object.js +1671 -0
  394. package/dist/cjs/w/query/received.d.ts +34 -0
  395. package/dist/cjs/w/query/received.js +93 -0
  396. package/dist/cjs/w/query/util.d.ts +5 -0
  397. package/dist/cjs/w/query/util.js +82 -0
  398. package/dist/cjs/w/util.d.ts +19 -0
  399. package/dist/cjs/w/util.js +715 -0
  400. package/dist/cjs/zklogin/address.js +93 -0
  401. package/dist/cjs/zklogin/bcs.js +41 -0
  402. package/dist/cjs/zklogin/index.js +45 -0
  403. package/dist/cjs/zklogin/jwt-decode.js +88 -0
  404. package/dist/cjs/zklogin/jwt-utils.js +128 -0
  405. package/dist/cjs/zklogin/nonce.js +60 -0
  406. package/dist/cjs/zklogin/poseidon.js +64 -0
  407. package/dist/cjs/zklogin/publickey.js +281 -0
  408. package/dist/cjs/zklogin/signature.js +57 -0
  409. package/dist/cjs/zklogin/utils.js +98 -0
  410. package/dist/esm/bcs/bcs.d.ts +1973 -0
  411. package/dist/esm/bcs/bcs.js +319 -0
  412. package/dist/esm/bcs/effects.d.ts +579 -0
  413. package/dist/esm/bcs/effects.js +211 -0
  414. package/dist/esm/bcs/index.d.ts +2589 -0
  415. package/dist/esm/bcs/index.js +98 -0
  416. package/dist/esm/bcs/pure.d.ts +22 -0
  417. package/dist/esm/bcs/pure.js +42 -0
  418. package/dist/esm/bcs/type-tag-serializer.d.ts +7 -0
  419. package/dist/esm/bcs/type-tag-serializer.js +104 -0
  420. package/dist/esm/bcs/types.d.ts +114 -0
  421. package/dist/esm/bcs/types.js +6 -0
  422. package/dist/esm/client/index.d.ts +5 -0
  423. package/dist/esm/client/index.js +23 -0
  424. package/dist/esm/client/network.d.ts +5 -0
  425. package/dist/esm/client/network.js +23 -0
  426. package/dist/esm/cryptography/index.d.ts +7 -0
  427. package/dist/esm/cryptography/index.js +46 -0
  428. package/dist/esm/cryptography/intent.d.ts +6 -0
  429. package/dist/esm/cryptography/intent.js +14 -0
  430. package/dist/esm/cryptography/keypair.d.ts +73 -0
  431. package/dist/esm/cryptography/keypair.js +108 -0
  432. package/dist/esm/cryptography/mnemonics.d.ts +27 -0
  433. package/dist/esm/cryptography/mnemonics.js +30 -0
  434. package/dist/esm/cryptography/publickey.d.ts +67 -0
  435. package/dist/esm/cryptography/publickey.js +125 -0
  436. package/dist/esm/cryptography/signature-scheme.d.ts +24 -0
  437. package/dist/esm/cryptography/signature-scheme.js +27 -0
  438. package/dist/esm/cryptography/signature.d.ts +62 -0
  439. package/dist/esm/cryptography/signature.js +54 -0
  440. package/dist/esm/experimental/cache.d.ts +12 -0
  441. package/dist/esm/experimental/client.d.ts +12 -0
  442. package/dist/esm/experimental/core.d.ts +33 -0
  443. package/dist/esm/experimental/errors.d.ts +8 -0
  444. package/dist/esm/experimental/index.d.ts +7 -0
  445. package/dist/esm/experimental/persistent-storage.d.ts +134 -0
  446. package/dist/esm/experimental/persistent-storage.test.d.ts +5 -0
  447. package/dist/esm/experimental/transports/utils.d.ts +3 -0
  448. package/dist/esm/experimental/types.d.ts +367 -0
  449. package/dist/esm/faucet/faucet.d.ts +66 -0
  450. package/dist/esm/faucet/faucet.js +118 -0
  451. package/dist/esm/faucet/index.d.ts +1 -0
  452. package/dist/esm/faucet/index.js +16 -0
  453. package/dist/esm/graphql/client.js +79 -0
  454. package/dist/esm/graphql/core.js +505 -0
  455. package/dist/esm/graphql/generated/2024.1/tada-env.js +13121 -0
  456. package/dist/esm/graphql/generated/2024.1/tsconfig.tada.js +16 -0
  457. package/dist/esm/graphql/generated/2024.4/tada-env.js +13267 -0
  458. package/dist/esm/graphql/generated/2024.4/tsconfig.tada.js +16 -0
  459. package/dist/esm/graphql/generated/latest/tada-env.js +12905 -0
  460. package/dist/esm/graphql/generated/latest/tsconfig.tada.js +16 -0
  461. package/dist/esm/graphql/generated/queries.js +788 -0
  462. package/dist/esm/graphql/index.js +8 -0
  463. package/dist/esm/graphql/schemas/2024.1/index.js +8 -0
  464. package/dist/esm/graphql/schemas/2024.4/index.js +8 -0
  465. package/dist/esm/graphql/schemas/latest/index.js +8 -0
  466. package/dist/esm/graphql/types.js +0 -0
  467. package/dist/esm/grpc/client.d.ts +32 -0
  468. package/dist/esm/grpc/client.js +45 -0
  469. package/dist/esm/grpc/core.d.ts +28 -0
  470. package/dist/esm/grpc/core.js +634 -0
  471. package/dist/esm/grpc/index.d.ts +4 -0
  472. package/dist/esm/grpc/index.js +6 -0
  473. package/dist/esm/grpc/proto/google/protobuf/any.d.ts +173 -0
  474. package/dist/esm/grpc/proto/google/protobuf/any.js +118 -0
  475. package/dist/esm/grpc/proto/google/protobuf/duration.d.ts +104 -0
  476. package/dist/esm/grpc/proto/google/protobuf/duration.js +74 -0
  477. package/dist/esm/grpc/proto/google/protobuf/empty.d.ts +25 -0
  478. package/dist/esm/grpc/proto/google/protobuf/empty.js +10 -0
  479. package/dist/esm/grpc/proto/google/protobuf/field_mask.d.ts +231 -0
  480. package/dist/esm/grpc/proto/google/protobuf/field_mask.js +57 -0
  481. package/dist/esm/grpc/proto/google/protobuf/struct.d.ts +169 -0
  482. package/dist/esm/grpc/proto/google/protobuf/struct.js +204 -0
  483. package/dist/esm/grpc/proto/google/protobuf/timestamp.d.ts +145 -0
  484. package/dist/esm/grpc/proto/google/protobuf/timestamp.js +114 -0
  485. package/dist/esm/grpc/proto/google/rpc/error_details.d.ts +525 -0
  486. package/dist/esm/grpc/proto/google/rpc/error_details.js +297 -0
  487. package/dist/esm/grpc/proto/google/rpc/status.d.ts +46 -0
  488. package/dist/esm/grpc/proto/google/rpc/status.js +32 -0
  489. package/dist/esm/grpc/proto/sui/rpc/v2/argument.d.ts +66 -0
  490. package/dist/esm/grpc/proto/sui/rpc/v2/argument.js +50 -0
  491. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.d.ts +34 -0
  492. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js +32 -0
  493. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.d.ts +30 -0
  494. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js +25 -0
  495. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.d.ts +68 -0
  496. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js +57 -0
  497. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.d.ts +74 -0
  498. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js +64 -0
  499. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.d.ts +195 -0
  500. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js +150 -0
  501. package/dist/esm/grpc/proto/sui/rpc/v2/effects.d.ts +338 -0
  502. package/dist/esm/grpc/proto/sui/rpc/v2/effects.js +280 -0
  503. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.d.ts +62 -0
  504. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js +67 -0
  505. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.d.ts +17 -0
  506. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js +9 -0
  507. package/dist/esm/grpc/proto/sui/rpc/v2/event.d.ts +88 -0
  508. package/dist/esm/grpc/proto/sui/rpc/v2/event.js +66 -0
  509. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.d.ts +80 -0
  510. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js +67 -0
  511. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.d.ts +843 -0
  512. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js +499 -0
  513. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.d.ts +41 -0
  514. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js +43 -0
  515. package/dist/esm/grpc/proto/sui/rpc/v2/input.d.ts +98 -0
  516. package/dist/esm/grpc/proto/sui/rpc/v2/input.js +65 -0
  517. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.d.ts +70 -0
  518. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js +61 -0
  519. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.d.ts +95 -0
  520. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js +103 -0
  521. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.d.ts +420 -0
  522. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js +348 -0
  523. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.d.ts +579 -0
  524. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js +465 -0
  525. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.d.ts +61 -0
  526. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js +62 -0
  527. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.d.ts +229 -0
  528. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js +221 -0
  529. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.d.ts +41 -0
  530. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js +36 -0
  531. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.d.ts +144 -0
  532. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js +121 -0
  533. package/dist/esm/grpc/proto/sui/rpc/v2/object.d.ts +127 -0
  534. package/dist/esm/grpc/proto/sui/rpc/v2/object.js +94 -0
  535. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.d.ts +34 -0
  536. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js +33 -0
  537. package/dist/esm/grpc/proto/sui/rpc/v2/owner.d.ts +61 -0
  538. package/dist/esm/grpc/proto/sui/rpc/v2/owner.js +43 -0
  539. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.d.ts +30 -0
  540. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js +41 -0
  541. package/dist/esm/grpc/proto/sui/rpc/v2/signature.d.ts +630 -0
  542. package/dist/esm/grpc/proto/sui/rpc/v2/signature.js +521 -0
  543. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.d.ts +40 -0
  544. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js +13 -0
  545. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.ts +35 -0
  546. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +31 -0
  547. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.d.ts +79 -0
  548. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js +70 -0
  549. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.d.ts +71 -0
  550. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js +69 -0
  551. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.d.ts +690 -0
  552. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js +526 -0
  553. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.d.ts +55 -0
  554. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js +35 -0
  555. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.d.ts +57 -0
  556. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js +45 -0
  557. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.d.ts +684 -0
  558. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js +720 -0
  559. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.d.ts +1321 -0
  560. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js +985 -0
  561. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.ts +41 -0
  562. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +30 -0
  563. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.d.ts +184 -0
  564. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js +157 -0
  565. package/dist/esm/index.d.ts +25 -0
  566. package/dist/esm/index.js +119 -0
  567. package/dist/esm/jsonRpc/client.d.ts +261 -0
  568. package/dist/esm/jsonRpc/client.js +734 -0
  569. package/dist/esm/jsonRpc/core.d.ts +87 -0
  570. package/dist/esm/jsonRpc/core.js +621 -0
  571. package/dist/esm/jsonRpc/errors.d.ts +12 -0
  572. package/dist/esm/jsonRpc/errors.js +46 -0
  573. package/dist/esm/jsonRpc/http-transport.d.ts +42 -0
  574. package/dist/esm/jsonRpc/http-transport.js +101 -0
  575. package/dist/esm/jsonRpc/index.d.ts +4 -0
  576. package/dist/esm/jsonRpc/index.js +20 -0
  577. package/dist/esm/jsonRpc/json-rpc-resolver.d.ts +4 -0
  578. package/dist/esm/jsonRpc/json-rpc-resolver.js +309 -0
  579. package/dist/esm/jsonRpc/rpc-websocket-client.d.ts +43 -0
  580. package/dist/esm/jsonRpc/rpc-websocket-client.js +201 -0
  581. package/dist/esm/jsonRpc/types/chain.d.ts +99 -0
  582. package/dist/esm/jsonRpc/types/chain.js +0 -0
  583. package/dist/esm/jsonRpc/types/changes.d.ts +19 -0
  584. package/dist/esm/jsonRpc/types/changes.js +0 -0
  585. package/dist/esm/jsonRpc/types/coins.d.ts +6 -0
  586. package/dist/esm/jsonRpc/types/coins.js +0 -0
  587. package/dist/esm/jsonRpc/types/common.d.ts +2 -0
  588. package/dist/esm/jsonRpc/types/common.js +0 -0
  589. package/dist/esm/jsonRpc/types/generated.d.ts +1492 -0
  590. package/dist/esm/jsonRpc/types/generated.js +0 -0
  591. package/dist/esm/jsonRpc/types/index.d.ts +6 -0
  592. package/dist/esm/jsonRpc/types/index.js +0 -0
  593. package/dist/esm/jsonRpc/types/params.d.ts +656 -0
  594. package/dist/esm/jsonRpc/types/params.js +0 -0
  595. package/dist/esm/keypairs/ed25519/ed25519-hd-key.d.ts +8 -0
  596. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js +62 -0
  597. package/dist/esm/keypairs/ed25519/index.d.ts +2 -0
  598. package/dist/esm/keypairs/ed25519/index.js +10 -0
  599. package/dist/esm/keypairs/ed25519/keypair.d.ts +74 -0
  600. package/dist/esm/keypairs/ed25519/keypair.js +158 -0
  601. package/dist/esm/keypairs/ed25519/publickey.d.ts +30 -0
  602. package/dist/esm/keypairs/ed25519/publickey.js +75 -0
  603. package/dist/esm/keypairs/index.d.ts +4 -0
  604. package/dist/esm/keypairs/index.js +4 -0
  605. package/dist/esm/keypairs/passkey/index.d.ts +3 -0
  606. package/dist/esm/keypairs/passkey/index.js +12 -0
  607. package/dist/esm/keypairs/passkey/keypair.d.ts +113 -0
  608. package/dist/esm/keypairs/passkey/keypair.js +258 -0
  609. package/dist/esm/keypairs/passkey/publickey.d.ts +72 -0
  610. package/dist/esm/keypairs/passkey/publickey.js +156 -0
  611. package/dist/esm/keypairs/passkey/types.d.ts +12 -0
  612. package/dist/esm/keypairs/passkey/types.js +0 -0
  613. package/dist/esm/keypairs/secp256k1/index.d.ts +2 -0
  614. package/dist/esm/keypairs/secp256k1/index.js +10 -0
  615. package/dist/esm/keypairs/secp256k1/keypair.d.ts +73 -0
  616. package/dist/esm/keypairs/secp256k1/keypair.js +147 -0
  617. package/dist/esm/keypairs/secp256k1/publickey.d.ts +30 -0
  618. package/dist/esm/keypairs/secp256k1/publickey.js +80 -0
  619. package/dist/esm/keypairs/secp256r1/index.d.ts +2 -0
  620. package/dist/esm/keypairs/secp256r1/index.js +10 -0
  621. package/dist/esm/keypairs/secp256r1/keypair.d.ts +73 -0
  622. package/dist/esm/keypairs/secp256r1/keypair.js +143 -0
  623. package/dist/esm/keypairs/secp256r1/publickey.d.ts +30 -0
  624. package/dist/esm/keypairs/secp256r1/publickey.js +77 -0
  625. package/dist/esm/multisig/index.d.ts +2 -0
  626. package/dist/esm/multisig/index.js +10 -0
  627. package/dist/esm/multisig/publickey.d.ts +79 -0
  628. package/dist/esm/multisig/publickey.js +280 -0
  629. package/dist/esm/multisig/signer.d.ts +20 -0
  630. package/dist/esm/multisig/signer.js +94 -0
  631. package/dist/esm/package.json +5 -0
  632. package/dist/esm/transactions/Arguments.d.ts +57 -0
  633. package/dist/esm/transactions/Arguments.js +16 -0
  634. package/dist/esm/transactions/Commands.d.ts +57 -0
  635. package/dist/esm/transactions/Commands.js +123 -0
  636. package/dist/esm/transactions/Inputs.d.ts +22 -0
  637. package/dist/esm/transactions/Inputs.js +67 -0
  638. package/dist/esm/transactions/ObjectCache.d.ts +83 -0
  639. package/dist/esm/transactions/ObjectCache.js +231 -0
  640. package/dist/esm/transactions/Transaction.d.ts +710 -0
  641. package/dist/esm/transactions/Transaction.js +731 -0
  642. package/dist/esm/transactions/TransactionData.d.ts +73 -0
  643. package/dist/esm/transactions/TransactionData.js +453 -0
  644. package/dist/esm/transactions/__tests__/Transaction.test.d.ts +1 -0
  645. package/dist/esm/transactions/__tests__/bcs.test.d.ts +1 -0
  646. package/dist/esm/transactions/data/internal.d.ts +1010 -0
  647. package/dist/esm/transactions/data/internal.js +232 -0
  648. package/dist/esm/transactions/data/v1.d.ts +312 -0
  649. package/dist/esm/transactions/data/v1.js +542 -0
  650. package/dist/esm/transactions/data/v2.d.ts +153 -0
  651. package/dist/esm/transactions/data/v2.js +126 -0
  652. package/dist/esm/transactions/executor/caching.d.ts +31 -0
  653. package/dist/esm/transactions/executor/caching.js +99 -0
  654. package/dist/esm/transactions/executor/parallel.d.ts +37 -0
  655. package/dist/esm/transactions/executor/parallel.js +375 -0
  656. package/dist/esm/transactions/executor/queue.d.ts +11 -0
  657. package/dist/esm/transactions/executor/queue.js +68 -0
  658. package/dist/esm/transactions/executor/serial.d.ts +31 -0
  659. package/dist/esm/transactions/executor/serial.js +116 -0
  660. package/dist/esm/transactions/hash.d.ts +7 -0
  661. package/dist/esm/transactions/hash.js +11 -0
  662. package/dist/esm/transactions/index.d.ts +21 -0
  663. package/dist/esm/transactions/index.js +41 -0
  664. package/dist/esm/transactions/intents/CoinWithBalance.d.ts +9 -0
  665. package/dist/esm/transactions/intents/CoinWithBalance.js +186 -0
  666. package/dist/esm/transactions/object.d.ts +24 -0
  667. package/dist/esm/transactions/object.js +96 -0
  668. package/dist/esm/transactions/plugins/NamedPackagesPlugin.d.ts +31 -0
  669. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js +17 -0
  670. package/dist/esm/transactions/pure.d.ts +20 -0
  671. package/dist/esm/transactions/pure.js +44 -0
  672. package/dist/esm/transactions/resolve.d.ts +13 -0
  673. package/dist/esm/transactions/resolve.js +83 -0
  674. package/dist/esm/transactions/serializer.d.ts +7 -0
  675. package/dist/esm/transactions/serializer.js +169 -0
  676. package/dist/esm/transactions/utils.d.ts +10 -0
  677. package/dist/esm/transactions/utils.js +123 -0
  678. package/dist/esm/utils/constants.d.ts +17 -0
  679. package/dist/esm/utils/constants.js +37 -0
  680. package/dist/esm/utils/derived-objects.d.ts +5 -0
  681. package/dist/esm/utils/derived-objects.js +13 -0
  682. package/dist/esm/utils/dynamic-fields.d.ts +2 -0
  683. package/dist/esm/utils/dynamic-fields.js +20 -0
  684. package/dist/esm/utils/format.d.ts +2 -0
  685. package/dist/esm/utils/format.js +15 -0
  686. package/dist/esm/utils/index.d.ts +8 -0
  687. package/dist/esm/utils/index.js +76 -0
  688. package/dist/esm/utils/move-registry.d.ts +6 -0
  689. package/dist/esm/utils/move-registry.js +24 -0
  690. package/dist/esm/utils/sui-types.d.ts +26 -0
  691. package/dist/esm/utils/sui-types.js +70 -0
  692. package/dist/esm/utils/suins.d.ts +2 -0
  693. package/dist/esm/utils/suins.js +36 -0
  694. package/dist/esm/verify/index.d.ts +1 -0
  695. package/dist/esm/verify/index.js +14 -0
  696. package/dist/esm/verify/verify.d.ts +16 -0
  697. package/dist/esm/verify/verify.js +108 -0
  698. package/dist/esm/version.d.ts +2 -0
  699. package/dist/esm/version.js +6 -0
  700. package/dist/esm/w/call/allocation.d.ts +35 -0
  701. package/dist/esm/w/call/allocation.js +433 -0
  702. package/dist/esm/w/call/arb.d.ts +17 -0
  703. package/dist/esm/w/call/arb.js +138 -0
  704. package/dist/esm/w/call/arbitration.d.ts +106 -0
  705. package/dist/esm/w/call/arbitration.js +1620 -0
  706. package/dist/esm/w/call/base.d.ts +42 -0
  707. package/dist/esm/w/call/base.js +350 -0
  708. package/dist/esm/w/call/contact.d.ts +45 -0
  709. package/dist/esm/w/call/contact.js +474 -0
  710. package/dist/esm/w/call/demand.d.ts +79 -0
  711. package/dist/esm/w/call/demand.js +869 -0
  712. package/dist/esm/w/call/entity.d.ts +33 -0
  713. package/dist/esm/w/call/entity.js +220 -0
  714. package/dist/esm/w/call/guard-ins.d.ts +31 -0
  715. package/dist/esm/w/call/guard-ins.js +4371 -0
  716. package/dist/esm/w/call/guard.d.ts +254 -0
  717. package/dist/esm/w/call/guard.js +1202 -0
  718. package/dist/esm/w/call/index.d.ts +37 -0
  719. package/dist/esm/w/call/index.js +57 -0
  720. package/dist/esm/w/call/machine.d.ts +124 -0
  721. package/dist/esm/w/call/machine.js +1492 -0
  722. package/dist/esm/w/call/order.d.ts +73 -0
  723. package/dist/esm/w/call/order.js +481 -0
  724. package/dist/esm/w/call/passport.d.ts +24 -0
  725. package/dist/esm/w/call/passport.js +266 -0
  726. package/dist/esm/w/call/payment.d.ts +27 -0
  727. package/dist/esm/w/call/payment.js +233 -0
  728. package/dist/esm/w/call/permission.d.ts +222 -0
  729. package/dist/esm/w/call/permission.js +1375 -0
  730. package/dist/esm/w/call/personal.d.ts +51 -0
  731. package/dist/esm/w/call/personal.js +177 -0
  732. package/dist/esm/w/call/progress.d.ts +94 -0
  733. package/dist/esm/w/call/progress.js +827 -0
  734. package/dist/esm/w/call/proof.d.ts +27 -0
  735. package/dist/esm/w/call/proof.js +110 -0
  736. package/dist/esm/w/call/repository.d.ts +97 -0
  737. package/dist/esm/w/call/repository.js +1325 -0
  738. package/dist/esm/w/call/resource.d.ts +27 -0
  739. package/dist/esm/w/call/resource.js +135 -0
  740. package/dist/esm/w/call/reward.d.ts +52 -0
  741. package/dist/esm/w/call/reward.js +874 -0
  742. package/dist/esm/w/call/service.d.ts +184 -0
  743. package/dist/esm/w/call/service.js +2472 -0
  744. package/dist/esm/w/call/treasury.d.ts +77 -0
  745. package/dist/esm/w/call/treasury.js +1186 -0
  746. package/dist/esm/w/call/util.d.ts +12 -0
  747. package/dist/esm/w/call/util.js +646 -0
  748. package/dist/esm/w/common.d.ts +359 -0
  749. package/dist/esm/w/common.js +605 -0
  750. package/dist/esm/w/exception.d.ts +82 -0
  751. package/dist/esm/w/exception.js +585 -0
  752. package/dist/esm/w/index.d.ts +8 -0
  753. package/dist/esm/w/index.js +8 -0
  754. package/dist/esm/w/local/.eslintrc.js +23 -0
  755. package/dist/esm/w/local/account.d.ts +134 -0
  756. package/dist/esm/w/local/account.js +746 -0
  757. package/dist/esm/w/local/cache.d.ts +35 -0
  758. package/dist/esm/w/local/cache.js +162 -0
  759. package/dist/esm/w/local/config.d.ts +15 -0
  760. package/dist/esm/w/local/config.js +64 -0
  761. package/dist/esm/w/local/index.d.ts +193 -0
  762. package/dist/esm/w/local/index.js +301 -0
  763. package/dist/esm/w/local/local.d.ts +93 -0
  764. package/dist/esm/w/local/local.js +654 -0
  765. package/dist/esm/w/local/storage.d.ts +61 -0
  766. package/dist/esm/w/local/storage.js +190 -0
  767. package/dist/esm/w/local/token.d.ts +22 -0
  768. package/dist/esm/w/local/token.js +163 -0
  769. package/dist/esm/w/local/util.d.ts +5 -0
  770. package/dist/esm/w/local/util.js +27 -0
  771. package/dist/esm/w/local/wip.d.ts +218 -0
  772. package/dist/esm/w/local/wip.js +882 -0
  773. package/dist/esm/w/messenger/.eslintrc.js +23 -0
  774. package/dist/esm/w/messenger/crypto.d.ts +269 -0
  775. package/dist/esm/w/messenger/crypto.js +428 -0
  776. package/dist/esm/w/messenger/index.d.ts +23 -0
  777. package/dist/esm/w/messenger/index.js +25 -0
  778. package/dist/esm/w/messenger/messenger-api.d.ts +225 -0
  779. package/dist/esm/w/messenger/messenger-api.js +1228 -0
  780. package/dist/esm/w/messenger/messenger-manager.d.ts +80 -0
  781. package/dist/esm/w/messenger/messenger-manager.js +1118 -0
  782. package/dist/esm/w/messenger/messenger.d.ts +231 -0
  783. package/dist/esm/w/messenger/messenger.js +1492 -0
  784. package/dist/esm/w/messenger/server.d.ts +134 -0
  785. package/dist/esm/w/messenger/server.js +520 -0
  786. package/dist/esm/w/messenger/session.d.ts +78 -0
  787. package/dist/esm/w/messenger/session.js +415 -0
  788. package/dist/esm/w/messenger/storage.d.ts +192 -0
  789. package/dist/esm/w/messenger/storage.js +935 -0
  790. package/dist/esm/w/messenger/types.d.ts +705 -0
  791. package/dist/esm/w/messenger/types.js +88 -0
  792. package/dist/esm/w/messenger/utils.d.ts +15 -0
  793. package/dist/esm/w/messenger/utils.js +17 -0
  794. package/dist/esm/w/query/bult-in.d.ts +73 -0
  795. package/dist/esm/w/query/bult-in.js +112 -0
  796. package/dist/esm/w/query/event.d.ts +82 -0
  797. package/dist/esm/w/query/event.js +137 -0
  798. package/dist/esm/w/query/index.d.ts +5 -0
  799. package/dist/esm/w/query/index.js +5 -0
  800. package/dist/esm/w/query/object.d.ts +658 -0
  801. package/dist/esm/w/query/object.js +1648 -0
  802. package/dist/esm/w/query/received.d.ts +34 -0
  803. package/dist/esm/w/query/received.js +73 -0
  804. package/dist/esm/w/query/util.d.ts +5 -0
  805. package/dist/esm/w/query/util.js +62 -0
  806. package/dist/esm/w/util.d.ts +19 -0
  807. package/dist/esm/w/util.js +710 -0
  808. package/dist/esm/zklogin/address.js +78 -0
  809. package/dist/esm/zklogin/bcs.js +21 -0
  810. package/dist/esm/zklogin/index.js +38 -0
  811. package/dist/esm/zklogin/jwt-decode.js +68 -0
  812. package/dist/esm/zklogin/jwt-utils.js +108 -0
  813. package/dist/esm/zklogin/nonce.js +40 -0
  814. package/dist/esm/zklogin/poseidon.js +61 -0
  815. package/dist/esm/zklogin/publickey.js +265 -0
  816. package/dist/esm/zklogin/signature.js +37 -0
  817. package/dist/esm/zklogin/utils.js +78 -0
  818. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  819. package/dist/tsconfig.tsbuildinfo +1 -0
  820. package/package.json +295 -61
  821. package/dist/arbitration.d.ts +0 -65
  822. package/dist/arbitration.d.ts.map +0 -1
  823. package/dist/arbitration.js +0 -517
  824. package/dist/arbitration.js.map +0 -1
  825. package/dist/demand.d.ts +0 -27
  826. package/dist/demand.d.ts.map +0 -1
  827. package/dist/demand.js +0 -266
  828. package/dist/demand.js.map +0 -1
  829. package/dist/entity.d.ts +0 -46
  830. package/dist/entity.d.ts.map +0 -1
  831. package/dist/entity.js +0 -146
  832. package/dist/entity.js.map +0 -1
  833. package/dist/exception.d.ts +0 -37
  834. package/dist/exception.d.ts.map +0 -1
  835. package/dist/exception.js +0 -41
  836. package/dist/exception.js.map +0 -1
  837. package/dist/guard.d.ts +0 -110
  838. package/dist/guard.d.ts.map +0 -1
  839. package/dist/guard.js +0 -936
  840. package/dist/guard.js.map +0 -1
  841. package/dist/index.d.ts +0 -40
  842. package/dist/index.d.ts.map +0 -1
  843. package/dist/index.js +0 -28
  844. package/dist/index.js.map +0 -1
  845. package/dist/machine.d.ts +0 -68
  846. package/dist/machine.d.ts.map +0 -1
  847. package/dist/machine.js +0 -520
  848. package/dist/machine.js.map +0 -1
  849. package/dist/passport.d.ts +0 -129
  850. package/dist/passport.d.ts.map +0 -1
  851. package/dist/passport.js +0 -1233
  852. package/dist/passport.js.map +0 -1
  853. package/dist/payment.d.ts +0 -28
  854. package/dist/payment.d.ts.map +0 -1
  855. package/dist/payment.js +0 -60
  856. package/dist/payment.js.map +0 -1
  857. package/dist/permission.d.ts +0 -155
  858. package/dist/permission.d.ts.map +0 -1
  859. package/dist/permission.js +0 -462
  860. package/dist/permission.js.map +0 -1
  861. package/dist/progress.d.ts +0 -66
  862. package/dist/progress.d.ts.map +0 -1
  863. package/dist/progress.js +0 -311
  864. package/dist/progress.js.map +0 -1
  865. package/dist/protocol.d.ts +0 -247
  866. package/dist/protocol.d.ts.map +0 -1
  867. package/dist/protocol.js +0 -726
  868. package/dist/protocol.js.map +0 -1
  869. package/dist/repository.d.ts +0 -94
  870. package/dist/repository.d.ts.map +0 -1
  871. package/dist/repository.js +0 -783
  872. package/dist/repository.js.map +0 -1
  873. package/dist/resource.d.ts +0 -36
  874. package/dist/resource.d.ts.map +0 -1
  875. package/dist/resource.js +0 -129
  876. package/dist/resource.js.map +0 -1
  877. package/dist/service.d.ts +0 -144
  878. package/dist/service.d.ts.map +0 -1
  879. package/dist/service.js +0 -1303
  880. package/dist/service.js.map +0 -1
  881. package/dist/treasury.d.ts +0 -55
  882. package/dist/treasury.d.ts.map +0 -1
  883. package/dist/treasury.js +0 -393
  884. package/dist/treasury.js.map +0 -1
  885. package/dist/utils.d.ts +0 -94
  886. package/dist/utils.d.ts.map +0 -1
  887. package/dist/utils.js +0 -582
  888. package/dist/utils.js.map +0 -1
  889. package/dist/wowok.d.ts +0 -15
  890. package/dist/wowok.d.ts.map +0 -1
  891. package/dist/wowok.js +0 -66
  892. package/dist/wowok.js.map +0 -1
@@ -0,0 +1,1228 @@
1
+ import { MessengerManager } from "./messenger-manager.js";
2
+ import { Account } from "../local/account.js";
3
+ import { W_ERROR, WErrors } from "../exception.js";
4
+ import { isValidWowAddress } from "../../utils/sui-types.js";
5
+ import { LocalMark } from "../local/local.js";
6
+ import { MessageStorage } from "./storage.js";
7
+ import {
8
+ MessengerError,
9
+ MessengerErrorCode,
10
+ CHAIN_PROOF_TYPE
11
+ } from "./types.js";
12
+ import { createHash } from "crypto";
13
+ import * as fs from "fs";
14
+ import * as path from "path";
15
+ import { isValidU64 } from "../common.js";
16
+ import {
17
+ verifySingleMerkleRoot,
18
+ hashPlaintext,
19
+ verifyEd25519Signature
20
+ } from "./crypto.js";
21
+ import { canonicalizeJson } from "./utils.js";
22
+ import {
23
+ GetAccountOrMark_Address,
24
+ GetManyAccountOrMark_Address
25
+ } from "../local/index.js";
26
+ import { query_objects } from "../query/object.js";
27
+ import { Messenger } from "./messenger.js";
28
+ let managerInstance = null;
29
+ let isInitialized = false;
30
+ let backgroundTimer = null;
31
+ async function autoRegisterMessengerAccounts() {
32
+ const accounts = await Account.Instance().list_messenger_accounts();
33
+ for (const account of accounts) {
34
+ if (!account.address || !account.m) {
35
+ continue;
36
+ }
37
+ const messenger = new Messenger(account.address);
38
+ await messenger.initialize();
39
+ }
40
+ }
41
+ function getMessengerManager() {
42
+ if (!managerInstance) {
43
+ managerInstance = new MessengerManager();
44
+ }
45
+ if (!isInitialized) {
46
+ isInitialized = true;
47
+ autoRegisterMessengerAccounts().catch((err) => {
48
+ console.error("Failed to auto-register messenger accounts:", err);
49
+ });
50
+ managerInstance.start().catch((err) => {
51
+ console.error("Failed to auto-start messenger manager:", err);
52
+ });
53
+ }
54
+ return managerInstance;
55
+ }
56
+ async function backgroundCheck() {
57
+ try {
58
+ const manager = getMessengerManager();
59
+ await manager.start();
60
+ } catch (err) {
61
+ console.error("Background check failed:", err);
62
+ }
63
+ await autoRegisterMessengerAccounts();
64
+ }
65
+ function startBackgroundTimer() {
66
+ if (backgroundTimer) {
67
+ clearInterval(backgroundTimer);
68
+ }
69
+ backgroundTimer = setInterval(() => {
70
+ backgroundCheck().catch(() => {
71
+ });
72
+ }, 60 * 1e3);
73
+ backgroundCheck().catch(() => {
74
+ });
75
+ }
76
+ function registerCleanupHandler() {
77
+ const cleanup = () => {
78
+ if (backgroundTimer) {
79
+ clearInterval(backgroundTimer);
80
+ backgroundTimer = null;
81
+ }
82
+ if (managerInstance) {
83
+ managerInstance.stop();
84
+ }
85
+ };
86
+ process.on("exit", cleanup);
87
+ process.on("SIGINT", () => {
88
+ cleanup();
89
+ process.exit();
90
+ });
91
+ process.on("SIGTERM", () => {
92
+ cleanup();
93
+ process.exit();
94
+ });
95
+ }
96
+ registerCleanupHandler();
97
+ startBackgroundTimer();
98
+ async function watch_conversations(account) {
99
+ const address = await Account.Instance().get_address(account);
100
+ if (!address) {
101
+ W_ERROR(
102
+ WErrors.AccountNotFound,
103
+ `watch_conversations.account ${account}`
104
+ );
105
+ }
106
+ const manager = getMessengerManager();
107
+ return manager.get_conversations(address);
108
+ }
109
+ async function send_message(from, to, content, options) {
110
+ const fromAddress = await Account.Instance().get_address(from);
111
+ if (!fromAddress) {
112
+ W_ERROR(WErrors.AccountNotFound, `send_message.from ${from}`);
113
+ }
114
+ const t = await GetAccountOrMark_Address(to);
115
+ if (!t) {
116
+ W_ERROR(
117
+ WErrors.AccountNotFound,
118
+ `send_message.to ${to} is not a valid account/address`
119
+ );
120
+ }
121
+ if (options?.guardAddress != null && options?.passportAddress != null) {
122
+ [options.guardAddress, options.passportAddress] = await LocalMark.Instance().get_many_address([
123
+ options.guardAddress,
124
+ options.passportAddress
125
+ ]);
126
+ if (!options.guardAddress || !options.passportAddress) {
127
+ W_ERROR(
128
+ WErrors.AccountNotFound,
129
+ `send_message.guardAddress or passportAddress not found`
130
+ );
131
+ }
132
+ }
133
+ const manager = getMessengerManager();
134
+ return manager.send(fromAddress, t, content, options);
135
+ }
136
+ async function send_file(from, to, filePath, options) {
137
+ const fromAddress = await Account.Instance().get_address(from);
138
+ if (!fromAddress) {
139
+ W_ERROR(WErrors.AccountNotFound, `send_file.from ${from}`);
140
+ }
141
+ const t = await GetAccountOrMark_Address(to);
142
+ if (!t) {
143
+ W_ERROR(
144
+ WErrors.AccountNotFound,
145
+ `send_file.to ${to} is not a valid account/address`
146
+ );
147
+ }
148
+ if (options?.guardAddress != null && options?.passportAddress != null) {
149
+ [options.guardAddress, options.passportAddress] = await LocalMark.Instance().get_many_address([
150
+ options.guardAddress,
151
+ options.passportAddress
152
+ ]);
153
+ if (!options.guardAddress || !options.passportAddress) {
154
+ W_ERROR(
155
+ WErrors.AccountNotFound,
156
+ `send_file.guardAddress or passportAddress not found`
157
+ );
158
+ }
159
+ }
160
+ const manager = getMessengerManager();
161
+ return manager.send_file(fromAddress, t, filePath, options);
162
+ }
163
+ async function watch_messages(filter) {
164
+ if (filter?.account) {
165
+ filter.account = await Account.Instance().get_address(filter.account);
166
+ }
167
+ if (filter?.customListFilter?.includeAddresses != null) {
168
+ filter.customListFilter.includeAddresses = (await Account.Instance().get_many_address(
169
+ filter.customListFilter.includeAddresses
170
+ )).filter((v) => v != null);
171
+ }
172
+ if (filter?.customListFilter?.excludeAddresses != null) {
173
+ filter.customListFilter.excludeAddresses = (await Account.Instance().get_many_address(
174
+ filter.customListFilter.excludeAddresses
175
+ )).filter((v) => v != null);
176
+ }
177
+ const manager = getMessengerManager();
178
+ return manager.watch(filter);
179
+ }
180
+ async function extract_zip_message(message, outputDir) {
181
+ if (!message.zipMetadata) {
182
+ throw new MessengerError(
183
+ MessengerErrorCode.INVALID_MESSAGE_TYPE,
184
+ "Message is not a ZIP archive"
185
+ );
186
+ }
187
+ if (!message.plaintext) {
188
+ throw new MessengerError(
189
+ MessengerErrorCode.MESSAGE_NOT_DECRYPTED,
190
+ "Message plaintext not available"
191
+ );
192
+ }
193
+ const zipBase64 = message.plaintext;
194
+ const zipData = Buffer.from(zipBase64, "base64");
195
+ if (message.zipMetadata?.fileHash) {
196
+ const actualHash = createHash("sha256").update(zipData).digest("hex");
197
+ const expectedHash = message.zipMetadata.fileHash.replace("0x", "");
198
+ if (actualHash !== expectedHash) {
199
+ throw new MessengerError(
200
+ MessengerErrorCode.HASH_MISMATCH,
201
+ `ZIP file hash mismatch: expected ${expectedHash}, got ${actualHash}`
202
+ );
203
+ }
204
+ }
205
+ const JSZip = (await import("jszip")).default;
206
+ const zip = await JSZip.loadAsync(zipData);
207
+ if (!fs.existsSync(outputDir)) {
208
+ fs.mkdirSync(outputDir, { recursive: true });
209
+ }
210
+ const savedPaths = [];
211
+ for (const [fileName, file] of Object.entries(zip.files)) {
212
+ const zipFile = file;
213
+ if (!zipFile.dir) {
214
+ const content = await zipFile.async("nodebuffer");
215
+ const outputPath = path.join(outputDir, fileName);
216
+ fs.writeFileSync(outputPath, content);
217
+ savedPaths.push(outputPath);
218
+ }
219
+ }
220
+ if (savedPaths.length > 0 && message.zipMetadata) {
221
+ const updatedMetadata = {
222
+ fileName: message.zipMetadata.fileName,
223
+ fileSize: message.zipMetadata.fileSize,
224
+ fileHash: message.zipMetadata.fileHash,
225
+ contentType: message.zipMetadata.contentType,
226
+ localCachePath: savedPaths[0],
227
+ downloadedAt: Date.now()
228
+ };
229
+ message.zipMetadata = updatedMetadata;
230
+ const userAddress = message.direction === "sent" ? message.fromAddress : message.toAddress;
231
+ const messageStorage = new MessageStorage(userAddress);
232
+ messageStorage.saveMessage(message);
233
+ }
234
+ return savedPaths[0] || "";
235
+ }
236
+ async function extract_zip_messages(account, messages, outputDir) {
237
+ const results = [];
238
+ const userAddress = await Account.Instance().get_address(account);
239
+ if (!userAddress) {
240
+ throw new MessengerError(
241
+ MessengerErrorCode.INVALID_INPUT,
242
+ "account is required when extracting by message IDs"
243
+ );
244
+ }
245
+ const isMessageIds = messages.length > 0 && typeof messages[0] === "string";
246
+ for (const item of messages) {
247
+ try {
248
+ let message;
249
+ if (isMessageIds) {
250
+ const messageId = item;
251
+ const messageStorage = new MessageStorage(userAddress);
252
+ const storedMessage = messageStorage.getMessageById(messageId);
253
+ if (!storedMessage) {
254
+ console.error(`Message not found: ${messageId}`);
255
+ continue;
256
+ }
257
+ message = storedMessage;
258
+ } else {
259
+ message = item;
260
+ }
261
+ if (!message.zipMetadata) {
262
+ console.error(
263
+ `Message ${message.messageId} is not a ZIP archive`
264
+ );
265
+ continue;
266
+ }
267
+ const filePath = await extract_zip_message(message, outputDir);
268
+ results.push(filePath);
269
+ } catch (e) {
270
+ const id = isMessageIds ? item : item.messageId;
271
+ console.error(`Failed to extract message ${id}:`, e);
272
+ }
273
+ }
274
+ return results;
275
+ }
276
+ async function generate_wts(params) {
277
+ const myAddress = await Account.Instance().get_address(params.myAccount);
278
+ if (!myAddress) {
279
+ W_ERROR(
280
+ WErrors.AccountNotFound,
281
+ `generate_wts.myAccount ${params.myAccount}`
282
+ );
283
+ }
284
+ if (!isValidWowAddress(params.peerAccount)) {
285
+ const t = await Account.Instance().get_address(params.peerAccount);
286
+ if (!t) {
287
+ W_ERROR(
288
+ WErrors.AccountNotFound,
289
+ `generate_wts.peerAccount ${params.peerAccount}`
290
+ );
291
+ }
292
+ params.peerAccount = t;
293
+ }
294
+ return getMessengerManager().generate_wts(params);
295
+ }
296
+ function load_wts(filePath) {
297
+ const content = fs.readFileSync(filePath, "utf-8");
298
+ return JSON.parse(content);
299
+ }
300
+ function save_wts(wtsFile, filePath) {
301
+ const dir = path.dirname(filePath);
302
+ if (!fs.existsSync(dir)) {
303
+ fs.mkdirSync(dir, { recursive: true });
304
+ }
305
+ fs.writeFileSync(filePath, JSON.stringify(wtsFile, null, 2), "utf-8");
306
+ }
307
+ async function verify_wts(wtsFilePath) {
308
+ try {
309
+ const wtsFile = load_wts(wtsFilePath);
310
+ if (!wtsFile.wts || !wtsFile.payload || !wtsFile.meta) {
311
+ return { valid: false, error: "Invalid WTS file structure" };
312
+ }
313
+ if (wtsFile.meta.type !== "wts") {
314
+ return {
315
+ valid: false,
316
+ error: `Invalid meta.type: ${wtsFile.meta.type}`
317
+ };
318
+ }
319
+ const { payload, meta } = wtsFile;
320
+ for (const msg of payload.messages) {
321
+ const result = verifySingleMerkleRoot(
322
+ msg.prevRoot,
323
+ msg.merkleRoot,
324
+ msg.plaintextHash,
325
+ msg.timestamp,
326
+ msg.leafIndex
327
+ );
328
+ if (!result.valid) {
329
+ return {
330
+ valid: false,
331
+ error: `${result.error} at leafIndex ${msg.leafIndex}`
332
+ };
333
+ }
334
+ }
335
+ for (let i = 0; i < payload.messages.length; i++) {
336
+ const msg = payload.messages[i];
337
+ const isNonTextMsg = !!msg.zipMetadata;
338
+ if (!isNonTextMsg) {
339
+ if (!msg.plaintextHash.startsWith("0x") || msg.plaintextHash.length !== 66) {
340
+ return {
341
+ valid: false,
342
+ error: `Message ${i}: Invalid plaintextHash format`
343
+ };
344
+ }
345
+ if (msg.plaintext) {
346
+ const computedHash2 = hashPlaintext(
347
+ msg.plaintext,
348
+ msg.clientTimestamp,
349
+ msg.guardAddress,
350
+ msg.passportAddress,
351
+ msg.lastReceivedLeafIndex
352
+ );
353
+ if (computedHash2.toLowerCase() !== msg.plaintextHash.toLowerCase()) {
354
+ return {
355
+ valid: false,
356
+ error: `Message ${i}: Plaintext hash mismatch`
357
+ };
358
+ }
359
+ }
360
+ }
361
+ if (msg.serverSignature && msg.serverPublicKey) {
362
+ if (!msg.timestamp) {
363
+ return {
364
+ valid: false,
365
+ error: `Message ${i}: Missing timestamp for signature verification`
366
+ };
367
+ }
368
+ if (!msg.merkleRoot) {
369
+ return {
370
+ valid: false,
371
+ error: `Message ${i}: Missing merkleRoot for signature verification`
372
+ };
373
+ }
374
+ if (!msg.prevRoot) {
375
+ return {
376
+ valid: false,
377
+ error: `Message ${i}: Missing prevRoot for signature verification`
378
+ };
379
+ }
380
+ const signData = `${msg.prevRoot}:${msg.merkleRoot}:${msg.timestamp}:${msg.serverPublicKey}`;
381
+ const signatureValid2 = verifyEd25519Signature(
382
+ msg.serverPublicKey,
383
+ signData,
384
+ msg.serverSignature
385
+ );
386
+ if (!signatureValid2) {
387
+ return {
388
+ valid: false,
389
+ error: `Message ${i}: Server signature verification failed`
390
+ };
391
+ }
392
+ }
393
+ }
394
+ const { sha256 } = await import("@noble/hashes/sha256");
395
+ const { bytesToHex } = await import("@noble/hashes/utils");
396
+ const canonicalPayload = canonicalizeJson(payload);
397
+ const computedHash = "sha256:" + bytesToHex(sha256(new TextEncoder().encode(canonicalPayload)));
398
+ if (computedHash !== meta.hash) {
399
+ return {
400
+ valid: false,
401
+ error: "Hash mismatch - content has been tampered",
402
+ hashValid: false,
403
+ hasSignature: !!meta.signature
404
+ };
405
+ }
406
+ const signatures = [];
407
+ let signatureValid;
408
+ if (meta.signature) {
409
+ const { Ed25519PublicKey } = await import("../../keypairs/ed25519/publickey.js");
410
+ const sigArray = Array.isArray(meta.signature) ? meta.signature : [meta.signature];
411
+ let allValid = true;
412
+ for (const sig of sigArray) {
413
+ let pkToUse;
414
+ const pk = sig.publicKey;
415
+ if (pk.startsWith("0x")) {
416
+ const buffer = Buffer.from(pk.slice(2), "hex");
417
+ if (buffer.length === 33) {
418
+ pkToUse = buffer.slice(1).toString("base64");
419
+ } else if (buffer.length === 32) {
420
+ pkToUse = buffer.toString("base64");
421
+ } else {
422
+ let address;
423
+ try {
424
+ const pubKey = new Ed25519PublicKey(pk.slice(2));
425
+ address = pubKey.toWAddress();
426
+ } catch {
427
+ }
428
+ signatures.push({
429
+ publicKey: pk,
430
+ address,
431
+ valid: false
432
+ });
433
+ allValid = false;
434
+ continue;
435
+ }
436
+ } else {
437
+ try {
438
+ const buffer = Buffer.from(pk, "base64");
439
+ if (buffer.length === 33) {
440
+ pkToUse = buffer.slice(1).toString("base64");
441
+ } else if (buffer.length === 32) {
442
+ pkToUse = buffer.toString("base64");
443
+ } else {
444
+ let address;
445
+ try {
446
+ const pubKey = new Ed25519PublicKey(pk);
447
+ address = pubKey.toWAddress();
448
+ } catch {
449
+ }
450
+ signatures.push({
451
+ publicKey: pk,
452
+ address,
453
+ valid: false
454
+ });
455
+ allValid = false;
456
+ continue;
457
+ }
458
+ } catch {
459
+ pkToUse = pk;
460
+ }
461
+ }
462
+ try {
463
+ const pubKey = new Ed25519PublicKey(pkToUse);
464
+ const signatureBytes = Uint8Array.from(
465
+ Buffer.from(sig.value, "base64")
466
+ );
467
+ const signValid = await pubKey.verify(
468
+ new TextEncoder().encode(meta.hash),
469
+ signatureBytes
470
+ );
471
+ let address;
472
+ try {
473
+ address = pubKey.toWAddress();
474
+ } catch {
475
+ }
476
+ signatures.push({
477
+ publicKey: pk,
478
+ address,
479
+ valid: signValid
480
+ });
481
+ if (!signValid) {
482
+ allValid = false;
483
+ }
484
+ } catch {
485
+ let address;
486
+ try {
487
+ const pubKey = new Ed25519PublicKey(pkToUse);
488
+ address = pubKey.toWAddress();
489
+ } catch {
490
+ }
491
+ signatures.push({ publicKey: pk, address, valid: false });
492
+ allValid = false;
493
+ }
494
+ }
495
+ signatureValid = allValid;
496
+ if (!signatureValid) {
497
+ const failedAddresses = signatures.filter((s) => !s.valid && s.address).map((s) => s.address);
498
+ return {
499
+ valid: false,
500
+ error: `Signatures from the following addresses are invalid: ${failedAddresses.join(", ")}`,
501
+ hashValid: true,
502
+ hasSignature: true,
503
+ signatureValid: false,
504
+ signatures
505
+ };
506
+ }
507
+ }
508
+ return {
509
+ valid: true,
510
+ hashValid: true,
511
+ hasSignature: !!meta.signature,
512
+ signatureValid,
513
+ signatures: signatures.length > 0 ? signatures : void 0
514
+ };
515
+ } catch (error) {
516
+ return {
517
+ valid: false,
518
+ error: `Verification error: ${error}`,
519
+ hashValid: false,
520
+ hasSignature: false
521
+ };
522
+ }
523
+ }
524
+ async function sign_wts(wtsFilePath, account, outputPath) {
525
+ const verifyResult = await verify_wts(wtsFilePath);
526
+ if (!verifyResult.valid) {
527
+ throw new MessengerError(
528
+ MessengerErrorCode.INVALID_INPUT,
529
+ `WTS file verification failed: ${verifyResult.error}`
530
+ );
531
+ }
532
+ const wtsFile = load_wts(wtsFilePath);
533
+ const address = await Account.Instance().get_address(account);
534
+ if (!address) {
535
+ W_ERROR(WErrors.AccountNotFound, `sign_wts.account ${account}`);
536
+ }
537
+ const signResult = await Account.Instance().signData(
538
+ address,
539
+ wtsFile.meta.hash
540
+ );
541
+ let publicKeyBase64;
542
+ const pk = signResult.publicKey;
543
+ if (pk.startsWith("0x")) {
544
+ const buffer = Buffer.from(pk.slice(2), "hex");
545
+ if (buffer.length === 33) {
546
+ publicKeyBase64 = buffer.slice(1).toString("base64");
547
+ } else if (buffer.length === 32) {
548
+ publicKeyBase64 = buffer.toString("base64");
549
+ } else {
550
+ throw new MessengerError(
551
+ MessengerErrorCode.INVALID_INPUT,
552
+ `Invalid public key length: ${buffer.length}, expected 32 or 33 bytes`
553
+ );
554
+ }
555
+ } else {
556
+ publicKeyBase64 = pk;
557
+ }
558
+ const newSignature = {
559
+ value: Buffer.from(signResult.signature.slice(2), "hex").toString(
560
+ "base64"
561
+ ),
562
+ publicKey: publicKeyBase64,
563
+ algorithm: "Ed25519",
564
+ address: signResult.address
565
+ };
566
+ let signatures;
567
+ if (wtsFile.meta.signature) {
568
+ const existingSigs = Array.isArray(wtsFile.meta.signature) ? [...wtsFile.meta.signature] : [wtsFile.meta.signature];
569
+ const existingIndex = existingSigs.findIndex(
570
+ (sig) => sig.publicKey === publicKeyBase64
571
+ );
572
+ if (existingIndex >= 0) {
573
+ existingSigs[existingIndex] = newSignature;
574
+ signatures = existingSigs;
575
+ } else {
576
+ signatures = [...existingSigs, newSignature];
577
+ }
578
+ } else {
579
+ signatures = [newSignature];
580
+ }
581
+ const signedWtsFile = {
582
+ ...wtsFile,
583
+ meta: {
584
+ ...wtsFile.meta,
585
+ signature: signatures
586
+ }
587
+ };
588
+ let savePath;
589
+ if (outputPath) {
590
+ savePath = outputPath;
591
+ } else {
592
+ const dir = path.dirname(wtsFilePath);
593
+ const ext = path.extname(wtsFilePath);
594
+ const baseName = path.basename(wtsFilePath, ext);
595
+ savePath = path.join(dir, `signed_${baseName}${ext}`);
596
+ }
597
+ save_wts(signedWtsFile, savePath);
598
+ return savePath;
599
+ }
600
+ async function wts2html(wtsPath, options = {}) {
601
+ const fs2 = await import("fs");
602
+ const path2 = await import("path");
603
+ const stats = fs2.statSync(wtsPath);
604
+ if (stats.isDirectory()) {
605
+ const files = fs2.readdirSync(wtsPath);
606
+ const wtsFiles = files.filter((f) => f.endsWith(".wts"));
607
+ if (wtsFiles.length === 0) {
608
+ throw new MessengerError(
609
+ MessengerErrorCode.INVALID_INPUT,
610
+ `No .wts files found in directory: ${wtsPath}`
611
+ );
612
+ }
613
+ const results = [];
614
+ for (const file of wtsFiles) {
615
+ const filePath = path2.join(wtsPath, file);
616
+ const html = await convertWtsToHtml(filePath, options);
617
+ const outputFileName = file.replace(".wts", ".html");
618
+ const outputFilePath = options.outputPath ? path2.join(options.outputPath, outputFileName) : path2.join(wtsPath, outputFileName);
619
+ const outputDir = path2.dirname(outputFilePath);
620
+ if (!fs2.existsSync(outputDir)) {
621
+ fs2.mkdirSync(outputDir, { recursive: true });
622
+ }
623
+ fs2.writeFileSync(outputFilePath, html, "utf-8");
624
+ results.push(outputFilePath);
625
+ }
626
+ return results;
627
+ }
628
+ return convertWtsToHtml(wtsPath, options);
629
+ }
630
+ async function convertWtsToHtml(wtsFilePath, options = {}) {
631
+ const fs2 = await import("fs");
632
+ const path2 = await import("path");
633
+ const { title = "WTS Document", theme = "light" } = options;
634
+ const verifyResult = await verify_wts(wtsFilePath);
635
+ const wtsFile = load_wts(wtsFilePath);
636
+ const { payload, meta } = wtsFile;
637
+ const bgColor = theme === "dark" ? "#1a1a1a" : "#ffffff";
638
+ const textColor = theme === "dark" ? "#e0e0e0" : "#333333";
639
+ const borderColor = theme === "dark" ? "#444444" : "#e0e0e0";
640
+ const escapeHtml = (text) => {
641
+ return text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
642
+ };
643
+ const isNonTextMessage = (msg) => {
644
+ return !!msg.zipMetadata;
645
+ };
646
+ const getFileTypeLabel = (msg) => {
647
+ if (msg.zipMetadata?.contentType) {
648
+ return msg.zipMetadata.contentType.toUpperCase();
649
+ }
650
+ const fileName = msg.zipMetadata?.fileName || "";
651
+ if (fileName.endsWith(".wts")) return "WTS";
652
+ if (fileName.endsWith(".wip")) return "WIP";
653
+ if (fileName.endsWith(".zip")) return "ZIP";
654
+ if (fileName.endsWith(".json")) return "JSON";
655
+ if (fileName.endsWith(".txt")) return "TXT";
656
+ if (msg.zipMetadata) return "ZIP";
657
+ return "FILE";
658
+ };
659
+ const generateSaveButton = (msg, index) => {
660
+ const fileType = getFileTypeLabel(msg);
661
+ const fileName = msg.zipMetadata?.fileName || `message_${index}.${fileType.toLowerCase()}`;
662
+ const fileData = msg.plaintext || "";
663
+ return `
664
+ <div style="margin: 12px 0; padding: 16px; background: ${theme === "dark" ? "#2a3f2a" : "#e8f5e9"}; border: 1px solid ${theme === "dark" ? "#4caf50" : "#81c784"}; border-radius: 8px; text-align: center;">
665
+ <div style="font-size: 14px; color: ${theme === "dark" ? "#81c784" : "#2e7d32"}; margin-bottom: 8px;">
666
+ \u{1F4CE} ${fileType} File
667
+ ${msg.zipMetadata ? `<span style="font-size: 12px; color: #666;">(${formatFileSize(msg.zipMetadata.fileSize)})</span>` : ""}
668
+ </div>
669
+ <button
670
+ onclick="saveFile${index}()"
671
+ style="padding: 10px 24px; background: #4caf50; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 14px;"
672
+ onmouseover="this.style.background='#45a049'"
673
+ onmouseout="this.style.background='#4caf50'"
674
+ >
675
+ \u{1F4BE} Save ${escapeHtml(fileName)}
676
+ </button>
677
+ </div>
678
+ <script>
679
+ function saveFile${index}() {
680
+ try {
681
+ // Base64 \u89E3\u7801
682
+ const base64Data = "${escapeHtml(fileData)}";
683
+ const byteCharacters = atob(base64Data);
684
+ const byteNumbers = new Array(byteCharacters.length);
685
+ for (let i = 0; i < byteCharacters.length; i++) {
686
+ byteNumbers[i] = byteCharacters.charCodeAt(i);
687
+ }
688
+ const byteArray = new Uint8Array(byteNumbers);
689
+
690
+ // \u6839\u636E\u6587\u4EF6\u7C7B\u578B\u8BBE\u7F6E MIME \u7C7B\u578B
691
+ let mimeType = "application/octet-stream";
692
+ const fileName = "${escapeHtml(fileName)}";
693
+ if (fileName.endsWith('.json')) mimeType = "application/json";
694
+ else if (fileName.endsWith('.zip')) mimeType = "application/zip";
695
+ else if (fileName.endsWith('.txt')) mimeType = "text/plain";
696
+
697
+ const blob = new Blob([byteArray], { type: mimeType });
698
+ const url = URL.createObjectURL(blob);
699
+ const a = document.createElement("a");
700
+ a.href = url;
701
+ a.download = fileName;
702
+ document.body.appendChild(a);
703
+ a.click();
704
+ document.body.removeChild(a);
705
+ URL.revokeObjectURL(url);
706
+ } catch (e) {
707
+ alert('\u4FDD\u5B58\u6587\u4EF6\u5931\u8D25: ' + e.message);
708
+ }
709
+ }
710
+ <\/script>
711
+ `;
712
+ };
713
+ const formatFileSize = (bytes) => {
714
+ if (bytes < 1024) return bytes + " B";
715
+ if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(1) + " KB";
716
+ return (bytes / (1024 * 1024)).toFixed(1) + " MB";
717
+ };
718
+ const messagesHtml = payload.messages.map((msg, index) => {
719
+ const isNonText = isNonTextMessage(msg);
720
+ return `
721
+ <div style="margin: 16px 0; padding: 16px; border: 1px solid ${borderColor}; border-radius: 8px; background: ${theme === "dark" ? "#2a2a2a" : "#f9f9f9"};">
722
+ <div style="display: flex; justify-content: space-between; margin-bottom: 8px; font-size: 12px; color: #666;">
723
+ <span>From: ${escapeHtml(msg.from.slice(0, 20))}... To: ${escapeHtml(msg.to.slice(0, 20))}...</span>
724
+ <span>${new Date(msg.timestamp).toLocaleString()}</span>
725
+ </div>
726
+ ${isNonText ? generateSaveButton(msg, index) : msg.plaintext ? `<div style="margin: 12px 0; padding: 12px; background: ${theme === "dark" ? "#333333" : "#ffffff"}; border: 1px solid ${borderColor}; border-radius: 4px; font-size: 14px; line-height: 1.6; max-height: calc(1.6em * 6); overflow-y: auto; white-space: pre-wrap; word-break: break-word;">${escapeHtml(msg.plaintext)}</div>` : ""}
727
+ <div style="margin: 8px 0; font-size: 11px; color: #666;">
728
+ <div>Plaintext Hash: ${escapeHtml(msg.plaintextHash)}</div>
729
+ ${msg.arkConfirmed ? `<div>ARK Confirmed: ${escapeHtml(msg.arkConfirmed.recipient)} at ${new Date(msg.arkConfirmed.timestamp).toLocaleString()}</div>` : ""}
730
+ ${msg.guardAddress ? `<div>Guard: ${escapeHtml(msg.guardAddress)}</div>` : ""}
731
+ ${msg.passportAddress ? `<div>Passport: ${escapeHtml(msg.passportAddress)}</div>` : ""}
732
+ </div>
733
+ <div style="font-size: 11px; color: #888; margin-top: 8px; padding-top: 8px; border-top: 1px solid ${borderColor};">
734
+ <div>Leaf Index: ${msg.leafIndex}</div>
735
+ <div style="word-break: break-all;">Merkle Root: ${escapeHtml(msg.merkleRoot)}</div>
736
+ <div style="word-break: break-all;">Server Sig: ${escapeHtml(msg.serverSignature.slice(0, 50))}...</div>
737
+ </div>
738
+ </div>
739
+ `;
740
+ }).join("");
741
+ const signatureHtml = "";
742
+ const html = `<!DOCTYPE html>
743
+ <html lang="en">
744
+ <head>
745
+ <meta charset="UTF-8">
746
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
747
+ <title>${escapeHtml(title)}</title>
748
+ <style>
749
+ body {
750
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
751
+ max-width: 800px;
752
+ margin: 0 auto;
753
+ padding: 20px;
754
+ background: ${bgColor};
755
+ color: ${textColor};
756
+ }
757
+ .header {
758
+ border-bottom: 2px solid ${borderColor};
759
+ padding-bottom: 16px;
760
+ margin-bottom: 24px;
761
+ }
762
+ .meta {
763
+ font-size: 12px;
764
+ color: #666;
765
+ margin-top: 8px;
766
+ }
767
+ .note {
768
+ font-size: 11px;
769
+ color: #999;
770
+ margin-top: 12px;
771
+ padding: 8px;
772
+ background: ${theme === "dark" ? "#2a2a2a" : "#f5f5f5"};
773
+ border-radius: 4px;
774
+ font-style: italic;
775
+ }
776
+ </style>
777
+ </head>
778
+ <body>
779
+ <div class="header">
780
+ <h1>Witness Timestamped Sequence</h1>
781
+ <div class="note">
782
+ Important Note: This page is for message browsing and verification reference only. Please verify whether the message sequence has been tampered with through the API using the WTS file.
783
+ </div>
784
+ <div style="font-size: 14px; color: #666; margin-top: 4px;">
785
+ ${new Date(meta.startTime).toLocaleDateString()} - ${new Date(meta.endTime).toLocaleDateString()}
786
+ ${verifyResult.valid ? `<span style="color: #4caf50; margin-left: 8px;">\u2713 The accuracy, sequentiality, and integrity of the messages are verified without tampering</span>` : `<span style="color: #ff9800; margin-left: 8px;">\u26A0 ${verifyResult.error || "Hash mismatch - content has been tampered"}</span>`}
787
+ </div>
788
+ <div class="meta">
789
+ <div>Session: ${escapeHtml(payload.session.id)}</div>
790
+ <div>Participants: ${payload.session.participants.map((p) => escapeHtml(p.slice(0, 20)) + "...").join(", ")}</div>
791
+ <div>Messages: ${meta.messageCount} | Time: ${new Date(meta.startTime).toLocaleString()} - ${new Date(meta.endTime).toLocaleString()}</div>
792
+ <div style="word-break: break-all;">Merkle Root: ${escapeHtml(meta.merkleRoot)}</div>
793
+ ${verifyResult.signatures && verifyResult.signatures.length > 0 ? `
794
+ <div style="margin-top: 8px; padding: 8px; background: ${theme === "dark" ? "#2a3f2a" : "#e8f5e9"}; border-radius: 4px;">
795
+ <div style="font-size: 11px; color: ${theme === "dark" ? "#81c784" : "#2e7d32"}; margin-bottom: 4px;">\u2713 Signature Verification (${verifyResult.signatures.length} signature${verifyResult.signatures.length > 1 ? "s" : ""})</div>
796
+ ${verifyResult.signatures.map(
797
+ (s, idx) => `
798
+ <div style="font-size: 10px; color: ${textColor}; margin-left: 8px;">
799
+ ${idx + 1}. ${s.address ? escapeHtml(s.address.slice(0, 20)) + "..." : "Unknown"}: ${s.valid ? '<span style="color: #4caf50;">\u2713 Valid</span>' : '<span style="color: #f44336;">\u2717 Invalid</span>'}
800
+ </div>
801
+ `
802
+ ).join("")}
803
+ </div>
804
+ ` : ""}
805
+ </div>
806
+ </div>
807
+ <div class="messages">
808
+ ${messagesHtml}
809
+ </div>
810
+ ${signatureHtml}
811
+ </body>
812
+ </html>`;
813
+ if (options.outputPath) {
814
+ const dir = path2.dirname(options.outputPath);
815
+ if (!fs2.existsSync(dir)) {
816
+ fs2.mkdirSync(dir, { recursive: true });
817
+ }
818
+ fs2.writeFileSync(options.outputPath, html, "utf-8");
819
+ return options.outputPath;
820
+ }
821
+ return html;
822
+ }
823
+ async function proof_message(account, messageId, network) {
824
+ const address = await Account.Instance().get_address(account);
825
+ if (!address) {
826
+ W_ERROR(WErrors.AccountNotFound, `proof_message.account ${account}`);
827
+ }
828
+ const messageStorage = new MessageStorage(address);
829
+ const message = messageStorage.getMessageById(messageId);
830
+ if (!message) {
831
+ throw new MessengerError(
832
+ MessengerErrorCode.INVALID_INPUT,
833
+ `Message not found: ${messageId}`
834
+ );
835
+ }
836
+ if (message.fromAddress.toLowerCase() !== address.toLowerCase() && message.toAddress.toLowerCase() !== address.toLowerCase()) {
837
+ throw new MessengerError(
838
+ MessengerErrorCode.INVALID_INPUT,
839
+ `Message does not belong to account ${address}`
840
+ );
841
+ }
842
+ if (!message.serverSignature) {
843
+ throw new MessengerError(
844
+ MessengerErrorCode.INVALID_PROOF,
845
+ `Message does not have server signature`
846
+ );
847
+ }
848
+ if (!message.serverPublicKey) {
849
+ throw new MessengerError(
850
+ MessengerErrorCode.INVALID_PROOF,
851
+ `Message does not have server public key`
852
+ );
853
+ }
854
+ if (!message.plaintext) {
855
+ throw new MessengerError(
856
+ MessengerErrorCode.INVALID_PROOF,
857
+ `Message does not have plaintext`
858
+ );
859
+ }
860
+ const { verifyMessage } = await import("./crypto.js");
861
+ const verifyParams = {
862
+ messageId: message.messageId,
863
+ plaintext: message.plaintext,
864
+ plaintextHash: message.plaintextHash,
865
+ createdAt: message.createdAt,
866
+ guardAddress: message.guardAddress,
867
+ passportAddress: message.passportAddress,
868
+ serverSignature: message.serverSignature,
869
+ serverPublicKey: message.serverPublicKey
870
+ };
871
+ if (message.newRoot && message.leafIndex !== void 0) {
872
+ if (!message.serverTimestamp) {
873
+ throw new MessengerError(
874
+ MessengerErrorCode.INVALID_PROOF,
875
+ `Message ${message.messageId} missing server timestamp for verification`
876
+ );
877
+ }
878
+ verifyParams.merkleMetadata = {
879
+ newRoot: message.newRoot,
880
+ prevRoot: message.prevRoot,
881
+ leafIndex: message.leafIndex,
882
+ serverTimestamp: message.serverTimestamp
883
+ // 必须使用服务器时间戳
884
+ // 注意:proofSiblings 和 proofIndices 从服务器拉取时不提供
885
+ // verifyMessage 会跳过 Merkle Proof 验证,只验证 Root 计算
886
+ };
887
+ }
888
+ const verifyResult = verifyMessage(verifyParams);
889
+ if (!verifyResult.valid) {
890
+ throw new MessengerError(
891
+ MessengerErrorCode.INVALID_PROOF,
892
+ `Message verification failed: ${verifyResult.error}`
893
+ );
894
+ }
895
+ if (!message.serverPublicKey) {
896
+ throw new MessengerError(
897
+ MessengerErrorCode.INVALID_PROOF,
898
+ `Message does not have server public key`
899
+ );
900
+ }
901
+ const { CallProof } = await import("../call/proof.js");
902
+ const callProof = new CallProof({
903
+ proof: message.newRoot,
904
+ // 证明root存在
905
+ server_pubkey: message.serverPublicKey,
906
+ server_signature: message.serverSignature,
907
+ proof_type: CHAIN_PROOF_TYPE,
908
+ // 消息证明类型
909
+ description: `Message proof for ${messageId}`,
910
+ item_count: message.leafIndex ?? 1,
911
+ about_address: message.fromAddress.toLowerCase() === address.toLowerCase() ? message.toAddress : message.fromAddress
912
+ });
913
+ const env = {
914
+ network,
915
+ account: address
916
+ };
917
+ const result = await callProof.call(env);
918
+ const { ResponseData: extractResponseData } = await import("../call/base.js");
919
+ const responseData = extractResponseData(result);
920
+ const proofResult = responseData.find((item) => item.type === "Proof");
921
+ if (!proofResult || !proofResult.object) {
922
+ throw new MessengerError(
923
+ MessengerErrorCode.INVALID_PROOF,
924
+ `Failed to get proof address from transaction result`
925
+ );
926
+ }
927
+ message.proof = proofResult.object;
928
+ messageStorage.saveMessage(message);
929
+ return { proofAddress: proofResult.object };
930
+ }
931
+ const MIN_PASSPORT_VALIDITY = 10;
932
+ const MAX_PASSPORT_VALIDITY = 10 * 365 * 24 * 60 * 60;
933
+ const MAX_BLACKLIST_SIZE_ONCE = 100;
934
+ const MAX_FRIENDS_SIZE_ONCE = 100;
935
+ const MAX_GUARDS_SIZE_ONCE = 10;
936
+ async function blacklist(request) {
937
+ const acc = await Account.Instance().get_address(request.account);
938
+ if (!acc) {
939
+ W_ERROR(
940
+ WErrors.AccountNotFound,
941
+ `blacklist.account ${request.account}`
942
+ );
943
+ }
944
+ const manager = getMessengerManager();
945
+ switch (request.op) {
946
+ case "add": {
947
+ let addresses = await GetManyAccountOrMark_Address(request.users);
948
+ if (addresses.length === 0) {
949
+ W_ERROR(
950
+ WErrors.InvalidParam,
951
+ `blacklist.add.users ${request.users} have not valid addresses`
952
+ );
953
+ }
954
+ addresses = [...new Set(addresses.map((a) => a.toLowerCase()))];
955
+ if (addresses.length > MAX_BLACKLIST_SIZE_ONCE) {
956
+ W_ERROR(
957
+ WErrors.InvalidParam,
958
+ `blacklist.add.users ${request.users} have too many addresses, max ${MAX_BLACKLIST_SIZE_ONCE}`
959
+ );
960
+ }
961
+ const result = await manager.addToBlacklist(acc, addresses);
962
+ return { op: "add", result };
963
+ }
964
+ case "remove": {
965
+ let addresses = await GetManyAccountOrMark_Address(request.users);
966
+ if (addresses.length === 0) {
967
+ W_ERROR(
968
+ WErrors.InvalidParam,
969
+ `blacklist.remove.users ${request.users} have not valid addresses`
970
+ );
971
+ }
972
+ addresses = [...new Set(addresses.map((a) => a.toLowerCase()))];
973
+ if (addresses.length > MAX_BLACKLIST_SIZE_ONCE) {
974
+ W_ERROR(
975
+ WErrors.InvalidParam,
976
+ `blacklist.remove.users ${request.users} have too many addresses, max ${MAX_BLACKLIST_SIZE_ONCE}`
977
+ );
978
+ }
979
+ const result = await manager.removeFromBlacklist(acc, addresses);
980
+ return { op: "remove", result };
981
+ }
982
+ case "clear": {
983
+ const result = await manager.clearBlacklist(acc);
984
+ return { op: "clear", result };
985
+ }
986
+ case "get": {
987
+ const result = await manager.getBlacklist(acc);
988
+ return { op: "get", result };
989
+ }
990
+ case "exist": {
991
+ let addresses = await GetManyAccountOrMark_Address(request.users);
992
+ if (addresses.length === 0) {
993
+ W_ERROR(
994
+ WErrors.InvalidParam,
995
+ `blacklist.exist.users ${request.users} have not valid addresses`
996
+ );
997
+ }
998
+ addresses = [...new Set(addresses.map((a) => a.toLowerCase()))];
999
+ if (addresses.length > MAX_BLACKLIST_SIZE_ONCE) {
1000
+ W_ERROR(
1001
+ WErrors.InvalidParam,
1002
+ `blacklist.exist.users ${request.users} have too many addresses, max ${MAX_BLACKLIST_SIZE_ONCE}`
1003
+ );
1004
+ }
1005
+ const result = await manager.existInBlacklist(acc, addresses);
1006
+ return { op: "exist", result };
1007
+ }
1008
+ default:
1009
+ throw new MessengerError(
1010
+ MessengerErrorCode.INVALID_INPUT,
1011
+ `blacklist.unknown op: ${request}`
1012
+ );
1013
+ }
1014
+ }
1015
+ async function friendslist(request) {
1016
+ const acc = await Account.Instance().get_address(request.account);
1017
+ if (!acc) {
1018
+ W_ERROR(
1019
+ WErrors.AccountNotFound,
1020
+ `friendslist.account ${request.account}`
1021
+ );
1022
+ }
1023
+ const manager = getMessengerManager();
1024
+ switch (request.op) {
1025
+ case "add": {
1026
+ let addresses = await GetManyAccountOrMark_Address(request.users);
1027
+ if (addresses.length === 0) {
1028
+ W_ERROR(
1029
+ WErrors.InvalidParam,
1030
+ `friendslist.add.users ${request.users} have not valid addresses`
1031
+ );
1032
+ }
1033
+ addresses = [...new Set(addresses.map((a) => a.toLowerCase()))];
1034
+ const result = await manager.addToFriendsList(acc, addresses);
1035
+ return { op: "add", result };
1036
+ }
1037
+ case "remove": {
1038
+ let addresses = await GetManyAccountOrMark_Address(request.users);
1039
+ if (addresses.length === 0) {
1040
+ W_ERROR(
1041
+ WErrors.InvalidParam,
1042
+ `friendslist.remove.users ${request.users} have not valid addresses`
1043
+ );
1044
+ }
1045
+ addresses = [...new Set(addresses.map((a) => a.toLowerCase()))];
1046
+ if (addresses.length > MAX_FRIENDS_SIZE_ONCE) {
1047
+ W_ERROR(
1048
+ WErrors.InvalidParam,
1049
+ `friendslist.remove.users ${request.users} have too many addresses, max ${MAX_FRIENDS_SIZE_ONCE}`
1050
+ );
1051
+ }
1052
+ const result = await manager.removeFromFriendsList(acc, addresses);
1053
+ return { op: "remove", result };
1054
+ }
1055
+ case "clear": {
1056
+ const result = await manager.clearFriendsList(acc);
1057
+ return { op: "clear", result };
1058
+ }
1059
+ case "get": {
1060
+ const result = await manager.getFriendsList(acc);
1061
+ return { op: "get", result };
1062
+ }
1063
+ case "exist": {
1064
+ let addresses = await GetManyAccountOrMark_Address(request.users);
1065
+ if (addresses.length === 0) {
1066
+ W_ERROR(
1067
+ WErrors.InvalidParam,
1068
+ `friendslist.exist.users ${request.users} have not valid addresses`
1069
+ );
1070
+ }
1071
+ addresses = [...new Set(addresses.map((a) => a.toLowerCase()))];
1072
+ if (addresses.length > MAX_FRIENDS_SIZE_ONCE) {
1073
+ W_ERROR(
1074
+ WErrors.InvalidParam,
1075
+ `friendslist.exist.users ${request.users} have too many addresses, max ${MAX_FRIENDS_SIZE_ONCE}`
1076
+ );
1077
+ }
1078
+ const result = await manager.existInFriendsList(acc, addresses);
1079
+ return { op: "exist", result };
1080
+ }
1081
+ default:
1082
+ throw new MessengerError(
1083
+ MessengerErrorCode.INVALID_INPUT,
1084
+ `friendslist.unknown op: ${request}`
1085
+ );
1086
+ }
1087
+ }
1088
+ async function guardlist(request) {
1089
+ const acc = await Account.Instance().get_address(request.account);
1090
+ if (!acc) {
1091
+ W_ERROR(
1092
+ WErrors.AccountNotFound,
1093
+ `guardlist.account ${request.account}`
1094
+ );
1095
+ }
1096
+ const manager = getMessengerManager();
1097
+ switch (request.op) {
1098
+ case "add": {
1099
+ const uniqueGuardsMap = /* @__PURE__ */ new Map();
1100
+ for (const g of request.guards) {
1101
+ uniqueGuardsMap.set(g.guard.toLowerCase(), g);
1102
+ }
1103
+ const guards = Array.from(uniqueGuardsMap.values());
1104
+ if (guards.length === 0) {
1105
+ W_ERROR(
1106
+ WErrors.InvalidParam,
1107
+ `guardlist.add.guards ${request.guards} have not valid guards`
1108
+ );
1109
+ }
1110
+ if (guards.length > MAX_GUARDS_SIZE_ONCE) {
1111
+ W_ERROR(
1112
+ WErrors.InvalidParam,
1113
+ `guardlist.add.guards ${request.guards} have too many guards, max ${MAX_GUARDS_SIZE_ONCE}`
1114
+ );
1115
+ }
1116
+ for (const g of guards) {
1117
+ if (!isValidU64(g.passportValiditySeconds) || g.passportValiditySeconds < MIN_PASSPORT_VALIDITY || g.passportValiditySeconds > MAX_PASSPORT_VALIDITY) {
1118
+ W_ERROR(
1119
+ WErrors.InvalidParam,
1120
+ `Guard ${g.guard}: passport validity ${g.passportValiditySeconds} must be between ${MIN_PASSPORT_VALIDITY} and ${MAX_PASSPORT_VALIDITY} seconds`
1121
+ );
1122
+ }
1123
+ }
1124
+ const addresses = await LocalMark.Instance().get_many_address(
1125
+ guards.map((g) => g.guard)
1126
+ );
1127
+ if (addresses.length !== guards.length) {
1128
+ const foundAddresses = new Set(addresses);
1129
+ const missingGuards = [];
1130
+ for (const g of guards) {
1131
+ if (!foundAddresses.has(g.guard) && !g.guard.startsWith("0x")) {
1132
+ missingGuards.push(g.guard);
1133
+ }
1134
+ }
1135
+ W_ERROR(
1136
+ WErrors.InvalidParam,
1137
+ `Guard not found: ${missingGuards.join(", ")}`
1138
+ );
1139
+ }
1140
+ const objs = await query_objects({
1141
+ objects: addresses,
1142
+ no_cache: false,
1143
+ network: manager.getConfig().network
1144
+ });
1145
+ if (!objs || !objs.objects || objs.objects.length === 0) {
1146
+ W_ERROR(
1147
+ WErrors.InvalidParam,
1148
+ `Guard not found: ${guards.map((g) => g.guard).join(", ")}`
1149
+ );
1150
+ }
1151
+ objs.objects.forEach((obj) => {
1152
+ if (obj.type !== "Guard") {
1153
+ W_ERROR(
1154
+ WErrors.InvalidParam,
1155
+ `Guard ${obj.object} is not a Guard`
1156
+ );
1157
+ }
1158
+ });
1159
+ const guardListItems = guards.map((g, index) => ({
1160
+ guardAddress: addresses[index],
1161
+ passportValiditySeconds: g.passportValiditySeconds
1162
+ }));
1163
+ const result = await manager.addToGuardList(acc, guardListItems);
1164
+ return { op: "add", result };
1165
+ }
1166
+ case "remove": {
1167
+ const guards = [
1168
+ ...new Set(request.guards.map((g) => g.toLowerCase()))
1169
+ ];
1170
+ if (guards.length === 0) {
1171
+ W_ERROR(
1172
+ WErrors.InvalidParam,
1173
+ `guardlist.remove.guards ${request.guards} have not valid guards`
1174
+ );
1175
+ }
1176
+ if (guards.length > MAX_GUARDS_SIZE_ONCE) {
1177
+ W_ERROR(
1178
+ WErrors.InvalidParam,
1179
+ `guardlist.remove.guards ${request.guards} have too many guards, max ${MAX_GUARDS_SIZE_ONCE}`
1180
+ );
1181
+ }
1182
+ const addresses = await LocalMark.Instance().get_many_address(guards);
1183
+ if (addresses.length !== guards.length) {
1184
+ const foundAddresses = new Set(addresses);
1185
+ const missingGuards = [];
1186
+ for (const g of guards) {
1187
+ if (!foundAddresses.has(g) && !g.startsWith("0x")) {
1188
+ missingGuards.push(g);
1189
+ }
1190
+ }
1191
+ W_ERROR(
1192
+ WErrors.InvalidParam,
1193
+ `Guard not found: ${missingGuards.join(", ")}`
1194
+ );
1195
+ }
1196
+ const result = await manager.removeFromGuardList(
1197
+ acc,
1198
+ addresses
1199
+ );
1200
+ return { op: "remove", result };
1201
+ }
1202
+ case "get": {
1203
+ const result = await manager.getGuardList(acc);
1204
+ return { op: "get", result };
1205
+ }
1206
+ default:
1207
+ throw new MessengerError(
1208
+ MessengerErrorCode.INVALID_INPUT,
1209
+ `guardlist.unknown op: ${request}`
1210
+ );
1211
+ }
1212
+ }
1213
+ export {
1214
+ blacklist,
1215
+ extract_zip_messages,
1216
+ friendslist,
1217
+ generate_wts,
1218
+ getMessengerManager,
1219
+ guardlist,
1220
+ proof_message,
1221
+ send_file,
1222
+ send_message,
1223
+ sign_wts,
1224
+ verify_wts,
1225
+ watch_conversations,
1226
+ watch_messages,
1227
+ wts2html
1228
+ };