wowok 2.1.9 → 2.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (887) hide show
  1. package/NOTICE +46 -0
  2. package/dist/cjs/bcs/bcs.d.ts +199 -199
  3. package/dist/cjs/bcs/bcs.js +273 -318
  4. package/dist/cjs/bcs/bcs.js.map +1 -0
  5. package/dist/cjs/bcs/effects.d.ts +109 -109
  6. package/dist/cjs/bcs/effects.js +205 -230
  7. package/dist/cjs/bcs/effects.js.map +1 -0
  8. package/dist/cjs/bcs/index.d.ts +1 -2584
  9. package/dist/cjs/bcs/index.js +61 -76
  10. package/dist/cjs/bcs/index.js.map +1 -0
  11. package/dist/cjs/bcs/pure.js +38 -58
  12. package/dist/cjs/bcs/pure.js.map +1 -0
  13. package/dist/cjs/bcs/type-tag-serializer.js +102 -114
  14. package/dist/cjs/bcs/type-tag-serializer.js.map +1 -0
  15. package/dist/cjs/bcs/types.js +6 -23
  16. package/dist/cjs/bcs/types.js.map +1 -0
  17. package/dist/cjs/client/index.js +17 -33
  18. package/dist/cjs/client/index.js.map +1 -0
  19. package/dist/cjs/client/network.js +25 -40
  20. package/dist/cjs/client/network.js.map +1 -0
  21. package/dist/cjs/cryptography/index.js +29 -45
  22. package/dist/cjs/cryptography/index.js.map +1 -0
  23. package/dist/cjs/cryptography/intent.d.ts +1 -1
  24. package/dist/cjs/cryptography/intent.js +20 -31
  25. package/dist/cjs/cryptography/intent.js.map +1 -0
  26. package/dist/cjs/cryptography/keypair.js +102 -116
  27. package/dist/cjs/cryptography/keypair.js.map +1 -0
  28. package/dist/cjs/cryptography/mnemonics.js +43 -41
  29. package/dist/cjs/cryptography/mnemonics.js.map +1 -0
  30. package/dist/cjs/cryptography/publickey.js +112 -134
  31. package/dist/cjs/cryptography/publickey.js.map +1 -0
  32. package/dist/cjs/cryptography/signature-scheme.js +24 -43
  33. package/dist/cjs/cryptography/signature-scheme.js.map +1 -0
  34. package/dist/cjs/cryptography/signature.d.ts +2 -24
  35. package/dist/cjs/cryptography/signature.js +50 -67
  36. package/dist/cjs/cryptography/signature.js.map +1 -0
  37. package/dist/cjs/experimental/cache.js +65 -0
  38. package/dist/cjs/experimental/cache.js.map +1 -0
  39. package/dist/cjs/experimental/client.js +27 -0
  40. package/dist/cjs/experimental/client.js.map +1 -0
  41. package/dist/cjs/experimental/core.js +89 -0
  42. package/dist/cjs/experimental/core.js.map +1 -0
  43. package/dist/cjs/experimental/errors.js +32 -0
  44. package/dist/cjs/experimental/errors.js.map +1 -0
  45. package/dist/cjs/experimental/index.js +15 -0
  46. package/dist/cjs/experimental/index.js.map +1 -0
  47. package/dist/cjs/experimental/persistent-storage.js +343 -0
  48. package/dist/cjs/experimental/persistent-storage.js.map +1 -0
  49. package/dist/cjs/experimental/persistent-storage.test.js +200 -0
  50. package/dist/cjs/experimental/persistent-storage.test.js.map +1 -0
  51. package/dist/cjs/experimental/transports/utils.js +104 -0
  52. package/dist/cjs/experimental/transports/utils.js.map +1 -0
  53. package/dist/cjs/experimental/types.js +6 -0
  54. package/dist/cjs/experimental/types.js.map +1 -0
  55. package/dist/cjs/faucet/faucet.js +106 -124
  56. package/dist/cjs/faucet/faucet.js.map +1 -0
  57. package/dist/cjs/faucet/index.js +12 -28
  58. package/dist/cjs/faucet/index.js.map +1 -0
  59. package/dist/cjs/grpc/client.js +47 -62
  60. package/dist/cjs/grpc/client.js.map +1 -0
  61. package/dist/cjs/grpc/core.js +580 -617
  62. package/dist/cjs/grpc/core.js.map +1 -0
  63. package/dist/cjs/grpc/index.js +9 -25
  64. package/dist/cjs/grpc/index.js.map +1 -0
  65. package/dist/cjs/grpc/proto/google/protobuf/any.js +168 -135
  66. package/dist/cjs/grpc/proto/google/protobuf/any.js.map +1 -0
  67. package/dist/cjs/grpc/proto/google/protobuf/duration.js +105 -90
  68. package/dist/cjs/grpc/proto/google/protobuf/duration.js.map +1 -0
  69. package/dist/cjs/grpc/proto/google/protobuf/empty.js +50 -28
  70. package/dist/cjs/grpc/proto/google/protobuf/empty.js.map +1 -0
  71. package/dist/cjs/grpc/proto/google/protobuf/field_mask.js +96 -75
  72. package/dist/cjs/grpc/proto/google/protobuf/field_mask.js.map +1 -0
  73. package/dist/cjs/grpc/proto/google/protobuf/struct.js +266 -215
  74. package/dist/cjs/grpc/proto/google/protobuf/struct.js.map +1 -0
  75. package/dist/cjs/grpc/proto/google/protobuf/timestamp.js +150 -131
  76. package/dist/cjs/grpc/proto/google/protobuf/timestamp.js.map +1 -0
  77. package/dist/cjs/grpc/proto/google/rpc/error_details.js +331 -302
  78. package/dist/cjs/grpc/proto/google/rpc/error_details.js.map +1 -0
  79. package/dist/cjs/grpc/proto/google/rpc/status.js +50 -50
  80. package/dist/cjs/grpc/proto/google/rpc/status.js.map +1 -0
  81. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js +84 -68
  82. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js.map +1 -0
  83. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js +45 -50
  84. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js.map +1 -0
  85. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js +38 -43
  86. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js.map +1 -0
  87. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js +70 -75
  88. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js.map +1 -0
  89. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js +79 -81
  90. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js.map +1 -0
  91. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js +183 -166
  92. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js.map +1 -0
  93. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js +369 -296
  94. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js.map +1 -0
  95. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js +80 -85
  96. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js.map +1 -0
  97. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js +31 -28
  98. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js.map +1 -0
  99. package/dist/cjs/grpc/proto/sui/rpc/v2/event.js +81 -83
  100. package/dist/cjs/grpc/proto/sui/rpc/v2/event.js.map +1 -0
  101. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js +80 -85
  102. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js.map +1 -0
  103. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js +876 -506
  104. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js.map +1 -0
  105. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js +56 -61
  106. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js.map +1 -0
  107. package/dist/cjs/grpc/proto/sui/rpc/v2/input.js +103 -83
  108. package/dist/cjs/grpc/proto/sui/rpc/v2/input.js.map +1 -0
  109. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js +76 -78
  110. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js.map +1 -0
  111. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js +69 -119
  112. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js.map +1 -0
  113. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js +392 -350
  114. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js.map +1 -0
  115. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js +599 -473
  116. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js.map +1 -0
  117. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js +46 -78
  118. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js.map +1 -0
  119. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js +242 -224
  120. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js.map +1 -0
  121. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js +32 -52
  122. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js.map +1 -0
  123. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js +139 -134
  124. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js.map +1 -0
  125. package/dist/cjs/grpc/proto/sui/rpc/v2/object.js +109 -111
  126. package/dist/cjs/grpc/proto/sui/rpc/v2/object.js.map +1 -0
  127. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js +46 -51
  128. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js.map +1 -0
  129. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js +76 -61
  130. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js.map +1 -0
  131. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js +46 -59
  132. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js.map +1 -0
  133. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js +568 -522
  134. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js.map +1 -0
  135. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js +54 -32
  136. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js.map +1 -0
  137. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +27 -47
  138. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js.map +1 -0
  139. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js +83 -86
  140. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js.map +1 -0
  141. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js +53 -85
  142. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js.map +1 -0
  143. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js +645 -529
  144. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js.map +1 -0
  145. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js +37 -51
  146. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js.map +1 -0
  147. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js +58 -61
  148. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js.map +1 -0
  149. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js +749 -730
  150. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js.map +1 -0
  151. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js +1218 -975
  152. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js.map +1 -0
  153. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +32 -46
  154. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js.map +1 -0
  155. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js +186 -167
  156. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js.map +1 -0
  157. package/dist/cjs/index.js +96 -91
  158. package/dist/cjs/index.js.map +1 -0
  159. package/dist/cjs/jsonRpc/client.js +654 -743
  160. package/dist/cjs/jsonRpc/client.js.map +1 -0
  161. package/dist/cjs/jsonRpc/core.d.ts +7 -7
  162. package/dist/cjs/jsonRpc/core.js +562 -606
  163. package/dist/cjs/jsonRpc/core.js.map +1 -0
  164. package/dist/cjs/jsonRpc/errors.js +38 -56
  165. package/dist/cjs/jsonRpc/errors.js.map +1 -0
  166. package/dist/cjs/jsonRpc/http-transport.js +70 -114
  167. package/dist/cjs/jsonRpc/http-transport.js.map +1 -0
  168. package/dist/cjs/jsonRpc/index.js +14 -30
  169. package/dist/cjs/jsonRpc/index.js.map +1 -0
  170. package/dist/cjs/jsonRpc/json-rpc-resolver.js +286 -290
  171. package/dist/cjs/jsonRpc/json-rpc-resolver.js.map +1 -0
  172. package/dist/cjs/jsonRpc/rpc-websocket-client.js +150 -207
  173. package/dist/cjs/jsonRpc/rpc-websocket-client.js.map +1 -0
  174. package/dist/cjs/jsonRpc/types/chain.js +4 -15
  175. package/dist/cjs/jsonRpc/types/chain.js.map +1 -0
  176. package/dist/cjs/jsonRpc/types/changes.js +4 -15
  177. package/dist/cjs/jsonRpc/types/changes.js.map +1 -0
  178. package/dist/cjs/jsonRpc/types/coins.js +4 -15
  179. package/dist/cjs/jsonRpc/types/coins.js.map +1 -0
  180. package/dist/cjs/jsonRpc/types/common.js +4 -15
  181. package/dist/cjs/jsonRpc/types/common.js.map +1 -0
  182. package/dist/cjs/jsonRpc/types/generated.d.ts +1 -1
  183. package/dist/cjs/jsonRpc/types/generated.js +4 -15
  184. package/dist/cjs/jsonRpc/types/generated.js.map +1 -0
  185. package/dist/cjs/jsonRpc/types/index.js +4 -15
  186. package/dist/cjs/jsonRpc/types/index.js.map +1 -0
  187. package/dist/cjs/jsonRpc/types/params.js +4 -15
  188. package/dist/cjs/jsonRpc/types/params.js.map +1 -0
  189. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js +54 -69
  190. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js.map +1 -0
  191. package/dist/cjs/keypairs/ed25519/index.js +10 -26
  192. package/dist/cjs/keypairs/ed25519/index.js.map +1 -0
  193. package/dist/cjs/keypairs/ed25519/keypair.js +134 -159
  194. package/dist/cjs/keypairs/ed25519/keypair.js.map +1 -0
  195. package/dist/cjs/keypairs/ed25519/publickey.js +70 -84
  196. package/dist/cjs/keypairs/ed25519/publickey.js.map +1 -0
  197. package/dist/cjs/keypairs/index.js +21 -19
  198. package/dist/cjs/keypairs/index.js.map +1 -0
  199. package/dist/cjs/keypairs/passkey/index.js +11 -27
  200. package/dist/cjs/keypairs/passkey/index.js.map +1 -0
  201. package/dist/cjs/keypairs/passkey/keypair.js +245 -256
  202. package/dist/cjs/keypairs/passkey/keypair.js.map +1 -0
  203. package/dist/cjs/keypairs/passkey/publickey.js +163 -162
  204. package/dist/cjs/keypairs/passkey/publickey.js.map +1 -0
  205. package/dist/cjs/keypairs/passkey/types.js +4 -15
  206. package/dist/cjs/keypairs/passkey/types.js.map +1 -0
  207. package/dist/cjs/keypairs/secp256k1/index.js +10 -26
  208. package/dist/cjs/keypairs/secp256k1/index.js.map +1 -0
  209. package/dist/cjs/keypairs/secp256k1/keypair.js +129 -151
  210. package/dist/cjs/keypairs/secp256k1/keypair.js.map +1 -0
  211. package/dist/cjs/keypairs/secp256k1/publickey.js +71 -89
  212. package/dist/cjs/keypairs/secp256k1/publickey.js.map +1 -0
  213. package/dist/cjs/keypairs/secp256r1/index.js +10 -26
  214. package/dist/cjs/keypairs/secp256r1/index.js.map +1 -0
  215. package/dist/cjs/keypairs/secp256r1/keypair.js +127 -148
  216. package/dist/cjs/keypairs/secp256r1/keypair.js.map +1 -0
  217. package/dist/cjs/keypairs/secp256r1/publickey.js +72 -90
  218. package/dist/cjs/keypairs/secp256r1/publickey.js.map +1 -0
  219. package/dist/cjs/multisig/index.js +10 -26
  220. package/dist/cjs/multisig/index.js.map +1 -0
  221. package/dist/cjs/multisig/publickey.d.ts +1 -1
  222. package/dist/cjs/multisig/publickey.js +228 -276
  223. package/dist/cjs/multisig/publickey.js.map +1 -0
  224. package/dist/cjs/multisig/signer.js +62 -110
  225. package/dist/cjs/multisig/signer.js.map +1 -0
  226. package/dist/cjs/transactions/Arguments.d.ts +4 -4
  227. package/dist/cjs/transactions/Arguments.js +13 -34
  228. package/dist/cjs/transactions/Arguments.js.map +1 -0
  229. package/dist/cjs/transactions/Commands.js +111 -141
  230. package/dist/cjs/transactions/Commands.js.map +1 -0
  231. package/dist/cjs/transactions/Inputs.js +53 -82
  232. package/dist/cjs/transactions/Inputs.js.map +1 -0
  233. package/dist/cjs/transactions/ObjectCache.d.ts +8 -8
  234. package/dist/cjs/transactions/ObjectCache.js +204 -241
  235. package/dist/cjs/transactions/ObjectCache.js.map +1 -0
  236. package/dist/cjs/transactions/Transaction.d.ts +31 -31
  237. package/dist/cjs/transactions/Transaction.js +628 -719
  238. package/dist/cjs/transactions/Transaction.js.map +1 -0
  239. package/dist/cjs/transactions/TransactionData.d.ts +9 -9
  240. package/dist/cjs/transactions/TransactionData.js +396 -440
  241. package/dist/cjs/transactions/TransactionData.js.map +1 -0
  242. package/dist/cjs/transactions/__tests__/Transaction.test.js +169 -0
  243. package/dist/cjs/transactions/__tests__/Transaction.test.js.map +1 -0
  244. package/dist/cjs/transactions/__tests__/bcs.test.js +202 -0
  245. package/dist/cjs/transactions/__tests__/bcs.test.js.map +1 -0
  246. package/dist/cjs/transactions/data/internal.js +166 -207
  247. package/dist/cjs/transactions/data/internal.js.map +1 -0
  248. package/dist/cjs/transactions/data/v1.js +436 -495
  249. package/dist/cjs/transactions/data/v1.js.map +1 -0
  250. package/dist/cjs/transactions/data/v2.d.ts +5 -5
  251. package/dist/cjs/transactions/data/v2.js +94 -107
  252. package/dist/cjs/transactions/data/v2.js.map +1 -0
  253. package/dist/cjs/transactions/executor/caching.js +71 -113
  254. package/dist/cjs/transactions/executor/caching.js.map +1 -0
  255. package/dist/cjs/transactions/executor/parallel.js +339 -378
  256. package/dist/cjs/transactions/executor/parallel.js.map +1 -0
  257. package/dist/cjs/transactions/executor/queue.js +60 -80
  258. package/dist/cjs/transactions/executor/queue.js.map +1 -0
  259. package/dist/cjs/transactions/executor/serial.d.ts +4 -4
  260. package/dist/cjs/transactions/executor/serial.js +102 -131
  261. package/dist/cjs/transactions/executor/serial.js.map +1 -0
  262. package/dist/cjs/transactions/hash.js +17 -28
  263. package/dist/cjs/transactions/hash.js.map +1 -0
  264. package/dist/cjs/transactions/index.js +33 -49
  265. package/dist/cjs/transactions/index.js.map +1 -0
  266. package/dist/cjs/transactions/intents/CoinWithBalance.js +137 -191
  267. package/dist/cjs/transactions/intents/CoinWithBalance.js.map +1 -0
  268. package/dist/cjs/transactions/object.js +88 -111
  269. package/dist/cjs/transactions/object.js.map +1 -0
  270. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js +20 -32
  271. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js.map +1 -0
  272. package/dist/cjs/transactions/pure.js +38 -60
  273. package/dist/cjs/transactions/pure.js.map +1 -0
  274. package/dist/cjs/transactions/resolve.js +62 -88
  275. package/dist/cjs/transactions/resolve.js.map +1 -0
  276. package/dist/cjs/transactions/serializer.js +150 -163
  277. package/dist/cjs/transactions/serializer.js.map +1 -0
  278. package/dist/cjs/transactions/utils.d.ts +1 -1
  279. package/dist/cjs/transactions/utils.js +114 -125
  280. package/dist/cjs/transactions/utils.js.map +1 -0
  281. package/dist/cjs/utils/constants.js +29 -56
  282. package/dist/cjs/utils/constants.js.map +1 -0
  283. package/dist/cjs/utils/derived-objects.js +14 -30
  284. package/dist/cjs/utils/derived-objects.js.map +1 -0
  285. package/dist/cjs/utils/dynamic-fields.js +20 -37
  286. package/dist/cjs/utils/dynamic-fields.js.map +1 -0
  287. package/dist/cjs/utils/format.js +14 -30
  288. package/dist/cjs/utils/format.js.map +1 -0
  289. package/dist/cjs/utils/index.js +50 -64
  290. package/dist/cjs/utils/index.js.map +1 -0
  291. package/dist/cjs/utils/move-registry.js +37 -35
  292. package/dist/cjs/utils/move-registry.js.map +1 -0
  293. package/dist/cjs/utils/sui-types.js +74 -68
  294. package/dist/cjs/utils/sui-types.js.map +1 -0
  295. package/dist/cjs/utils/suins.js +30 -46
  296. package/dist/cjs/utils/suins.js.map +1 -0
  297. package/dist/cjs/verify/index.js +12 -27
  298. package/dist/cjs/verify/index.js.map +1 -0
  299. package/dist/cjs/verify/verify.js +83 -110
  300. package/dist/cjs/verify/verify.js.map +1 -0
  301. package/dist/cjs/version.js +8 -25
  302. package/dist/cjs/version.js.map +1 -0
  303. package/dist/cjs/w/call/allocation.js +323 -413
  304. package/dist/cjs/w/call/allocation.js.map +1 -0
  305. package/dist/cjs/w/call/arb.js +105 -136
  306. package/dist/cjs/w/call/arb.js.map +1 -0
  307. package/dist/cjs/w/call/arbitration.js +1206 -1581
  308. package/dist/cjs/w/call/arbitration.js.map +1 -0
  309. package/dist/cjs/w/call/base.js +303 -333
  310. package/dist/cjs/w/call/base.js.map +1 -0
  311. package/dist/cjs/w/call/contact.js +335 -452
  312. package/dist/cjs/w/call/contact.js.map +1 -0
  313. package/dist/cjs/w/call/demand.js +690 -844
  314. package/dist/cjs/w/call/demand.js.map +1 -0
  315. package/dist/cjs/w/call/entity.js +167 -201
  316. package/dist/cjs/w/call/entity.js.map +1 -0
  317. package/dist/cjs/w/call/guard-ins.d.ts +1 -0
  318. package/dist/cjs/w/call/guard-ins.js +4376 -4384
  319. package/dist/cjs/w/call/guard-ins.js.map +1 -0
  320. package/dist/cjs/w/call/guard.d.ts +10 -0
  321. package/dist/cjs/w/call/guard.js +1078 -1119
  322. package/dist/cjs/w/call/guard.js.map +1 -0
  323. package/dist/cjs/w/call/index.d.ts +1 -1
  324. package/dist/cjs/w/call/index.js +69 -69
  325. package/dist/cjs/w/call/index.js.map +1 -0
  326. package/dist/cjs/w/call/machine.js +1105 -1419
  327. package/dist/cjs/w/call/machine.js.map +1 -0
  328. package/dist/cjs/w/call/order.js +314 -454
  329. package/dist/cjs/w/call/order.js.map +1 -0
  330. package/dist/cjs/w/call/passport.js +214 -253
  331. package/dist/cjs/w/call/passport.js.map +1 -0
  332. package/dist/cjs/w/call/payment.js +187 -224
  333. package/dist/cjs/w/call/payment.js.map +1 -0
  334. package/dist/cjs/w/call/permission.js +1183 -1294
  335. package/dist/cjs/w/call/permission.js.map +1 -0
  336. package/dist/cjs/w/call/personal.js +132 -170
  337. package/dist/cjs/w/call/personal.js.map +1 -0
  338. package/dist/cjs/w/call/progress.js +634 -794
  339. package/dist/cjs/w/call/progress.js.map +1 -0
  340. package/dist/cjs/w/call/proof.js +67 -116
  341. package/dist/cjs/w/call/proof.js.map +1 -0
  342. package/dist/cjs/w/call/repository.js +1037 -1251
  343. package/dist/cjs/w/call/repository.js.map +1 -0
  344. package/dist/cjs/w/call/resource.js +111 -131
  345. package/dist/cjs/w/call/resource.js.map +1 -0
  346. package/dist/cjs/w/call/reward.js +675 -853
  347. package/dist/cjs/w/call/reward.js.map +1 -0
  348. package/dist/cjs/w/call/service.js +1879 -2385
  349. package/dist/cjs/w/call/service.js.map +1 -0
  350. package/dist/cjs/w/call/treasury.js +841 -1138
  351. package/dist/cjs/w/call/treasury.js.map +1 -0
  352. package/dist/cjs/w/call/util.js +593 -624
  353. package/dist/cjs/w/call/util.js.map +1 -0
  354. package/dist/cjs/w/common.d.ts +1 -1
  355. package/dist/cjs/w/common.js +548 -518
  356. package/dist/cjs/w/common.js.map +1 -0
  357. package/dist/cjs/w/exception.js +574 -584
  358. package/dist/cjs/w/exception.js.map +1 -0
  359. package/dist/cjs/w/index.js +26 -23
  360. package/dist/cjs/w/index.js.map +1 -0
  361. package/dist/cjs/w/local/account.js +664 -741
  362. package/dist/cjs/w/local/account.js.map +1 -0
  363. package/dist/cjs/w/local/cache.js +180 -166
  364. package/dist/cjs/w/local/cache.js.map +1 -0
  365. package/dist/cjs/w/local/config.js +51 -80
  366. package/dist/cjs/w/local/config.js.map +1 -0
  367. package/dist/cjs/w/local/index.js +225 -290
  368. package/dist/cjs/w/local/index.js.map +1 -0
  369. package/dist/cjs/w/local/local.d.ts +2 -2
  370. package/dist/cjs/w/local/local.js +638 -646
  371. package/dist/cjs/w/local/local.js.map +1 -0
  372. package/dist/cjs/w/local/storage.js +210 -164
  373. package/dist/cjs/w/local/storage.js.map +1 -0
  374. package/dist/cjs/w/local/token.js +158 -175
  375. package/dist/cjs/w/local/token.js.map +1 -0
  376. package/dist/cjs/w/local/util.js +80 -51
  377. package/dist/cjs/w/local/util.js.map +1 -0
  378. package/dist/cjs/w/local/wip.js +1078 -802
  379. package/dist/cjs/w/local/wip.js.map +1 -0
  380. package/dist/cjs/w/messenger/crypto.js +496 -389
  381. package/dist/cjs/w/messenger/crypto.js.map +1 -0
  382. package/dist/cjs/w/messenger/index.js +53 -35
  383. package/dist/cjs/w/messenger/index.js.map +1 -0
  384. package/dist/cjs/w/messenger/messenger-api.js +1159 -1035
  385. package/dist/cjs/w/messenger/messenger-api.js.map +1 -0
  386. package/dist/cjs/w/messenger/messenger-manager.js +954 -1083
  387. package/dist/cjs/w/messenger/messenger-manager.js.map +1 -0
  388. package/dist/cjs/w/messenger/messenger.d.ts +1 -1
  389. package/dist/cjs/w/messenger/messenger.js +1304 -1450
  390. package/dist/cjs/w/messenger/messenger.js.map +1 -0
  391. package/dist/cjs/w/messenger/server.js +390 -512
  392. package/dist/cjs/w/messenger/server.js.map +1 -0
  393. package/dist/cjs/w/messenger/session.js +399 -403
  394. package/dist/cjs/w/messenger/session.js.map +1 -0
  395. package/dist/cjs/w/messenger/storage.js +881 -777
  396. package/dist/cjs/w/messenger/storage.js.map +1 -0
  397. package/dist/cjs/w/messenger/types.d.ts +2 -2
  398. package/dist/cjs/w/messenger/types.js +83 -103
  399. package/dist/cjs/w/messenger/types.js.map +1 -0
  400. package/dist/cjs/w/messenger/utils.js +29 -34
  401. package/dist/cjs/w/messenger/utils.js.map +1 -0
  402. package/dist/cjs/w/query/bult-in.js +101 -110
  403. package/dist/cjs/w/query/bult-in.js.map +1 -0
  404. package/dist/cjs/w/query/event.js +134 -146
  405. package/dist/cjs/w/query/event.js.map +1 -0
  406. package/dist/cjs/w/query/index.js +22 -20
  407. package/dist/cjs/w/query/index.js.map +1 -0
  408. package/dist/cjs/w/query/object.js +1576 -1576
  409. package/dist/cjs/w/query/object.js.map +1 -0
  410. package/dist/cjs/w/query/received.js +66 -88
  411. package/dist/cjs/w/query/received.js.map +1 -0
  412. package/dist/cjs/w/query/util.js +53 -77
  413. package/dist/cjs/w/query/util.js.map +1 -0
  414. package/dist/cjs/w/util.js +589 -675
  415. package/dist/cjs/w/util.js.map +1 -0
  416. package/dist/esm/bcs/bcs.d.ts +199 -199
  417. package/dist/esm/bcs/bcs.js +269 -310
  418. package/dist/esm/bcs/bcs.js.map +1 -0
  419. package/dist/esm/bcs/effects.d.ts +109 -109
  420. package/dist/esm/bcs/effects.js +171 -179
  421. package/dist/esm/bcs/effects.js.map +1 -0
  422. package/dist/esm/bcs/index.d.ts +1 -2584
  423. package/dist/esm/bcs/index.js +51 -94
  424. package/dist/esm/bcs/index.js.map +1 -0
  425. package/dist/esm/bcs/pure.js +35 -38
  426. package/dist/esm/bcs/pure.js.map +1 -0
  427. package/dist/esm/bcs/type-tag-serializer.js +98 -95
  428. package/dist/esm/bcs/type-tag-serializer.js.map +1 -0
  429. package/dist/esm/bcs/types.js +5 -5
  430. package/dist/esm/bcs/types.js.map +1 -0
  431. package/dist/esm/client/index.js +7 -23
  432. package/dist/esm/client/index.js.map +1 -0
  433. package/dist/esm/client/network.js +23 -22
  434. package/dist/esm/client/network.js.map +1 -0
  435. package/dist/esm/cryptography/index.js +9 -46
  436. package/dist/esm/cryptography/index.js.map +1 -0
  437. package/dist/esm/cryptography/intent.d.ts +1 -1
  438. package/dist/esm/cryptography/intent.js +18 -12
  439. package/dist/esm/cryptography/intent.js.map +1 -0
  440. package/dist/esm/cryptography/keypair.js +95 -99
  441. package/dist/esm/cryptography/keypair.js.map +1 -0
  442. package/dist/esm/cryptography/mnemonics.js +40 -24
  443. package/dist/esm/cryptography/mnemonics.js.map +1 -0
  444. package/dist/esm/cryptography/publickey.js +104 -115
  445. package/dist/esm/cryptography/publickey.js.map +1 -0
  446. package/dist/esm/cryptography/signature-scheme.js +22 -24
  447. package/dist/esm/cryptography/signature-scheme.js.map +1 -0
  448. package/dist/esm/cryptography/signature.d.ts +2 -24
  449. package/dist/esm/cryptography/signature.js +44 -48
  450. package/dist/esm/cryptography/signature.js.map +1 -0
  451. package/dist/esm/experimental/cache.js +61 -0
  452. package/dist/esm/experimental/cache.js.map +1 -0
  453. package/dist/esm/experimental/client.js +23 -0
  454. package/dist/esm/experimental/client.js.map +1 -0
  455. package/dist/esm/experimental/core.js +85 -0
  456. package/dist/esm/experimental/core.js.map +1 -0
  457. package/dist/esm/experimental/errors.js +27 -0
  458. package/dist/esm/experimental/errors.js.map +1 -0
  459. package/dist/esm/experimental/index.js +8 -0
  460. package/dist/esm/experimental/index.js.map +1 -0
  461. package/dist/esm/experimental/persistent-storage.js +337 -0
  462. package/dist/esm/experimental/persistent-storage.js.map +1 -0
  463. package/dist/esm/experimental/persistent-storage.test.js +198 -0
  464. package/dist/esm/experimental/persistent-storage.test.js.map +1 -0
  465. package/dist/esm/experimental/transports/utils.js +100 -0
  466. package/dist/esm/experimental/transports/utils.js.map +1 -0
  467. package/dist/esm/experimental/types.js +5 -0
  468. package/dist/esm/experimental/types.js.map +1 -0
  469. package/dist/esm/faucet/faucet.js +104 -111
  470. package/dist/esm/faucet/faucet.js.map +1 -0
  471. package/dist/esm/faucet/index.js +4 -16
  472. package/dist/esm/faucet/index.js.map +1 -0
  473. package/dist/esm/grpc/client.js +34 -34
  474. package/dist/esm/grpc/client.js.map +1 -0
  475. package/dist/esm/grpc/core.js +570 -601
  476. package/dist/esm/grpc/core.js.map +1 -0
  477. package/dist/esm/grpc/index.js +5 -6
  478. package/dist/esm/grpc/index.js.map +1 -0
  479. package/dist/esm/grpc/proto/google/protobuf/any.js +161 -111
  480. package/dist/esm/grpc/proto/google/protobuf/any.js.map +1 -0
  481. package/dist/esm/grpc/proto/google/protobuf/duration.js +99 -67
  482. package/dist/esm/grpc/proto/google/protobuf/duration.js.map +1 -0
  483. package/dist/esm/grpc/proto/google/protobuf/empty.js +46 -7
  484. package/dist/esm/grpc/proto/google/protobuf/empty.js.map +1 -0
  485. package/dist/esm/grpc/proto/google/protobuf/field_mask.js +90 -52
  486. package/dist/esm/grpc/proto/google/protobuf/field_mask.js.map +1 -0
  487. package/dist/esm/grpc/proto/google/protobuf/struct.js +258 -190
  488. package/dist/esm/grpc/proto/google/protobuf/struct.js.map +1 -0
  489. package/dist/esm/grpc/proto/google/protobuf/timestamp.js +144 -108
  490. package/dist/esm/grpc/proto/google/protobuf/timestamp.js.map +1 -0
  491. package/dist/esm/grpc/proto/google/rpc/error_details.js +313 -267
  492. package/dist/esm/grpc/proto/google/rpc/error_details.js.map +1 -0
  493. package/dist/esm/grpc/proto/google/rpc/status.js +45 -28
  494. package/dist/esm/grpc/proto/google/rpc/status.js.map +1 -0
  495. package/dist/esm/grpc/proto/sui/rpc/v2/argument.js +80 -47
  496. package/dist/esm/grpc/proto/sui/rpc/v2/argument.js.map +1 -0
  497. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js +41 -29
  498. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js.map +1 -0
  499. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js +34 -22
  500. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js.map +1 -0
  501. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js +61 -49
  502. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js.map +1 -0
  503. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js +72 -57
  504. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js.map +1 -0
  505. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js +173 -139
  506. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js.map +1 -0
  507. package/dist/esm/grpc/proto/sui/rpc/v2/effects.js +358 -268
  508. package/dist/esm/grpc/proto/sui/rpc/v2/effects.js.map +1 -0
  509. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js +72 -60
  510. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js.map +1 -0
  511. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js +29 -9
  512. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js.map +1 -0
  513. package/dist/esm/grpc/proto/sui/rpc/v2/event.js +74 -59
  514. package/dist/esm/grpc/proto/sui/rpc/v2/event.js.map +1 -0
  515. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js +69 -57
  516. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js.map +1 -0
  517. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js +861 -474
  518. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js.map +1 -0
  519. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js +52 -40
  520. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js.map +1 -0
  521. package/dist/esm/grpc/proto/sui/rpc/v2/input.js +98 -61
  522. package/dist/esm/grpc/proto/sui/rpc/v2/input.js.map +1 -0
  523. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js +71 -56
  524. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js.map +1 -0
  525. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js +65 -100
  526. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js.map +1 -0
  527. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js +365 -306
  528. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js.map +1 -0
  529. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js +585 -442
  530. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js.map +1 -0
  531. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js +42 -59
  532. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js.map +1 -0
  533. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js +226 -191
  534. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js.map +1 -0
  535. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js +28 -33
  536. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js.map +1 -0
  537. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js +129 -107
  538. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js.map +1 -0
  539. package/dist/esm/grpc/proto/sui/rpc/v2/object.js +100 -85
  540. package/dist/esm/grpc/proto/sui/rpc/v2/object.js.map +1 -0
  541. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js +42 -30
  542. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js.map +1 -0
  543. package/dist/esm/grpc/proto/sui/rpc/v2/owner.js +72 -40
  544. package/dist/esm/grpc/proto/sui/rpc/v2/owner.js.map +1 -0
  545. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js +42 -38
  546. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js.map +1 -0
  547. package/dist/esm/grpc/proto/sui/rpc/v2/signature.js +544 -481
  548. package/dist/esm/grpc/proto/sui/rpc/v2/signature.js.map +1 -0
  549. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js +52 -13
  550. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js.map +1 -0
  551. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +23 -28
  552. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js.map +1 -0
  553. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js +74 -60
  554. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js.map +1 -0
  555. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js +49 -66
  556. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js.map +1 -0
  557. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js +623 -490
  558. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js.map +1 -0
  559. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js +33 -32
  560. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js.map +1 -0
  561. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js +50 -36
  562. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js.map +1 -0
  563. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js +737 -701
  564. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js.map +1 -0
  565. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js +1177 -917
  566. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js.map +1 -0
  567. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +28 -27
  568. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js.map +1 -0
  569. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js +169 -133
  570. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js.map +1 -0
  571. package/dist/esm/index.js +21 -107
  572. package/dist/esm/index.js.map +1 -0
  573. package/dist/esm/jsonRpc/client.js +646 -727
  574. package/dist/esm/jsonRpc/client.js.map +1 -0
  575. package/dist/esm/jsonRpc/core.d.ts +7 -7
  576. package/dist/esm/jsonRpc/core.js +550 -581
  577. package/dist/esm/jsonRpc/core.js.map +1 -0
  578. package/dist/esm/jsonRpc/errors.js +36 -41
  579. package/dist/esm/jsonRpc/errors.js.map +1 -0
  580. package/dist/esm/jsonRpc/http-transport.js +65 -93
  581. package/dist/esm/jsonRpc/http-transport.js.map +1 -0
  582. package/dist/esm/jsonRpc/index.js +6 -20
  583. package/dist/esm/jsonRpc/index.js.map +1 -0
  584. package/dist/esm/jsonRpc/json-rpc-resolver.js +281 -276
  585. package/dist/esm/jsonRpc/json-rpc-resolver.js.map +1 -0
  586. package/dist/esm/jsonRpc/rpc-websocket-client.js +147 -189
  587. package/dist/esm/jsonRpc/rpc-websocket-client.js.map +1 -0
  588. package/dist/esm/jsonRpc/types/chain.js +4 -0
  589. package/dist/esm/jsonRpc/types/chain.js.map +1 -0
  590. package/dist/esm/jsonRpc/types/changes.js +4 -0
  591. package/dist/esm/jsonRpc/types/changes.js.map +1 -0
  592. package/dist/esm/jsonRpc/types/coins.js +4 -0
  593. package/dist/esm/jsonRpc/types/coins.js.map +1 -0
  594. package/dist/esm/jsonRpc/types/common.js +4 -0
  595. package/dist/esm/jsonRpc/types/common.js.map +1 -0
  596. package/dist/esm/jsonRpc/types/generated.d.ts +1 -1
  597. package/dist/esm/jsonRpc/types/generated.js +4 -0
  598. package/dist/esm/jsonRpc/types/generated.js.map +1 -0
  599. package/dist/esm/jsonRpc/types/index.js +4 -0
  600. package/dist/esm/jsonRpc/types/index.js.map +1 -0
  601. package/dist/esm/jsonRpc/types/params.js +4 -0
  602. package/dist/esm/jsonRpc/types/params.js.map +1 -0
  603. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js +49 -48
  604. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js.map +1 -0
  605. package/dist/esm/keypairs/ed25519/index.js +5 -10
  606. package/dist/esm/keypairs/ed25519/index.js.map +1 -0
  607. package/dist/esm/keypairs/ed25519/keypair.js +128 -146
  608. package/dist/esm/keypairs/ed25519/keypair.js.map +1 -0
  609. package/dist/esm/keypairs/ed25519/publickey.js +64 -67
  610. package/dist/esm/keypairs/ed25519/publickey.js.map +1 -0
  611. package/dist/esm/keypairs/index.js +3 -0
  612. package/dist/esm/keypairs/index.js.map +1 -0
  613. package/dist/esm/keypairs/passkey/index.js +5 -12
  614. package/dist/esm/keypairs/passkey/index.js.map +1 -0
  615. package/dist/esm/keypairs/passkey/keypair.js +236 -243
  616. package/dist/esm/keypairs/passkey/keypair.js.map +1 -0
  617. package/dist/esm/keypairs/passkey/publickey.js +154 -140
  618. package/dist/esm/keypairs/passkey/publickey.js.map +1 -0
  619. package/dist/esm/keypairs/passkey/types.js +4 -0
  620. package/dist/esm/keypairs/passkey/types.js.map +1 -0
  621. package/dist/esm/keypairs/secp256k1/index.js +5 -10
  622. package/dist/esm/keypairs/secp256k1/index.js.map +1 -0
  623. package/dist/esm/keypairs/secp256k1/keypair.js +120 -134
  624. package/dist/esm/keypairs/secp256k1/keypair.js.map +1 -0
  625. package/dist/esm/keypairs/secp256k1/publickey.js +64 -71
  626. package/dist/esm/keypairs/secp256k1/publickey.js.map +1 -0
  627. package/dist/esm/keypairs/secp256r1/index.js +5 -10
  628. package/dist/esm/keypairs/secp256r1/index.js.map +1 -0
  629. package/dist/esm/keypairs/secp256r1/keypair.js +118 -131
  630. package/dist/esm/keypairs/secp256r1/keypair.js.map +1 -0
  631. package/dist/esm/keypairs/secp256r1/publickey.js +63 -66
  632. package/dist/esm/keypairs/secp256r1/publickey.js.map +1 -0
  633. package/dist/esm/multisig/index.js +5 -10
  634. package/dist/esm/multisig/index.js.map +1 -0
  635. package/dist/esm/multisig/publickey.d.ts +1 -1
  636. package/dist/esm/multisig/publickey.js +216 -253
  637. package/dist/esm/multisig/publickey.js.map +1 -0
  638. package/dist/esm/multisig/signer.js +57 -89
  639. package/dist/esm/multisig/signer.js.map +1 -0
  640. package/dist/esm/transactions/Arguments.d.ts +4 -4
  641. package/dist/esm/transactions/Arguments.js +9 -13
  642. package/dist/esm/transactions/Arguments.js.map +1 -0
  643. package/dist/esm/transactions/Commands.js +105 -118
  644. package/dist/esm/transactions/Commands.js.map +1 -0
  645. package/dist/esm/transactions/Inputs.js +49 -61
  646. package/dist/esm/transactions/Inputs.js.map +1 -0
  647. package/dist/esm/transactions/ObjectCache.d.ts +8 -8
  648. package/dist/esm/transactions/ObjectCache.js +200 -223
  649. package/dist/esm/transactions/ObjectCache.js.map +1 -0
  650. package/dist/esm/transactions/Transaction.d.ts +32 -32
  651. package/dist/esm/transactions/Transaction.js +611 -696
  652. package/dist/esm/transactions/Transaction.js.map +1 -0
  653. package/dist/esm/transactions/TransactionData.d.ts +9 -9
  654. package/dist/esm/transactions/TransactionData.js +386 -415
  655. package/dist/esm/transactions/TransactionData.js.map +1 -0
  656. package/dist/esm/transactions/__tests__/Transaction.test.js +167 -0
  657. package/dist/esm/transactions/__tests__/Transaction.test.js.map +1 -0
  658. package/dist/esm/transactions/__tests__/bcs.test.js +200 -0
  659. package/dist/esm/transactions/__tests__/bcs.test.js.map +1 -0
  660. package/dist/esm/transactions/data/internal.js +158 -205
  661. package/dist/esm/transactions/data/internal.js.map +1 -0
  662. package/dist/esm/transactions/data/v1.js +419 -487
  663. package/dist/esm/transactions/data/v1.js.map +1 -0
  664. package/dist/esm/transactions/data/v2.d.ts +5 -5
  665. package/dist/esm/transactions/data/v2.js +89 -107
  666. package/dist/esm/transactions/data/v2.js.map +1 -0
  667. package/dist/esm/transactions/executor/caching.d.ts +2 -2
  668. package/dist/esm/transactions/executor/caching.js +66 -93
  669. package/dist/esm/transactions/executor/caching.js.map +1 -0
  670. package/dist/esm/transactions/executor/parallel.js +329 -352
  671. package/dist/esm/transactions/executor/parallel.js.map +1 -0
  672. package/dist/esm/transactions/executor/queue.js +58 -64
  673. package/dist/esm/transactions/executor/queue.js.map +1 -0
  674. package/dist/esm/transactions/executor/serial.d.ts +5 -5
  675. package/dist/esm/transactions/executor/serial.js +96 -110
  676. package/dist/esm/transactions/executor/serial.js.map +1 -0
  677. package/dist/esm/transactions/hash.js +15 -9
  678. package/dist/esm/transactions/hash.js.map +1 -0
  679. package/dist/esm/transactions/index.js +15 -41
  680. package/dist/esm/transactions/index.js.map +1 -0
  681. package/dist/esm/transactions/intents/CoinWithBalance.js +127 -165
  682. package/dist/esm/transactions/intents/CoinWithBalance.js.map +1 -0
  683. package/dist/esm/transactions/object.js +86 -92
  684. package/dist/esm/transactions/object.js.map +1 -0
  685. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js +18 -15
  686. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js.map +1 -0
  687. package/dist/esm/transactions/pure.js +34 -39
  688. package/dist/esm/transactions/pure.js.map +1 -0
  689. package/dist/esm/transactions/resolve.js +58 -69
  690. package/dist/esm/transactions/resolve.js.map +1 -0
  691. package/dist/esm/transactions/serializer.js +145 -144
  692. package/dist/esm/transactions/serializer.js.map +1 -0
  693. package/dist/esm/transactions/utils.d.ts +1 -1
  694. package/dist/esm/transactions/utils.js +110 -109
  695. package/dist/esm/transactions/utils.js.map +1 -0
  696. package/dist/esm/utils/constants.js +26 -36
  697. package/dist/esm/utils/constants.js.map +1 -0
  698. package/dist/esm/utils/derived-objects.js +11 -10
  699. package/dist/esm/utils/derived-objects.js.map +1 -0
  700. package/dist/esm/utils/dynamic-fields.js +16 -16
  701. package/dist/esm/utils/dynamic-fields.js.map +1 -0
  702. package/dist/esm/utils/format.js +13 -13
  703. package/dist/esm/utils/format.js.map +1 -0
  704. package/dist/esm/utils/index.js +15 -76
  705. package/dist/esm/utils/index.js.map +1 -0
  706. package/dist/esm/utils/move-registry.js +34 -17
  707. package/dist/esm/utils/move-registry.js.map +1 -0
  708. package/dist/esm/utils/sui-types.js +70 -54
  709. package/dist/esm/utils/sui-types.js.map +1 -0
  710. package/dist/esm/utils/suins.js +29 -29
  711. package/dist/esm/utils/suins.js.map +1 -0
  712. package/dist/esm/verify/index.js +5 -14
  713. package/dist/esm/verify/index.js.map +1 -0
  714. package/dist/esm/verify/verify.js +76 -93
  715. package/dist/esm/verify/verify.js.map +1 -0
  716. package/dist/esm/version.js +6 -6
  717. package/dist/esm/version.js.map +1 -0
  718. package/dist/esm/w/call/allocation.js +307 -402
  719. package/dist/esm/w/call/allocation.js.map +1 -0
  720. package/dist/esm/w/call/arb.js +100 -129
  721. package/dist/esm/w/call/arb.js.map +1 -0
  722. package/dist/esm/w/call/arbitration.js +1170 -1568
  723. package/dist/esm/w/call/arbitration.js.map +1 -0
  724. package/dist/esm/w/call/base.js +288 -315
  725. package/dist/esm/w/call/base.js.map +1 -0
  726. package/dist/esm/w/call/contact.js +318 -442
  727. package/dist/esm/w/call/contact.js.map +1 -0
  728. package/dist/esm/w/call/demand.js +673 -841
  729. package/dist/esm/w/call/demand.js.map +1 -0
  730. package/dist/esm/w/call/entity.js +162 -203
  731. package/dist/esm/w/call/entity.js.map +1 -0
  732. package/dist/esm/w/call/guard-ins.d.ts +1 -0
  733. package/dist/esm/w/call/guard-ins.js +4373 -4366
  734. package/dist/esm/w/call/guard-ins.js.map +1 -0
  735. package/dist/esm/w/call/guard.d.ts +10 -0
  736. package/dist/esm/w/call/guard.js +1061 -1115
  737. package/dist/esm/w/call/guard.js.map +1 -0
  738. package/dist/esm/w/call/index.d.ts +1 -1
  739. package/dist/esm/w/call/index.js +24 -54
  740. package/dist/esm/w/call/index.js.map +1 -0
  741. package/dist/esm/w/call/machine.js +1086 -1433
  742. package/dist/esm/w/call/machine.js.map +1 -0
  743. package/dist/esm/w/call/order.js +301 -448
  744. package/dist/esm/w/call/order.js.map +1 -0
  745. package/dist/esm/w/call/passport.js +204 -240
  746. package/dist/esm/w/call/passport.js.map +1 -0
  747. package/dist/esm/w/call/payment.js +177 -215
  748. package/dist/esm/w/call/payment.js.map +1 -0
  749. package/dist/esm/w/call/permission.js +1172 -1320
  750. package/dist/esm/w/call/permission.js.map +1 -0
  751. package/dist/esm/w/call/personal.js +121 -156
  752. package/dist/esm/w/call/personal.js.map +1 -0
  753. package/dist/esm/w/call/progress.js +625 -797
  754. package/dist/esm/w/call/progress.js.map +1 -0
  755. package/dist/esm/w/call/proof.js +61 -103
  756. package/dist/esm/w/call/proof.js.map +1 -0
  757. package/dist/esm/w/call/repository.js +1017 -1251
  758. package/dist/esm/w/call/repository.js.map +1 -0
  759. package/dist/esm/w/call/resource.js +108 -124
  760. package/dist/esm/w/call/resource.js.map +1 -0
  761. package/dist/esm/w/call/reward.js +660 -847
  762. package/dist/esm/w/call/reward.js.map +1 -0
  763. package/dist/esm/w/call/service.js +1849 -2400
  764. package/dist/esm/w/call/service.js.map +1 -0
  765. package/dist/esm/w/call/treasury.js +815 -1125
  766. package/dist/esm/w/call/treasury.js.map +1 -0
  767. package/dist/esm/w/call/util.js +553 -576
  768. package/dist/esm/w/call/util.js.map +1 -0
  769. package/dist/esm/w/common.d.ts +1 -1
  770. package/dist/esm/w/common.js +579 -580
  771. package/dist/esm/w/common.js.map +1 -0
  772. package/dist/esm/w/exception.js +570 -573
  773. package/dist/esm/w/exception.js.map +1 -0
  774. package/dist/esm/w/index.js +4 -0
  775. package/dist/esm/w/index.js.map +1 -0
  776. package/dist/esm/w/local/account.js +652 -709
  777. package/dist/esm/w/local/account.js.map +1 -0
  778. package/dist/esm/w/local/cache.js +176 -147
  779. package/dist/esm/w/local/cache.js.map +1 -0
  780. package/dist/esm/w/local/config.js +46 -60
  781. package/dist/esm/w/local/config.js.map +1 -0
  782. package/dist/esm/w/local/index.js +196 -273
  783. package/dist/esm/w/local/index.js.map +1 -0
  784. package/dist/esm/w/local/local.d.ts +2 -2
  785. package/dist/esm/w/local/local.js +631 -626
  786. package/dist/esm/w/local/local.js.map +1 -0
  787. package/dist/esm/w/local/storage.js +168 -136
  788. package/dist/esm/w/local/storage.js.map +1 -0
  789. package/dist/esm/w/local/token.js +149 -151
  790. package/dist/esm/w/local/token.js.map +1 -0
  791. package/dist/esm/w/local/util.js +45 -22
  792. package/dist/esm/w/local/util.js.map +1 -0
  793. package/dist/esm/w/local/wip.js +1038 -781
  794. package/dist/esm/w/local/wip.js.map +1 -0
  795. package/dist/esm/w/messenger/crypto.js +491 -387
  796. package/dist/esm/w/messenger/crypto.js.map +1 -0
  797. package/dist/esm/w/messenger/index.js +27 -24
  798. package/dist/esm/w/messenger/index.js.map +1 -0
  799. package/dist/esm/w/messenger/messenger-api.js +1111 -1017
  800. package/dist/esm/w/messenger/messenger-api.js.map +1 -0
  801. package/dist/esm/w/messenger/messenger-manager.js +944 -1052
  802. package/dist/esm/w/messenger/messenger-manager.js.map +1 -0
  803. package/dist/esm/w/messenger/messenger.d.ts +1 -1
  804. package/dist/esm/w/messenger/messenger.js +1258 -1421
  805. package/dist/esm/w/messenger/messenger.js.map +1 -0
  806. package/dist/esm/w/messenger/server.js +388 -499
  807. package/dist/esm/w/messenger/server.js.map +1 -0
  808. package/dist/esm/w/messenger/session.js +394 -399
  809. package/dist/esm/w/messenger/session.js.map +1 -0
  810. package/dist/esm/w/messenger/storage.js +840 -751
  811. package/dist/esm/w/messenger/storage.js.map +1 -0
  812. package/dist/esm/w/messenger/types.d.ts +2 -2
  813. package/dist/esm/w/messenger/types.js +80 -85
  814. package/dist/esm/w/messenger/types.js.map +1 -0
  815. package/dist/esm/w/messenger/utils.js +28 -16
  816. package/dist/esm/w/messenger/utils.js.map +1 -0
  817. package/dist/esm/w/query/bult-in.js +95 -100
  818. package/dist/esm/w/query/bult-in.js.map +1 -0
  819. package/dist/esm/w/query/event.js +128 -125
  820. package/dist/esm/w/query/event.js.map +1 -0
  821. package/dist/esm/w/query/index.js +3 -0
  822. package/dist/esm/w/query/index.js.map +1 -0
  823. package/dist/esm/w/query/object.js +1560 -1574
  824. package/dist/esm/w/query/object.js.map +1 -0
  825. package/dist/esm/w/query/received.js +57 -63
  826. package/dist/esm/w/query/received.js.map +1 -0
  827. package/dist/esm/w/query/util.js +48 -56
  828. package/dist/esm/w/query/util.js.map +1 -0
  829. package/dist/esm/w/util.js +578 -673
  830. package/dist/esm/w/util.js.map +1 -0
  831. package/package.json +14 -9
  832. package/dist/cjs/graphql/client.js +0 -98
  833. package/dist/cjs/graphql/core.js +0 -506
  834. package/dist/cjs/graphql/generated/2024.1/tada-env.js +0 -13141
  835. package/dist/cjs/graphql/generated/2024.1/tsconfig.tada.js +0 -11
  836. package/dist/cjs/graphql/generated/2024.4/tada-env.js +0 -13287
  837. package/dist/cjs/graphql/generated/2024.4/tsconfig.tada.js +0 -11
  838. package/dist/cjs/graphql/generated/latest/tada-env.js +0 -12925
  839. package/dist/cjs/graphql/generated/latest/tsconfig.tada.js +0 -11
  840. package/dist/cjs/graphql/generated/queries.js +0 -807
  841. package/dist/cjs/graphql/index.js +0 -25
  842. package/dist/cjs/graphql/schemas/2024.1/index.js +0 -28
  843. package/dist/cjs/graphql/schemas/2024.4/index.js +0 -28
  844. package/dist/cjs/graphql/schemas/latest/index.js +0 -28
  845. package/dist/cjs/graphql/types.js +0 -16
  846. package/dist/cjs/package.json +0 -5
  847. package/dist/cjs/w/local/.eslintrc.js +0 -15
  848. package/dist/cjs/w/messenger/.eslintrc.js +0 -15
  849. package/dist/cjs/zklogin/address.js +0 -93
  850. package/dist/cjs/zklogin/bcs.js +0 -41
  851. package/dist/cjs/zklogin/index.js +0 -45
  852. package/dist/cjs/zklogin/jwt-decode.js +0 -88
  853. package/dist/cjs/zklogin/jwt-utils.js +0 -128
  854. package/dist/cjs/zklogin/nonce.js +0 -60
  855. package/dist/cjs/zklogin/poseidon.js +0 -64
  856. package/dist/cjs/zklogin/publickey.js +0 -281
  857. package/dist/cjs/zklogin/signature.js +0 -57
  858. package/dist/cjs/zklogin/utils.js +0 -98
  859. package/dist/esm/graphql/client.js +0 -79
  860. package/dist/esm/graphql/core.js +0 -505
  861. package/dist/esm/graphql/generated/2024.1/tada-env.js +0 -13121
  862. package/dist/esm/graphql/generated/2024.1/tsconfig.tada.js +0 -16
  863. package/dist/esm/graphql/generated/2024.4/tada-env.js +0 -13267
  864. package/dist/esm/graphql/generated/2024.4/tsconfig.tada.js +0 -16
  865. package/dist/esm/graphql/generated/latest/tada-env.js +0 -12905
  866. package/dist/esm/graphql/generated/latest/tsconfig.tada.js +0 -16
  867. package/dist/esm/graphql/generated/queries.js +0 -788
  868. package/dist/esm/graphql/index.js +0 -8
  869. package/dist/esm/graphql/schemas/2024.1/index.js +0 -8
  870. package/dist/esm/graphql/schemas/2024.4/index.js +0 -8
  871. package/dist/esm/graphql/schemas/latest/index.js +0 -8
  872. package/dist/esm/graphql/types.js +0 -0
  873. package/dist/esm/package.json +0 -5
  874. package/dist/esm/w/local/.eslintrc.js +0 -23
  875. package/dist/esm/w/messenger/.eslintrc.js +0 -23
  876. package/dist/esm/zklogin/address.js +0 -78
  877. package/dist/esm/zklogin/bcs.js +0 -21
  878. package/dist/esm/zklogin/index.js +0 -38
  879. package/dist/esm/zklogin/jwt-decode.js +0 -68
  880. package/dist/esm/zklogin/jwt-utils.js +0 -108
  881. package/dist/esm/zklogin/nonce.js +0 -40
  882. package/dist/esm/zklogin/poseidon.js +0 -61
  883. package/dist/esm/zklogin/publickey.js +0 -265
  884. package/dist/esm/zklogin/signature.js +0 -37
  885. package/dist/esm/zklogin/utils.js +0 -78
  886. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  887. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,1143 +1,1014 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
- var __export = (target, all) => {
10
- for (var name in all)
11
- __defProp(target, name, { get: all[name], enumerable: true });
12
- };
13
- var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from))
16
- if (!__hasOwnProp.call(to, key) && key !== except)
17
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
- }
19
- return to;
20
- };
21
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
- // If the importer is in node compatibility mode or this is not an ESM
23
- // file that has been converted to a CommonJS file using a Babel-
24
- // compatible transform (i.e. "__esModule" has not been set), then set
25
- // "default" to the CommonJS "module.exports" for node compatibility.
26
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
- mod
28
- ));
29
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
31
- var messenger_manager_exports = {};
32
- __export(messenger_manager_exports, {
33
- MessengerManager: () => MessengerManager
34
- });
35
- module.exports = __toCommonJS(messenger_manager_exports);
36
- var import_messenger = require("./messenger.js");
37
- var import_storage = require("./storage.js");
38
- var import_storage2 = require("./storage.js");
39
- var import_types = require("./types.js");
40
- var import_types2 = require("./types.js");
41
- var import_utils = require("./utils.js");
42
- var import_account = require("../local/account.js");
43
- var import_local = require("../local/index.js");
44
- const MAX_ACCOUNTS = import_account.MAX_MESSENGER_ACCOUNTS;
2
+ // Copyright (c) Wowok.
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.MessengerManager = void 0;
6
+ /**
7
+ * Messenger 管理器
8
+ *
9
+ * 支持最多20个账号同时收发消息
10
+ * 自动从account模块筛选有m字段的账号
11
+ * 自动初始化、注册并接收消息
12
+ */
13
+ const messenger_js_1 = require("./messenger.js");
14
+ const storage_js_1 = require("./storage.js");
15
+ const storage_js_2 = require("./storage.js");
16
+ const types_js_1 = require("./types.js");
17
+ const types_js_2 = require("./types.js");
18
+ const utils_js_1 = require("./utils.js");
19
+ const account_js_1 = require("../local/account.js");
20
+ const index_js_1 = require("../local/index.js");
21
+ const MAX_ACCOUNTS = account_js_1.MAX_MESSENGER_ACCOUNTS;
45
22
  class MessengerManager {
46
- constructor(options) {
47
- __publicField(this, "accounts", /* @__PURE__ */ new Map());
48
- __publicField(this, "config");
49
- __publicField(this, "messageListeners", /* @__PURE__ */ new Set());
50
- __publicField(this, "pollingTimers", /* @__PURE__ */ new Map());
51
- __publicField(this, "isWatching", false);
52
- __publicField(this, "persistStorage");
53
- __publicField(this, "instanceId");
54
- __publicField(this, "accountRefreshTimer", null);
55
- __publicField(this, "sseHeartbeatTimer", null);
56
- __publicField(this, "sseLockedAccounts", /* @__PURE__ */ new Set());
57
- this.config = {
58
- ...import_types2.DEFAULT_MESSENGER_CONFIG,
59
- ...options?.messengerConfig
60
- };
61
- this.instanceId = options?.instanceId || "default";
62
- this.persistStorage = new import_storage2.MessengerPersistStorage();
63
- }
64
- findAccount(address) {
65
- return this.accounts.get(address.toLowerCase());
66
- }
67
- getConfig() {
68
- return this.config;
69
- }
70
- get_accounts() {
71
- return Array.from(this.accounts.values()).map((acc) => acc.address);
72
- }
73
- async refresh_accounts() {
74
- const { Account } = await import("../local/account.js");
75
- const messengerAccounts = await Account.Instance().list_messenger_accounts();
76
- const currentAddresses = new Set(this.accounts.keys());
77
- const newAddresses = new Set(
78
- messengerAccounts.map((a) => a.address.toLowerCase())
79
- );
80
- for (const address of currentAddresses) {
81
- if (!newAddresses.has(address)) {
82
- this.remove_account_internal(address);
83
- }
84
- }
85
- for (const account of messengerAccounts) {
86
- const addressLower = account.address.toLowerCase();
87
- if (!this.accounts.has(addressLower)) {
88
- await this.add_account_internal(account.address);
89
- }
90
- }
91
- if (this.accounts.size > 0 && !this.isWatching) {
92
- this.startPolling();
93
- } else if (this.accounts.size === 0 && this.isWatching) {
94
- this.stopPolling();
95
- }
96
- await this.syncAllContactLists();
97
- }
98
- async start() {
99
- await this.refresh_accounts();
100
- let hasSSEFailure = false;
101
- for (const account of this.accounts.values()) {
102
- if (!account.messenger.isEventSourceConnected()) {
103
- try {
104
- const hasLock = this.persistStorage.tryAcquireSSELock(
105
- account.address,
106
- this.instanceId
107
- );
108
- if (hasLock) {
109
- this.sseLockedAccounts.add(
110
- account.address.toLowerCase()
111
- );
112
- await account.messenger.connectEventSource(
113
- (messages) => {
114
- for (const listener of this.messageListeners) {
115
- listener(messages);
116
- }
117
- }
118
- );
119
- } else {
120
- console.debug(
121
- `Another process holds SSE lock for ${account.address}, using polling`
122
- );
123
- hasSSEFailure = true;
124
- }
125
- } catch (err) {
126
- console.warn(
127
- `Failed to connect SSE for ${account.address}, falling back to polling:`,
128
- err
129
- );
130
- hasSSEFailure = true;
131
- this.persistStorage.releaseSSELock(
132
- account.address,
133
- this.instanceId
134
- );
135
- this.sseLockedAccounts.delete(
136
- account.address.toLowerCase()
137
- );
138
- }
139
- }
140
- }
141
- if (hasSSEFailure && !this.isWatching) {
142
- this.startPolling();
143
- }
144
- this.startSSEHeartbeat();
145
- if (this.accountRefreshTimer) {
146
- clearInterval(this.accountRefreshTimer);
147
- }
148
- this.accountRefreshTimer = setInterval(() => {
149
- this.refresh_accounts().catch((err) => {
150
- console.error("Failed to refresh accounts:", err);
151
- });
152
- }, this.config.watch_interval_ms);
153
- }
154
- stop() {
155
- if (this.accountRefreshTimer) {
156
- clearInterval(this.accountRefreshTimer);
157
- this.accountRefreshTimer = null;
158
- }
159
- this.stopSSEHeartbeat();
160
- for (const accountAddress of this.sseLockedAccounts) {
161
- this.persistStorage.releaseSSELock(accountAddress, this.instanceId);
162
- }
163
- this.sseLockedAccounts.clear();
164
- this.stopPolling();
165
- this.clear_accounts();
166
- }
167
- startSSEHeartbeat() {
168
- if (this.sseHeartbeatTimer) {
169
- clearInterval(this.sseHeartbeatTimer);
170
- }
171
- this.sseHeartbeatTimer = setInterval(() => {
172
- for (const accountAddress of this.sseLockedAccounts) {
173
- this.persistStorage.updateSSELockHeartbeat(
174
- accountAddress,
175
- this.instanceId
176
- );
177
- }
178
- }, 5e3);
179
- }
180
- stopSSEHeartbeat() {
181
- if (this.sseHeartbeatTimer) {
182
- clearInterval(this.sseHeartbeatTimer);
183
- this.sseHeartbeatTimer = null;
184
- }
185
- }
186
- async add_account_internal(address) {
187
- const addressLower = address.toLowerCase();
188
- if (this.accounts.size >= MAX_ACCOUNTS) {
189
- throw new import_types2.MessengerError(
190
- import_types2.MessengerErrorCode.INVALID_INPUT,
191
- `Maximum ${MAX_ACCOUNTS} accounts allowed`
192
- );
193
- }
194
- const messenger = new import_messenger.Messenger(addressLower, this.config);
195
- try {
196
- await messenger.initialize();
197
- } catch (error) {
198
- throw new import_types2.MessengerError(
199
- import_types2.MessengerErrorCode.SERVER_ERROR,
200
- `Failed to initialize account ${addressLower}: ${error instanceof Error ? error.message : String(error)}`
201
- );
202
- }
203
- const contactLists = {
204
- friends: [],
205
- guards: [],
206
- lastUpdatedAt: 0
207
- };
208
- this.accounts.set(addressLower, {
209
- address: addressLower,
210
- messenger,
211
- initialized: true,
212
- contactLists
213
- });
214
- if (this.isWatching) {
215
- this.startAccountPolling(addressLower);
216
- }
217
- }
218
- remove_account_internal(address) {
219
- const addressLower = address.toLowerCase();
220
- const account = this.accounts.get(addressLower);
221
- if (!account) return false;
222
- if (account.initialized && account.messenger) {
223
- account.messenger.disconnectEventSource();
224
- account.messenger.disconnect();
225
- }
226
- const timer = this.pollingTimers.get(account.address);
227
- if (timer) {
228
- clearInterval(timer);
229
- this.pollingTimers.delete(account.address);
230
- }
231
- this.persistStorage.releaseSSELock(addressLower, this.instanceId);
232
- this.sseLockedAccounts.delete(addressLower);
233
- return this.accounts.delete(addressLower);
234
- }
235
- clear_accounts() {
236
- this.stopPolling();
237
- for (const info of this.accounts.values()) {
238
- info.messenger.disconnectEventSource();
239
- info.messenger.disconnect();
240
- }
241
- this.accounts.clear();
242
- }
243
- async send(from, to, content, options) {
244
- const { Account } = await import("../local/account.js");
245
- let accountInfo = this.findAccount(from);
246
- if (!accountInfo) {
247
- const account = await Account.Instance().get(from, false);
248
- if (!account) {
249
- throw new import_types2.MessengerError(
250
- import_types2.MessengerErrorCode.IDENTITY_NOT_FOUND,
251
- `Account ${from} not found`
252
- );
253
- }
254
- if (account.m == null) {
255
- if (options?.new_messenger_name == null) {
256
- throw new import_types2.MessengerError(
257
- import_types2.MessengerErrorCode.ACCOUNT_MESSENGER_NOT_ENABLED,
258
- `Account messenger name not set. Use new_messenger_name parameter to set it automatically.`
259
- );
260
- }
261
- await Account.Instance().set_messenger(
262
- from,
263
- options.new_messenger_name
264
- );
265
- }
266
- await this.refresh_accounts();
267
- accountInfo = this.findAccount(from);
268
- if (!accountInfo) {
269
- throw new import_types2.MessengerError(
270
- import_types2.MessengerErrorCode.SERVER_ERROR,
271
- `Failed to add account ${from} to messenger manager`
272
- );
273
- }
274
- }
275
- if (options?.new_messenger_name != null) {
276
- const account = await Account.Instance().get(from, false);
277
- if (account && account.m !== options.new_messenger_name) {
278
- await Account.Instance().set_messenger(
279
- from,
280
- options.new_messenger_name
281
- );
282
- }
283
- }
284
- return accountInfo.messenger.sendMessage(to, content, {
285
- guardAddress: options?.guardAddress,
286
- passportAddress: options?.passportAddress,
287
- force: options?.force
288
- });
289
- }
290
- async send_file(from, to, filePath, options) {
291
- const { Account } = await import("../local/account.js");
292
- let accountInfo = this.findAccount(from);
293
- if (!accountInfo) {
294
- const account = await Account.Instance().get(from, false);
295
- if (!account) {
296
- throw new import_types2.MessengerError(
297
- import_types2.MessengerErrorCode.IDENTITY_NOT_FOUND,
298
- `Account ${from} not found`
299
- );
300
- }
301
- if (account.m == null) {
302
- if (options?.new_messenger_name == null) {
303
- throw new import_types2.MessengerError(
304
- import_types2.MessengerErrorCode.ACCOUNT_MESSENGER_NOT_ENABLED,
305
- `Account messenger name not set. Use new_messenger_name parameter to set it automatically.`
306
- );
307
- }
308
- await Account.Instance().set_messenger(
309
- from,
310
- options.new_messenger_name
311
- );
312
- }
313
- await this.refresh_accounts();
314
- accountInfo = this.findAccount(from);
315
- if (!accountInfo) {
316
- throw new import_types2.MessengerError(
317
- import_types2.MessengerErrorCode.SERVER_ERROR,
318
- `Failed to add account ${from} to messenger manager`
319
- );
320
- }
321
- }
322
- if (options?.new_messenger_name != null) {
323
- const account = await Account.Instance().get(from, false);
324
- if (account && account.m !== options.new_messenger_name) {
325
- await Account.Instance().set_messenger(
326
- from,
327
- options.new_messenger_name
328
- );
329
- }
330
- }
331
- return accountInfo.messenger.sendZipFile(to, filePath, {
332
- fileName: options?.fileName,
333
- contentType: options?.contentType,
334
- guardAddress: options?.guardAddress,
335
- passportAddress: options?.passportAddress,
336
- force: options?.force
337
- });
338
- }
339
- async watch(filter) {
340
- let messages = [];
341
- if (filter?.account) {
342
- const address = filter.account.toLowerCase();
343
- const messageStorage = new import_storage.MessageStorage(address);
344
- messages = messageStorage.getAllMessages(address);
345
- } else {
346
- for (const account of this.accounts.values()) {
347
- const messageStorage = new import_storage.MessageStorage(account.address);
348
- const accountMessages = messageStorage.getAllMessages(
349
- account.address
350
- );
351
- messages.push(...accountMessages);
352
- }
353
- }
354
- if (filter) {
355
- const peerAddress = filter.peerAddress ? await (0, import_local.GetAccountOrMark_Address)(filter.peerAddress) : void 0;
356
- messages = messages.filter((msg) => {
357
- if (filter.account) {
358
- const accountLower = filter.account.toLowerCase();
359
- const fromLower = msg.fromAddress.toLowerCase();
360
- const toLower = msg.toAddress.toLowerCase();
361
- if (fromLower !== accountLower && toLower !== accountLower) {
362
- return false;
363
- }
364
- }
365
- if (filter.direction && msg.direction !== filter.direction) {
366
- return false;
367
- }
368
- if (filter.status && msg.status !== filter.status) {
369
- return false;
370
- }
371
- if (filter.msgType !== void 0 && msg.msgType !== filter.msgType) {
372
- return false;
373
- }
374
- if (filter.contentType) {
375
- switch (filter.contentType) {
376
- case "text":
377
- if (msg.msgType !== import_types.MessageType.NORMAL_MESSAGE)
378
- return false;
379
- break;
380
- case "zip":
381
- if (!msg.zipMetadata) return false;
382
- break;
383
- case "wts":
384
- if (!msg.zipMetadata || msg.zipMetadata?.contentType !== "wts") {
385
- return false;
386
- }
387
- break;
388
- case "wip":
389
- if (!msg.zipMetadata || msg.zipMetadata?.contentType !== "wip") {
390
- return false;
391
- }
392
- break;
393
- }
394
- }
395
- if (filter.peerAddress && peerAddress) {
396
- const peer = peerAddress.toLowerCase();
397
- const from = msg.fromAddress.toLowerCase();
398
- const to = msg.toAddress.toLowerCase();
399
- if (from !== peer && to !== peer) {
400
- return false;
401
- }
402
- }
403
- const timeField = filter.timeField || "createdAt";
404
- if (filter.startTime !== void 0 || filter.endTime !== void 0) {
405
- const msgTime = msg[timeField];
406
- if (msgTime !== void 0) {
407
- if (filter.startTime !== void 0 && msgTime < filter.startTime) {
408
- return false;
409
- }
410
- if (filter.endTime !== void 0 && msgTime > filter.endTime) {
411
- return false;
23
+ accounts = new Map();
24
+ config;
25
+ messageListeners = new Set();
26
+ pollingTimers = new Map();
27
+ isWatching = false;
28
+ persistStorage;
29
+ instanceId;
30
+ accountRefreshTimer = null;
31
+ sseHeartbeatTimer = null;
32
+ sseLockedAccounts = new Set();
33
+ constructor(options) {
34
+ this.config = {
35
+ ...types_js_2.DEFAULT_MESSENGER_CONFIG,
36
+ ...options?.messengerConfig,
37
+ };
38
+ this.instanceId = options?.instanceId || "default";
39
+ this.persistStorage = new storage_js_2.MessengerPersistStorage();
40
+ }
41
+ findAccount(address) {
42
+ return this.accounts.get(address.toLowerCase());
43
+ }
44
+ getConfig() {
45
+ return this.config;
46
+ }
47
+ get_accounts() {
48
+ return Array.from(this.accounts.values()).map((acc) => acc.address);
49
+ }
50
+ async refresh_accounts() {
51
+ const { Account } = await import("../local/account.js");
52
+ const messengerAccounts = await Account.Instance().list_messenger_accounts();
53
+ const currentAddresses = new Set(this.accounts.keys());
54
+ const newAddresses = new Set(messengerAccounts.map((a) => a.address.toLowerCase()));
55
+ for (const address of currentAddresses) {
56
+ if (!newAddresses.has(address)) {
57
+ this.remove_account_internal(address);
412
58
  }
413
- }
414
59
  }
415
- if (filter.createdAtStart !== void 0 && msg.createdAt < filter.createdAtStart) {
416
- return false;
417
- }
418
- if (filter.createdAtEnd !== void 0 && msg.createdAt > filter.createdAtEnd) {
419
- return false;
60
+ for (const account of messengerAccounts) {
61
+ const addressLower = account.address.toLowerCase();
62
+ if (!this.accounts.has(addressLower)) {
63
+ await this.add_account_internal(account.address);
64
+ }
420
65
  }
421
- if (filter.receivedAtStart !== void 0) {
422
- if (msg.receivedAt === void 0 || msg.receivedAt < filter.receivedAtStart) {
423
- return false;
424
- }
66
+ if (this.accounts.size > 0 && !this.isWatching) {
67
+ this.startPolling();
68
+ }
69
+ else if (this.accounts.size === 0 && this.isWatching) {
70
+ this.stopPolling();
71
+ }
72
+ await this.syncAllContactLists();
73
+ }
74
+ async start() {
75
+ await this.refresh_accounts();
76
+ let hasSSEFailure = false;
77
+ for (const account of this.accounts.values()) {
78
+ if (!account.messenger.isEventSourceConnected()) {
79
+ try {
80
+ const hasLock = this.persistStorage.tryAcquireSSELock(account.address, this.instanceId);
81
+ if (hasLock) {
82
+ this.sseLockedAccounts.add(account.address.toLowerCase());
83
+ await account.messenger.connectEventSource((messages) => {
84
+ for (const listener of this.messageListeners) {
85
+ listener(messages);
86
+ }
87
+ });
88
+ }
89
+ else {
90
+ console.debug(`Another process holds SSE lock for ${account.address}, using polling`);
91
+ hasSSEFailure = true;
92
+ }
93
+ }
94
+ catch (err) {
95
+ console.warn(`Failed to connect SSE for ${account.address}, falling back to polling:`, err);
96
+ hasSSEFailure = true;
97
+ this.persistStorage.releaseSSELock(account.address, this.instanceId);
98
+ this.sseLockedAccounts.delete(account.address.toLowerCase());
99
+ }
100
+ }
425
101
  }
426
- if (filter.receivedAtEnd !== void 0) {
427
- if (msg.receivedAt === void 0 || msg.receivedAt > filter.receivedAtEnd) {
428
- return false;
429
- }
102
+ if (hasSSEFailure && !this.isWatching) {
103
+ this.startPolling();
430
104
  }
431
- if (filter.serverTimestampStart !== void 0) {
432
- if (msg.serverTimestamp === void 0 || msg.serverTimestamp < filter.serverTimestampStart) {
433
- return false;
434
- }
105
+ this.startSSEHeartbeat();
106
+ if (this.accountRefreshTimer) {
107
+ clearInterval(this.accountRefreshTimer);
435
108
  }
436
- if (filter.serverTimestampEnd !== void 0) {
437
- if (msg.serverTimestamp === void 0 || msg.serverTimestamp > filter.serverTimestampEnd) {
438
- return false;
439
- }
109
+ this.accountRefreshTimer = setInterval(() => {
110
+ this.refresh_accounts().catch((err) => {
111
+ console.error("Failed to refresh accounts:", err);
112
+ });
113
+ }, this.config.watch_interval_ms);
114
+ }
115
+ stop() {
116
+ if (this.accountRefreshTimer) {
117
+ clearInterval(this.accountRefreshTimer);
118
+ this.accountRefreshTimer = null;
440
119
  }
441
- if (filter.decryptedOnly && !msg.plaintext) {
442
- return false;
120
+ this.stopSSEHeartbeat();
121
+ for (const accountAddress of this.sseLockedAccounts) {
122
+ this.persistStorage.releaseSSELock(accountAddress, this.instanceId);
443
123
  }
444
- if (filter.arkConfirmedOnly) {
445
- if (!msg.arkConfirmed) {
446
- return false;
447
- }
124
+ this.sseLockedAccounts.clear();
125
+ this.stopPolling();
126
+ this.clear_accounts();
127
+ }
128
+ startSSEHeartbeat() {
129
+ if (this.sseHeartbeatTimer) {
130
+ clearInterval(this.sseHeartbeatTimer);
448
131
  }
449
- if (filter.proofedOnly) {
450
- if (!msg.proof) {
451
- return false;
452
- }
132
+ this.sseHeartbeatTimer = setInterval(() => {
133
+ for (const accountAddress of this.sseLockedAccounts) {
134
+ this.persistStorage.updateSSELockHeartbeat(accountAddress, this.instanceId);
135
+ }
136
+ }, 5000);
137
+ }
138
+ stopSSEHeartbeat() {
139
+ if (this.sseHeartbeatTimer) {
140
+ clearInterval(this.sseHeartbeatTimer);
141
+ this.sseHeartbeatTimer = null;
453
142
  }
454
- if (filter.arkTimestampStart !== void 0) {
455
- if (msg.arkConfirmed === void 0 || msg.arkConfirmed.timestamp < filter.arkTimestampStart) {
456
- return false;
457
- }
143
+ }
144
+ async add_account_internal(address) {
145
+ const addressLower = address.toLowerCase();
146
+ if (this.accounts.size >= MAX_ACCOUNTS) {
147
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.INVALID_INPUT, `Maximum ${MAX_ACCOUNTS} accounts allowed`);
458
148
  }
459
- if (filter.arkTimestampEnd !== void 0) {
460
- if (msg.arkConfirmed === void 0 || msg.arkConfirmed.timestamp > filter.arkTimestampEnd) {
461
- return false;
462
- }
149
+ const messenger = new messenger_js_1.Messenger(addressLower, this.config);
150
+ try {
151
+ await messenger.initialize();
463
152
  }
464
- if (filter.hasLastReceivedIndexOnly) {
465
- if (msg.lastReceivedLeafIndex === void 0 || msg.lastReceivedLeafIndex === null) {
466
- return false;
467
- }
153
+ catch (error) {
154
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.SERVER_ERROR, `Failed to initialize account ${addressLower}: ${error instanceof Error ? error.message : String(error)}`);
468
155
  }
469
- if (filter.lastReceivedIndexMin !== void 0) {
470
- if (msg.lastReceivedLeafIndex === void 0 || msg.lastReceivedLeafIndex < filter.lastReceivedIndexMin) {
471
- return false;
472
- }
156
+ const contactLists = {
157
+ friends: [],
158
+ guards: [],
159
+ lastUpdatedAt: 0,
160
+ };
161
+ this.accounts.set(addressLower, {
162
+ address: addressLower,
163
+ messenger,
164
+ initialized: true,
165
+ contactLists,
166
+ });
167
+ if (this.isWatching) {
168
+ this.startAccountPolling(addressLower);
473
169
  }
474
- if (filter.lastReceivedIndexMax !== void 0) {
475
- if (msg.lastReceivedLeafIndex === void 0 || msg.lastReceivedLeafIndex > filter.lastReceivedIndexMax) {
170
+ }
171
+ remove_account_internal(address) {
172
+ const addressLower = address.toLowerCase();
173
+ const account = this.accounts.get(addressLower);
174
+ if (!account)
476
175
  return false;
477
- }
176
+ if (account.initialized && account.messenger) {
177
+ account.messenger.disconnectEventSource();
178
+ account.messenger.disconnect();
179
+ }
180
+ const timer = this.pollingTimers.get(account.address);
181
+ if (timer) {
182
+ clearInterval(timer);
183
+ this.pollingTimers.delete(account.address);
184
+ }
185
+ this.persistStorage.releaseSSELock(addressLower, this.instanceId);
186
+ this.sseLockedAccounts.delete(addressLower);
187
+ return this.accounts.delete(addressLower);
188
+ }
189
+ clear_accounts() {
190
+ this.stopPolling();
191
+ for (const info of this.accounts.values()) {
192
+ info.messenger.disconnectEventSource();
193
+ info.messenger.disconnect();
194
+ }
195
+ this.accounts.clear();
196
+ }
197
+ async send(from, to, content, options) {
198
+ const { Account } = await import("../local/account.js");
199
+ let accountInfo = this.findAccount(from);
200
+ if (!accountInfo) {
201
+ const account = await Account.Instance().get(from, false);
202
+ if (!account) {
203
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.IDENTITY_NOT_FOUND, `Account ${from} not found`);
204
+ }
205
+ if (account.m == null) {
206
+ if (options?.new_messenger_name == null) {
207
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.ACCOUNT_MESSENGER_NOT_ENABLED, `Account messenger name not set. Use new_messenger_name parameter to set it automatically.`);
208
+ }
209
+ await Account.Instance().set_messenger(from, options.new_messenger_name);
210
+ }
211
+ await this.refresh_accounts();
212
+ accountInfo = this.findAccount(from);
213
+ if (!accountInfo) {
214
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.SERVER_ERROR, `Failed to add account ${from} to messenger manager`);
215
+ }
478
216
  }
479
- if (filter.keyword && msg.plaintext) {
480
- if (!msg.plaintext.toLowerCase().includes(filter.keyword.toLowerCase())) {
481
- return false;
482
- }
217
+ if (options?.new_messenger_name != null) {
218
+ const account = await Account.Instance().get(from, false);
219
+ if (account && account.m !== options.new_messenger_name) {
220
+ await Account.Instance().set_messenger(from, options.new_messenger_name);
221
+ }
483
222
  }
484
- if (filter.listFilterMode && filter.listFilterMode !== "any") {
485
- const msgAccount = this.findAccount(msg.toAddress);
486
- if (!msgAccount) return false;
487
- const senderAddress = msg.fromAddress.toLowerCase();
488
- const lists = msgAccount.contactLists;
489
- const friends = new Set(
490
- lists.friends.map((a) => a.toLowerCase())
491
- );
492
- const guards = new Set(
493
- lists.guards.map((g) => g.guardAddress.toLowerCase())
494
- );
495
- const inFriends = friends.has(senderAddress);
496
- const inGuards = guards.has(senderAddress);
497
- const isStranger = !inFriends && !inGuards;
498
- switch (filter.listFilterMode) {
499
- case "friends":
500
- if (!inFriends) return false;
501
- break;
502
- case "guard":
503
- if (!inGuards) return false;
504
- break;
505
- case "stranger":
506
- if (!isStranger) return false;
507
- break;
508
- }
509
- if (filter.customListFilter) {
510
- const {
511
- includeAddresses,
512
- excludeAddresses,
513
- relation = "union"
514
- } = filter.customListFilter;
515
- if (excludeAddresses) {
516
- const excludeSet = new Set(
517
- excludeAddresses.map((a) => a.toLowerCase())
518
- );
519
- if (excludeSet.has(senderAddress)) return false;
223
+ return accountInfo.messenger.sendMessage(to, content, {
224
+ guardAddress: options?.guardAddress,
225
+ passportAddress: options?.passportAddress,
226
+ force: options?.force,
227
+ });
228
+ }
229
+ async send_file(from, to, filePath, options) {
230
+ const { Account } = await import("../local/account.js");
231
+ let accountInfo = this.findAccount(from);
232
+ if (!accountInfo) {
233
+ const account = await Account.Instance().get(from, false);
234
+ if (!account) {
235
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.IDENTITY_NOT_FOUND, `Account ${from} not found`);
236
+ }
237
+ if (account.m == null) {
238
+ if (options?.new_messenger_name == null) {
239
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.ACCOUNT_MESSENGER_NOT_ENABLED, `Account messenger name not set. Use new_messenger_name parameter to set it automatically.`);
240
+ }
241
+ await Account.Instance().set_messenger(from, options.new_messenger_name);
520
242
  }
521
- if (includeAddresses && includeAddresses.length > 0) {
522
- const includeSet = new Set(
523
- includeAddresses.map((a) => a.toLowerCase())
524
- );
525
- const inIncludeList = includeSet.has(senderAddress);
526
- if (relation === "union") {
527
- const modeMatch = filter.listFilterMode === "friends" && inFriends || filter.listFilterMode === "guard" && inGuards || filter.listFilterMode === "stranger" && isStranger;
528
- if (!inIncludeList && !modeMatch) return false;
529
- } else {
530
- if (!inIncludeList) return false;
531
- }
243
+ await this.refresh_accounts();
244
+ accountInfo = this.findAccount(from);
245
+ if (!accountInfo) {
246
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.SERVER_ERROR, `Failed to add account ${from} to messenger manager`);
532
247
  }
533
- }
534
248
  }
535
- return true;
536
- });
537
- }
538
- const sortOrder = filter?.sortOrder ?? "desc";
539
- const sortField = filter?.timeField || "createdAt";
540
- messages.sort((a, b) => {
541
- const aTime = a[sortField] || 0;
542
- const bTime = b[sortField] || 0;
543
- return sortOrder === "asc" ? aTime - bTime : bTime - aTime;
544
- });
545
- const { MAX_QUERY_LIMIT } = await import("./types.js");
546
- const defaultLimit = this.config.defaultQueryLimit ?? 50;
547
- const limit = Math.min(filter?.limit ?? defaultLimit, MAX_QUERY_LIMIT);
548
- const offset = filter?.offset ?? 0;
549
- messages = messages.slice(offset, offset + limit);
550
- return messages;
551
- }
552
- startPolling() {
553
- if (this.isWatching) return;
554
- this.isWatching = true;
555
- for (const info of this.accounts.values()) {
556
- const timer = setInterval(async () => {
557
- try {
558
- const messages = await info.messenger.pullMessages();
559
- if (messages.length > 0) {
560
- for (const listener of this.messageListeners) {
561
- listener(messages);
249
+ if (options?.new_messenger_name != null) {
250
+ const account = await Account.Instance().get(from, false);
251
+ if (account && account.m !== options.new_messenger_name) {
252
+ await Account.Instance().set_messenger(from, options.new_messenger_name);
562
253
  }
563
- }
564
- } catch (error) {
565
- console.error(
566
- `Failed to poll messages for ${info.address}:`,
567
- error
568
- );
569
254
  }
570
- }, this.config.watch_interval_ms);
571
- this.pollingTimers.set(info.address, timer);
572
- }
573
- }
574
- startAccountPolling(address) {
575
- const info = this.accounts.get(address.toLowerCase());
576
- if (!info || !info.initialized) return;
577
- const existingTimer = this.pollingTimers.get(info.address);
578
- if (existingTimer) {
579
- clearInterval(existingTimer);
255
+ return accountInfo.messenger.sendZipFile(to, filePath, {
256
+ fileName: options?.fileName,
257
+ contentType: options?.contentType,
258
+ guardAddress: options?.guardAddress,
259
+ passportAddress: options?.passportAddress,
260
+ force: options?.force,
261
+ });
580
262
  }
581
- const timer = setInterval(async () => {
582
- try {
583
- const messages = await info.messenger.pullMessages();
584
- if (messages.length > 0) {
585
- for (const listener of this.messageListeners) {
586
- listener(messages);
587
- }
263
+ async watch(filter) {
264
+ let messages = [];
265
+ if (filter?.account) {
266
+ const address = filter.account.toLowerCase();
267
+ const messageStorage = new storage_js_1.MessageStorage(address);
268
+ messages = messageStorage.getAllMessages(address);
269
+ }
270
+ else {
271
+ for (const account of this.accounts.values()) {
272
+ const messageStorage = new storage_js_1.MessageStorage(account.address);
273
+ const accountMessages = messageStorage.getAllMessages(account.address);
274
+ messages.push(...accountMessages);
275
+ }
588
276
  }
589
- } catch (error) {
590
- console.error(
591
- `Failed to poll messages for ${info.address}:`,
592
- error
593
- );
594
- }
595
- }, this.config.watch_interval_ms);
596
- this.pollingTimers.set(info.address, timer);
597
- }
598
- stopPolling() {
599
- for (const timer of this.pollingTimers.values()) {
600
- clearInterval(timer);
277
+ if (filter) {
278
+ const peerAddress = filter.peerAddress
279
+ ? await (0, index_js_1.GetAccountOrMark_Address)(filter.peerAddress)
280
+ : undefined;
281
+ messages = messages.filter((msg) => {
282
+ if (filter.account) {
283
+ const accountLower = filter.account.toLowerCase();
284
+ const fromLower = msg.fromAddress.toLowerCase();
285
+ const toLower = msg.toAddress.toLowerCase();
286
+ if (fromLower !== accountLower &&
287
+ toLower !== accountLower) {
288
+ return false;
289
+ }
290
+ }
291
+ if (filter.direction && msg.direction !== filter.direction) {
292
+ return false;
293
+ }
294
+ if (filter.status && msg.status !== filter.status) {
295
+ return false;
296
+ }
297
+ if (filter.msgType !== undefined &&
298
+ msg.msgType !== filter.msgType) {
299
+ return false;
300
+ }
301
+ if (filter.contentType) {
302
+ switch (filter.contentType) {
303
+ case "text":
304
+ if (msg.msgType !== types_js_1.MessageType.NORMAL_MESSAGE)
305
+ return false;
306
+ break;
307
+ case "zip":
308
+ if (!msg.zipMetadata)
309
+ return false;
310
+ break;
311
+ case "wts":
312
+ if (!msg.zipMetadata ||
313
+ msg.zipMetadata?.contentType !== "wts") {
314
+ return false;
315
+ }
316
+ break;
317
+ case "wip":
318
+ if (!msg.zipMetadata ||
319
+ msg.zipMetadata?.contentType !== "wip") {
320
+ return false;
321
+ }
322
+ break;
323
+ }
324
+ }
325
+ if (filter.peerAddress && peerAddress) {
326
+ const peer = peerAddress.toLowerCase();
327
+ const from = msg.fromAddress.toLowerCase();
328
+ const to = msg.toAddress.toLowerCase();
329
+ if (from !== peer && to !== peer) {
330
+ return false;
331
+ }
332
+ }
333
+ const timeField = filter.timeField || "createdAt";
334
+ if (filter.startTime !== undefined ||
335
+ filter.endTime !== undefined) {
336
+ const msgTime = msg[timeField];
337
+ if (msgTime !== undefined) {
338
+ if (filter.startTime !== undefined &&
339
+ msgTime < filter.startTime) {
340
+ return false;
341
+ }
342
+ if (filter.endTime !== undefined &&
343
+ msgTime > filter.endTime) {
344
+ return false;
345
+ }
346
+ }
347
+ }
348
+ if (filter.createdAtStart !== undefined &&
349
+ msg.createdAt < filter.createdAtStart) {
350
+ return false;
351
+ }
352
+ if (filter.createdAtEnd !== undefined &&
353
+ msg.createdAt > filter.createdAtEnd) {
354
+ return false;
355
+ }
356
+ if (filter.receivedAtStart !== undefined) {
357
+ if (msg.receivedAt === undefined ||
358
+ msg.receivedAt < filter.receivedAtStart) {
359
+ return false;
360
+ }
361
+ }
362
+ if (filter.receivedAtEnd !== undefined) {
363
+ if (msg.receivedAt === undefined ||
364
+ msg.receivedAt > filter.receivedAtEnd) {
365
+ return false;
366
+ }
367
+ }
368
+ if (filter.serverTimestampStart !== undefined) {
369
+ if (msg.serverTimestamp === undefined ||
370
+ msg.serverTimestamp < filter.serverTimestampStart) {
371
+ return false;
372
+ }
373
+ }
374
+ if (filter.serverTimestampEnd !== undefined) {
375
+ if (msg.serverTimestamp === undefined ||
376
+ msg.serverTimestamp > filter.serverTimestampEnd) {
377
+ return false;
378
+ }
379
+ }
380
+ if (filter.decryptedOnly && !msg.plaintext) {
381
+ return false;
382
+ }
383
+ if (filter.arkConfirmedOnly) {
384
+ if (!msg.arkConfirmed) {
385
+ return false;
386
+ }
387
+ }
388
+ if (filter.proofedOnly) {
389
+ if (!msg.proof) {
390
+ return false;
391
+ }
392
+ }
393
+ if (filter.arkTimestampStart !== undefined) {
394
+ if (msg.arkConfirmed === undefined ||
395
+ msg.arkConfirmed.timestamp < filter.arkTimestampStart) {
396
+ return false;
397
+ }
398
+ }
399
+ if (filter.arkTimestampEnd !== undefined) {
400
+ if (msg.arkConfirmed === undefined ||
401
+ msg.arkConfirmed.timestamp > filter.arkTimestampEnd) {
402
+ return false;
403
+ }
404
+ }
405
+ if (filter.hasLastReceivedIndexOnly) {
406
+ if (msg.lastReceivedLeafIndex === undefined ||
407
+ msg.lastReceivedLeafIndex === null) {
408
+ return false;
409
+ }
410
+ }
411
+ if (filter.lastReceivedIndexMin !== undefined) {
412
+ if (msg.lastReceivedLeafIndex === undefined ||
413
+ msg.lastReceivedLeafIndex < filter.lastReceivedIndexMin) {
414
+ return false;
415
+ }
416
+ }
417
+ if (filter.lastReceivedIndexMax !== undefined) {
418
+ if (msg.lastReceivedLeafIndex === undefined ||
419
+ msg.lastReceivedLeafIndex > filter.lastReceivedIndexMax) {
420
+ return false;
421
+ }
422
+ }
423
+ if (filter.keyword && msg.plaintext) {
424
+ if (!msg.plaintext
425
+ .toLowerCase()
426
+ .includes(filter.keyword.toLowerCase())) {
427
+ return false;
428
+ }
429
+ }
430
+ if (filter.listFilterMode && filter.listFilterMode !== "any") {
431
+ const msgAccount = this.findAccount(msg.toAddress);
432
+ if (!msgAccount)
433
+ return false;
434
+ const senderAddress = msg.fromAddress.toLowerCase();
435
+ const lists = msgAccount.contactLists;
436
+ const friends = new Set(lists.friends.map((a) => a.toLowerCase()));
437
+ const guards = new Set(lists.guards.map((g) => g.guardAddress.toLowerCase()));
438
+ const inFriends = friends.has(senderAddress);
439
+ const inGuards = guards.has(senderAddress);
440
+ const isStranger = !inFriends && !inGuards;
441
+ switch (filter.listFilterMode) {
442
+ case "friends":
443
+ if (!inFriends)
444
+ return false;
445
+ break;
446
+ case "guard":
447
+ if (!inGuards)
448
+ return false;
449
+ break;
450
+ case "stranger":
451
+ if (!isStranger)
452
+ return false;
453
+ break;
454
+ }
455
+ if (filter.customListFilter) {
456
+ const { includeAddresses, excludeAddresses, relation = "union", } = filter.customListFilter;
457
+ if (excludeAddresses) {
458
+ const excludeSet = new Set(excludeAddresses.map((a) => a.toLowerCase()));
459
+ if (excludeSet.has(senderAddress))
460
+ return false;
461
+ }
462
+ if (includeAddresses && includeAddresses.length > 0) {
463
+ const includeSet = new Set(includeAddresses.map((a) => a.toLowerCase()));
464
+ const inIncludeList = includeSet.has(senderAddress);
465
+ if (relation === "union") {
466
+ const modeMatch = (filter.listFilterMode === "friends" &&
467
+ inFriends) ||
468
+ (filter.listFilterMode === "guard" &&
469
+ inGuards) ||
470
+ (filter.listFilterMode === "stranger" &&
471
+ isStranger);
472
+ if (!inIncludeList && !modeMatch)
473
+ return false;
474
+ }
475
+ else {
476
+ if (!inIncludeList)
477
+ return false;
478
+ }
479
+ }
480
+ }
481
+ }
482
+ return true;
483
+ });
484
+ }
485
+ const sortOrder = filter?.sortOrder ?? "desc";
486
+ const sortField = filter?.timeField || "createdAt";
487
+ messages.sort((a, b) => {
488
+ const aTime = a[sortField] || 0;
489
+ const bTime = b[sortField] || 0;
490
+ return sortOrder === "asc" ? aTime - bTime : bTime - aTime;
491
+ });
492
+ const { MAX_QUERY_LIMIT } = await import("./types.js");
493
+ const defaultLimit = this.config.defaultQueryLimit ?? 50;
494
+ const limit = Math.min(filter?.limit ?? defaultLimit, MAX_QUERY_LIMIT);
495
+ const offset = filter?.offset ?? 0;
496
+ messages = messages.slice(offset, offset + limit);
497
+ return messages;
498
+ }
499
+ startPolling() {
500
+ if (this.isWatching)
501
+ return;
502
+ this.isWatching = true;
503
+ for (const info of this.accounts.values()) {
504
+ const timer = setInterval(async () => {
505
+ try {
506
+ const messages = await info.messenger.pullMessages();
507
+ if (messages.length > 0) {
508
+ for (const listener of this.messageListeners) {
509
+ listener(messages);
510
+ }
511
+ }
512
+ }
513
+ catch (error) {
514
+ console.error(`Failed to poll messages for ${info.address}:`, error);
515
+ }
516
+ }, this.config.watch_interval_ms);
517
+ this.pollingTimers.set(info.address, timer);
518
+ }
519
+ }
520
+ startAccountPolling(address) {
521
+ const info = this.accounts.get(address.toLowerCase());
522
+ if (!info || !info.initialized)
523
+ return;
524
+ const existingTimer = this.pollingTimers.get(info.address);
525
+ if (existingTimer) {
526
+ clearInterval(existingTimer);
527
+ }
528
+ const timer = setInterval(async () => {
529
+ try {
530
+ const messages = await info.messenger.pullMessages();
531
+ if (messages.length > 0) {
532
+ for (const listener of this.messageListeners) {
533
+ listener(messages);
534
+ }
535
+ }
536
+ }
537
+ catch (error) {
538
+ console.error(`Failed to poll messages for ${info.address}:`, error);
539
+ }
540
+ }, this.config.watch_interval_ms);
541
+ this.pollingTimers.set(info.address, timer);
601
542
  }
602
- this.pollingTimers.clear();
603
- this.isWatching = false;
604
- }
605
- onMessage(listener) {
606
- this.messageListeners.add(listener);
607
- }
608
- offMessage(listener) {
609
- this.messageListeners.delete(listener);
610
- }
611
- destroy() {
612
- this.stop();
613
- this.messageListeners.clear();
614
- }
615
- async syncContactLists(account) {
616
- const acc = this.findAccount(account);
617
- if (!acc) {
618
- return {
619
- success: false,
620
- friends: [],
621
- guards: [],
622
- error: `Account not found: ${account}`
623
- };
543
+ stopPolling() {
544
+ for (const timer of this.pollingTimers.values()) {
545
+ clearInterval(timer);
546
+ }
547
+ this.pollingTimers.clear();
548
+ this.isWatching = false;
624
549
  }
625
- try {
626
- const { Account } = await import("../local/account.js");
627
- const accountData = await Account.Instance().get(account, false);
628
- if (!accountData?.address) {
629
- return {
630
- success: false,
631
- friends: [],
632
- guards: [],
633
- error: `Account data not found: ${account}`
634
- };
635
- }
636
- const address = accountData.address;
637
- const [friends, guards] = await Promise.all([
638
- this.fetchFriendsList(address),
639
- this.fetchGuardList(address)
640
- ]);
641
- acc.contactLists = {
642
- friends,
643
- guards,
644
- lastUpdatedAt: Date.now()
645
- };
646
- return {
647
- success: true,
648
- friends,
649
- guards
650
- };
651
- } catch (error) {
652
- console.error(
653
- `Failed to sync contact lists for ${account}:`,
654
- error
655
- );
656
- return {
657
- success: false,
658
- friends: acc.contactLists.friends,
659
- guards: acc.contactLists.guards,
660
- error: error instanceof Error ? error.message : String(error)
661
- };
550
+ onMessage(listener) {
551
+ this.messageListeners.add(listener);
662
552
  }
663
- }
664
- async syncAllContactLists() {
665
- const results = /* @__PURE__ */ new Map();
666
- for (const acc of this.accounts.values()) {
667
- const result = await this.syncContactLists(acc.address);
668
- results.set(acc.address, result);
553
+ offMessage(listener) {
554
+ this.messageListeners.delete(listener);
669
555
  }
670
- return results;
671
- }
672
- getContactLists(account) {
673
- const acc = this.findAccount(account);
674
- return acc?.contactLists;
675
- }
676
- setContactLists(account, lists) {
677
- const acc = this.findAccount(account);
678
- if (!acc) return false;
679
- acc.contactLists = {
680
- ...acc.contactLists,
681
- ...lists,
682
- lastUpdatedAt: Date.now()
683
- };
684
- return true;
685
- }
686
- isStranger(account, senderAddress) {
687
- const acc = this.findAccount(account);
688
- if (!acc) return true;
689
- const sender = senderAddress.toLowerCase();
690
- const lists = acc.contactLists;
691
- const inFriends = lists.friends.some((a) => a.toLowerCase() === sender);
692
- const inGuards = lists.guards.some(
693
- (g) => g.guardAddress.toLowerCase() === sender
694
- );
695
- return !inFriends && !inGuards;
696
- }
697
- recordGuardSender(account, guardAddress) {
698
- const acc = this.findAccount(account);
699
- if (!acc) return false;
700
- const guardAddr = guardAddress.toLowerCase();
701
- const exists = acc.contactLists.guards.some(
702
- (g) => g.guardAddress.toLowerCase() === guardAddr
703
- );
704
- if (!exists) {
705
- acc.contactLists.guards.push({
706
- guardAddress,
707
- passportValiditySeconds: 86400
708
- });
709
- acc.contactLists.lastUpdatedAt = Date.now();
556
+ destroy() {
557
+ this.stop();
558
+ this.messageListeners.clear();
710
559
  }
711
- return true;
712
- }
713
- async fetchFriendsList(address) {
714
- try {
715
- const response = await fetch(
716
- `${this.config.serverUrl}/v1/spam-protection/${address}/friends-list`,
717
- {
718
- method: "POST",
719
- headers: { "Content-Type": "application/json" },
720
- body: JSON.stringify({
721
- userAddress: address,
722
- signature: "",
723
- timestamp: Date.now(),
724
- nonce: this.generateNonce()
725
- })
560
+ async syncContactLists(account) {
561
+ const acc = this.findAccount(account);
562
+ if (!acc) {
563
+ return {
564
+ success: false,
565
+ friends: [],
566
+ guards: [],
567
+ error: `Account not found: ${account}`,
568
+ };
726
569
  }
727
- );
728
- if (!response.ok) {
729
- throw new Error(`HTTP ${response.status}`);
730
- }
731
- return await response.json();
732
- } catch (error) {
733
- return [];
570
+ try {
571
+ const { Account } = await import("../local/account.js");
572
+ const accountData = await Account.Instance().get(account, false);
573
+ if (!accountData?.address) {
574
+ return {
575
+ success: false,
576
+ friends: [],
577
+ guards: [],
578
+ error: `Account data not found: ${account}`,
579
+ };
580
+ }
581
+ const address = accountData.address;
582
+ const [friends, guards] = await Promise.all([
583
+ this.fetchFriendsList(address),
584
+ this.fetchGuardList(address),
585
+ ]);
586
+ acc.contactLists = {
587
+ friends,
588
+ guards,
589
+ lastUpdatedAt: Date.now(),
590
+ };
591
+ return {
592
+ success: true,
593
+ friends,
594
+ guards,
595
+ };
596
+ }
597
+ catch (error) {
598
+ console.error(`Failed to sync contact lists for ${account}:`, error);
599
+ return {
600
+ success: false,
601
+ friends: acc.contactLists.friends,
602
+ guards: acc.contactLists.guards,
603
+ error: error instanceof Error ? error.message : String(error),
604
+ };
605
+ }
606
+ }
607
+ async syncAllContactLists() {
608
+ const results = new Map();
609
+ for (const acc of this.accounts.values()) {
610
+ const result = await this.syncContactLists(acc.address);
611
+ results.set(acc.address, result);
612
+ }
613
+ return results;
614
+ }
615
+ getContactLists(account) {
616
+ const acc = this.findAccount(account);
617
+ return acc?.contactLists;
618
+ }
619
+ setContactLists(account, lists) {
620
+ const acc = this.findAccount(account);
621
+ if (!acc)
622
+ return false;
623
+ acc.contactLists = {
624
+ ...acc.contactLists,
625
+ ...lists,
626
+ lastUpdatedAt: Date.now(),
627
+ };
628
+ return true;
734
629
  }
735
- }
736
- async fetchGuardList(address) {
737
- try {
738
- const response = await fetch(
739
- `${this.config.serverUrl}/v1/spam-protection/${address}/guard-list`,
740
- {
741
- method: "POST",
742
- headers: { "Content-Type": "application/json" },
743
- body: JSON.stringify({
744
- userAddress: address,
745
- signature: "",
746
- timestamp: Date.now(),
747
- nonce: this.generateNonce()
748
- })
630
+ isStranger(account, senderAddress) {
631
+ const acc = this.findAccount(account);
632
+ if (!acc)
633
+ return true;
634
+ const sender = senderAddress.toLowerCase();
635
+ const lists = acc.contactLists;
636
+ const inFriends = lists.friends.some((a) => a.toLowerCase() === sender);
637
+ const inGuards = lists.guards.some((g) => g.guardAddress.toLowerCase() === sender);
638
+ return !inFriends && !inGuards;
639
+ }
640
+ recordGuardSender(account, guardAddress) {
641
+ const acc = this.findAccount(account);
642
+ if (!acc)
643
+ return false;
644
+ const guardAddr = guardAddress.toLowerCase();
645
+ const exists = acc.contactLists.guards.some((g) => g.guardAddress.toLowerCase() === guardAddr);
646
+ if (!exists) {
647
+ acc.contactLists.guards.push({
648
+ guardAddress: guardAddress,
649
+ passportValiditySeconds: 86400,
650
+ });
651
+ acc.contactLists.lastUpdatedAt = Date.now();
749
652
  }
750
- );
751
- if (!response.ok) {
752
- throw new Error(`HTTP ${response.status}`);
753
- }
754
- return await response.json();
755
- } catch (error) {
756
- return [];
757
- }
758
- }
759
- generateNonce() {
760
- return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
761
- }
762
- async watch_paginated(filter) {
763
- const { MAX_QUERY_LIMIT } = await import("./types.js");
764
- const allMessages = await this.watch(filter);
765
- const total = allMessages.length;
766
- const defaultLimit = this.config.defaultQueryLimit ?? 50;
767
- const limit = Math.min(filter?.limit ?? defaultLimit, MAX_QUERY_LIMIT);
768
- const offset = filter?.offset ?? 0;
769
- const messages = allMessages.slice(offset, offset + limit);
770
- return {
771
- messages,
772
- total,
773
- offset,
774
- limit
775
- };
776
- }
777
- async get_conversations(account) {
778
- const filter = account ? { account } : void 0;
779
- const allMessages = await this.watch(filter);
780
- const conversations = /* @__PURE__ */ new Map();
781
- for (const msg of allMessages) {
782
- const myAddress = account?.toLowerCase();
783
- const peerAddress = msg.fromAddress.toLowerCase() === myAddress ? msg.toAddress : msg.fromAddress;
784
- if (!conversations.has(peerAddress)) {
785
- conversations.set(peerAddress, {
786
- peerAddress,
787
- lastMessageAt: msg.createdAt,
788
- messageCount: 0,
789
- unreadCount: 0,
790
- lastMessagePreview: msg.plaintext
791
- });
792
- }
793
- const conv = conversations.get(peerAddress);
794
- conv.messageCount++;
795
- if (msg.createdAt > conv.lastMessageAt) {
796
- conv.lastMessageAt = msg.createdAt;
797
- conv.lastMessagePreview = msg.plaintext;
798
- }
799
- if (msg.status !== import_types.MessageStatus.READ && msg.toAddress.toLowerCase() === myAddress) {
800
- conv.unreadCount++;
801
- }
802
- }
803
- return Array.from(conversations.values()).sort(
804
- (a, b) => b.lastMessageAt - a.lastMessageAt
805
- );
806
- }
807
- async generate_wts(params) {
808
- const fs = await import("fs");
809
- const path = await import("path");
810
- const myAddress = params.myAccount.toLowerCase();
811
- const peerAddress = params.peerAccount.toLowerCase();
812
- const messageStorage = new import_storage.MessageStorage(myAddress);
813
- const myMessages = messageStorage.getAllMessages(myAddress);
814
- let messages = myMessages.filter((msg) => {
815
- const fromLower = msg.fromAddress.toLowerCase();
816
- const toLower = msg.toAddress.toLowerCase();
817
- const isBetween = fromLower === myAddress && toLower === peerAddress || fromLower === peerAddress && toLower === myAddress;
818
- return isBetween;
819
- });
820
- messages = messages.filter(
821
- (m) => m.leafIndex !== void 0 && m.serverTimestamp !== void 0
822
- ).reduce((acc, msg) => {
823
- const existing = acc.find((m) => m.messageId === msg.messageId);
824
- if (!existing) {
825
- acc.push(msg);
826
- }
827
- return acc;
828
- }, []).sort((a, b) => {
829
- return a.leafIndex - b.leafIndex;
830
- });
831
- const leafIndexMap = /* @__PURE__ */ new Map();
832
- for (const msg of messages) {
833
- const idx = msg.leafIndex;
834
- if (!leafIndexMap.has(idx)) {
835
- leafIndexMap.set(idx, []);
836
- }
837
- leafIndexMap.get(idx).push(msg);
653
+ return true;
838
654
  }
839
- const duplicates = Array.from(leafIndexMap.entries()).filter(
840
- ([, msgs]) => msgs.length > 1
841
- );
842
- if (duplicates.length > 0) {
843
- messages.sort(
844
- (a, b) => (b.serverTimestamp || 0) - (a.serverTimestamp || 0)
845
- );
846
- const seenLeafIndices = /* @__PURE__ */ new Set();
847
- const uniqueMessages = [];
848
- for (const msg of messages) {
849
- const idx = msg.leafIndex;
850
- if (!seenLeafIndices.has(idx)) {
851
- seenLeafIndices.add(idx);
852
- uniqueMessages.push(msg);
655
+ async fetchFriendsList(address) {
656
+ try {
657
+ const response = await fetch(`${this.config.serverUrl}/v1/spam-protection/${address}/friends-list`, {
658
+ method: "POST",
659
+ headers: { "Content-Type": "application/json" },
660
+ body: JSON.stringify({
661
+ userAddress: address,
662
+ signature: "",
663
+ timestamp: Date.now(),
664
+ nonce: this.generateNonce(),
665
+ }),
666
+ });
667
+ if (!response.ok) {
668
+ throw new Error(`HTTP ${response.status}`);
669
+ }
670
+ return (await response.json());
853
671
  }
854
- }
855
- messages = uniqueMessages.sort(
856
- (a, b) => a.leafIndex - b.leafIndex
857
- );
858
- }
859
- if (params.range) {
860
- switch (params.range.type) {
861
- case "time": {
862
- const start = Math.min(
863
- params.range.start,
864
- params.range.end
865
- );
866
- const end = Math.max(params.range.start, params.range.end);
867
- messages = messages.filter(
868
- (m) => m.createdAt >= start && m.createdAt <= end
869
- );
870
- break;
672
+ catch (error) {
673
+ return [];
871
674
  }
872
- case "messageId": {
873
- const start = params.range.start;
874
- const end = params.range.end;
875
- messages = messages.filter(
876
- (m) => m.messageId >= start && m.messageId <= end
877
- );
878
- break;
675
+ }
676
+ async fetchGuardList(address) {
677
+ try {
678
+ const response = await fetch(`${this.config.serverUrl}/v1/spam-protection/${address}/guard-list`, {
679
+ method: "POST",
680
+ headers: { "Content-Type": "application/json" },
681
+ body: JSON.stringify({
682
+ userAddress: address,
683
+ signature: "",
684
+ timestamp: Date.now(),
685
+ nonce: this.generateNonce(),
686
+ }),
687
+ });
688
+ if (!response.ok) {
689
+ throw new Error(`HTTP ${response.status}`);
690
+ }
691
+ return (await response.json());
879
692
  }
880
- case "seqIndex": {
881
- const start = Math.min(
882
- params.range.start,
883
- params.range.end
884
- );
885
- const end = Math.max(params.range.start, params.range.end);
886
- messages = messages.filter(
887
- (m) => m.leafIndex >= start && m.leafIndex <= end
888
- );
889
- break;
693
+ catch (error) {
694
+ return [];
890
695
  }
891
- }
892
- }
893
- if (messages.length === 0) {
894
- throw new import_types2.MessengerError(
895
- import_types2.MessengerErrorCode.INVALID_INPUT,
896
- "No messages found for the given criteria"
897
- );
898
696
  }
899
- if (messages.length > import_types.WTS_MAX_MESSAGE_COUNT) {
900
- throw new import_types2.MessengerError(
901
- import_types2.MessengerErrorCode.INVALID_INPUT,
902
- `Message count (${messages.length}) exceeds maximum allowed (${import_types.WTS_MAX_MESSAGE_COUNT})`
903
- );
697
+ generateNonce() {
698
+ return (Math.random().toString(36).substring(2, 15) +
699
+ Math.random().toString(36).substring(2, 15));
904
700
  }
905
- if (!fs.existsSync(params.outputDir)) {
906
- fs.mkdirSync(params.outputDir, { recursive: true });
701
+ async watch_paginated(filter) {
702
+ const { MAX_QUERY_LIMIT } = await import("./types.js");
703
+ const allMessages = await this.watch(filter);
704
+ const total = allMessages.length;
705
+ const defaultLimit = this.config.defaultQueryLimit ?? 50;
706
+ const limit = Math.min(filter?.limit ?? defaultLimit, MAX_QUERY_LIMIT);
707
+ const offset = filter?.offset ?? 0;
708
+ const messages = allMessages.slice(offset, offset + limit);
709
+ return {
710
+ messages,
711
+ total,
712
+ offset,
713
+ limit,
714
+ };
907
715
  }
908
- const sessionId = `${myAddress.slice(0, 6)}_${peerAddress.slice(0, 6)}`;
909
- const groups = [messages];
910
- const generatedFiles = [];
911
- const startTime = messages[0].createdAt;
912
- const endTime = messages[messages.length - 1].createdAt;
913
- for (const group of groups) {
914
- const leafIndices = group.map((m) => m.leafIndex).filter((i) => i !== void 0);
915
- const startLeafIndex = Math.min(...leafIndices);
916
- const endLeafIndex = Math.max(...leafIndices);
917
- for (const msg of group) {
918
- if (msg.serverTimestamp === void 0) {
919
- throw new import_types2.MessengerError(
920
- import_types2.MessengerErrorCode.INVALID_INPUT,
921
- `Message ${msg.messageId} missing serverTimestamp`
922
- );
923
- }
924
- if (msg.leafIndex === void 0) {
925
- throw new import_types2.MessengerError(
926
- import_types2.MessengerErrorCode.INVALID_INPUT,
927
- `Message ${msg.messageId} missing leafIndex`
928
- );
929
- }
930
- if (!msg.prevRoot) {
931
- throw new import_types2.MessengerError(
932
- import_types2.MessengerErrorCode.INVALID_INPUT,
933
- `Message ${msg.messageId} missing prevRoot`
934
- );
716
+ async get_conversations(account) {
717
+ const filter = account ? { account } : undefined;
718
+ const allMessages = await this.watch(filter);
719
+ const conversations = new Map();
720
+ for (const msg of allMessages) {
721
+ const myAddress = account?.toLowerCase();
722
+ const peerAddress = msg.fromAddress.toLowerCase() === myAddress
723
+ ? msg.toAddress
724
+ : msg.fromAddress;
725
+ if (!conversations.has(peerAddress)) {
726
+ conversations.set(peerAddress, {
727
+ peerAddress,
728
+ lastMessageAt: msg.createdAt,
729
+ messageCount: 0,
730
+ unreadCount: 0,
731
+ lastMessagePreview: msg.plaintext,
732
+ });
733
+ }
734
+ const conv = conversations.get(peerAddress);
735
+ conv.messageCount++;
736
+ if (msg.createdAt > conv.lastMessageAt) {
737
+ conv.lastMessageAt = msg.createdAt;
738
+ conv.lastMessagePreview = msg.plaintext;
739
+ }
740
+ if (msg.status !== types_js_1.MessageStatus.READ &&
741
+ msg.toAddress.toLowerCase() === myAddress) {
742
+ conv.unreadCount++;
743
+ }
935
744
  }
936
- if (!msg.newRoot) {
937
- throw new import_types2.MessengerError(
938
- import_types2.MessengerErrorCode.INVALID_INPUT,
939
- `Message ${msg.messageId} missing newRoot`
940
- );
745
+ return Array.from(conversations.values()).sort((a, b) => b.lastMessageAt - a.lastMessageAt);
746
+ }
747
+ async generate_wts(params) {
748
+ const fs = await import("fs");
749
+ const path = await import("path");
750
+ const myAddress = params.myAccount.toLowerCase();
751
+ const peerAddress = params.peerAccount.toLowerCase();
752
+ const messageStorage = new storage_js_1.MessageStorage(myAddress);
753
+ const myMessages = messageStorage.getAllMessages(myAddress);
754
+ let messages = myMessages.filter((msg) => {
755
+ const fromLower = msg.fromAddress.toLowerCase();
756
+ const toLower = msg.toAddress.toLowerCase();
757
+ const isBetween = (fromLower === myAddress && toLower === peerAddress) ||
758
+ (fromLower === peerAddress && toLower === myAddress);
759
+ return isBetween;
760
+ });
761
+ messages = messages
762
+ .filter((m) => m.leafIndex !== undefined &&
763
+ m.serverTimestamp !== undefined)
764
+ .reduce((acc, msg) => {
765
+ const existing = acc.find((m) => m.messageId === msg.messageId);
766
+ if (!existing) {
767
+ acc.push(msg);
768
+ }
769
+ return acc;
770
+ }, [])
771
+ .sort((a, b) => {
772
+ return a.leafIndex - b.leafIndex;
773
+ });
774
+ const leafIndexMap = new Map();
775
+ for (const msg of messages) {
776
+ const idx = msg.leafIndex;
777
+ if (!leafIndexMap.has(idx)) {
778
+ leafIndexMap.set(idx, []);
779
+ }
780
+ leafIndexMap.get(idx).push(msg);
781
+ }
782
+ const duplicates = Array.from(leafIndexMap.entries()).filter(([, msgs]) => msgs.length > 1);
783
+ if (duplicates.length > 0) {
784
+ messages.sort((a, b) => (b.serverTimestamp || 0) - (a.serverTimestamp || 0));
785
+ const seenLeafIndices = new Set();
786
+ const uniqueMessages = [];
787
+ for (const msg of messages) {
788
+ const idx = msg.leafIndex;
789
+ if (!seenLeafIndices.has(idx)) {
790
+ seenLeafIndices.add(idx);
791
+ uniqueMessages.push(msg);
792
+ }
793
+ }
794
+ messages = uniqueMessages.sort((a, b) => a.leafIndex - b.leafIndex);
795
+ }
796
+ if (params.range) {
797
+ switch (params.range.type) {
798
+ case "time": {
799
+ const start = Math.min(params.range.start, params.range.end);
800
+ const end = Math.max(params.range.start, params.range.end);
801
+ messages = messages.filter((m) => m.createdAt >= start && m.createdAt <= end);
802
+ break;
803
+ }
804
+ case "messageId": {
805
+ const start = params.range.start;
806
+ const end = params.range.end;
807
+ messages = messages.filter((m) => m.messageId >= start && m.messageId <= end);
808
+ break;
809
+ }
810
+ case "seqIndex": {
811
+ const start = Math.min(params.range.start, params.range.end);
812
+ const end = Math.max(params.range.start, params.range.end);
813
+ messages = messages.filter((m) => m.leafIndex >= start && m.leafIndex <= end);
814
+ break;
815
+ }
816
+ }
941
817
  }
942
- if (!msg.serverSignature) {
943
- throw new import_types2.MessengerError(
944
- import_types2.MessengerErrorCode.INVALID_INPUT,
945
- `Message ${msg.messageId} missing serverSignature`
946
- );
818
+ if (messages.length === 0) {
819
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.INVALID_INPUT, "No messages found for the given criteria");
820
+ }
821
+ if (messages.length > types_js_1.WTS_MAX_MESSAGE_COUNT) {
822
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.INVALID_INPUT, `Message count (${messages.length}) exceeds maximum allowed (${types_js_1.WTS_MAX_MESSAGE_COUNT})`);
823
+ }
824
+ if (!fs.existsSync(params.outputDir)) {
825
+ fs.mkdirSync(params.outputDir, { recursive: true });
826
+ }
827
+ const sessionId = `${myAddress.slice(0, 6)}_${peerAddress.slice(0, 6)}`;
828
+ const groups = [messages];
829
+ const generatedFiles = [];
830
+ const startTime = messages[0].createdAt;
831
+ const endTime = messages[messages.length - 1].createdAt;
832
+ for (const group of groups) {
833
+ const leafIndices = group
834
+ .map((m) => m.leafIndex)
835
+ .filter((i) => i !== undefined);
836
+ const startLeafIndex = Math.min(...leafIndices);
837
+ const endLeafIndex = Math.max(...leafIndices);
838
+ for (const msg of group) {
839
+ if (msg.serverTimestamp === undefined) {
840
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.INVALID_INPUT, `Message ${msg.messageId} missing serverTimestamp`);
841
+ }
842
+ if (msg.leafIndex === undefined) {
843
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.INVALID_INPUT, `Message ${msg.messageId} missing leafIndex`);
844
+ }
845
+ if (!msg.prevRoot) {
846
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.INVALID_INPUT, `Message ${msg.messageId} missing prevRoot`);
847
+ }
848
+ if (!msg.newRoot) {
849
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.INVALID_INPUT, `Message ${msg.messageId} missing newRoot`);
850
+ }
851
+ if (!msg.serverSignature) {
852
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.INVALID_INPUT, `Message ${msg.messageId} missing serverSignature`);
853
+ }
854
+ }
855
+ const wtsMessages = group.map((msg) => ({
856
+ id: msg.messageId,
857
+ from: msg.fromAddress,
858
+ to: msg.toAddress,
859
+ plaintext: params.excludePlaintext ? undefined : msg.plaintext,
860
+ plaintextHash: msg.plaintextHash,
861
+ clientTimestamp: msg.createdAt,
862
+ timestamp: msg.serverTimestamp,
863
+ leafIndex: msg.leafIndex,
864
+ prevRoot: msg.prevRoot,
865
+ merkleRoot: msg.newRoot,
866
+ serverSignature: msg.serverSignature,
867
+ serverPublicKey: msg.serverPublicKey || "",
868
+ guardAddress: msg.guardAddress,
869
+ passportAddress: msg.passportAddress,
870
+ lastReceivedLeafIndex: msg.lastReceivedLeafIndex,
871
+ arkConfirmed: msg.arkConfirmed
872
+ ? {
873
+ recipient: msg.arkConfirmed.recipient,
874
+ recipientPublicKey: msg.arkConfirmed.recipientPublicKey,
875
+ signature: msg.arkConfirmed.signature,
876
+ timestamp: msg.arkConfirmed.timestamp,
877
+ }
878
+ : undefined,
879
+ msgType: msg.msgType,
880
+ zipMetadata: msg.zipMetadata,
881
+ }));
882
+ const addresses = [myAddress, peerAddress].sort();
883
+ const wtsSession = {
884
+ id: `${addresses[0]}:${addresses[1]}`,
885
+ participants: addresses,
886
+ };
887
+ const payload = {
888
+ session: wtsSession,
889
+ messages: wtsMessages,
890
+ };
891
+ const wtsMeta = {
892
+ type: "wts",
893
+ version: "1.0",
894
+ created: new Date().toISOString(),
895
+ hash: "",
896
+ algorithm: "sha256",
897
+ startTime,
898
+ endTime,
899
+ messageCount: wtsMessages.length,
900
+ merkleRoot: wtsMessages[wtsMessages.length - 1].merkleRoot,
901
+ };
902
+ const wtsFile = {
903
+ wts: (0, utils_js_1.canonicalizeJson)(wtsMeta),
904
+ payload,
905
+ meta: wtsMeta,
906
+ };
907
+ const fileName = `${sessionId}_${startLeafIndex}-${endLeafIndex}.wts`;
908
+ const filePath = path.join(params.outputDir, fileName);
909
+ fs.writeFileSync(filePath, JSON.stringify(wtsFile, null, 2));
910
+ generatedFiles.push(filePath);
947
911
  }
948
- }
949
- const wtsMessages = group.map((msg) => ({
950
- id: msg.messageId,
951
- from: msg.fromAddress,
952
- to: msg.toAddress,
953
- plaintext: params.excludePlaintext ? void 0 : msg.plaintext,
954
- plaintextHash: msg.plaintextHash,
955
- clientTimestamp: msg.createdAt,
956
- timestamp: msg.serverTimestamp,
957
- leafIndex: msg.leafIndex,
958
- prevRoot: msg.prevRoot,
959
- merkleRoot: msg.newRoot,
960
- serverSignature: msg.serverSignature,
961
- serverPublicKey: msg.serverPublicKey || "",
962
- guardAddress: msg.guardAddress,
963
- passportAddress: msg.passportAddress,
964
- lastReceivedLeafIndex: msg.lastReceivedLeafIndex,
965
- arkConfirmed: msg.arkConfirmed ? {
966
- recipient: msg.arkConfirmed.recipient,
967
- recipientPublicKey: msg.arkConfirmed.recipientPublicKey,
968
- signature: msg.arkConfirmed.signature,
969
- timestamp: msg.arkConfirmed.timestamp
970
- } : void 0,
971
- msgType: msg.msgType,
972
- zipMetadata: msg.zipMetadata
973
- }));
974
- const addresses = [myAddress, peerAddress].sort();
975
- const wtsSession = {
976
- id: `${addresses[0]}:${addresses[1]}`,
977
- participants: addresses
978
- };
979
- const payload = {
980
- session: wtsSession,
981
- messages: wtsMessages
982
- };
983
- const wtsMeta = {
984
- type: "wts",
985
- version: "1.0",
986
- created: (/* @__PURE__ */ new Date()).toISOString(),
987
- hash: "",
988
- algorithm: "sha256",
989
- startTime,
990
- endTime,
991
- messageCount: wtsMessages.length,
992
- merkleRoot: wtsMessages[wtsMessages.length - 1].merkleRoot
993
- };
994
- const wtsFile = {
995
- wts: (0, import_utils.canonicalizeJson)(wtsMeta),
996
- payload,
997
- meta: wtsMeta
998
- };
999
- const fileName = `${sessionId}_${startLeafIndex}-${endLeafIndex}.wts`;
1000
- const filePath = path.join(params.outputDir, fileName);
1001
- fs.writeFileSync(filePath, JSON.stringify(wtsFile, null, 2));
1002
- generatedFiles.push(filePath);
912
+ return {
913
+ files: generatedFiles,
914
+ totalMessageCount: messages.length,
915
+ timeRange: {
916
+ start: startTime,
917
+ end: endTime,
918
+ },
919
+ };
1003
920
  }
1004
- return {
1005
- files: generatedFiles,
1006
- totalMessageCount: messages.length,
1007
- timeRange: {
1008
- start: startTime,
1009
- end: endTime
1010
- }
1011
- };
1012
- }
1013
- async addToBlacklist(account, addresses) {
1014
- const acc = this.findAccount(account);
1015
- if (!acc) {
1016
- throw new import_types2.MessengerError(
1017
- import_types2.MessengerErrorCode.ACCOUNT_NOT_FOUND,
1018
- `Account ${account} not in managed accounts`
1019
- );
921
+ async addToBlacklist(account, addresses) {
922
+ const acc = this.findAccount(account);
923
+ if (!acc) {
924
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.ACCOUNT_NOT_FOUND, `Account ${account} not in managed accounts`);
925
+ }
926
+ return acc.messenger.addToBlacklist(addresses);
1020
927
  }
1021
- return acc.messenger.addToBlacklist(addresses);
1022
- }
1023
- async removeFromBlacklist(account, addresses) {
1024
- const acc = this.findAccount(account);
1025
- if (!acc) {
1026
- throw new import_types2.MessengerError(
1027
- import_types2.MessengerErrorCode.ACCOUNT_NOT_FOUND,
1028
- `Account ${account} not in managed accounts`
1029
- );
928
+ async removeFromBlacklist(account, addresses) {
929
+ const acc = this.findAccount(account);
930
+ if (!acc) {
931
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.ACCOUNT_NOT_FOUND, `Account ${account} not in managed accounts`);
932
+ }
933
+ return acc.messenger.removeFromBlacklist(addresses);
1030
934
  }
1031
- return acc.messenger.removeFromBlacklist(addresses);
1032
- }
1033
- async clearBlacklist(account) {
1034
- const acc = this.findAccount(account);
1035
- if (!acc) {
1036
- throw new import_types2.MessengerError(
1037
- import_types2.MessengerErrorCode.ACCOUNT_NOT_FOUND,
1038
- `Account ${account} not in managed accounts`
1039
- );
935
+ async clearBlacklist(account) {
936
+ const acc = this.findAccount(account);
937
+ if (!acc) {
938
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.ACCOUNT_NOT_FOUND, `Account ${account} not in managed accounts`);
939
+ }
940
+ return acc.messenger.clearBlacklist();
1040
941
  }
1041
- return acc.messenger.clearBlacklist();
1042
- }
1043
- async getBlacklist(account) {
1044
- const acc = this.findAccount(account);
1045
- if (!acc) {
1046
- throw new import_types2.MessengerError(
1047
- import_types2.MessengerErrorCode.ACCOUNT_NOT_FOUND,
1048
- `Account ${account} not in managed accounts`
1049
- );
942
+ async getBlacklist(account) {
943
+ const acc = this.findAccount(account);
944
+ if (!acc) {
945
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.ACCOUNT_NOT_FOUND, `Account ${account} not in managed accounts`);
946
+ }
947
+ return acc.messenger.getBlacklist();
1050
948
  }
1051
- return acc.messenger.getBlacklist();
1052
- }
1053
- async existInBlacklist(account, addresses) {
1054
- const acc = this.findAccount(account);
1055
- if (!acc) {
1056
- throw new import_types2.MessengerError(
1057
- import_types2.MessengerErrorCode.ACCOUNT_NOT_FOUND,
1058
- `Account ${account} not in managed accounts`
1059
- );
949
+ async existInBlacklist(account, addresses) {
950
+ const acc = this.findAccount(account);
951
+ if (!acc) {
952
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.ACCOUNT_NOT_FOUND, `Account ${account} not in managed accounts`);
953
+ }
954
+ return acc.messenger.existInBlacklist(addresses);
1060
955
  }
1061
- return acc.messenger.existInBlacklist(addresses);
1062
- }
1063
- async addToFriendsList(account, addresses) {
1064
- const acc = this.findAccount(account);
1065
- if (!acc) {
1066
- throw new import_types2.MessengerError(
1067
- import_types2.MessengerErrorCode.ACCOUNT_NOT_FOUND,
1068
- `Account ${account} not in managed accounts`
1069
- );
956
+ async addToFriendsList(account, addresses) {
957
+ const acc = this.findAccount(account);
958
+ if (!acc) {
959
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.ACCOUNT_NOT_FOUND, `Account ${account} not in managed accounts`);
960
+ }
961
+ return acc.messenger.addToFriendsList(addresses);
1070
962
  }
1071
- return acc.messenger.addToFriendsList(addresses);
1072
- }
1073
- async removeFromFriendsList(account, addresses) {
1074
- const acc = this.findAccount(account);
1075
- if (!acc) {
1076
- throw new import_types2.MessengerError(
1077
- import_types2.MessengerErrorCode.ACCOUNT_NOT_FOUND,
1078
- `Account ${account} not in managed accounts`
1079
- );
963
+ async removeFromFriendsList(account, addresses) {
964
+ const acc = this.findAccount(account);
965
+ if (!acc) {
966
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.ACCOUNT_NOT_FOUND, `Account ${account} not in managed accounts`);
967
+ }
968
+ return acc.messenger.removeFromFriendsList(addresses);
1080
969
  }
1081
- return acc.messenger.removeFromFriendsList(addresses);
1082
- }
1083
- async clearFriendsList(account) {
1084
- const acc = this.findAccount(account);
1085
- if (!acc) {
1086
- throw new import_types2.MessengerError(
1087
- import_types2.MessengerErrorCode.ACCOUNT_NOT_FOUND,
1088
- `Account ${account} not in managed accounts`
1089
- );
970
+ async clearFriendsList(account) {
971
+ const acc = this.findAccount(account);
972
+ if (!acc) {
973
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.ACCOUNT_NOT_FOUND, `Account ${account} not in managed accounts`);
974
+ }
975
+ return acc.messenger.clearFriendsList();
1090
976
  }
1091
- return acc.messenger.clearFriendsList();
1092
- }
1093
- async getFriendsList(account) {
1094
- const acc = this.findAccount(account);
1095
- if (!acc) {
1096
- throw new import_types2.MessengerError(
1097
- import_types2.MessengerErrorCode.ACCOUNT_NOT_FOUND,
1098
- `Account ${account} not in managed accounts`
1099
- );
977
+ async getFriendsList(account) {
978
+ const acc = this.findAccount(account);
979
+ if (!acc) {
980
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.ACCOUNT_NOT_FOUND, `Account ${account} not in managed accounts`);
981
+ }
982
+ return acc.messenger.getFriendsList();
1100
983
  }
1101
- return acc.messenger.getFriendsList();
1102
- }
1103
- async existInFriendsList(account, addresses) {
1104
- const acc = this.findAccount(account);
1105
- if (!acc) {
1106
- throw new import_types2.MessengerError(
1107
- import_types2.MessengerErrorCode.ACCOUNT_NOT_FOUND,
1108
- `Account ${account} not in managed accounts`
1109
- );
984
+ async existInFriendsList(account, addresses) {
985
+ const acc = this.findAccount(account);
986
+ if (!acc) {
987
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.ACCOUNT_NOT_FOUND, `Account ${account} not in managed accounts`);
988
+ }
989
+ return acc.messenger.existInFriendsList(addresses);
1110
990
  }
1111
- return acc.messenger.existInFriendsList(addresses);
1112
- }
1113
- async addToGuardList(account, guards) {
1114
- const acc = this.findAccount(account);
1115
- if (!acc) {
1116
- throw new import_types2.MessengerError(
1117
- import_types2.MessengerErrorCode.ACCOUNT_NOT_FOUND,
1118
- `Account ${account} not in managed accounts`
1119
- );
991
+ async addToGuardList(account, guards) {
992
+ const acc = this.findAccount(account);
993
+ if (!acc) {
994
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.ACCOUNT_NOT_FOUND, `Account ${account} not in managed accounts`);
995
+ }
996
+ return acc.messenger.addToGuardList(guards);
1120
997
  }
1121
- return acc.messenger.addToGuardList(guards);
1122
- }
1123
- async removeFromGuardList(account, addresses) {
1124
- const acc = this.findAccount(account);
1125
- if (!acc) {
1126
- throw new import_types2.MessengerError(
1127
- import_types2.MessengerErrorCode.ACCOUNT_NOT_FOUND,
1128
- `Account ${account} not in managed accounts`
1129
- );
998
+ async removeFromGuardList(account, addresses) {
999
+ const acc = this.findAccount(account);
1000
+ if (!acc) {
1001
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.ACCOUNT_NOT_FOUND, `Account ${account} not in managed accounts`);
1002
+ }
1003
+ return acc.messenger.removeFromGuardList(addresses);
1130
1004
  }
1131
- return acc.messenger.removeFromGuardList(addresses);
1132
- }
1133
- async getGuardList(account) {
1134
- const acc = this.findAccount(account);
1135
- if (!acc) {
1136
- throw new import_types2.MessengerError(
1137
- import_types2.MessengerErrorCode.ACCOUNT_NOT_FOUND,
1138
- `Account ${account} not in managed accounts`
1139
- );
1005
+ async getGuardList(account) {
1006
+ const acc = this.findAccount(account);
1007
+ if (!acc) {
1008
+ throw new types_js_2.MessengerError(types_js_2.MessengerErrorCode.ACCOUNT_NOT_FOUND, `Account ${account} not in managed accounts`);
1009
+ }
1010
+ return acc.messenger.getGuardList();
1140
1011
  }
1141
- return acc.messenger.getGuardList();
1142
- }
1143
1012
  }
1013
+ exports.MessengerManager = MessengerManager;
1014
+ //# sourceMappingURL=messenger-manager.js.map