wowok 2.1.39 → 2.1.41

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 (1019) hide show
  1. package/dist/cjs/bcs/bcs.d.ts +0 -8
  2. package/dist/cjs/bcs/bcs.js +1 -278
  3. package/dist/cjs/bcs/effects.js +1 -203
  4. package/dist/cjs/bcs/index.js +1 -55
  5. package/dist/cjs/bcs/pure.js +1 -39
  6. package/dist/cjs/bcs/type-tag-serializer.js +1 -107
  7. package/dist/cjs/bcs/types.d.ts +0 -49
  8. package/dist/cjs/bcs/types.js +1 -6
  9. package/dist/cjs/client/index.js +1 -7
  10. package/dist/cjs/client/network.js +1 -24
  11. package/dist/cjs/cryptography/index.js +1 -9
  12. package/dist/cjs/cryptography/intent.d.ts +0 -3
  13. package/dist/cjs/cryptography/intent.js +1 -20
  14. package/dist/cjs/cryptography/keypair.d.ts +4 -38
  15. package/dist/cjs/cryptography/keypair.js +1 -104
  16. package/dist/cjs/cryptography/mnemonics.d.ts +0 -23
  17. package/dist/cjs/cryptography/mnemonics.js +1 -46
  18. package/dist/cjs/cryptography/publickey.d.ts +0 -42
  19. package/dist/cjs/cryptography/publickey.js +1 -114
  20. package/dist/cjs/cryptography/signature-scheme.js +1 -25
  21. package/dist/cjs/cryptography/signature.d.ts +0 -11
  22. package/dist/cjs/cryptography/signature.js +1 -50
  23. package/dist/cjs/experimental/cache.js +1 -61
  24. package/dist/cjs/experimental/client.js +1 -23
  25. package/dist/cjs/experimental/core.d.ts +0 -2
  26. package/dist/cjs/experimental/core.js +1 -85
  27. package/dist/cjs/experimental/errors.js +1 -27
  28. package/dist/cjs/experimental/index.js +1 -8
  29. package/dist/cjs/experimental/persistent-storage.d.ts +0 -98
  30. package/dist/cjs/experimental/persistent-storage.js +1 -337
  31. package/dist/cjs/experimental/persistent-storage.test.d.ts +0 -4
  32. package/dist/cjs/experimental/persistent-storage.test.js +1 -198
  33. package/dist/cjs/experimental/transports/utils.js +1 -100
  34. package/dist/cjs/experimental/types.d.ts +0 -6
  35. package/dist/cjs/experimental/types.js +1 -5
  36. package/dist/cjs/faucet/faucet.d.ts +0 -9
  37. package/dist/cjs/faucet/faucet.js +1 -111
  38. package/dist/cjs/faucet/index.js +1 -4
  39. package/dist/cjs/grpc/client.js +1 -45
  40. package/dist/cjs/grpc/core.js +1 -603
  41. package/dist/cjs/grpc/index.js +1 -5
  42. package/dist/cjs/grpc/proto/google/protobuf/any.d.ts +0 -151
  43. package/dist/cjs/grpc/proto/google/protobuf/any.js +1 -168
  44. package/dist/cjs/grpc/proto/google/protobuf/duration.d.ts +0 -89
  45. package/dist/cjs/grpc/proto/google/protobuf/duration.js +1 -106
  46. package/dist/cjs/grpc/proto/google/protobuf/empty.d.ts +0 -17
  47. package/dist/cjs/grpc/proto/google/protobuf/empty.js +1 -49
  48. package/dist/cjs/grpc/proto/google/protobuf/field_mask.d.ts +0 -217
  49. package/dist/cjs/grpc/proto/google/protobuf/field_mask.js +1 -95
  50. package/dist/cjs/grpc/proto/google/protobuf/struct.d.ts +0 -112
  51. package/dist/cjs/grpc/proto/google/protobuf/struct.js +1 -272
  52. package/dist/cjs/grpc/proto/google/protobuf/timestamp.d.ts +0 -127
  53. package/dist/cjs/grpc/proto/google/protobuf/timestamp.js +1 -150
  54. package/dist/cjs/grpc/proto/google/rpc/error_details.d.ts +0 -407
  55. package/dist/cjs/grpc/proto/google/rpc/error_details.js +1 -343
  56. package/dist/cjs/grpc/proto/google/rpc/status.d.ts +0 -34
  57. package/dist/cjs/grpc/proto/google/rpc/status.js +1 -49
  58. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.d.ts +0 -48
  59. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js +1 -83
  60. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.d.ts +0 -23
  61. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js +1 -44
  62. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.d.ts +0 -20
  63. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js +1 -37
  64. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.d.ts +0 -48
  65. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js +1 -69
  66. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.d.ts +0 -51
  67. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js +1 -79
  68. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.d.ts +0 -149
  69. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js +1 -184
  70. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.d.ts +0 -257
  71. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js +1 -370
  72. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.d.ts +0 -41
  73. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js +1 -79
  74. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.d.ts +0 -12
  75. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js +1 -29
  76. package/dist/cjs/grpc/proto/sui/rpc/v2/event.d.ts +0 -63
  77. package/dist/cjs/grpc/proto/sui/rpc/v2/event.js +1 -81
  78. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.d.ts +0 -56
  79. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js +1 -79
  80. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.d.ts +0 -623
  81. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js +1 -886
  82. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.d.ts +0 -29
  83. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js +1 -55
  84. package/dist/cjs/grpc/proto/sui/rpc/v2/input.d.ts +0 -75
  85. package/dist/cjs/grpc/proto/sui/rpc/v2/input.js +1 -102
  86. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.d.ts +0 -50
  87. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js +1 -76
  88. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.d.ts +0 -52
  89. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js +1 -68
  90. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.d.ts +0 -260
  91. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js +1 -407
  92. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.d.ts +0 -429
  93. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js +1 -608
  94. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.d.ts +0 -30
  95. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js +1 -45
  96. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.d.ts +0 -151
  97. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js +1 -256
  98. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.d.ts +0 -18
  99. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js +1 -31
  100. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.d.ts +0 -97
  101. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js +1 -143
  102. package/dist/cjs/grpc/proto/sui/rpc/v2/object.d.ts +0 -95
  103. package/dist/cjs/grpc/proto/sui/rpc/v2/object.js +1 -109
  104. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.d.ts +0 -23
  105. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js +1 -45
  106. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.d.ts +0 -42
  107. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js +1 -75
  108. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.d.ts +0 -15
  109. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js +1 -45
  110. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.d.ts +0 -447
  111. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js +1 -584
  112. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.d.ts +0 -31
  113. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js +1 -52
  114. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.ts +0 -16
  115. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +1 -26
  116. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.d.ts +0 -54
  117. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js +1 -84
  118. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.d.ts +0 -36
  119. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js +1 -52
  120. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.d.ts +0 -518
  121. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js +1 -659
  122. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.d.ts +0 -36
  123. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js +1 -36
  124. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.d.ts +0 -36
  125. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js +1 -59
  126. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.d.ts +0 -538
  127. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js +1 -756
  128. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.d.ts +0 -945
  129. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js +1 -1245
  130. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.ts +0 -18
  131. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +1 -31
  132. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.d.ts +0 -118
  133. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js +1 -193
  134. package/dist/cjs/index.js +1 -33
  135. package/dist/cjs/jsonRpc/client.d.ts +0 -140
  136. package/dist/cjs/jsonRpc/client.js +1 -653
  137. package/dist/cjs/jsonRpc/core.js +1 -590
  138. package/dist/cjs/jsonRpc/errors.js +1 -41
  139. package/dist/cjs/jsonRpc/http-transport.d.ts +0 -3
  140. package/dist/cjs/jsonRpc/http-transport.js +1 -73
  141. package/dist/cjs/jsonRpc/index.js +1 -6
  142. package/dist/cjs/jsonRpc/json-rpc-resolver.js +1 -314
  143. package/dist/cjs/jsonRpc/rpc-websocket-client.d.ts +0 -15
  144. package/dist/cjs/jsonRpc/rpc-websocket-client.js +1 -159
  145. package/dist/cjs/jsonRpc/types/chain.js +1 -4
  146. package/dist/cjs/jsonRpc/types/changes.js +1 -4
  147. package/dist/cjs/jsonRpc/types/coins.js +1 -4
  148. package/dist/cjs/jsonRpc/types/common.js +1 -4
  149. package/dist/cjs/jsonRpc/types/generated.d.ts +56 -542
  150. package/dist/cjs/jsonRpc/types/generated.js +1 -4
  151. package/dist/cjs/jsonRpc/types/index.js +1 -4
  152. package/dist/cjs/jsonRpc/types/params.d.ts +0 -336
  153. package/dist/cjs/jsonRpc/types/params.js +1 -4
  154. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js +1 -63
  155. package/dist/cjs/keypairs/ed25519/index.js +1 -5
  156. package/dist/cjs/keypairs/ed25519/keypair.d.ts +0 -52
  157. package/dist/cjs/keypairs/ed25519/keypair.js +1 -140
  158. package/dist/cjs/keypairs/ed25519/publickey.d.ts +0 -19
  159. package/dist/cjs/keypairs/ed25519/publickey.js +1 -72
  160. package/dist/cjs/keypairs/index.js +1 -7
  161. package/dist/cjs/keypairs/passkey/index.js +1 -5
  162. package/dist/cjs/keypairs/passkey/keypair.d.ts +0 -80
  163. package/dist/cjs/keypairs/passkey/keypair.js +1 -251
  164. package/dist/cjs/keypairs/passkey/publickey.d.ts +0 -47
  165. package/dist/cjs/keypairs/passkey/publickey.js +1 -170
  166. package/dist/cjs/keypairs/passkey/types.d.ts +0 -6
  167. package/dist/cjs/keypairs/passkey/types.js +1 -4
  168. package/dist/cjs/keypairs/secp256k1/index.js +1 -5
  169. package/dist/cjs/keypairs/secp256k1/keypair.d.ts +0 -51
  170. package/dist/cjs/keypairs/secp256k1/keypair.js +1 -133
  171. package/dist/cjs/keypairs/secp256k1/publickey.d.ts +0 -19
  172. package/dist/cjs/keypairs/secp256k1/publickey.js +1 -73
  173. package/dist/cjs/keypairs/secp256r1/index.js +1 -5
  174. package/dist/cjs/keypairs/secp256r1/keypair.d.ts +0 -51
  175. package/dist/cjs/keypairs/secp256r1/keypair.js +1 -130
  176. package/dist/cjs/keypairs/secp256r1/publickey.d.ts +0 -19
  177. package/dist/cjs/keypairs/secp256r1/publickey.js +1 -74
  178. package/dist/cjs/multisig/index.js +1 -5
  179. package/dist/cjs/multisig/publickey.d.ts +1 -36
  180. package/dist/cjs/multisig/publickey.js +1 -243
  181. package/dist/cjs/multisig/signer.d.ts +0 -1
  182. package/dist/cjs/multisig/signer.js +1 -62
  183. package/dist/cjs/transactions/Arguments.js +1 -12
  184. package/dist/cjs/transactions/Commands.d.ts +0 -3
  185. package/dist/cjs/transactions/Commands.js +1 -110
  186. package/dist/cjs/transactions/Inputs.js +1 -55
  187. package/dist/cjs/transactions/ObjectCache.js +1 -208
  188. package/dist/cjs/transactions/Transaction.d.ts +0 -56
  189. package/dist/cjs/transactions/Transaction.js +1 -646
  190. package/dist/cjs/transactions/TransactionData.d.ts +0 -6
  191. package/dist/cjs/transactions/TransactionData.js +1 -424
  192. package/dist/cjs/transactions/__tests__/Transaction.test.js +1 -167
  193. package/dist/cjs/transactions/__tests__/bcs.test.js +1 -200
  194. package/dist/cjs/transactions/data/internal.js +1 -185
  195. package/dist/cjs/transactions/data/v1.js +1 -474
  196. package/dist/cjs/transactions/data/v2.js +1 -108
  197. package/dist/cjs/transactions/executor/caching.d.ts +0 -4
  198. package/dist/cjs/transactions/executor/caching.js +1 -72
  199. package/dist/cjs/transactions/executor/parallel.d.ts +0 -11
  200. package/dist/cjs/transactions/executor/parallel.js +1 -352
  201. package/dist/cjs/transactions/executor/queue.js +1 -62
  202. package/dist/cjs/transactions/executor/serial.d.ts +0 -1
  203. package/dist/cjs/transactions/executor/serial.js +1 -102
  204. package/dist/cjs/transactions/hash.d.ts +0 -6
  205. package/dist/cjs/transactions/hash.js +1 -17
  206. package/dist/cjs/transactions/index.d.ts +0 -1
  207. package/dist/cjs/transactions/index.js +1 -15
  208. package/dist/cjs/transactions/intents/CoinWithBalance.js +1 -148
  209. package/dist/cjs/transactions/object.js +1 -90
  210. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.d.ts +0 -18
  211. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js +1 -20
  212. package/dist/cjs/transactions/pure.js +1 -39
  213. package/dist/cjs/transactions/resolve.js +1 -72
  214. package/dist/cjs/transactions/serializer.js +1 -170
  215. package/dist/cjs/transactions/utils.js +1 -124
  216. package/dist/cjs/utils/constants.js +1 -27
  217. package/dist/cjs/utils/derived-objects.d.ts +0 -3
  218. package/dist/cjs/utils/derived-objects.js +1 -14
  219. package/dist/cjs/utils/dynamic-fields.js +1 -20
  220. package/dist/cjs/utils/format.js +1 -15
  221. package/dist/cjs/utils/index.js +1 -15
  222. package/dist/cjs/utils/move-registry.d.ts +0 -4
  223. package/dist/cjs/utils/move-registry.js +1 -41
  224. package/dist/cjs/utils/sui-types.d.ts +0 -12
  225. package/dist/cjs/utils/sui-types.js +1 -86
  226. package/dist/cjs/utils/suins.js +1 -36
  227. package/dist/cjs/verify/index.js +1 -5
  228. package/dist/cjs/verify/verify.js +1 -91
  229. package/dist/cjs/version.js +1 -6
  230. package/dist/cjs/w/call/allocation.js +1 -369
  231. package/dist/cjs/w/call/arb.js +1 -109
  232. package/dist/cjs/w/call/arbitration.js +1 -1223
  233. package/dist/cjs/w/call/base.js +1 -324
  234. package/dist/cjs/w/call/contact.js +1 -350
  235. package/dist/cjs/w/call/demand.js +1 -702
  236. package/dist/cjs/w/call/entity.js +1 -180
  237. package/dist/cjs/w/call/guard-ins.d.ts +0 -3
  238. package/dist/cjs/w/call/guard-ins.js +1 -4387
  239. package/dist/cjs/w/call/guard.d.ts +111 -27
  240. package/dist/cjs/w/call/guard.js +1 -1154
  241. package/dist/cjs/w/call/index.js +1 -27
  242. package/dist/cjs/w/call/machine.js +1 -1146
  243. package/dist/cjs/w/call/order.js +1 -348
  244. package/dist/cjs/w/call/passport.js +1 -234
  245. package/dist/cjs/w/call/payment.js +1 -192
  246. package/dist/cjs/w/call/permission.d.ts +0 -20
  247. package/dist/cjs/w/call/permission.js +1 -1227
  248. package/dist/cjs/w/call/personal.js +1 -142
  249. package/dist/cjs/w/call/progress.js +1 -691
  250. package/dist/cjs/w/call/proof.js +1 -69
  251. package/dist/cjs/w/call/repository.js +1 -1097
  252. package/dist/cjs/w/call/resource.js +1 -119
  253. package/dist/cjs/w/call/reward.js +1 -688
  254. package/dist/cjs/w/call/service.js +1 -1991
  255. package/dist/cjs/w/call/treasury.js +1 -877
  256. package/dist/cjs/w/call/util.d.ts +1 -0
  257. package/dist/cjs/w/call/util.js +1 -624
  258. package/dist/cjs/w/common.d.ts +48 -68
  259. package/dist/cjs/w/common.js +1 -604
  260. package/dist/cjs/w/exception.d.ts +1 -0
  261. package/dist/cjs/w/exception.js +1 -582
  262. package/dist/cjs/w/index.js +1 -12
  263. package/dist/cjs/w/local/account.d.ts +0 -45
  264. package/dist/cjs/w/local/account.js +1 -746
  265. package/dist/cjs/w/local/cache.js +1 -191
  266. package/dist/cjs/w/local/config.d.ts +0 -3
  267. package/dist/cjs/w/local/config.js +1 -50
  268. package/dist/cjs/w/local/index.js +1 -233
  269. package/dist/cjs/w/local/local.js +1 -664
  270. package/dist/cjs/w/local/storage.d.ts +0 -20
  271. package/dist/cjs/w/local/storage.js +1 -222
  272. package/dist/cjs/w/local/token.d.ts +1 -4
  273. package/dist/cjs/w/local/token.js +1 -161
  274. package/dist/cjs/w/local/util.d.ts +0 -4
  275. package/dist/cjs/w/local/util.js +1 -50
  276. package/dist/cjs/w/local/wip.d.ts +0 -92
  277. package/dist/cjs/w/local/wip.js +1 -1202
  278. package/dist/cjs/w/messenger/crypto.d.ts +0 -186
  279. package/dist/cjs/w/messenger/crypto.js +1 -574
  280. package/dist/cjs/w/messenger/index.d.ts +0 -18
  281. package/dist/cjs/w/messenger/index.js +1 -28
  282. package/dist/cjs/w/messenger/messenger-api.d.ts +0 -177
  283. package/dist/cjs/w/messenger/messenger-api.js +1 -1503
  284. package/dist/cjs/w/messenger/messenger-manager.d.ts +0 -24
  285. package/dist/cjs/w/messenger/messenger-manager.js +1 -1065
  286. package/dist/cjs/w/messenger/messenger.d.ts +0 -206
  287. package/dist/cjs/w/messenger/messenger.js +1 -1439
  288. package/dist/cjs/w/messenger/server.d.ts +0 -94
  289. package/dist/cjs/w/messenger/server.js +1 -460
  290. package/dist/cjs/w/messenger/session.d.ts +0 -76
  291. package/dist/cjs/w/messenger/session.js +1 -768
  292. package/dist/cjs/w/messenger/storage.d.ts +0 -143
  293. package/dist/cjs/w/messenger/storage.js +1 -1256
  294. package/dist/cjs/w/messenger/templates/wts-html-template.d.ts +0 -31
  295. package/dist/cjs/w/messenger/templates/wts-html-template.js +1 -414
  296. package/dist/cjs/w/messenger/types.d.ts +7 -218
  297. package/dist/cjs/w/messenger/types.js +1 -98
  298. package/dist/cjs/w/messenger/utils.d.ts +0 -14
  299. package/dist/cjs/w/messenger/utils.js +1 -29
  300. package/dist/cjs/w/query/bult-in.d.ts +0 -11
  301. package/dist/cjs/w/query/bult-in.js +1 -107
  302. package/dist/cjs/w/query/event.d.ts +0 -7
  303. package/dist/cjs/w/query/event.js +1 -140
  304. package/dist/cjs/w/query/index.js +1 -8
  305. package/dist/cjs/w/query/object.d.ts +7 -51
  306. package/dist/cjs/w/query/object.js +1 -1636
  307. package/dist/cjs/w/query/received.d.ts +0 -6
  308. package/dist/cjs/w/query/received.js +1 -67
  309. package/dist/cjs/w/query/util.d.ts +1 -2
  310. package/dist/cjs/w/query/util.js +1 -54
  311. package/dist/cjs/w/util.d.ts +2 -5
  312. package/dist/cjs/w/util.js +1 -616
  313. package/dist/esm/bcs/bcs.d.ts +0 -8
  314. package/dist/esm/bcs/bcs.js +1 -278
  315. package/dist/esm/bcs/effects.js +1 -203
  316. package/dist/esm/bcs/index.js +1 -55
  317. package/dist/esm/bcs/pure.js +1 -39
  318. package/dist/esm/bcs/type-tag-serializer.js +1 -107
  319. package/dist/esm/bcs/types.d.ts +0 -49
  320. package/dist/esm/bcs/types.js +1 -6
  321. package/dist/esm/client/index.js +1 -7
  322. package/dist/esm/client/network.js +1 -24
  323. package/dist/esm/cryptography/index.js +1 -9
  324. package/dist/esm/cryptography/intent.d.ts +0 -3
  325. package/dist/esm/cryptography/intent.js +1 -20
  326. package/dist/esm/cryptography/keypair.d.ts +4 -38
  327. package/dist/esm/cryptography/keypair.js +1 -104
  328. package/dist/esm/cryptography/mnemonics.d.ts +0 -23
  329. package/dist/esm/cryptography/mnemonics.js +1 -46
  330. package/dist/esm/cryptography/publickey.d.ts +0 -42
  331. package/dist/esm/cryptography/publickey.js +1 -114
  332. package/dist/esm/cryptography/signature-scheme.js +1 -25
  333. package/dist/esm/cryptography/signature.d.ts +0 -11
  334. package/dist/esm/cryptography/signature.js +1 -50
  335. package/dist/esm/experimental/cache.js +1 -61
  336. package/dist/esm/experimental/client.js +1 -23
  337. package/dist/esm/experimental/core.d.ts +0 -2
  338. package/dist/esm/experimental/core.js +1 -85
  339. package/dist/esm/experimental/errors.js +1 -27
  340. package/dist/esm/experimental/index.js +1 -8
  341. package/dist/esm/experimental/persistent-storage.d.ts +0 -98
  342. package/dist/esm/experimental/persistent-storage.js +1 -337
  343. package/dist/esm/experimental/persistent-storage.test.d.ts +0 -4
  344. package/dist/esm/experimental/persistent-storage.test.js +1 -198
  345. package/dist/esm/experimental/transports/utils.js +1 -100
  346. package/dist/esm/experimental/types.d.ts +0 -6
  347. package/dist/esm/experimental/types.js +1 -5
  348. package/dist/esm/faucet/faucet.d.ts +0 -9
  349. package/dist/esm/faucet/faucet.js +1 -111
  350. package/dist/esm/faucet/index.js +1 -4
  351. package/dist/esm/grpc/client.js +1 -45
  352. package/dist/esm/grpc/core.js +1 -603
  353. package/dist/esm/grpc/index.js +1 -5
  354. package/dist/esm/grpc/proto/google/protobuf/any.d.ts +0 -151
  355. package/dist/esm/grpc/proto/google/protobuf/any.js +1 -168
  356. package/dist/esm/grpc/proto/google/protobuf/duration.d.ts +0 -89
  357. package/dist/esm/grpc/proto/google/protobuf/duration.js +1 -106
  358. package/dist/esm/grpc/proto/google/protobuf/empty.d.ts +0 -17
  359. package/dist/esm/grpc/proto/google/protobuf/empty.js +1 -49
  360. package/dist/esm/grpc/proto/google/protobuf/field_mask.d.ts +0 -217
  361. package/dist/esm/grpc/proto/google/protobuf/field_mask.js +1 -95
  362. package/dist/esm/grpc/proto/google/protobuf/struct.d.ts +0 -112
  363. package/dist/esm/grpc/proto/google/protobuf/struct.js +1 -272
  364. package/dist/esm/grpc/proto/google/protobuf/timestamp.d.ts +0 -127
  365. package/dist/esm/grpc/proto/google/protobuf/timestamp.js +1 -150
  366. package/dist/esm/grpc/proto/google/rpc/error_details.d.ts +0 -407
  367. package/dist/esm/grpc/proto/google/rpc/error_details.js +1 -343
  368. package/dist/esm/grpc/proto/google/rpc/status.d.ts +0 -34
  369. package/dist/esm/grpc/proto/google/rpc/status.js +1 -49
  370. package/dist/esm/grpc/proto/sui/rpc/v2/argument.d.ts +0 -48
  371. package/dist/esm/grpc/proto/sui/rpc/v2/argument.js +1 -83
  372. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.d.ts +0 -23
  373. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js +1 -44
  374. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.d.ts +0 -20
  375. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js +1 -37
  376. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.d.ts +0 -48
  377. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js +1 -69
  378. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.d.ts +0 -51
  379. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js +1 -79
  380. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.d.ts +0 -149
  381. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js +1 -184
  382. package/dist/esm/grpc/proto/sui/rpc/v2/effects.d.ts +0 -257
  383. package/dist/esm/grpc/proto/sui/rpc/v2/effects.js +1 -370
  384. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.d.ts +0 -41
  385. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js +1 -79
  386. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.d.ts +0 -12
  387. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js +1 -29
  388. package/dist/esm/grpc/proto/sui/rpc/v2/event.d.ts +0 -63
  389. package/dist/esm/grpc/proto/sui/rpc/v2/event.js +1 -81
  390. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.d.ts +0 -56
  391. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js +1 -79
  392. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.d.ts +0 -623
  393. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js +1 -886
  394. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.d.ts +0 -29
  395. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js +1 -55
  396. package/dist/esm/grpc/proto/sui/rpc/v2/input.d.ts +0 -75
  397. package/dist/esm/grpc/proto/sui/rpc/v2/input.js +1 -102
  398. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.d.ts +0 -50
  399. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js +1 -76
  400. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.d.ts +0 -52
  401. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js +1 -68
  402. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.d.ts +0 -260
  403. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js +1 -407
  404. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.d.ts +0 -429
  405. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js +1 -608
  406. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.d.ts +0 -30
  407. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js +1 -45
  408. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.d.ts +0 -151
  409. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js +1 -256
  410. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.d.ts +0 -18
  411. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js +1 -31
  412. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.d.ts +0 -97
  413. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js +1 -143
  414. package/dist/esm/grpc/proto/sui/rpc/v2/object.d.ts +0 -95
  415. package/dist/esm/grpc/proto/sui/rpc/v2/object.js +1 -109
  416. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.d.ts +0 -23
  417. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js +1 -45
  418. package/dist/esm/grpc/proto/sui/rpc/v2/owner.d.ts +0 -42
  419. package/dist/esm/grpc/proto/sui/rpc/v2/owner.js +1 -75
  420. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.d.ts +0 -15
  421. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js +1 -45
  422. package/dist/esm/grpc/proto/sui/rpc/v2/signature.d.ts +0 -447
  423. package/dist/esm/grpc/proto/sui/rpc/v2/signature.js +1 -584
  424. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.d.ts +0 -31
  425. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js +1 -52
  426. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.ts +0 -16
  427. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +1 -26
  428. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.d.ts +0 -54
  429. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js +1 -84
  430. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.d.ts +0 -36
  431. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js +1 -52
  432. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.d.ts +0 -518
  433. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js +1 -659
  434. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.d.ts +0 -36
  435. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js +1 -36
  436. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.d.ts +0 -36
  437. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js +1 -59
  438. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.d.ts +0 -538
  439. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js +1 -756
  440. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.d.ts +0 -945
  441. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js +1 -1245
  442. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.ts +0 -18
  443. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +1 -31
  444. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.d.ts +0 -118
  445. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js +1 -193
  446. package/dist/esm/index.js +1 -33
  447. package/dist/esm/jsonRpc/client.d.ts +0 -140
  448. package/dist/esm/jsonRpc/client.js +1 -653
  449. package/dist/esm/jsonRpc/core.js +1 -590
  450. package/dist/esm/jsonRpc/errors.js +1 -41
  451. package/dist/esm/jsonRpc/http-transport.d.ts +0 -3
  452. package/dist/esm/jsonRpc/http-transport.js +1 -73
  453. package/dist/esm/jsonRpc/index.js +1 -6
  454. package/dist/esm/jsonRpc/json-rpc-resolver.js +1 -314
  455. package/dist/esm/jsonRpc/rpc-websocket-client.d.ts +0 -15
  456. package/dist/esm/jsonRpc/rpc-websocket-client.js +1 -159
  457. package/dist/esm/jsonRpc/types/chain.js +1 -4
  458. package/dist/esm/jsonRpc/types/changes.js +1 -4
  459. package/dist/esm/jsonRpc/types/coins.js +1 -4
  460. package/dist/esm/jsonRpc/types/common.js +1 -4
  461. package/dist/esm/jsonRpc/types/generated.d.ts +56 -542
  462. package/dist/esm/jsonRpc/types/generated.js +1 -4
  463. package/dist/esm/jsonRpc/types/index.js +1 -4
  464. package/dist/esm/jsonRpc/types/params.d.ts +0 -336
  465. package/dist/esm/jsonRpc/types/params.js +1 -4
  466. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js +1 -63
  467. package/dist/esm/keypairs/ed25519/index.js +1 -5
  468. package/dist/esm/keypairs/ed25519/keypair.d.ts +0 -52
  469. package/dist/esm/keypairs/ed25519/keypair.js +1 -140
  470. package/dist/esm/keypairs/ed25519/publickey.d.ts +0 -19
  471. package/dist/esm/keypairs/ed25519/publickey.js +1 -72
  472. package/dist/esm/keypairs/index.js +1 -7
  473. package/dist/esm/keypairs/passkey/index.js +1 -5
  474. package/dist/esm/keypairs/passkey/keypair.d.ts +0 -80
  475. package/dist/esm/keypairs/passkey/keypair.js +1 -251
  476. package/dist/esm/keypairs/passkey/publickey.d.ts +0 -47
  477. package/dist/esm/keypairs/passkey/publickey.js +1 -170
  478. package/dist/esm/keypairs/passkey/types.d.ts +0 -6
  479. package/dist/esm/keypairs/passkey/types.js +1 -4
  480. package/dist/esm/keypairs/secp256k1/index.js +1 -5
  481. package/dist/esm/keypairs/secp256k1/keypair.d.ts +0 -51
  482. package/dist/esm/keypairs/secp256k1/keypair.js +1 -133
  483. package/dist/esm/keypairs/secp256k1/publickey.d.ts +0 -19
  484. package/dist/esm/keypairs/secp256k1/publickey.js +1 -73
  485. package/dist/esm/keypairs/secp256r1/index.js +1 -5
  486. package/dist/esm/keypairs/secp256r1/keypair.d.ts +0 -51
  487. package/dist/esm/keypairs/secp256r1/keypair.js +1 -130
  488. package/dist/esm/keypairs/secp256r1/publickey.d.ts +0 -19
  489. package/dist/esm/keypairs/secp256r1/publickey.js +1 -74
  490. package/dist/esm/multisig/index.js +1 -5
  491. package/dist/esm/multisig/publickey.d.ts +1 -36
  492. package/dist/esm/multisig/publickey.js +1 -243
  493. package/dist/esm/multisig/signer.d.ts +0 -1
  494. package/dist/esm/multisig/signer.js +1 -62
  495. package/dist/esm/transactions/Arguments.js +1 -12
  496. package/dist/esm/transactions/Commands.d.ts +0 -3
  497. package/dist/esm/transactions/Commands.js +1 -110
  498. package/dist/esm/transactions/Inputs.js +1 -55
  499. package/dist/esm/transactions/ObjectCache.js +1 -208
  500. package/dist/esm/transactions/Transaction.d.ts +0 -56
  501. package/dist/esm/transactions/Transaction.js +1 -646
  502. package/dist/esm/transactions/TransactionData.d.ts +0 -6
  503. package/dist/esm/transactions/TransactionData.js +1 -424
  504. package/dist/esm/transactions/__tests__/Transaction.test.js +1 -167
  505. package/dist/esm/transactions/__tests__/bcs.test.js +1 -200
  506. package/dist/esm/transactions/data/internal.js +1 -185
  507. package/dist/esm/transactions/data/v1.js +1 -474
  508. package/dist/esm/transactions/data/v2.js +1 -108
  509. package/dist/esm/transactions/executor/caching.d.ts +0 -4
  510. package/dist/esm/transactions/executor/caching.js +1 -72
  511. package/dist/esm/transactions/executor/parallel.d.ts +0 -11
  512. package/dist/esm/transactions/executor/parallel.js +1 -352
  513. package/dist/esm/transactions/executor/queue.js +1 -62
  514. package/dist/esm/transactions/executor/serial.d.ts +0 -1
  515. package/dist/esm/transactions/executor/serial.js +1 -102
  516. package/dist/esm/transactions/hash.d.ts +0 -6
  517. package/dist/esm/transactions/hash.js +1 -17
  518. package/dist/esm/transactions/index.d.ts +0 -1
  519. package/dist/esm/transactions/index.js +1 -15
  520. package/dist/esm/transactions/intents/CoinWithBalance.js +1 -148
  521. package/dist/esm/transactions/object.js +1 -90
  522. package/dist/esm/transactions/plugins/NamedPackagesPlugin.d.ts +0 -18
  523. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js +1 -20
  524. package/dist/esm/transactions/pure.js +1 -39
  525. package/dist/esm/transactions/resolve.js +1 -72
  526. package/dist/esm/transactions/serializer.js +1 -170
  527. package/dist/esm/transactions/utils.js +1 -124
  528. package/dist/esm/utils/constants.js +1 -27
  529. package/dist/esm/utils/derived-objects.d.ts +0 -3
  530. package/dist/esm/utils/derived-objects.js +1 -14
  531. package/dist/esm/utils/dynamic-fields.js +1 -20
  532. package/dist/esm/utils/format.js +1 -15
  533. package/dist/esm/utils/index.js +1 -15
  534. package/dist/esm/utils/move-registry.d.ts +0 -4
  535. package/dist/esm/utils/move-registry.js +1 -41
  536. package/dist/esm/utils/sui-types.d.ts +0 -12
  537. package/dist/esm/utils/sui-types.js +1 -86
  538. package/dist/esm/utils/suins.js +1 -36
  539. package/dist/esm/verify/index.js +1 -5
  540. package/dist/esm/verify/verify.js +1 -91
  541. package/dist/esm/version.js +1 -6
  542. package/dist/esm/w/call/allocation.js +1 -369
  543. package/dist/esm/w/call/arb.js +1 -109
  544. package/dist/esm/w/call/arbitration.js +1 -1223
  545. package/dist/esm/w/call/base.js +1 -324
  546. package/dist/esm/w/call/contact.js +1 -350
  547. package/dist/esm/w/call/demand.js +1 -702
  548. package/dist/esm/w/call/entity.js +1 -180
  549. package/dist/esm/w/call/guard-ins.d.ts +0 -3
  550. package/dist/esm/w/call/guard-ins.js +1 -4387
  551. package/dist/esm/w/call/guard.d.ts +111 -27
  552. package/dist/esm/w/call/guard.js +1 -1154
  553. package/dist/esm/w/call/index.js +1 -27
  554. package/dist/esm/w/call/machine.js +1 -1146
  555. package/dist/esm/w/call/order.js +1 -348
  556. package/dist/esm/w/call/passport.js +1 -234
  557. package/dist/esm/w/call/payment.js +1 -192
  558. package/dist/esm/w/call/permission.d.ts +0 -20
  559. package/dist/esm/w/call/permission.js +1 -1227
  560. package/dist/esm/w/call/personal.js +1 -142
  561. package/dist/esm/w/call/progress.js +1 -691
  562. package/dist/esm/w/call/proof.js +1 -69
  563. package/dist/esm/w/call/repository.js +1 -1097
  564. package/dist/esm/w/call/resource.js +1 -119
  565. package/dist/esm/w/call/reward.js +1 -688
  566. package/dist/esm/w/call/service.js +1 -1991
  567. package/dist/esm/w/call/treasury.js +1 -877
  568. package/dist/esm/w/call/util.d.ts +1 -0
  569. package/dist/esm/w/call/util.js +1 -624
  570. package/dist/esm/w/common.d.ts +48 -68
  571. package/dist/esm/w/common.js +1 -604
  572. package/dist/esm/w/exception.d.ts +1 -0
  573. package/dist/esm/w/exception.js +1 -582
  574. package/dist/esm/w/index.js +1 -12
  575. package/dist/esm/w/local/account.d.ts +0 -45
  576. package/dist/esm/w/local/account.js +1 -746
  577. package/dist/esm/w/local/cache.js +1 -191
  578. package/dist/esm/w/local/config.d.ts +0 -3
  579. package/dist/esm/w/local/config.js +1 -50
  580. package/dist/esm/w/local/index.js +1 -233
  581. package/dist/esm/w/local/local.js +1 -664
  582. package/dist/esm/w/local/storage.d.ts +0 -20
  583. package/dist/esm/w/local/storage.js +1 -222
  584. package/dist/esm/w/local/token.d.ts +1 -4
  585. package/dist/esm/w/local/token.js +1 -161
  586. package/dist/esm/w/local/util.d.ts +0 -4
  587. package/dist/esm/w/local/util.js +1 -50
  588. package/dist/esm/w/local/wip.d.ts +0 -92
  589. package/dist/esm/w/local/wip.js +1 -1202
  590. package/dist/esm/w/messenger/crypto.d.ts +0 -186
  591. package/dist/esm/w/messenger/crypto.js +1 -574
  592. package/dist/esm/w/messenger/index.d.ts +0 -18
  593. package/dist/esm/w/messenger/index.js +1 -28
  594. package/dist/esm/w/messenger/messenger-api.d.ts +0 -177
  595. package/dist/esm/w/messenger/messenger-api.js +1 -1503
  596. package/dist/esm/w/messenger/messenger-manager.d.ts +0 -24
  597. package/dist/esm/w/messenger/messenger-manager.js +1 -1065
  598. package/dist/esm/w/messenger/messenger.d.ts +0 -206
  599. package/dist/esm/w/messenger/messenger.js +1 -1439
  600. package/dist/esm/w/messenger/server.d.ts +0 -94
  601. package/dist/esm/w/messenger/server.js +1 -460
  602. package/dist/esm/w/messenger/session.d.ts +0 -76
  603. package/dist/esm/w/messenger/session.js +1 -768
  604. package/dist/esm/w/messenger/storage.d.ts +0 -143
  605. package/dist/esm/w/messenger/storage.js +1 -1256
  606. package/dist/esm/w/messenger/templates/wts-html-template.d.ts +0 -31
  607. package/dist/esm/w/messenger/templates/wts-html-template.js +1 -414
  608. package/dist/esm/w/messenger/types.d.ts +7 -218
  609. package/dist/esm/w/messenger/types.js +1 -98
  610. package/dist/esm/w/messenger/utils.d.ts +0 -14
  611. package/dist/esm/w/messenger/utils.js +1 -29
  612. package/dist/esm/w/query/bult-in.d.ts +0 -11
  613. package/dist/esm/w/query/bult-in.js +1 -107
  614. package/dist/esm/w/query/event.d.ts +0 -7
  615. package/dist/esm/w/query/event.js +1 -140
  616. package/dist/esm/w/query/index.js +1 -8
  617. package/dist/esm/w/query/object.d.ts +7 -51
  618. package/dist/esm/w/query/object.js +1 -1636
  619. package/dist/esm/w/query/received.d.ts +0 -6
  620. package/dist/esm/w/query/received.js +1 -67
  621. package/dist/esm/w/query/util.d.ts +1 -2
  622. package/dist/esm/w/query/util.js +1 -54
  623. package/dist/esm/w/util.d.ts +2 -5
  624. package/dist/esm/w/util.js +1 -616
  625. package/package.json +5 -2
  626. package/dist/cjs/bcs/bcs.js.map +0 -1
  627. package/dist/cjs/bcs/effects.js.map +0 -1
  628. package/dist/cjs/bcs/index.js.map +0 -1
  629. package/dist/cjs/bcs/pure.js.map +0 -1
  630. package/dist/cjs/bcs/type-tag-serializer.js.map +0 -1
  631. package/dist/cjs/bcs/types.js.map +0 -1
  632. package/dist/cjs/client/index.js.map +0 -1
  633. package/dist/cjs/client/network.js.map +0 -1
  634. package/dist/cjs/cryptography/index.js.map +0 -1
  635. package/dist/cjs/cryptography/intent.js.map +0 -1
  636. package/dist/cjs/cryptography/keypair.js.map +0 -1
  637. package/dist/cjs/cryptography/mnemonics.js.map +0 -1
  638. package/dist/cjs/cryptography/publickey.js.map +0 -1
  639. package/dist/cjs/cryptography/signature-scheme.js.map +0 -1
  640. package/dist/cjs/cryptography/signature.js.map +0 -1
  641. package/dist/cjs/experimental/cache.js.map +0 -1
  642. package/dist/cjs/experimental/client.js.map +0 -1
  643. package/dist/cjs/experimental/core.js.map +0 -1
  644. package/dist/cjs/experimental/errors.js.map +0 -1
  645. package/dist/cjs/experimental/index.js.map +0 -1
  646. package/dist/cjs/experimental/persistent-storage.js.map +0 -1
  647. package/dist/cjs/experimental/persistent-storage.test.js.map +0 -1
  648. package/dist/cjs/experimental/transports/utils.js.map +0 -1
  649. package/dist/cjs/experimental/types.js.map +0 -1
  650. package/dist/cjs/faucet/faucet.js.map +0 -1
  651. package/dist/cjs/faucet/index.js.map +0 -1
  652. package/dist/cjs/grpc/client.js.map +0 -1
  653. package/dist/cjs/grpc/core.js.map +0 -1
  654. package/dist/cjs/grpc/index.js.map +0 -1
  655. package/dist/cjs/grpc/proto/google/protobuf/any.js.map +0 -1
  656. package/dist/cjs/grpc/proto/google/protobuf/duration.js.map +0 -1
  657. package/dist/cjs/grpc/proto/google/protobuf/empty.js.map +0 -1
  658. package/dist/cjs/grpc/proto/google/protobuf/field_mask.js.map +0 -1
  659. package/dist/cjs/grpc/proto/google/protobuf/struct.js.map +0 -1
  660. package/dist/cjs/grpc/proto/google/protobuf/timestamp.js.map +0 -1
  661. package/dist/cjs/grpc/proto/google/rpc/error_details.js.map +0 -1
  662. package/dist/cjs/grpc/proto/google/rpc/status.js.map +0 -1
  663. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js.map +0 -1
  664. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js.map +0 -1
  665. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js.map +0 -1
  666. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js.map +0 -1
  667. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js.map +0 -1
  668. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js.map +0 -1
  669. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js.map +0 -1
  670. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js.map +0 -1
  671. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js.map +0 -1
  672. package/dist/cjs/grpc/proto/sui/rpc/v2/event.js.map +0 -1
  673. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js.map +0 -1
  674. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js.map +0 -1
  675. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js.map +0 -1
  676. package/dist/cjs/grpc/proto/sui/rpc/v2/input.js.map +0 -1
  677. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js.map +0 -1
  678. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js.map +0 -1
  679. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js.map +0 -1
  680. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js.map +0 -1
  681. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js.map +0 -1
  682. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js.map +0 -1
  683. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js.map +0 -1
  684. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js.map +0 -1
  685. package/dist/cjs/grpc/proto/sui/rpc/v2/object.js.map +0 -1
  686. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js.map +0 -1
  687. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js.map +0 -1
  688. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js.map +0 -1
  689. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js.map +0 -1
  690. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js.map +0 -1
  691. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js.map +0 -1
  692. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js.map +0 -1
  693. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js.map +0 -1
  694. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js.map +0 -1
  695. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js.map +0 -1
  696. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js.map +0 -1
  697. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js.map +0 -1
  698. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js.map +0 -1
  699. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js.map +0 -1
  700. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js.map +0 -1
  701. package/dist/cjs/index.js.map +0 -1
  702. package/dist/cjs/jsonRpc/client.js.map +0 -1
  703. package/dist/cjs/jsonRpc/core.js.map +0 -1
  704. package/dist/cjs/jsonRpc/errors.js.map +0 -1
  705. package/dist/cjs/jsonRpc/http-transport.js.map +0 -1
  706. package/dist/cjs/jsonRpc/index.js.map +0 -1
  707. package/dist/cjs/jsonRpc/json-rpc-resolver.js.map +0 -1
  708. package/dist/cjs/jsonRpc/rpc-websocket-client.js.map +0 -1
  709. package/dist/cjs/jsonRpc/types/chain.js.map +0 -1
  710. package/dist/cjs/jsonRpc/types/changes.js.map +0 -1
  711. package/dist/cjs/jsonRpc/types/coins.js.map +0 -1
  712. package/dist/cjs/jsonRpc/types/common.js.map +0 -1
  713. package/dist/cjs/jsonRpc/types/generated.js.map +0 -1
  714. package/dist/cjs/jsonRpc/types/index.js.map +0 -1
  715. package/dist/cjs/jsonRpc/types/params.js.map +0 -1
  716. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js.map +0 -1
  717. package/dist/cjs/keypairs/ed25519/index.js.map +0 -1
  718. package/dist/cjs/keypairs/ed25519/keypair.js.map +0 -1
  719. package/dist/cjs/keypairs/ed25519/publickey.js.map +0 -1
  720. package/dist/cjs/keypairs/index.js.map +0 -1
  721. package/dist/cjs/keypairs/passkey/index.js.map +0 -1
  722. package/dist/cjs/keypairs/passkey/keypair.js.map +0 -1
  723. package/dist/cjs/keypairs/passkey/publickey.js.map +0 -1
  724. package/dist/cjs/keypairs/passkey/types.js.map +0 -1
  725. package/dist/cjs/keypairs/secp256k1/index.js.map +0 -1
  726. package/dist/cjs/keypairs/secp256k1/keypair.js.map +0 -1
  727. package/dist/cjs/keypairs/secp256k1/publickey.js.map +0 -1
  728. package/dist/cjs/keypairs/secp256r1/index.js.map +0 -1
  729. package/dist/cjs/keypairs/secp256r1/keypair.js.map +0 -1
  730. package/dist/cjs/keypairs/secp256r1/publickey.js.map +0 -1
  731. package/dist/cjs/multisig/index.js.map +0 -1
  732. package/dist/cjs/multisig/publickey.js.map +0 -1
  733. package/dist/cjs/multisig/signer.js.map +0 -1
  734. package/dist/cjs/transactions/Arguments.js.map +0 -1
  735. package/dist/cjs/transactions/Commands.js.map +0 -1
  736. package/dist/cjs/transactions/Inputs.js.map +0 -1
  737. package/dist/cjs/transactions/ObjectCache.js.map +0 -1
  738. package/dist/cjs/transactions/Transaction.js.map +0 -1
  739. package/dist/cjs/transactions/TransactionData.js.map +0 -1
  740. package/dist/cjs/transactions/__tests__/Transaction.test.js.map +0 -1
  741. package/dist/cjs/transactions/__tests__/bcs.test.js.map +0 -1
  742. package/dist/cjs/transactions/data/internal.js.map +0 -1
  743. package/dist/cjs/transactions/data/v1.js.map +0 -1
  744. package/dist/cjs/transactions/data/v2.js.map +0 -1
  745. package/dist/cjs/transactions/executor/caching.js.map +0 -1
  746. package/dist/cjs/transactions/executor/parallel.js.map +0 -1
  747. package/dist/cjs/transactions/executor/queue.js.map +0 -1
  748. package/dist/cjs/transactions/executor/serial.js.map +0 -1
  749. package/dist/cjs/transactions/hash.js.map +0 -1
  750. package/dist/cjs/transactions/index.js.map +0 -1
  751. package/dist/cjs/transactions/intents/CoinWithBalance.js.map +0 -1
  752. package/dist/cjs/transactions/object.js.map +0 -1
  753. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js.map +0 -1
  754. package/dist/cjs/transactions/pure.js.map +0 -1
  755. package/dist/cjs/transactions/resolve.js.map +0 -1
  756. package/dist/cjs/transactions/serializer.js.map +0 -1
  757. package/dist/cjs/transactions/utils.js.map +0 -1
  758. package/dist/cjs/utils/constants.js.map +0 -1
  759. package/dist/cjs/utils/derived-objects.js.map +0 -1
  760. package/dist/cjs/utils/dynamic-fields.js.map +0 -1
  761. package/dist/cjs/utils/format.js.map +0 -1
  762. package/dist/cjs/utils/index.js.map +0 -1
  763. package/dist/cjs/utils/move-registry.js.map +0 -1
  764. package/dist/cjs/utils/sui-types.js.map +0 -1
  765. package/dist/cjs/utils/suins.js.map +0 -1
  766. package/dist/cjs/verify/index.js.map +0 -1
  767. package/dist/cjs/verify/verify.js.map +0 -1
  768. package/dist/cjs/version.js.map +0 -1
  769. package/dist/cjs/w/call/allocation.js.map +0 -1
  770. package/dist/cjs/w/call/arb.js.map +0 -1
  771. package/dist/cjs/w/call/arbitration.js.map +0 -1
  772. package/dist/cjs/w/call/base.js.map +0 -1
  773. package/dist/cjs/w/call/contact.js.map +0 -1
  774. package/dist/cjs/w/call/demand.js.map +0 -1
  775. package/dist/cjs/w/call/entity.js.map +0 -1
  776. package/dist/cjs/w/call/guard-ins.js.map +0 -1
  777. package/dist/cjs/w/call/guard.js.map +0 -1
  778. package/dist/cjs/w/call/index.js.map +0 -1
  779. package/dist/cjs/w/call/machine.js.map +0 -1
  780. package/dist/cjs/w/call/order.js.map +0 -1
  781. package/dist/cjs/w/call/passport.js.map +0 -1
  782. package/dist/cjs/w/call/payment.js.map +0 -1
  783. package/dist/cjs/w/call/permission.js.map +0 -1
  784. package/dist/cjs/w/call/personal.js.map +0 -1
  785. package/dist/cjs/w/call/progress.js.map +0 -1
  786. package/dist/cjs/w/call/proof.js.map +0 -1
  787. package/dist/cjs/w/call/repository.js.map +0 -1
  788. package/dist/cjs/w/call/resource.js.map +0 -1
  789. package/dist/cjs/w/call/reward.js.map +0 -1
  790. package/dist/cjs/w/call/service.js.map +0 -1
  791. package/dist/cjs/w/call/treasury.js.map +0 -1
  792. package/dist/cjs/w/call/util.js.map +0 -1
  793. package/dist/cjs/w/common.js.map +0 -1
  794. package/dist/cjs/w/exception.js.map +0 -1
  795. package/dist/cjs/w/index.js.map +0 -1
  796. package/dist/cjs/w/local/account.js.map +0 -1
  797. package/dist/cjs/w/local/cache.js.map +0 -1
  798. package/dist/cjs/w/local/config.js.map +0 -1
  799. package/dist/cjs/w/local/index.js.map +0 -1
  800. package/dist/cjs/w/local/local.js.map +0 -1
  801. package/dist/cjs/w/local/storage.js.map +0 -1
  802. package/dist/cjs/w/local/token.js.map +0 -1
  803. package/dist/cjs/w/local/util.js.map +0 -1
  804. package/dist/cjs/w/local/wip.js.map +0 -1
  805. package/dist/cjs/w/messenger/crypto.js.map +0 -1
  806. package/dist/cjs/w/messenger/index.js.map +0 -1
  807. package/dist/cjs/w/messenger/messenger-api.js.map +0 -1
  808. package/dist/cjs/w/messenger/messenger-manager.js.map +0 -1
  809. package/dist/cjs/w/messenger/messenger.js.map +0 -1
  810. package/dist/cjs/w/messenger/server.js.map +0 -1
  811. package/dist/cjs/w/messenger/session.js.map +0 -1
  812. package/dist/cjs/w/messenger/storage.js.map +0 -1
  813. package/dist/cjs/w/messenger/templates/wts-html-template.js.map +0 -1
  814. package/dist/cjs/w/messenger/types.js.map +0 -1
  815. package/dist/cjs/w/messenger/utils.js.map +0 -1
  816. package/dist/cjs/w/query/bult-in.js.map +0 -1
  817. package/dist/cjs/w/query/event.js.map +0 -1
  818. package/dist/cjs/w/query/index.js.map +0 -1
  819. package/dist/cjs/w/query/object.js.map +0 -1
  820. package/dist/cjs/w/query/received.js.map +0 -1
  821. package/dist/cjs/w/query/util.js.map +0 -1
  822. package/dist/cjs/w/util.js.map +0 -1
  823. package/dist/esm/bcs/bcs.js.map +0 -1
  824. package/dist/esm/bcs/effects.js.map +0 -1
  825. package/dist/esm/bcs/index.js.map +0 -1
  826. package/dist/esm/bcs/pure.js.map +0 -1
  827. package/dist/esm/bcs/type-tag-serializer.js.map +0 -1
  828. package/dist/esm/bcs/types.js.map +0 -1
  829. package/dist/esm/client/index.js.map +0 -1
  830. package/dist/esm/client/network.js.map +0 -1
  831. package/dist/esm/cryptography/index.js.map +0 -1
  832. package/dist/esm/cryptography/intent.js.map +0 -1
  833. package/dist/esm/cryptography/keypair.js.map +0 -1
  834. package/dist/esm/cryptography/mnemonics.js.map +0 -1
  835. package/dist/esm/cryptography/publickey.js.map +0 -1
  836. package/dist/esm/cryptography/signature-scheme.js.map +0 -1
  837. package/dist/esm/cryptography/signature.js.map +0 -1
  838. package/dist/esm/experimental/cache.js.map +0 -1
  839. package/dist/esm/experimental/client.js.map +0 -1
  840. package/dist/esm/experimental/core.js.map +0 -1
  841. package/dist/esm/experimental/errors.js.map +0 -1
  842. package/dist/esm/experimental/index.js.map +0 -1
  843. package/dist/esm/experimental/persistent-storage.js.map +0 -1
  844. package/dist/esm/experimental/persistent-storage.test.js.map +0 -1
  845. package/dist/esm/experimental/transports/utils.js.map +0 -1
  846. package/dist/esm/experimental/types.js.map +0 -1
  847. package/dist/esm/faucet/faucet.js.map +0 -1
  848. package/dist/esm/faucet/index.js.map +0 -1
  849. package/dist/esm/grpc/client.js.map +0 -1
  850. package/dist/esm/grpc/core.js.map +0 -1
  851. package/dist/esm/grpc/index.js.map +0 -1
  852. package/dist/esm/grpc/proto/google/protobuf/any.js.map +0 -1
  853. package/dist/esm/grpc/proto/google/protobuf/duration.js.map +0 -1
  854. package/dist/esm/grpc/proto/google/protobuf/empty.js.map +0 -1
  855. package/dist/esm/grpc/proto/google/protobuf/field_mask.js.map +0 -1
  856. package/dist/esm/grpc/proto/google/protobuf/struct.js.map +0 -1
  857. package/dist/esm/grpc/proto/google/protobuf/timestamp.js.map +0 -1
  858. package/dist/esm/grpc/proto/google/rpc/error_details.js.map +0 -1
  859. package/dist/esm/grpc/proto/google/rpc/status.js.map +0 -1
  860. package/dist/esm/grpc/proto/sui/rpc/v2/argument.js.map +0 -1
  861. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js.map +0 -1
  862. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js.map +0 -1
  863. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js.map +0 -1
  864. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js.map +0 -1
  865. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js.map +0 -1
  866. package/dist/esm/grpc/proto/sui/rpc/v2/effects.js.map +0 -1
  867. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js.map +0 -1
  868. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js.map +0 -1
  869. package/dist/esm/grpc/proto/sui/rpc/v2/event.js.map +0 -1
  870. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js.map +0 -1
  871. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js.map +0 -1
  872. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js.map +0 -1
  873. package/dist/esm/grpc/proto/sui/rpc/v2/input.js.map +0 -1
  874. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js.map +0 -1
  875. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js.map +0 -1
  876. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js.map +0 -1
  877. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js.map +0 -1
  878. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js.map +0 -1
  879. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js.map +0 -1
  880. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js.map +0 -1
  881. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js.map +0 -1
  882. package/dist/esm/grpc/proto/sui/rpc/v2/object.js.map +0 -1
  883. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js.map +0 -1
  884. package/dist/esm/grpc/proto/sui/rpc/v2/owner.js.map +0 -1
  885. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js.map +0 -1
  886. package/dist/esm/grpc/proto/sui/rpc/v2/signature.js.map +0 -1
  887. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js.map +0 -1
  888. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js.map +0 -1
  889. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js.map +0 -1
  890. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js.map +0 -1
  891. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js.map +0 -1
  892. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js.map +0 -1
  893. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js.map +0 -1
  894. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js.map +0 -1
  895. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js.map +0 -1
  896. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js.map +0 -1
  897. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js.map +0 -1
  898. package/dist/esm/index.js.map +0 -1
  899. package/dist/esm/jsonRpc/client.js.map +0 -1
  900. package/dist/esm/jsonRpc/core.js.map +0 -1
  901. package/dist/esm/jsonRpc/errors.js.map +0 -1
  902. package/dist/esm/jsonRpc/http-transport.js.map +0 -1
  903. package/dist/esm/jsonRpc/index.js.map +0 -1
  904. package/dist/esm/jsonRpc/json-rpc-resolver.js.map +0 -1
  905. package/dist/esm/jsonRpc/rpc-websocket-client.js.map +0 -1
  906. package/dist/esm/jsonRpc/types/chain.js.map +0 -1
  907. package/dist/esm/jsonRpc/types/changes.js.map +0 -1
  908. package/dist/esm/jsonRpc/types/coins.js.map +0 -1
  909. package/dist/esm/jsonRpc/types/common.js.map +0 -1
  910. package/dist/esm/jsonRpc/types/generated.js.map +0 -1
  911. package/dist/esm/jsonRpc/types/index.js.map +0 -1
  912. package/dist/esm/jsonRpc/types/params.js.map +0 -1
  913. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js.map +0 -1
  914. package/dist/esm/keypairs/ed25519/index.js.map +0 -1
  915. package/dist/esm/keypairs/ed25519/keypair.js.map +0 -1
  916. package/dist/esm/keypairs/ed25519/publickey.js.map +0 -1
  917. package/dist/esm/keypairs/index.js.map +0 -1
  918. package/dist/esm/keypairs/passkey/index.js.map +0 -1
  919. package/dist/esm/keypairs/passkey/keypair.js.map +0 -1
  920. package/dist/esm/keypairs/passkey/publickey.js.map +0 -1
  921. package/dist/esm/keypairs/passkey/types.js.map +0 -1
  922. package/dist/esm/keypairs/secp256k1/index.js.map +0 -1
  923. package/dist/esm/keypairs/secp256k1/keypair.js.map +0 -1
  924. package/dist/esm/keypairs/secp256k1/publickey.js.map +0 -1
  925. package/dist/esm/keypairs/secp256r1/index.js.map +0 -1
  926. package/dist/esm/keypairs/secp256r1/keypair.js.map +0 -1
  927. package/dist/esm/keypairs/secp256r1/publickey.js.map +0 -1
  928. package/dist/esm/multisig/index.js.map +0 -1
  929. package/dist/esm/multisig/publickey.js.map +0 -1
  930. package/dist/esm/multisig/signer.js.map +0 -1
  931. package/dist/esm/transactions/Arguments.js.map +0 -1
  932. package/dist/esm/transactions/Commands.js.map +0 -1
  933. package/dist/esm/transactions/Inputs.js.map +0 -1
  934. package/dist/esm/transactions/ObjectCache.js.map +0 -1
  935. package/dist/esm/transactions/Transaction.js.map +0 -1
  936. package/dist/esm/transactions/TransactionData.js.map +0 -1
  937. package/dist/esm/transactions/__tests__/Transaction.test.js.map +0 -1
  938. package/dist/esm/transactions/__tests__/bcs.test.js.map +0 -1
  939. package/dist/esm/transactions/data/internal.js.map +0 -1
  940. package/dist/esm/transactions/data/v1.js.map +0 -1
  941. package/dist/esm/transactions/data/v2.js.map +0 -1
  942. package/dist/esm/transactions/executor/caching.js.map +0 -1
  943. package/dist/esm/transactions/executor/parallel.js.map +0 -1
  944. package/dist/esm/transactions/executor/queue.js.map +0 -1
  945. package/dist/esm/transactions/executor/serial.js.map +0 -1
  946. package/dist/esm/transactions/hash.js.map +0 -1
  947. package/dist/esm/transactions/index.js.map +0 -1
  948. package/dist/esm/transactions/intents/CoinWithBalance.js.map +0 -1
  949. package/dist/esm/transactions/object.js.map +0 -1
  950. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js.map +0 -1
  951. package/dist/esm/transactions/pure.js.map +0 -1
  952. package/dist/esm/transactions/resolve.js.map +0 -1
  953. package/dist/esm/transactions/serializer.js.map +0 -1
  954. package/dist/esm/transactions/utils.js.map +0 -1
  955. package/dist/esm/utils/constants.js.map +0 -1
  956. package/dist/esm/utils/derived-objects.js.map +0 -1
  957. package/dist/esm/utils/dynamic-fields.js.map +0 -1
  958. package/dist/esm/utils/format.js.map +0 -1
  959. package/dist/esm/utils/index.js.map +0 -1
  960. package/dist/esm/utils/move-registry.js.map +0 -1
  961. package/dist/esm/utils/sui-types.js.map +0 -1
  962. package/dist/esm/utils/suins.js.map +0 -1
  963. package/dist/esm/verify/index.js.map +0 -1
  964. package/dist/esm/verify/verify.js.map +0 -1
  965. package/dist/esm/version.js.map +0 -1
  966. package/dist/esm/w/call/allocation.js.map +0 -1
  967. package/dist/esm/w/call/arb.js.map +0 -1
  968. package/dist/esm/w/call/arbitration.js.map +0 -1
  969. package/dist/esm/w/call/base.js.map +0 -1
  970. package/dist/esm/w/call/contact.js.map +0 -1
  971. package/dist/esm/w/call/demand.js.map +0 -1
  972. package/dist/esm/w/call/entity.js.map +0 -1
  973. package/dist/esm/w/call/guard-ins.js.map +0 -1
  974. package/dist/esm/w/call/guard.js.map +0 -1
  975. package/dist/esm/w/call/index.js.map +0 -1
  976. package/dist/esm/w/call/machine.js.map +0 -1
  977. package/dist/esm/w/call/order.js.map +0 -1
  978. package/dist/esm/w/call/passport.js.map +0 -1
  979. package/dist/esm/w/call/payment.js.map +0 -1
  980. package/dist/esm/w/call/permission.js.map +0 -1
  981. package/dist/esm/w/call/personal.js.map +0 -1
  982. package/dist/esm/w/call/progress.js.map +0 -1
  983. package/dist/esm/w/call/proof.js.map +0 -1
  984. package/dist/esm/w/call/repository.js.map +0 -1
  985. package/dist/esm/w/call/resource.js.map +0 -1
  986. package/dist/esm/w/call/reward.js.map +0 -1
  987. package/dist/esm/w/call/service.js.map +0 -1
  988. package/dist/esm/w/call/treasury.js.map +0 -1
  989. package/dist/esm/w/call/util.js.map +0 -1
  990. package/dist/esm/w/common.js.map +0 -1
  991. package/dist/esm/w/exception.js.map +0 -1
  992. package/dist/esm/w/index.js.map +0 -1
  993. package/dist/esm/w/local/account.js.map +0 -1
  994. package/dist/esm/w/local/cache.js.map +0 -1
  995. package/dist/esm/w/local/config.js.map +0 -1
  996. package/dist/esm/w/local/index.js.map +0 -1
  997. package/dist/esm/w/local/local.js.map +0 -1
  998. package/dist/esm/w/local/storage.js.map +0 -1
  999. package/dist/esm/w/local/token.js.map +0 -1
  1000. package/dist/esm/w/local/util.js.map +0 -1
  1001. package/dist/esm/w/local/wip.js.map +0 -1
  1002. package/dist/esm/w/messenger/crypto.js.map +0 -1
  1003. package/dist/esm/w/messenger/index.js.map +0 -1
  1004. package/dist/esm/w/messenger/messenger-api.js.map +0 -1
  1005. package/dist/esm/w/messenger/messenger-manager.js.map +0 -1
  1006. package/dist/esm/w/messenger/messenger.js.map +0 -1
  1007. package/dist/esm/w/messenger/server.js.map +0 -1
  1008. package/dist/esm/w/messenger/session.js.map +0 -1
  1009. package/dist/esm/w/messenger/storage.js.map +0 -1
  1010. package/dist/esm/w/messenger/templates/wts-html-template.js.map +0 -1
  1011. package/dist/esm/w/messenger/types.js.map +0 -1
  1012. package/dist/esm/w/messenger/utils.js.map +0 -1
  1013. package/dist/esm/w/query/bult-in.js.map +0 -1
  1014. package/dist/esm/w/query/event.js.map +0 -1
  1015. package/dist/esm/w/query/index.js.map +0 -1
  1016. package/dist/esm/w/query/object.js.map +0 -1
  1017. package/dist/esm/w/query/received.js.map +0 -1
  1018. package/dist/esm/w/query/util.js.map +0 -1
  1019. package/dist/esm/w/util.js.map +0 -1
@@ -1,1256 +1 @@
1
- // Copyright (c) Wowok.
2
- // SPDX-License-Identifier: Apache-2.0
3
- /**
4
- * Messenger 存储模块
5
- *
6
- * 使用与 wowok SDK 相同的 SQLite 存储方案
7
- * 数据库文件:messenger.db(位于 ~/.wow/ 目录)
8
- *
9
- * 存储内容:
10
- * 1. Signal Protocol 状态(身份密钥、预密钥、会话)
11
- * 2. 消息记录
12
- * 3. 会话状态(Merkle Tree 根哈希等)
13
- */
14
- import Database from "better-sqlite3";
15
- import * as path from "path";
16
- import * as fs from "fs";
17
- import { getWowDir } from "../local/util.js";
18
- // 动态获取数据目录(支持测试时通过环境变量覆盖)
19
- function getWowDirDynamic() {
20
- return getWowDir();
21
- }
22
- // 按用户分库的数据库目录(动态计算)
23
- function getMessengerDbDir() {
24
- return path.join(getWowDirDynamic(), "messenger");
25
- }
26
- function ensureDirExists(dir) {
27
- if (!fs.existsSync(dir)) {
28
- fs.mkdirSync(dir, { recursive: true });
29
- }
30
- }
31
- // 获取用户特定的数据库路径
32
- function getUserDbPath(userAddress) {
33
- // 使用用户地址的前16位作为数据库文件名
34
- const shortAddress = userAddress
35
- .toLowerCase()
36
- .replace(/^0x/, "")
37
- .slice(0, 16);
38
- const messengerDbDir = getMessengerDbDir();
39
- ensureDirExists(messengerDbDir);
40
- return path.join(messengerDbDir, `${shortAddress}.db`);
41
- }
42
- // 获取全局数据库路径(用于 MessengerManager 状态和 SSE 锁)
43
- function getGlobalDbPath() {
44
- const messengerDbDir = getMessengerDbDir();
45
- ensureDirExists(messengerDbDir);
46
- return path.join(messengerDbDir, "global.db");
47
- }
48
- // 用户数据库实例缓存
49
- const userDbInstances = new Map();
50
- // 全局数据库实例缓存
51
- let globalDbInstance = null;
52
- function getDatabase(userAddress) {
53
- if (!userAddress) {
54
- throw new Error("userAddress is required to get database");
55
- }
56
- // 检查缓存
57
- const cached = userDbInstances.get(userAddress);
58
- if (cached) {
59
- return cached;
60
- }
61
- // 创建新连接
62
- const dbPath = getUserDbPath(userAddress);
63
- const db = new Database(dbPath);
64
- // 启用 WAL 模式以支持多进程访问
65
- db.pragma("journal_mode = WAL");
66
- // 设置同步模式为 NORMAL 以平衡性能和安全性
67
- db.pragma("synchronous = NORMAL");
68
- // 启用内存共享缓存
69
- db.pragma("cache_size = -64000");
70
- // Signal Protocol 存储表
71
- db.exec(`
72
- CREATE TABLE IF NOT EXISTS signal_store (
73
- store_type TEXT NOT NULL,
74
- key TEXT NOT NULL,
75
- value TEXT NOT NULL,
76
- updated_at INTEGER DEFAULT (strftime('%s', 'now')),
77
- PRIMARY KEY (store_type, key)
78
- );
79
- CREATE INDEX IF NOT EXISTS idx_signal_store_type ON signal_store(store_type);
80
- `);
81
- // 消息表 - 分开创建,先不创建索引
82
- try {
83
- db.exec(`
84
- CREATE TABLE IF NOT EXISTS messages (
85
- message_id TEXT PRIMARY KEY,
86
- from_address TEXT NOT NULL,
87
- to_address TEXT NOT NULL,
88
- plaintext_hash TEXT NOT NULL,
89
- plaintext TEXT,
90
- guard_address TEXT,
91
- passport_address TEXT,
92
- direction TEXT NOT NULL,
93
- status TEXT NOT NULL,
94
- msg_type INTEGER NOT NULL,
95
- leaf_index INTEGER,
96
- prev_root TEXT,
97
- new_root TEXT,
98
- server_signature TEXT,
99
- server_public_key TEXT,
100
- server_timestamp INTEGER,
101
- ark_recipient TEXT,
102
- ark_recipient_pubkey TEXT,
103
- ark_signature TEXT,
104
- ark_timestamp INTEGER,
105
- zip_metadata TEXT,
106
- created_at INTEGER DEFAULT (strftime('%s', 'now') * 1000),
107
- received_at INTEGER
108
- );
109
- `);
110
- }
111
- catch (e) {
112
- // 表可能已存在,忽略错误
113
- }
114
- // 安全地添加新列(如果还不存在)
115
- try {
116
- db.exec("ALTER TABLE messages ADD COLUMN guard_address TEXT");
117
- }
118
- catch (e) {
119
- // 列可能已存在,忽略错误
120
- }
121
- try {
122
- db.exec("ALTER TABLE messages ADD COLUMN passport_address TEXT");
123
- }
124
- catch (e) {
125
- // 列可能已存在,忽略错误
126
- }
127
- try {
128
- db.exec("ALTER TABLE messages ADD COLUMN last_received_leaf_index INTEGER");
129
- }
130
- catch (e) {
131
- // 列可能已存在,忽略错误
132
- }
133
- try {
134
- db.exec("ALTER TABLE messages ADD COLUMN viewed_at INTEGER");
135
- }
136
- catch (e) {
137
- // 列可能已存在,忽略错误
138
- }
139
- // 安全地创建索引
140
- try {
141
- db.exec("CREATE INDEX IF NOT EXISTS idx_messages_from_to ON messages(from_address, to_address)");
142
- }
143
- catch (e) {
144
- // 索引可能已存在,忽略错误
145
- }
146
- try {
147
- db.exec("CREATE INDEX IF NOT EXISTS idx_messages_status ON messages(status)");
148
- }
149
- catch (e) {
150
- // 索引可能已存在,忽略错误
151
- }
152
- try {
153
- db.exec("CREATE INDEX IF NOT EXISTS idx_messages_leaf ON messages(leaf_index)");
154
- }
155
- catch (e) {
156
- // 索引可能已存在,忽略错误
157
- }
158
- try {
159
- db.exec("CREATE INDEX IF NOT EXISTS idx_messages_created_at ON messages(created_at)");
160
- }
161
- catch (e) {
162
- // 索引可能已存在,忽略错误
163
- }
164
- try {
165
- db.exec("CREATE INDEX IF NOT EXISTS idx_messages_server_ts ON messages(server_timestamp)");
166
- }
167
- catch (e) {
168
- // 索引可能已存在,忽略错误
169
- }
170
- try {
171
- db.exec("CREATE INDEX IF NOT EXISTS idx_messages_received_at ON messages(received_at)");
172
- }
173
- catch (e) {
174
- // 索引可能已存在,忽略错误
175
- }
176
- // 会话状态表
177
- db.exec(`
178
- CREATE TABLE IF NOT EXISTS session_states (
179
- session_id TEXT PRIMARY KEY,
180
- my_address TEXT NOT NULL,
181
- peer_address TEXT NOT NULL,
182
- current_root TEXT NOT NULL,
183
- prev_root TEXT NOT NULL,
184
- message_count INTEGER DEFAULT 0,
185
- last_leaf_index INTEGER DEFAULT 0,
186
- last_confirmed_hash TEXT,
187
- last_sync_at INTEGER,
188
- created_at INTEGER DEFAULT (strftime('%s', 'now')),
189
- updated_at INTEGER DEFAULT (strftime('%s', 'now'))
190
- );
191
- CREATE INDEX IF NOT EXISTS idx_session_my_peer ON session_states(my_address, peer_address);
192
- `);
193
- // 缓存实例
194
- userDbInstances.set(userAddress, db);
195
- return db;
196
- }
197
- // 获取全局数据库实例(用于 MessengerManager 状态和 SSE 锁)
198
- function getGlobalDatabase() {
199
- if (globalDbInstance) {
200
- return globalDbInstance;
201
- }
202
- // 创建新连接
203
- const dbPath = getGlobalDbPath();
204
- const db = new Database(dbPath);
205
- // 启用 WAL 模式以支持多进程访问
206
- db.pragma("journal_mode = WAL");
207
- // 设置同步模式为 NORMAL 以平衡性能和安全性
208
- db.pragma("synchronous = NORMAL");
209
- // 设置缓存大小
210
- db.pragma("cache_size = -10000");
211
- // 设置忙等待超时(5秒)
212
- db.pragma("busy_timeout = 5000");
213
- // 缓存实例
214
- globalDbInstance = db;
215
- return db;
216
- }
217
- /**
218
- * 重置数据库连接
219
- * 用于测试时清理数据后重新创建连接
220
- */
221
- export function resetDbConnection() {
222
- // 先切换到 DELETE 模式,这样就不会有 WAL 文件
223
- for (const [_, db] of userDbInstances) {
224
- try {
225
- db.pragma("journal_mode = DELETE");
226
- }
227
- catch (e) {
228
- // 忽略模式切换错误
229
- }
230
- }
231
- // 关闭所有用户的数据库连接
232
- for (const [_, db] of userDbInstances) {
233
- try {
234
- db.close();
235
- }
236
- catch (e) {
237
- // 忽略关闭错误
238
- }
239
- }
240
- userDbInstances.clear();
241
- // 关闭全局数据库连接
242
- if (globalDbInstance) {
243
- try {
244
- globalDbInstance.pragma("journal_mode = DELETE");
245
- }
246
- catch (e) {
247
- // 忽略模式切换错误
248
- }
249
- try {
250
- globalDbInstance.close();
251
- }
252
- catch (e) {
253
- // 忽略关闭错误
254
- }
255
- globalDbInstance = null;
256
- }
257
- }
258
- // 注册进程退出时的清理函数
259
- process.on("exit", () => {
260
- resetDbConnection();
261
- });
262
- // 处理 SIGINT (Ctrl+C)
263
- process.on("SIGINT", () => {
264
- resetDbConnection();
265
- process.exit(0);
266
- });
267
- // 处理 SIGTERM
268
- process.on("SIGTERM", () => {
269
- resetDbConnection();
270
- process.exit(0);
271
- });
272
- // ========== Signal Protocol 存储 ==========
273
- const STORE_TYPES = {
274
- IDENTITY: "identity",
275
- REGISTRATION_ID: "registration_id",
276
- IDENTITIES: "identities",
277
- PREKEYS: "prekeys",
278
- SIGNED_PREKEYS: "signed_prekeys",
279
- SESSIONS: "sessions",
280
- META: "meta",
281
- };
282
- function arrayBufferToBase64(buffer) {
283
- return Buffer.from(new Uint8Array(buffer)).toString("base64");
284
- }
285
- function base64ToArrayBuffer(base64) {
286
- const bytes = Uint8Array.from(Buffer.from(base64, "base64"));
287
- return bytes.slice().buffer;
288
- }
289
- function bufferEqual(a, b) {
290
- if (a.byteLength !== b.byteLength)
291
- return false;
292
- const va = new Uint8Array(a);
293
- const vb = new Uint8Array(b);
294
- for (let i = 0; i < va.length; i++) {
295
- if (va[i] !== vb[i])
296
- return false;
297
- }
298
- return true;
299
- }
300
- /**
301
- * Signal Protocol SQLite 存储
302
- * 兼容 libsignal-protocol-typescript 的 StorageType 接口
303
- */
304
- export class SignalProtocolStorage {
305
- storePrefix;
306
- userAddress;
307
- constructor(userAddress, storeType = "default") {
308
- this.userAddress = userAddress;
309
- this.storePrefix = storeType;
310
- }
311
- get db() {
312
- return getDatabase(this.userAddress);
313
- }
314
- // Identity
315
- async setIdentity(identity, registrationId) {
316
- const persisted = {
317
- pubKey: arrayBufferToBase64(identity.pubKey),
318
- privKey: arrayBufferToBase64(identity.privKey),
319
- };
320
- this.putValue(STORE_TYPES.IDENTITY, JSON.stringify(persisted));
321
- this.putValue(STORE_TYPES.REGISTRATION_ID, registrationId.toString());
322
- }
323
- async getIdentityKeyPair() {
324
- const value = this.getValue(STORE_TYPES.IDENTITY);
325
- if (!value)
326
- return undefined;
327
- const persisted = JSON.parse(value);
328
- return {
329
- pubKey: base64ToArrayBuffer(persisted.pubKey),
330
- privKey: base64ToArrayBuffer(persisted.privKey),
331
- };
332
- }
333
- async getLocalRegistrationId() {
334
- const value = this.getValue(STORE_TYPES.REGISTRATION_ID);
335
- return value ? parseInt(value, 10) : undefined;
336
- }
337
- // Identity verification
338
- async isTrustedIdentity(identifier, identityKey) {
339
- const key = `${STORE_TYPES.IDENTITIES}:${identifier}`;
340
- const existing = this.getValue(key);
341
- if (!existing)
342
- return true;
343
- return bufferEqual(base64ToArrayBuffer(existing), identityKey);
344
- }
345
- async saveIdentity(encodedAddress, publicKey) {
346
- const key = `${STORE_TYPES.IDENTITIES}:${encodedAddress}`;
347
- const existing = this.getValue(key);
348
- const newValue = arrayBufferToBase64(publicKey);
349
- this.putValue(key, newValue);
350
- return existing
351
- ? bufferEqual(base64ToArrayBuffer(existing), publicKey)
352
- : true;
353
- }
354
- async loadIdentity(address) {
355
- const key = `${STORE_TYPES.IDENTITIES}:${address}`;
356
- const value = this.getValue(key);
357
- return value ? base64ToArrayBuffer(value) : undefined;
358
- }
359
- // PreKeys
360
- async loadPreKey(keyId) {
361
- const key = `${STORE_TYPES.PREKEYS}:${keyId}`;
362
- const value = this.getValue(key);
363
- if (!value)
364
- return undefined;
365
- const persisted = JSON.parse(value);
366
- return {
367
- pubKey: base64ToArrayBuffer(persisted.pubKey),
368
- privKey: base64ToArrayBuffer(persisted.privKey),
369
- };
370
- }
371
- async storePreKey(keyId, keyPair) {
372
- const key = `${STORE_TYPES.PREKEYS}:${keyId}`;
373
- const persisted = {
374
- pubKey: arrayBufferToBase64(keyPair.pubKey),
375
- privKey: arrayBufferToBase64(keyPair.privKey),
376
- };
377
- this.putValue(key, JSON.stringify(persisted));
378
- }
379
- async removePreKey(keyId) {
380
- const key = `${STORE_TYPES.PREKEYS}:${keyId}`;
381
- this.delValue(key);
382
- }
383
- // Signed PreKeys
384
- async loadSignedPreKey(keyId) {
385
- const key = `${STORE_TYPES.SIGNED_PREKEYS}:${keyId}`;
386
- const value = this.getValue(key);
387
- if (!value)
388
- return undefined;
389
- const persisted = JSON.parse(value);
390
- return {
391
- pubKey: base64ToArrayBuffer(persisted.pubKey),
392
- privKey: base64ToArrayBuffer(persisted.privKey),
393
- };
394
- }
395
- async storeSignedPreKey(keyId, keyPair) {
396
- const key = `${STORE_TYPES.SIGNED_PREKEYS}:${keyId}`;
397
- const persisted = {
398
- pubKey: arrayBufferToBase64(keyPair.pubKey),
399
- privKey: arrayBufferToBase64(keyPair.privKey),
400
- };
401
- this.putValue(key, JSON.stringify(persisted));
402
- }
403
- async removeSignedPreKey(keyId) {
404
- const key = `${STORE_TYPES.SIGNED_PREKEYS}:${keyId}`;
405
- this.delValue(key);
406
- }
407
- // Signed PreKeys with Signature (new methods)
408
- async loadSignedPreKeyWithSignature(keyId) {
409
- const key = `${STORE_TYPES.SIGNED_PREKEYS}:${keyId}`;
410
- const value = this.getValue(key);
411
- if (!value)
412
- return undefined;
413
- const persisted = JSON.parse(value);
414
- // 检查必需的字段是否存在
415
- if (!persisted.pubKey || !persisted.privKey || !persisted.signature) {
416
- console.warn(`[Storage] SignedPreKey ${keyId} has missing fields, treating as not found`);
417
- return undefined;
418
- }
419
- return {
420
- pubKey: base64ToArrayBuffer(persisted.pubKey),
421
- privKey: base64ToArrayBuffer(persisted.privKey),
422
- signature: base64ToArrayBuffer(persisted.signature),
423
- };
424
- }
425
- async storeSignedPreKeyWithSignature(keyId, keyPair, signature) {
426
- const key = `${STORE_TYPES.SIGNED_PREKEYS}:${keyId}`;
427
- const persisted = {
428
- pubKey: arrayBufferToBase64(keyPair.pubKey),
429
- privKey: arrayBufferToBase64(keyPair.privKey),
430
- signature: arrayBufferToBase64(signature),
431
- };
432
- this.putValue(key, JSON.stringify(persisted));
433
- }
434
- // Sessions
435
- /**
436
- * 【核心改进】加载会话,支持发送/接收会话映射
437
- * encodedAddress 格式: "peerAddress.deviceId"
438
- * 我们会同时检查默认key和带前缀的key
439
- */
440
- async loadSession(encodedAddress) {
441
- const defaultKey = `${STORE_TYPES.SESSIONS}:${encodedAddress}`;
442
- // 首先检查默认key
443
- const defaultValue = this.getValue(defaultKey);
444
- if (defaultValue) {
445
- return defaultValue;
446
- }
447
- // 如果没有默认key,检查是否是发送/接收key格式
448
- // 格式: send:peerAddress.deviceId 或 recv:peerAddress.deviceId
449
- if (encodedAddress.startsWith("send:") ||
450
- encodedAddress.startsWith("recv:")) {
451
- return undefined;
452
- }
453
- // 尝试加载发送会话
454
- const sendKey = `${STORE_TYPES.SESSIONS}:send:${encodedAddress}`;
455
- const sendValue = this.getValue(sendKey);
456
- if (sendValue) {
457
- return sendValue;
458
- }
459
- // 尝试加载接收会话
460
- const recvKey = `${STORE_TYPES.SESSIONS}:recv:${encodedAddress}`;
461
- const recvValue = this.getValue(recvKey);
462
- if (recvValue) {
463
- return recvValue;
464
- }
465
- return undefined;
466
- }
467
- /**
468
- * 【关键修复】保存会话时,如果是默认key格式,同时保存到接收会话key
469
- * 这样Signal Protocol的SessionCipher保存的会话可以被我们的recv:key找到
470
- */
471
- async storeSession(encodedAddress, record) {
472
- // 保存到请求的key
473
- const key = `${STORE_TYPES.SESSIONS}:${encodedAddress}`;
474
- this.putValue(key, record);
475
- // 【关键】如果是默认key格式(不是send:/recv:前缀),同时保存到recv:key
476
- // 这样我们的解密逻辑使用recv:key时可以找到会话
477
- if (!encodedAddress.startsWith("send:") &&
478
- !encodedAddress.startsWith("recv:")) {
479
- const recvKey = `${STORE_TYPES.SESSIONS}:recv:${encodedAddress}`;
480
- this.putValue(recvKey, record);
481
- }
482
- }
483
- /**
484
- * 【关键修复】删除会话时,同时删除对应的recv:key
485
- */
486
- async removeSession(encodedAddress) {
487
- const key = `${STORE_TYPES.SESSIONS}:${encodedAddress}`;
488
- this.delValue(key);
489
- // 同时删除recv:key(如果存在)
490
- if (!encodedAddress.startsWith("send:") &&
491
- !encodedAddress.startsWith("recv:")) {
492
- const recvKey = `${STORE_TYPES.SESSIONS}:recv:${encodedAddress}`;
493
- this.delValue(recvKey);
494
- }
495
- }
496
- // Meta
497
- async getMeta() {
498
- const value = this.getValue(STORE_TYPES.META);
499
- if (!value)
500
- return { nextPreKeyId: 1 };
501
- return JSON.parse(value);
502
- }
503
- async setMeta(meta) {
504
- const current = await this.getMeta();
505
- const updated = { ...current, ...meta };
506
- this.putValue(STORE_TYPES.META, JSON.stringify(updated));
507
- }
508
- listPreKeys() {
509
- const rows = this.db
510
- .prepare("SELECT key FROM signal_store WHERE store_type = ? AND key LIKE ?")
511
- .all(this.storePrefix, `${STORE_TYPES.PREKEYS}:%`);
512
- return rows.map((r) => {
513
- const id = r.key.replace(`${STORE_TYPES.PREKEYS}:`, "");
514
- return Number(id);
515
- });
516
- }
517
- // Private helpers
518
- getValue(key) {
519
- const row = this.db
520
- .prepare("SELECT value FROM signal_store WHERE store_type = ? AND key = ?")
521
- .get(this.storePrefix, key);
522
- return row?.value;
523
- }
524
- putValue(key, value) {
525
- this.db
526
- .prepare(`
527
- INSERT INTO signal_store (store_type, key, value, updated_at)
528
- VALUES (?, ?, ?, strftime('%s', 'now'))
529
- ON CONFLICT(store_type, key) DO UPDATE SET
530
- value = excluded.value,
531
- updated_at = excluded.updated_at
532
- `)
533
- .run(this.storePrefix, key, value);
534
- }
535
- delValue(key) {
536
- this.db
537
- .prepare("DELETE FROM signal_store WHERE store_type = ? AND key = ?")
538
- .run(this.storePrefix, key);
539
- }
540
- }
541
- // ========== 消息存储 ==========
542
- export class MessageStorage {
543
- userAddress;
544
- constructor(userAddress) {
545
- this.userAddress = userAddress;
546
- }
547
- get db() {
548
- return getDatabase(this.userAddress);
549
- }
550
- saveMessage(message) {
551
- // 如果是接收消息且没有 receivedAt,设置当前时间
552
- const receivedAt = message.direction === "received" && !message.receivedAt
553
- ? Date.now()
554
- : message.receivedAt;
555
- this.db
556
- .prepare(`
557
- INSERT INTO messages (
558
- message_id, from_address, to_address, plaintext_hash,
559
- plaintext, guard_address, passport_address, last_received_leaf_index, direction, status, msg_type,
560
- leaf_index, prev_root, new_root, server_signature, server_public_key, server_timestamp,
561
- ark_recipient, ark_recipient_pubkey, ark_signature, ark_timestamp, zip_metadata,
562
- created_at, received_at
563
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
564
- ON CONFLICT(message_id) DO UPDATE SET
565
- direction = COALESCE(excluded.direction, direction),
566
- status = COALESCE(excluded.status, status),
567
- leaf_index = COALESCE(excluded.leaf_index, leaf_index),
568
- prev_root = COALESCE(excluded.prev_root, prev_root),
569
- new_root = COALESCE(excluded.new_root, new_root),
570
- server_signature = COALESCE(excluded.server_signature, server_signature),
571
- server_public_key = COALESCE(excluded.server_public_key, server_public_key),
572
- server_timestamp = COALESCE(excluded.server_timestamp, server_timestamp),
573
- plaintext = COALESCE(excluded.plaintext, plaintext),
574
- guard_address = COALESCE(excluded.guard_address, guard_address),
575
- passport_address = COALESCE(excluded.passport_address, passport_address),
576
- last_received_leaf_index = COALESCE(excluded.last_received_leaf_index, last_received_leaf_index),
577
- ark_recipient = COALESCE(excluded.ark_recipient, ark_recipient),
578
- ark_recipient_pubkey = COALESCE(excluded.ark_recipient_pubkey, ark_recipient_pubkey),
579
- ark_signature = COALESCE(excluded.ark_signature, ark_signature),
580
- ark_timestamp = COALESCE(excluded.ark_timestamp, ark_timestamp),
581
- zip_metadata = COALESCE(excluded.zip_metadata, zip_metadata),
582
- received_at = COALESCE(excluded.received_at, received_at)
583
- `)
584
- .run(message.messageId, message.fromAddress, message.toAddress, message.plaintextHash, message.plaintext === undefined ? null : message.plaintext, message.guardAddress === undefined
585
- ? null
586
- : message.guardAddress, message.passportAddress === undefined
587
- ? null
588
- : message.passportAddress, message.lastReceivedLeafIndex === undefined
589
- ? null
590
- : message.lastReceivedLeafIndex, message.direction, message.status, message.msgType, message.leafIndex === undefined ? null : message.leafIndex, message.prevRoot === undefined ? null : message.prevRoot, message.newRoot === undefined ? null : message.newRoot, message.serverSignature === undefined
591
- ? null
592
- : message.serverSignature, message.serverPublicKey === undefined
593
- ? null
594
- : message.serverPublicKey, message.serverTimestamp === undefined
595
- ? null
596
- : message.serverTimestamp, message.arkConfirmed?.recipient === undefined
597
- ? null
598
- : message.arkConfirmed?.recipient, message.arkConfirmed?.recipientPublicKey === undefined
599
- ? null
600
- : message.arkConfirmed?.recipientPublicKey, message.arkConfirmed?.signature === undefined
601
- ? null
602
- : message.arkConfirmed?.signature, message.arkConfirmed?.timestamp === undefined
603
- ? null
604
- : message.arkConfirmed?.timestamp, message.zipMetadata
605
- ? JSON.stringify(message.zipMetadata)
606
- : null, message.createdAt, receivedAt === undefined ? null : receivedAt);
607
- }
608
- getMessage(messageId) {
609
- const row = this.db
610
- .prepare("SELECT * FROM messages WHERE message_id = ?")
611
- .get(messageId);
612
- if (!row)
613
- return undefined;
614
- return this.rowToMessage(row);
615
- }
616
- getMessagesBySession(myAddress, peerAddress) {
617
- const myAddrLower = myAddress.toLowerCase();
618
- const peerAddrLower = peerAddress.toLowerCase();
619
- const rows = this.db
620
- .prepare(`
621
- SELECT * FROM messages
622
- WHERE (from_address = ? AND to_address = ?)
623
- OR (from_address = ? AND to_address = ?)
624
- ORDER BY created_at ASC
625
- `)
626
- .all(myAddrLower, peerAddrLower, peerAddrLower, myAddrLower);
627
- return rows.map((r) => this.rowToMessage(r));
628
- }
629
- getPendingMessages(myAddress) {
630
- const myAddrLower = myAddress.toLowerCase();
631
- const rows = this.db
632
- .prepare(`
633
- SELECT * FROM messages
634
- WHERE (from_address = ? OR to_address = ?) AND status = ?
635
- ORDER BY created_at ASC
636
- `)
637
- .all(myAddrLower, myAddrLower, "pending");
638
- return rows.map((r) => this.rowToMessage(r));
639
- }
640
- updateMessageStatus(messageId, status, updates) {
641
- const fields = ["status = ?"];
642
- const values = [status];
643
- if (updates?.leafIndex !== undefined) {
644
- fields.push("leaf_index = ?");
645
- values.push(updates.leafIndex);
646
- }
647
- if (updates?.newRoot !== undefined) {
648
- fields.push("new_root = ?");
649
- values.push(updates.newRoot);
650
- }
651
- if (updates?.serverSignature !== undefined) {
652
- fields.push("server_signature = ?");
653
- values.push(updates.serverSignature);
654
- }
655
- if (updates?.serverTimestamp !== undefined) {
656
- fields.push("server_timestamp = ?");
657
- values.push(updates.serverTimestamp);
658
- }
659
- if (updates?.serverPublicKey !== undefined) {
660
- fields.push("server_public_key = ?");
661
- values.push(updates.serverPublicKey);
662
- }
663
- values.push(messageId);
664
- this.db
665
- .prepare(`
666
- UPDATE messages SET ${fields.join(", ")} WHERE message_id = ?
667
- `)
668
- .run(...values);
669
- }
670
- /**
671
- * 更新消息查看状态
672
- * 将消息标记为已查看,设置 viewed_at 为当前时间戳
673
- *
674
- * @param messageId 消息 ID
675
- * @param viewedAt 查看时间戳(可选,默认当前时间)
676
- * @returns 是否更新成功
677
- */
678
- updateMessageViewed(messageId, viewedAt) {
679
- const timestamp = viewedAt ?? Date.now();
680
- const result = this.db
681
- .prepare(`
682
- UPDATE messages
683
- SET viewed_at = ?
684
- WHERE message_id = ? AND viewed_at IS NULL
685
- `)
686
- .run(timestamp, messageId);
687
- return result.changes > 0;
688
- }
689
- /**
690
- * 批量更新消息查看状态
691
- *
692
- * @param messageIds 消息 ID 列表
693
- * @param viewedAt 查看时间戳(可选,默认当前时间)
694
- * @returns 成功更新的消息数量
695
- */
696
- updateMessagesViewed(messageIds, viewedAt) {
697
- if (messageIds.length === 0)
698
- return 0;
699
- const timestamp = viewedAt ?? Date.now();
700
- const placeholders = messageIds.map(() => "?").join(",");
701
- const result = this.db
702
- .prepare(`
703
- UPDATE messages
704
- SET viewed_at = ?
705
- WHERE message_id IN (${placeholders}) AND viewed_at IS NULL
706
- `)
707
- .run(timestamp, ...messageIds);
708
- return result.changes;
709
- }
710
- /**
711
- * 获取用户的所有消息
712
- *
713
- * @param userAddress 用户地址
714
- * @returns 所有相关消息(发送和接收的)
715
- */
716
- getAllMessages(userAddress) {
717
- const userAddrLower = userAddress.toLowerCase();
718
- const rows = this.db
719
- .prepare(`
720
- SELECT * FROM messages
721
- WHERE from_address = ? OR to_address = ?
722
- ORDER BY created_at DESC
723
- `)
724
- .all(userAddrLower, userAddrLower);
725
- return rows.map((r) => this.rowToMessage(r));
726
- }
727
- /**
728
- * 通过消息 ID 获取消息
729
- *
730
- * @param messageId 消息 ID
731
- * @returns 消息对象或 undefined
732
- */
733
- getMessageById(messageId) {
734
- const row = this.db
735
- .prepare(`
736
- SELECT * FROM messages
737
- WHERE message_id = ?
738
- `)
739
- .get(messageId);
740
- if (!row)
741
- return undefined;
742
- return this.rowToMessage(row);
743
- }
744
- /**
745
- * 更新消息 ID(用于 Guard 消息确认后更新 messageId)
746
- *
747
- * 由于 message_id 是主键,需要通过删除旧记录并插入新记录来实现
748
- *
749
- * @param oldMessageId 旧消息 ID(internal_id)
750
- * @param newMessageId 新消息 ID(正式的 message_id)
751
- * @param updates 可选的更新字段
752
- * @returns 是否成功更新
753
- */
754
- updateMessageId(oldMessageId, newMessageId, updates) {
755
- const row = this.db
756
- .prepare("SELECT * FROM messages WHERE message_id = ?")
757
- .get(oldMessageId);
758
- if (!row)
759
- return false;
760
- // 辅助函数:获取更新值,优先使用 updates 中的值,但不使用 ?? 避免改写数据
761
- // 如果 updates 中有定义该字段(包括 null),使用 updates 的值;否则使用原值
762
- const getUpdatedValue = (updateValue, originalValue) => {
763
- if (updateValue !== undefined)
764
- return updateValue;
765
- return originalValue === null ? undefined : originalValue;
766
- };
767
- // 构建更新后的消息对象
768
- const message = {
769
- messageId: newMessageId,
770
- fromAddress: row.from_address,
771
- toAddress: row.to_address,
772
- plaintextHash: row.plaintext_hash,
773
- plaintext: row.plaintext === null ? undefined : row.plaintext,
774
- guardAddress: row.guard_address === null ? undefined : row.guard_address,
775
- passportAddress: row.passport_address === null
776
- ? undefined
777
- : row.passport_address,
778
- direction: row.direction,
779
- status: updates?.status !== undefined ? updates.status : row.status,
780
- msgType: row.msg_type,
781
- leafIndex: getUpdatedValue(updates?.leafIndex, row.leaf_index),
782
- prevRoot: getUpdatedValue(updates?.prevRoot, row.prev_root),
783
- newRoot: getUpdatedValue(updates?.newRoot, row.new_root),
784
- serverSignature: getUpdatedValue(updates?.serverSignature, row.server_signature),
785
- serverPublicKey: getUpdatedValue(updates?.serverPublicKey, row.server_public_key),
786
- serverTimestamp: getUpdatedValue(updates?.serverTimestamp, row.server_timestamp),
787
- arkConfirmed: row.ark_recipient
788
- ? {
789
- recipient: row.ark_recipient,
790
- recipientPublicKey: row.ark_recipient_pubkey,
791
- signature: row.ark_signature,
792
- timestamp: row.ark_timestamp,
793
- }
794
- : undefined,
795
- zipMetadata: row.zip_metadata
796
- ? JSON.parse(row.zip_metadata)
797
- : undefined,
798
- createdAt: row.created_at,
799
- receivedAt: row.received_at === null ? undefined : row.received_at,
800
- viewedAt: row.viewed_at === null ? undefined : row.viewed_at,
801
- };
802
- // 使用事务确保原子性
803
- const transaction = this.db.transaction(() => {
804
- // 删除旧记录
805
- this.db
806
- .prepare("DELETE FROM messages WHERE message_id = ?")
807
- .run(oldMessageId);
808
- // 插入新记录
809
- this.saveMessage(message);
810
- });
811
- try {
812
- transaction();
813
- return true;
814
- }
815
- catch (error) {
816
- //console.error("Failed to update message ID:", error);
817
- return false;
818
- }
819
- }
820
- rowToMessage(row) {
821
- if (row.to_address === null) {
822
- throw new Error(`Message ${row.message_id} has null toAddress`);
823
- }
824
- return {
825
- messageId: row.message_id,
826
- fromAddress: row.from_address,
827
- toAddress: row.to_address,
828
- plaintextHash: row.plaintext_hash,
829
- plaintext: row.plaintext === null ? undefined : row.plaintext,
830
- guardAddress: row.guard_address === null ? undefined : row.guard_address,
831
- passportAddress: row.passport_address === null
832
- ? undefined
833
- : row.passport_address,
834
- lastReceivedLeafIndex: row.last_received_leaf_index === null
835
- ? undefined
836
- : row.last_received_leaf_index,
837
- direction: row.direction,
838
- status: row.status,
839
- msgType: row.msg_type,
840
- leafIndex: row.leaf_index === null ? undefined : row.leaf_index,
841
- prevRoot: row.prev_root === null ? undefined : row.prev_root,
842
- newRoot: row.new_root === null ? undefined : row.new_root,
843
- serverSignature: row.server_signature === null
844
- ? undefined
845
- : row.server_signature,
846
- serverPublicKey: row.server_public_key === null
847
- ? undefined
848
- : row.server_public_key,
849
- serverTimestamp: row.server_timestamp === null
850
- ? undefined
851
- : row.server_timestamp,
852
- arkConfirmed: row.ark_recipient
853
- ? {
854
- recipient: row.ark_recipient,
855
- recipientPublicKey: row.ark_recipient_pubkey,
856
- signature: row.ark_signature,
857
- timestamp: row.ark_timestamp,
858
- }
859
- : undefined,
860
- zipMetadata: row.zip_metadata
861
- ? JSON.parse(row.zip_metadata)
862
- : undefined,
863
- createdAt: row.created_at,
864
- receivedAt: row.received_at === null ? undefined : row.received_at,
865
- viewedAt: row.viewed_at === null ? undefined : row.viewed_at,
866
- };
867
- }
868
- /**
869
- * 获取最后收到的消息序号(用于消息同步确认)
870
- *
871
- * 查询指定会话中,用户作为接收者时,发送者最后收到的消息序号
872
- * 用于在发送新消息时,告诉对方我已经收到了哪些消息
873
- *
874
- * @param myAddress 当前用户地址
875
- * @param peerAddress 对方地址
876
- * @returns 最后收到的消息序号(leafIndex),如果没有则返回 -1
877
- */
878
- getLastReceivedLeafIndex(myAddress, peerAddress) {
879
- // 查询从 peerAddress 发送给 myAddress 的消息中,
880
- // 最大的 leaf_index(这是我作为接收方,已经解密成功的对方发来的消息的最大序号)
881
- // 注意:from_address 和 to_address 已经确定了消息方向,无需检查 direction 字段
882
- const myAddrLower = myAddress.toLowerCase();
883
- const peerAddrLower = peerAddress.toLowerCase();
884
- const row = this.db
885
- .prepare(`
886
- SELECT MAX(leaf_index) as max_index
887
- FROM messages
888
- WHERE from_address = ? AND to_address = ?
889
- AND status = 'decrypted'
890
- AND leaf_index IS NOT NULL
891
- `)
892
- .get(peerAddrLower, myAddrLower);
893
- return row?.max_index ?? -1;
894
- }
895
- }
896
- // ========== 会话状态存储 ==========
897
- export class SessionStateStorage {
898
- userAddress;
899
- constructor(userAddress) {
900
- this.userAddress = userAddress;
901
- }
902
- get db() {
903
- return getDatabase(this.userAddress);
904
- }
905
- getSessionId(myAddress, peerAddress) {
906
- const addresses = [myAddress, peerAddress].sort();
907
- return `${addresses[0]}:${addresses[1]}`;
908
- }
909
- getSessionState(myAddress, peerAddress) {
910
- const sessionId = this.getSessionId(myAddress, peerAddress);
911
- const row = this.db
912
- .prepare("SELECT * FROM session_states WHERE session_id = ?")
913
- .get(sessionId);
914
- if (!row)
915
- return undefined;
916
- return {
917
- sessionId: row.session_id,
918
- myAddress: row.my_address,
919
- peerAddress: row.peer_address,
920
- currentRoot: row.current_root,
921
- prevRoot: row.prev_root,
922
- messageCount: row.message_count,
923
- lastLeafIndex: row.last_leaf_index,
924
- lastConfirmedHash: row.last_confirmed_hash === null ? "" : row.last_confirmed_hash,
925
- lastSyncAt: row.last_sync_at === null ? 0 : row.last_sync_at,
926
- createdAt: row.created_at,
927
- updatedAt: row.updated_at,
928
- };
929
- }
930
- updateSessionState(myAddress, peerAddress, updates) {
931
- const sessionId = this.getSessionId(myAddress, peerAddress);
932
- const existing = this.getSessionState(myAddress, peerAddress);
933
- const now = Date.now();
934
- if (existing) {
935
- const updated = { ...existing, ...updates, updatedAt: now };
936
- this.db
937
- .prepare(`
938
- UPDATE session_states SET
939
- current_root = ?,
940
- prev_root = ?,
941
- message_count = ?,
942
- last_leaf_index = ?,
943
- last_confirmed_hash = ?,
944
- last_sync_at = ?,
945
- updated_at = ?
946
- WHERE session_id = ?
947
- `)
948
- .run(updated.currentRoot, updated.prevRoot, updated.messageCount, updated.lastLeafIndex, updated.lastConfirmedHash, updated.lastSyncAt, updated.updatedAt, sessionId);
949
- }
950
- else {
951
- const initialRoot = "0".repeat(64);
952
- this.db
953
- .prepare(`
954
- INSERT INTO session_states (
955
- session_id, my_address, peer_address, current_root, prev_root,
956
- message_count, last_leaf_index, last_confirmed_hash, last_sync_at,
957
- created_at, updated_at
958
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
959
- `)
960
- .run(sessionId, myAddress, peerAddress, updates.currentRoot ?? initialRoot, updates.prevRoot ?? initialRoot, updates.messageCount ?? 0, updates.lastLeafIndex ?? 0, updates.lastConfirmedHash ?? "", updates.lastSyncAt ?? 0, now, now);
961
- }
962
- }
963
- getCurrentRoot(myAddress, peerAddress) {
964
- const state = this.getSessionState(myAddress, peerAddress);
965
- return state?.currentRoot ?? "0".repeat(64);
966
- }
967
- }
968
- /**
969
- * MessengerManager 持久化存储类
970
- *
971
- * 使用 SQLite 存储 MessengerManager 的配置和状态
972
- */
973
- export class MessengerPersistStorage {
974
- initialized = false;
975
- get db() {
976
- const db = getGlobalDatabase();
977
- if (!this.initialized) {
978
- this.initTable(db);
979
- this.initialized = true;
980
- }
981
- return db;
982
- }
983
- /**
984
- * 初始化存储表
985
- */
986
- initTable(db) {
987
- db.exec(`
988
- CREATE TABLE IF NOT EXISTS messenger_manager_state (
989
- instance_id TEXT PRIMARY KEY,
990
- state_data TEXT NOT NULL,
991
- updated_at INTEGER NOT NULL
992
- );
993
- CREATE INDEX IF NOT EXISTS idx_messenger_state_updated ON messenger_manager_state(updated_at);
994
- `);
995
- db.exec(`
996
- CREATE TABLE IF NOT EXISTS sse_connection_locks (
997
- account_address TEXT PRIMARY KEY,
998
- process_id TEXT NOT NULL,
999
- instance_id TEXT NOT NULL,
1000
- last_heartbeat INTEGER NOT NULL,
1001
- created_at INTEGER NOT NULL
1002
- );
1003
- CREATE INDEX IF NOT EXISTS idx_sse_lock_heartbeat ON sse_connection_locks(last_heartbeat);
1004
- `);
1005
- db.exec(`
1006
- CREATE TABLE IF NOT EXISTS polling_connection_locks (
1007
- account_address TEXT PRIMARY KEY,
1008
- process_id TEXT NOT NULL,
1009
- instance_id TEXT NOT NULL,
1010
- last_heartbeat INTEGER NOT NULL,
1011
- created_at INTEGER NOT NULL
1012
- );
1013
- CREATE INDEX IF NOT EXISTS idx_polling_lock_heartbeat ON polling_connection_locks(last_heartbeat);
1014
- `);
1015
- }
1016
- /**
1017
- * 保存 Messenger 配置和账号信息
1018
- *
1019
- * @param instanceId 实例标识(用于区分不同的 MessengerManager 实例)
1020
- * @param state 要保存的状态
1021
- */
1022
- saveState(instanceId, state) {
1023
- const data = JSON.stringify(state);
1024
- const now = Date.now();
1025
- this.db
1026
- .prepare(`
1027
- INSERT INTO messenger_manager_state (instance_id, state_data, updated_at)
1028
- VALUES (?, ?, ?)
1029
- ON CONFLICT(instance_id) DO UPDATE SET
1030
- state_data = excluded.state_data,
1031
- updated_at = excluded.updated_at
1032
- `)
1033
- .run(instanceId, data, now);
1034
- }
1035
- /**
1036
- * 加载 Messenger 配置和账号信息
1037
- *
1038
- * @param instanceId 实例标识
1039
- * @returns 保存的状态,如果不存在返回 null
1040
- */
1041
- loadState(instanceId) {
1042
- const row = this.db
1043
- .prepare("SELECT state_data FROM messenger_manager_state WHERE instance_id = ?")
1044
- .get(instanceId);
1045
- if (!row?.state_data)
1046
- return null;
1047
- try {
1048
- return JSON.parse(row.state_data);
1049
- }
1050
- catch (error) {
1051
- //console.error("Failed to parse persisted state:", error);
1052
- return null;
1053
- }
1054
- }
1055
- /**
1056
- * 删除保存的状态
1057
- *
1058
- * @param instanceId 实例标识
1059
- */
1060
- deleteState(instanceId) {
1061
- this.db
1062
- .prepare("DELETE FROM messenger_manager_state WHERE instance_id = ?")
1063
- .run(instanceId);
1064
- }
1065
- /**
1066
- * 获取所有实例ID列表
1067
- */
1068
- getAllInstanceIds() {
1069
- const rows = this.db
1070
- .prepare("SELECT instance_id FROM messenger_manager_state ORDER BY updated_at DESC")
1071
- .all();
1072
- return rows.map((r) => r.instance_id);
1073
- }
1074
- get processId() {
1075
- return `pid_${process.pid}_${Date.now()}`;
1076
- }
1077
- /**
1078
- * 尝试获取指定账号的 SSE 连接锁
1079
- * @param accountAddress 账号地址
1080
- * @param instanceId 当前实例ID
1081
- * @returns 是否成功获取锁
1082
- */
1083
- tryAcquireSSELock(accountAddress, instanceId) {
1084
- const now = Date.now();
1085
- const heartbeatTimeout = 15000;
1086
- const transaction = this.db.transaction(() => {
1087
- const row = this.db
1088
- .prepare("SELECT * FROM sse_connection_locks WHERE account_address = ?")
1089
- .get(accountAddress.toLowerCase());
1090
- if (row) {
1091
- if (row.instance_id === instanceId) {
1092
- this.db
1093
- .prepare("UPDATE sse_connection_locks SET last_heartbeat = ? WHERE account_address = ?")
1094
- .run(now, accountAddress.toLowerCase());
1095
- return true;
1096
- }
1097
- if (now - row.last_heartbeat < heartbeatTimeout) {
1098
- return false;
1099
- }
1100
- }
1101
- this.db
1102
- .prepare(`
1103
- INSERT INTO sse_connection_locks (
1104
- account_address, process_id, instance_id, last_heartbeat, created_at
1105
- ) VALUES (?, ?, ?, ?, ?)
1106
- ON CONFLICT(account_address) DO UPDATE SET
1107
- process_id = excluded.process_id,
1108
- instance_id = excluded.instance_id,
1109
- last_heartbeat = excluded.last_heartbeat
1110
- `)
1111
- .run(accountAddress.toLowerCase(), this.processId, instanceId, now, now);
1112
- return true;
1113
- });
1114
- try {
1115
- return transaction();
1116
- }
1117
- catch (error) {
1118
- console.warn("Failed to acquire SSE lock:", error);
1119
- return false;
1120
- }
1121
- }
1122
- /**
1123
- * 更新 SSE 连接锁的心跳
1124
- * @param accountAddress 账号地址
1125
- * @param instanceId 当前实例ID
1126
- */
1127
- updateSSELockHeartbeat(accountAddress, instanceId) {
1128
- const now = Date.now();
1129
- try {
1130
- this.db
1131
- .prepare("UPDATE sse_connection_locks SET last_heartbeat = ? WHERE account_address = ? AND instance_id = ?")
1132
- .run(now, accountAddress.toLowerCase(), instanceId);
1133
- }
1134
- catch (error) {
1135
- console.warn("Failed to update SSE lock heartbeat:", error);
1136
- }
1137
- }
1138
- /**
1139
- * 释放指定账号的 SSE 连接锁
1140
- * @param accountAddress 账号地址
1141
- * @param instanceId 当前实例ID
1142
- */
1143
- releaseSSELock(accountAddress, instanceId) {
1144
- try {
1145
- this.db
1146
- .prepare("DELETE FROM sse_connection_locks WHERE account_address = ? AND instance_id = ?")
1147
- .run(accountAddress.toLowerCase(), instanceId);
1148
- }
1149
- catch (error) {
1150
- console.warn("Failed to release SSE lock:", error);
1151
- }
1152
- }
1153
- /**
1154
- * 检查是否持有指定账号的 SSE 连接锁
1155
- * @param accountAddress 账号地址
1156
- * @param instanceId 当前实例ID
1157
- * @returns 是否持有锁
1158
- */
1159
- holdsSSELock(accountAddress, instanceId) {
1160
- const row = this.db
1161
- .prepare("SELECT * FROM sse_connection_locks WHERE account_address = ? AND instance_id = ?")
1162
- .get(accountAddress.toLowerCase(), instanceId);
1163
- return !!row;
1164
- }
1165
- /**
1166
- * 尝试获取指定账号的 Polling 连接锁
1167
- * @param accountAddress 账号地址
1168
- * @param instanceId 当前实例ID
1169
- * @returns 是否成功获取锁
1170
- */
1171
- tryAcquirePollingLock(accountAddress, instanceId) {
1172
- const now = Date.now();
1173
- const heartbeatTimeout = 60000;
1174
- const transaction = this.db.transaction(() => {
1175
- const row = this.db
1176
- .prepare("SELECT * FROM polling_connection_locks WHERE account_address = ?")
1177
- .get(accountAddress.toLowerCase());
1178
- if (row) {
1179
- if (row.instance_id === instanceId) {
1180
- this.db
1181
- .prepare("UPDATE polling_connection_locks SET last_heartbeat = ? WHERE account_address = ?")
1182
- .run(now, accountAddress.toLowerCase());
1183
- return true;
1184
- }
1185
- if (now - row.last_heartbeat < heartbeatTimeout) {
1186
- return false;
1187
- }
1188
- }
1189
- this.db
1190
- .prepare(`
1191
- INSERT INTO polling_connection_locks (
1192
- account_address, process_id, instance_id, last_heartbeat, created_at
1193
- ) VALUES (?, ?, ?, ?, ?)
1194
- ON CONFLICT(account_address) DO UPDATE SET
1195
- process_id = excluded.process_id,
1196
- instance_id = excluded.instance_id,
1197
- last_heartbeat = excluded.last_heartbeat
1198
- `)
1199
- .run(accountAddress.toLowerCase(), this.processId, instanceId, now, now);
1200
- return true;
1201
- });
1202
- try {
1203
- return transaction();
1204
- }
1205
- catch (error) {
1206
- console.warn("Failed to acquire polling lock:", error);
1207
- return false;
1208
- }
1209
- }
1210
- /**
1211
- * 更新 Polling 连接锁的心跳
1212
- * @param accountAddress 账号地址
1213
- * @param instanceId 当前实例ID
1214
- */
1215
- updatePollingLockHeartbeat(accountAddress, instanceId) {
1216
- const now = Date.now();
1217
- try {
1218
- this.db
1219
- .prepare("UPDATE polling_connection_locks SET last_heartbeat = ? WHERE account_address = ? AND instance_id = ?")
1220
- .run(now, accountAddress.toLowerCase(), instanceId);
1221
- }
1222
- catch (error) {
1223
- console.warn("Failed to update polling lock heartbeat:", error);
1224
- }
1225
- }
1226
- /**
1227
- * 释放指定账号的 Polling 连接锁
1228
- * @param accountAddress 账号地址
1229
- * @param instanceId 当前实例ID
1230
- */
1231
- releasePollingLock(accountAddress, instanceId) {
1232
- try {
1233
- this.db
1234
- .prepare("DELETE FROM polling_connection_locks WHERE account_address = ? AND instance_id = ?")
1235
- .run(accountAddress.toLowerCase(), instanceId);
1236
- }
1237
- catch (error) {
1238
- console.warn("Failed to release polling lock:", error);
1239
- }
1240
- }
1241
- /**
1242
- * 检查是否持有指定账号的 Polling 连接锁
1243
- * @param accountAddress 账号地址
1244
- * @param instanceId 当前实例ID
1245
- * @returns 是否持有锁
1246
- */
1247
- holdsPollingLock(accountAddress, instanceId) {
1248
- const row = this.db
1249
- .prepare("SELECT * FROM polling_connection_locks WHERE account_address = ? AND instance_id = ?")
1250
- .get(accountAddress.toLowerCase(), instanceId);
1251
- return !!row;
1252
- }
1253
- }
1254
- // 默认持久化存储实例
1255
- export const defaultPersistStorage = new MessengerPersistStorage();
1256
- //# sourceMappingURL=storage.js.map
1
+ import a186a from'better-sqlite3';import*as a186b from'path';import*as a186c from'fs';import{getWowDir}from'../local/util.js';function getWowDirDynamic(){return getWowDir();}function getMessengerDbDir(){return a186b['join'](getWowDirDynamic(),'messenger');}function ensureDirExists(a){!a186c['existsSync'](a)&&a186c['mkdirSync'](a,{'recursive':!![]});}function getUserDbPath(a){const b=a['toLowerCase']()['replace'](/^0x/,'')['slice'](0x0,0x10),c=getMessengerDbDir();return ensureDirExists(c),a186b['join'](c,b+'.db');}function getGlobalDbPath(){const a=getMessengerDbDir();return ensureDirExists(a),a186b['join'](a,'global.db');}const userDbInstances=new Map();let globalDbInstance=null;function getDatabase(a){if(!a)throw new Error('userAddress\x20is\x20required\x20to\x20get\x20database');const b=userDbInstances['get'](a);if(b)return b;const c=getUserDbPath(a),d=new a186a(c);d['pragma']('journal_mode\x20=\x20WAL'),d['pragma']('synchronous\x20=\x20NORMAL'),d['pragma']('cache_size\x20=\x20-64000'),d['exec']('\x0a\x20\x20\x20\x20CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20signal_store\x20(\x0a\x20\x20\x20\x20\x20\x20store_type\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20key\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20value\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20updated_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27)),\x0a\x20\x20\x20\x20\x20\x20PRIMARY\x20KEY\x20(store_type,\x20key)\x0a\x20\x20\x20\x20);\x0a\x20\x20\x20\x20CREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_signal_store_type\x20ON\x20signal_store(store_type);\x0a\x20\x20');try{d['exec']('\x0a\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20messages\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20message_id\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20\x20\x20\x20\x20from_address\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20to_address\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20plaintext_hash\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20plaintext\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20guard_address\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20passport_address\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20direction\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20status\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20msg_type\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20leaf_index\x20INTEGER,\x0a\x20\x20\x20\x20\x20\x20\x20\x20prev_root\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20new_root\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20server_signature\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20server_public_key\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20server_timestamp\x20INTEGER,\x0a\x20\x20\x20\x20\x20\x20\x20\x20ark_recipient\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20ark_recipient_pubkey\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20ark_signature\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20ark_timestamp\x20INTEGER,\x0a\x20\x20\x20\x20\x20\x20\x20\x20zip_metadata\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20created_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27)\x20*\x201000),\x0a\x20\x20\x20\x20\x20\x20\x20\x20received_at\x20INTEGER\x0a\x20\x20\x20\x20\x20\x20);\x0a\x20\x20\x20\x20');}catch(f){}try{d['exec']('ALTER\x20TABLE\x20messages\x20ADD\x20COLUMN\x20guard_address\x20TEXT');}catch(g){}try{d['exec']('ALTER\x20TABLE\x20messages\x20ADD\x20COLUMN\x20passport_address\x20TEXT');}catch(h){}try{d['exec']('ALTER\x20TABLE\x20messages\x20ADD\x20COLUMN\x20last_received_leaf_index\x20INTEGER');}catch(i){}try{d['exec']('ALTER\x20TABLE\x20messages\x20ADD\x20COLUMN\x20viewed_at\x20INTEGER');}catch(j){}try{d['exec']('CREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_messages_from_to\x20ON\x20messages(from_address,\x20to_address)');}catch(k){}try{d['exec']('CREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_messages_status\x20ON\x20messages(status)');}catch(l){}try{d['exec']('CREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_messages_leaf\x20ON\x20messages(leaf_index)');}catch(m){}try{d['exec']('CREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_messages_created_at\x20ON\x20messages(created_at)');}catch(n){}try{d['exec']('CREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_messages_server_ts\x20ON\x20messages(server_timestamp)');}catch(o){}try{d['exec']('CREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_messages_received_at\x20ON\x20messages(received_at)');}catch(p){}return d['exec']('\x0a\x20\x20\x20\x20CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20session_states\x20(\x0a\x20\x20\x20\x20\x20\x20session_id\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20\x20\x20my_address\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20peer_address\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20current_root\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20prev_root\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20message_count\x20INTEGER\x20DEFAULT\x200,\x0a\x20\x20\x20\x20\x20\x20last_leaf_index\x20INTEGER\x20DEFAULT\x200,\x0a\x20\x20\x20\x20\x20\x20last_confirmed_hash\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20last_sync_at\x20INTEGER,\x0a\x20\x20\x20\x20\x20\x20created_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27)),\x0a\x20\x20\x20\x20\x20\x20updated_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x20\x20\x20\x20);\x0a\x20\x20\x20\x20CREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_session_my_peer\x20ON\x20session_states(my_address,\x20peer_address);\x0a\x20\x20'),userDbInstances['set'](a,d),d;}function getGlobalDatabase(){if(globalDbInstance)return globalDbInstance;const a=getGlobalDbPath(),b=new a186a(a);return b['pragma']('journal_mode\x20=\x20WAL'),b['pragma']('synchronous\x20=\x20NORMAL'),b['pragma']('cache_size\x20=\x20-10000'),b['pragma']('busy_timeout\x20=\x205000'),globalDbInstance=b,b;}export function resetDbConnection(){for(const [a,b]of userDbInstances){try{b['pragma']('journal_mode\x20=\x20DELETE');}catch(c){}}for(const [d,f]of userDbInstances){try{f['close']();}catch(g){}}userDbInstances['clear']();if(globalDbInstance){try{globalDbInstance['pragma']('journal_mode\x20=\x20DELETE');}catch(h){}try{globalDbInstance['close']();}catch(i){}globalDbInstance=null;}}process['on']('exit',()=>{resetDbConnection();}),process['on']('SIGINT',()=>{resetDbConnection(),process['exit'](0x0);}),process['on']('SIGTERM',()=>{resetDbConnection(),process['exit'](0x0);});const STORE_TYPES={'IDENTITY':'identity','REGISTRATION_ID':'registration_id','IDENTITIES':'identities','PREKEYS':'prekeys','SIGNED_PREKEYS':'signed_prekeys','SESSIONS':'sessions','META':'meta'};function arrayBufferToBase64(a){return Buffer['from'](new Uint8Array(a))['toString']('base64');}function base64ToArrayBuffer(a){const b=Uint8Array['from'](Buffer['from'](a,'base64'));return b['slice']()['buffer'];}function bufferEqual(c,d){if(c['byteLength']!==d['byteLength'])return![];const e=new Uint8Array(c),f=new Uint8Array(d);for(let g=0x0;g<e['length'];g++){if(e[g]!==f[g])return![];}return!![];}export class SignalProtocolStorage{['storePrefix'];['userAddress'];constructor(a,b='default'){this['userAddress']=a,this['storePrefix']=b;}get['db'](){return getDatabase(this['userAddress']);}async['setIdentity'](a,b){const c={'pubKey':arrayBufferToBase64(a['pubKey']),'privKey':arrayBufferToBase64(a['privKey'])};this['putValue'](STORE_TYPES['IDENTITY'],JSON['stringify'](c)),this['putValue'](STORE_TYPES['REGISTRATION_ID'],b['toString']());}async['getIdentityKeyPair'](){const a=this['getValue'](STORE_TYPES['IDENTITY']);if(!a)return undefined;const b=JSON['parse'](a);return{'pubKey':base64ToArrayBuffer(b['pubKey']),'privKey':base64ToArrayBuffer(b['privKey'])};}async['getLocalRegistrationId'](){const a=this['getValue'](STORE_TYPES['REGISTRATION_ID']);return a?parseInt(a,0xa):undefined;}async['isTrustedIdentity'](a,b){const c=STORE_TYPES['IDENTITIES']+':'+a,d=this['getValue'](c);if(!d)return!![];return bufferEqual(base64ToArrayBuffer(d),b);}async['saveIdentity'](a,b){const c=STORE_TYPES['IDENTITIES']+':'+a,d=this['getValue'](c),e=arrayBufferToBase64(b);return this['putValue'](c,e),d?bufferEqual(base64ToArrayBuffer(d),b):!![];}async['loadIdentity'](a){const b=STORE_TYPES['IDENTITIES']+':'+a,c=this['getValue'](b);return c?base64ToArrayBuffer(c):undefined;}async['loadPreKey'](a){const b=STORE_TYPES['PREKEYS']+':'+a,c=this['getValue'](b);if(!c)return undefined;const d=JSON['parse'](c);return{'pubKey':base64ToArrayBuffer(d['pubKey']),'privKey':base64ToArrayBuffer(d['privKey'])};}async['storePreKey'](a,b){const c=STORE_TYPES['PREKEYS']+':'+a,d={'pubKey':arrayBufferToBase64(b['pubKey']),'privKey':arrayBufferToBase64(b['privKey'])};this['putValue'](c,JSON['stringify'](d));}async['removePreKey'](a){const b=STORE_TYPES['PREKEYS']+':'+a;this['delValue'](b);}async['loadSignedPreKey'](a){const b=STORE_TYPES['SIGNED_PREKEYS']+':'+a,c=this['getValue'](b);if(!c)return undefined;const d=JSON['parse'](c);return{'pubKey':base64ToArrayBuffer(d['pubKey']),'privKey':base64ToArrayBuffer(d['privKey'])};}async['storeSignedPreKey'](a,b){const c=STORE_TYPES['SIGNED_PREKEYS']+':'+a,d={'pubKey':arrayBufferToBase64(b['pubKey']),'privKey':arrayBufferToBase64(b['privKey'])};this['putValue'](c,JSON['stringify'](d));}async['removeSignedPreKey'](a){const b=STORE_TYPES['SIGNED_PREKEYS']+':'+a;this['delValue'](b);}async['loadSignedPreKeyWithSignature'](a){const b=STORE_TYPES['SIGNED_PREKEYS']+':'+a,c=this['getValue'](b);if(!c)return undefined;const d=JSON['parse'](c);if(!d['pubKey']||!d['privKey']||!d['signature'])return console['warn']('[Storage]\x20SignedPreKey\x20'+a+'\x20has\x20missing\x20fields,\x20treating\x20as\x20not\x20found'),undefined;return{'pubKey':base64ToArrayBuffer(d['pubKey']),'privKey':base64ToArrayBuffer(d['privKey']),'signature':base64ToArrayBuffer(d['signature'])};}async['storeSignedPreKeyWithSignature'](a,b,c){const d=STORE_TYPES['SIGNED_PREKEYS']+':'+a,e={'pubKey':arrayBufferToBase64(b['pubKey']),'privKey':arrayBufferToBase64(b['privKey']),'signature':arrayBufferToBase64(c)};this['putValue'](d,JSON['stringify'](e));}async['loadSession'](a){const b=STORE_TYPES['SESSIONS']+':'+a,c=this['getValue'](b);if(c)return c;if(a['startsWith']('send:')||a['startsWith']('recv:'))return undefined;const d=STORE_TYPES['SESSIONS']+':send:'+a,e=this['getValue'](d);if(e)return e;const f=STORE_TYPES['SESSIONS']+':recv:'+a,g=this['getValue'](f);if(g)return g;return undefined;}async['storeSession'](a,b){const c=STORE_TYPES['SESSIONS']+':'+a;this['putValue'](c,b);if(!a['startsWith']('send:')&&!a['startsWith']('recv:')){const d=STORE_TYPES['SESSIONS']+':recv:'+a;this['putValue'](d,b);}}async['removeSession'](a){const b=STORE_TYPES['SESSIONS']+':'+a;this['delValue'](b);if(!a['startsWith']('send:')&&!a['startsWith']('recv:')){const c=STORE_TYPES['SESSIONS']+':recv:'+a;this['delValue'](c);}}async['getMeta'](){const a=this['getValue'](STORE_TYPES['META']);if(!a)return{'nextPreKeyId':0x1};return JSON['parse'](a);}async['setMeta'](a){const b=await this['getMeta'](),c={...b,...a};this['putValue'](STORE_TYPES['META'],JSON['stringify'](c));}['listPreKeys'](){const a=this['db']['prepare']('SELECT\x20key\x20FROM\x20signal_store\x20WHERE\x20store_type\x20=\x20?\x20AND\x20key\x20LIKE\x20?')['all'](this['storePrefix'],STORE_TYPES['PREKEYS']+':%');return a['map'](b=>{const c=b['key']['replace'](STORE_TYPES['PREKEYS']+':','');return Number(c);});}['getValue'](a){const b=this['db']['prepare']('SELECT\x20value\x20FROM\x20signal_store\x20WHERE\x20store_type\x20=\x20?\x20AND\x20key\x20=\x20?')['get'](this['storePrefix'],a);return b?.['value'];}['putValue'](a,b){this['db']['prepare']('\x0a\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20signal_store\x20(store_type,\x20key,\x20value,\x20updated_at)\x20\x0a\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x20\x20\x20\x20\x20\x20ON\x20CONFLICT(store_type,\x20key)\x20DO\x20UPDATE\x20SET\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20value\x20=\x20excluded.value,\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20excluded.updated_at\x0a\x20\x20\x20\x20')['run'](this['storePrefix'],a,b);}['delValue'](a){this['db']['prepare']('DELETE\x20FROM\x20signal_store\x20WHERE\x20store_type\x20=\x20?\x20AND\x20key\x20=\x20?')['run'](this['storePrefix'],a);}}export class MessageStorage{['userAddress'];constructor(a){this['userAddress']=a;}get['db'](){return getDatabase(this['userAddress']);}['saveMessage'](a){const b=a['direction']==='received'&&!a['receivedAt']?Date['now']():a['receivedAt'];this['db']['prepare']('\x0a\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20messages\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20message_id,\x20from_address,\x20to_address,\x20plaintext_hash,\x0a\x20\x20\x20\x20\x20\x20\x20\x20plaintext,\x20guard_address,\x20passport_address,\x20last_received_leaf_index,\x20direction,\x20status,\x20msg_type,\x0a\x20\x20\x20\x20\x20\x20\x20\x20leaf_index,\x20prev_root,\x20new_root,\x20server_signature,\x20server_public_key,\x20server_timestamp,\x0a\x20\x20\x20\x20\x20\x20\x20\x20ark_recipient,\x20ark_recipient_pubkey,\x20ark_signature,\x20ark_timestamp,\x20zip_metadata,\x0a\x20\x20\x20\x20\x20\x20\x20\x20created_at,\x20received_at\x0a\x20\x20\x20\x20\x20\x20)\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)\x0a\x20\x20\x20\x20\x20\x20ON\x20CONFLICT(message_id)\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20direction\x20=\x20COALESCE(excluded.direction,\x20direction),\x0a\x20\x20\x20\x20\x20\x20\x20\x20status\x20=\x20COALESCE(excluded.status,\x20status),\x0a\x20\x20\x20\x20\x20\x20\x20\x20leaf_index\x20=\x20COALESCE(excluded.leaf_index,\x20leaf_index),\x0a\x20\x20\x20\x20\x20\x20\x20\x20prev_root\x20=\x20COALESCE(excluded.prev_root,\x20prev_root),\x0a\x20\x20\x20\x20\x20\x20\x20\x20new_root\x20=\x20COALESCE(excluded.new_root,\x20new_root),\x0a\x20\x20\x20\x20\x20\x20\x20\x20server_signature\x20=\x20COALESCE(excluded.server_signature,\x20server_signature),\x0a\x20\x20\x20\x20\x20\x20\x20\x20server_public_key\x20=\x20COALESCE(excluded.server_public_key,\x20server_public_key),\x0a\x20\x20\x20\x20\x20\x20\x20\x20server_timestamp\x20=\x20COALESCE(excluded.server_timestamp,\x20server_timestamp),\x0a\x20\x20\x20\x20\x20\x20\x20\x20plaintext\x20=\x20COALESCE(excluded.plaintext,\x20plaintext),\x0a\x20\x20\x20\x20\x20\x20\x20\x20guard_address\x20=\x20COALESCE(excluded.guard_address,\x20guard_address),\x0a\x20\x20\x20\x20\x20\x20\x20\x20passport_address\x20=\x20COALESCE(excluded.passport_address,\x20passport_address),\x0a\x20\x20\x20\x20\x20\x20\x20\x20last_received_leaf_index\x20=\x20COALESCE(excluded.last_received_leaf_index,\x20last_received_leaf_index),\x0a\x20\x20\x20\x20\x20\x20\x20\x20ark_recipient\x20=\x20COALESCE(excluded.ark_recipient,\x20ark_recipient),\x0a\x20\x20\x20\x20\x20\x20\x20\x20ark_recipient_pubkey\x20=\x20COALESCE(excluded.ark_recipient_pubkey,\x20ark_recipient_pubkey),\x0a\x20\x20\x20\x20\x20\x20\x20\x20ark_signature\x20=\x20COALESCE(excluded.ark_signature,\x20ark_signature),\x0a\x20\x20\x20\x20\x20\x20\x20\x20ark_timestamp\x20=\x20COALESCE(excluded.ark_timestamp,\x20ark_timestamp),\x0a\x20\x20\x20\x20\x20\x20\x20\x20zip_metadata\x20=\x20COALESCE(excluded.zip_metadata,\x20zip_metadata),\x0a\x20\x20\x20\x20\x20\x20\x20\x20received_at\x20=\x20COALESCE(excluded.received_at,\x20received_at)\x0a\x20\x20\x20\x20')['run'](a['messageId'],a['fromAddress'],a['toAddress'],a['plaintextHash'],a['plaintext']===undefined?null:a['plaintext'],a['guardAddress']===undefined?null:a['guardAddress'],a['passportAddress']===undefined?null:a['passportAddress'],a['lastReceivedLeafIndex']===undefined?null:a['lastReceivedLeafIndex'],a['direction'],a['status'],a['msgType'],a['leafIndex']===undefined?null:a['leafIndex'],a['prevRoot']===undefined?null:a['prevRoot'],a['newRoot']===undefined?null:a['newRoot'],a['serverSignature']===undefined?null:a['serverSignature'],a['serverPublicKey']===undefined?null:a['serverPublicKey'],a['serverTimestamp']===undefined?null:a['serverTimestamp'],a['arkConfirmed']?.['recipient']===undefined?null:a['arkConfirmed']?.['recipient'],a['arkConfirmed']?.['recipientPublicKey']===undefined?null:a['arkConfirmed']?.['recipientPublicKey'],a['arkConfirmed']?.['signature']===undefined?null:a['arkConfirmed']?.['signature'],a['arkConfirmed']?.['timestamp']===undefined?null:a['arkConfirmed']?.['timestamp'],a['zipMetadata']?JSON['stringify'](a['zipMetadata']):null,a['createdAt'],b===undefined?null:b);}['getMessage'](a){const b=this['db']['prepare']('SELECT\x20*\x20FROM\x20messages\x20WHERE\x20message_id\x20=\x20?')['get'](a);if(!b)return undefined;return this['rowToMessage'](b);}['getMessagesBySession'](a,b){const c=a['toLowerCase'](),d=b['toLowerCase'](),e=this['db']['prepare']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20*\x20FROM\x20messages\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20(from_address\x20=\x20?\x20AND\x20to_address\x20=\x20?)\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20OR\x20(from_address\x20=\x20?\x20AND\x20to_address\x20=\x20?)\x0a\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20created_at\x20ASC\x0a\x20\x20\x20\x20\x20\x20')['all'](c,d,d,c);return e['map'](f=>this['rowToMessage'](f));}['getPendingMessages'](a){const b=a['toLowerCase'](),c=this['db']['prepare']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20*\x20FROM\x20messages\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20(from_address\x20=\x20?\x20OR\x20to_address\x20=\x20?)\x20AND\x20status\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20created_at\x20ASC\x0a\x20\x20\x20\x20\x20\x20')['all'](b,b,'pending');return c['map'](d=>this['rowToMessage'](d));}['updateMessageStatus'](a,b,c){const d=['status\x20=\x20?'],e=[b];c?.['leafIndex']!==undefined&&(d['push']('leaf_index\x20=\x20?'),e['push'](c['leafIndex'])),c?.['newRoot']!==undefined&&(d['push']('new_root\x20=\x20?'),e['push'](c['newRoot'])),c?.['serverSignature']!==undefined&&(d['push']('server_signature\x20=\x20?'),e['push'](c['serverSignature'])),c?.['serverTimestamp']!==undefined&&(d['push']('server_timestamp\x20=\x20?'),e['push'](c['serverTimestamp'])),c?.['serverPublicKey']!==undefined&&(d['push']('server_public_key\x20=\x20?'),e['push'](c['serverPublicKey'])),e['push'](a),this['db']['prepare']('\x0a\x20\x20\x20\x20\x20\x20UPDATE\x20messages\x20SET\x20'+d['join'](',\x20')+'\x20WHERE\x20message_id\x20=\x20?\x0a\x20\x20\x20\x20')['run'](...e);}['updateMessageViewed'](a,b){const c=b??Date['now'](),d=this['db']['prepare']('\x0a\x09\x09\x09\x09UPDATE\x20messages\x0a\x09\x09\x09\x09SET\x20viewed_at\x20=\x20?\x0a\x09\x09\x09\x09WHERE\x20message_id\x20=\x20?\x20AND\x20viewed_at\x20IS\x20NULL\x0a\x09\x09\x09')['run'](c,a);return d['changes']>0x0;}['updateMessagesViewed'](a,b){if(a['length']===0x0)return 0x0;const c=b??Date['now'](),d=a['map'](()=>'?')['join'](','),e=this['db']['prepare']('\x0a\x09\x09\x09\x09UPDATE\x20messages\x0a\x09\x09\x09\x09SET\x20viewed_at\x20=\x20?\x0a\x09\x09\x09\x09WHERE\x20message_id\x20IN\x20('+d+')\x20AND\x20viewed_at\x20IS\x20NULL\x0a\x09\x09\x09')['run'](c,...a);return e['changes'];}['getAllMessages'](a){const b=a['toLowerCase'](),c=this['db']['prepare']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20*\x20FROM\x20messages\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20from_address\x20=\x20?\x20OR\x20to_address\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20created_at\x20DESC\x0a\x20\x20\x20\x20\x20\x20')['all'](b,b);return c['map'](d=>this['rowToMessage'](d));}['getMessageById'](a){const b=this['db']['prepare']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20*\x20FROM\x20messages\x0a\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20message_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20')['get'](a);if(!b)return undefined;return this['rowToMessage'](b);}['updateMessageId'](a,b,c){const d=this['db']['prepare']('SELECT\x20*\x20FROM\x20messages\x20WHERE\x20message_id\x20=\x20?')['get'](a);if(!d)return![];const e=(h,i)=>{if(h!==undefined)return h;return i===null?undefined:i;},f={'messageId':b,'fromAddress':d['from_address'],'toAddress':d['to_address'],'plaintextHash':d['plaintext_hash'],'plaintext':d['plaintext']===null?undefined:d['plaintext'],'guardAddress':d['guard_address']===null?undefined:d['guard_address'],'passportAddress':d['passport_address']===null?undefined:d['passport_address'],'direction':d['direction'],'status':c?.['status']!==undefined?c['status']:d['status'],'msgType':d['msg_type'],'leafIndex':e(c?.['leafIndex'],d['leaf_index']),'prevRoot':e(c?.['prevRoot'],d['prev_root']),'newRoot':e(c?.['newRoot'],d['new_root']),'serverSignature':e(c?.['serverSignature'],d['server_signature']),'serverPublicKey':e(c?.['serverPublicKey'],d['server_public_key']),'serverTimestamp':e(c?.['serverTimestamp'],d['server_timestamp']),'arkConfirmed':d['ark_recipient']?{'recipient':d['ark_recipient'],'recipientPublicKey':d['ark_recipient_pubkey'],'signature':d['ark_signature'],'timestamp':d['ark_timestamp']}:undefined,'zipMetadata':d['zip_metadata']?JSON['parse'](d['zip_metadata']):undefined,'createdAt':d['created_at'],'receivedAt':d['received_at']===null?undefined:d['received_at'],'viewedAt':d['viewed_at']===null?undefined:d['viewed_at']},g=this['db']['transaction'](()=>{this['db']['prepare']('DELETE\x20FROM\x20messages\x20WHERE\x20message_id\x20=\x20?')['run'](a),this['saveMessage'](f);});try{return g(),!![];}catch(h){return![];}}['rowToMessage'](a){if(a['to_address']===null)throw new Error('Message\x20'+a['message_id']+'\x20has\x20null\x20toAddress');return{'messageId':a['message_id'],'fromAddress':a['from_address'],'toAddress':a['to_address'],'plaintextHash':a['plaintext_hash'],'plaintext':a['plaintext']===null?undefined:a['plaintext'],'guardAddress':a['guard_address']===null?undefined:a['guard_address'],'passportAddress':a['passport_address']===null?undefined:a['passport_address'],'lastReceivedLeafIndex':a['last_received_leaf_index']===null?undefined:a['last_received_leaf_index'],'direction':a['direction'],'status':a['status'],'msgType':a['msg_type'],'leafIndex':a['leaf_index']===null?undefined:a['leaf_index'],'prevRoot':a['prev_root']===null?undefined:a['prev_root'],'newRoot':a['new_root']===null?undefined:a['new_root'],'serverSignature':a['server_signature']===null?undefined:a['server_signature'],'serverPublicKey':a['server_public_key']===null?undefined:a['server_public_key'],'serverTimestamp':a['server_timestamp']===null?undefined:a['server_timestamp'],'arkConfirmed':a['ark_recipient']?{'recipient':a['ark_recipient'],'recipientPublicKey':a['ark_recipient_pubkey'],'signature':a['ark_signature'],'timestamp':a['ark_timestamp']}:undefined,'zipMetadata':a['zip_metadata']?JSON['parse'](a['zip_metadata']):undefined,'createdAt':a['created_at'],'receivedAt':a['received_at']===null?undefined:a['received_at'],'viewedAt':a['viewed_at']===null?undefined:a['viewed_at']};}['getLastReceivedLeafIndex'](a,b){const c=a['toLowerCase'](),d=b['toLowerCase'](),e=this['db']['prepare']('\x0a\x09\x09\x09\x09SELECT\x20MAX(leaf_index)\x20as\x20max_index\x0a\x09\x09\x09\x09FROM\x20messages\x0a\x09\x09\x09\x09WHERE\x20from_address\x20=\x20?\x20AND\x20to_address\x20=\x20?\x0a\x09\x09\x09\x09\x09AND\x20status\x20=\x20\x27decrypted\x27\x0a\x09\x09\x09\x09\x09AND\x20leaf_index\x20IS\x20NOT\x20NULL\x0a\x09\x09\x09')['get'](d,c);return e?.['max_index']??-0x1;}}export class SessionStateStorage{['userAddress'];constructor(a){this['userAddress']=a;}get['db'](){return getDatabase(this['userAddress']);}['getSessionId'](a,b){const c=[a,b]['sort']();return c[0x0]+':'+c[0x1];}['getSessionState'](a,b){const c=this['getSessionId'](a,b),d=this['db']['prepare']('SELECT\x20*\x20FROM\x20session_states\x20WHERE\x20session_id\x20=\x20?')['get'](c);if(!d)return undefined;return{'sessionId':d['session_id'],'myAddress':d['my_address'],'peerAddress':d['peer_address'],'currentRoot':d['current_root'],'prevRoot':d['prev_root'],'messageCount':d['message_count'],'lastLeafIndex':d['last_leaf_index'],'lastConfirmedHash':d['last_confirmed_hash']===null?'':d['last_confirmed_hash'],'lastSyncAt':d['last_sync_at']===null?0x0:d['last_sync_at'],'createdAt':d['created_at'],'updatedAt':d['updated_at']};}['updateSessionState'](a,b,c){const d=this['getSessionId'](a,b),e=this['getSessionState'](a,b),f=Date['now']();if(e){const g={...e,...c,'updatedAt':f};this['db']['prepare']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20UPDATE\x20session_states\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20current_root\x20=\x20?,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20prev_root\x20=\x20?,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message_count\x20=\x20?,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20last_leaf_index\x20=\x20?,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20last_confirmed_hash\x20=\x20?,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20last_sync_at\x20=\x20?,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20session_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20')['run'](g['currentRoot'],g['prevRoot'],g['messageCount'],g['lastLeafIndex'],g['lastConfirmedHash'],g['lastSyncAt'],g['updatedAt'],d);}else{const h='0'['repeat'](0x40);this['db']['prepare']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20session_states\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20session_id,\x20my_address,\x20peer_address,\x20current_root,\x20prev_root,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message_count,\x20last_leaf_index,\x20last_confirmed_hash,\x20last_sync_at,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20created_at,\x20updated_at\x0a\x20\x20\x20\x20\x20\x20\x20\x20)\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)\x0a\x20\x20\x20\x20\x20\x20')['run'](d,a,b,c['currentRoot']??h,c['prevRoot']??h,c['messageCount']??0x0,c['lastLeafIndex']??0x0,c['lastConfirmedHash']??'',c['lastSyncAt']??0x0,f,f);}}['getCurrentRoot'](a,b){const c=this['getSessionState'](a,b);return c?.['currentRoot']??'0'['repeat'](0x40);}}export class MessengerPersistStorage{['initialized']=![];get['db'](){const a=getGlobalDatabase();return!this['initialized']&&(this['initTable'](a),this['initialized']=!![]),a;}['initTable'](a){a['exec']('\x0a\x09\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20messenger_manager_state\x20(\x0a\x09\x09\x09\x09instance_id\x20TEXT\x20PRIMARY\x20KEY,\x0a\x09\x09\x09\x09state_data\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09\x09updated_at\x20INTEGER\x20NOT\x20NULL\x0a\x09\x09\x09);\x0a\x09\x09\x09CREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_messenger_state_updated\x20ON\x20messenger_manager_state(updated_at);\x0a\x09\x09'),a['exec']('\x0a\x09\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20sse_connection_locks\x20(\x0a\x09\x09\x09\x09account_address\x20TEXT\x20PRIMARY\x20KEY,\x0a\x09\x09\x09\x09process_id\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09\x09instance_id\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09\x09last_heartbeat\x20INTEGER\x20NOT\x20NULL,\x0a\x09\x09\x09\x09created_at\x20INTEGER\x20NOT\x20NULL\x0a\x09\x09\x09);\x0a\x09\x09\x09CREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_sse_lock_heartbeat\x20ON\x20sse_connection_locks(last_heartbeat);\x0a\x09\x09'),a['exec']('\x0a\x09\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20polling_connection_locks\x20(\x0a\x09\x09\x09\x09account_address\x20TEXT\x20PRIMARY\x20KEY,\x0a\x09\x09\x09\x09process_id\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09\x09instance_id\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09\x09last_heartbeat\x20INTEGER\x20NOT\x20NULL,\x0a\x09\x09\x09\x09created_at\x20INTEGER\x20NOT\x20NULL\x0a\x09\x09\x09);\x0a\x09\x09\x09CREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20idx_polling_lock_heartbeat\x20ON\x20polling_connection_locks(last_heartbeat);\x0a\x09\x09');}['saveState'](a,b){const c=JSON['stringify'](b),d=Date['now']();this['db']['prepare']('\x0a\x09\x09\x09\x09INSERT\x20INTO\x20messenger_manager_state\x20(instance_id,\x20state_data,\x20updated_at)\x0a\x09\x09\x09\x09VALUES\x20(?,\x20?,\x20?)\x0a\x09\x09\x09\x09ON\x20CONFLICT(instance_id)\x20DO\x20UPDATE\x20SET\x0a\x09\x09\x09\x09\x09state_data\x20=\x20excluded.state_data,\x0a\x09\x09\x09\x09\x09updated_at\x20=\x20excluded.updated_at\x0a\x09\x09\x09')['run'](a,c,d);}['loadState'](a){const b=this['db']['prepare']('SELECT\x20state_data\x20FROM\x20messenger_manager_state\x20WHERE\x20instance_id\x20=\x20?')['get'](a);if(!b?.['state_data'])return null;try{return JSON['parse'](b['state_data']);}catch(c){return null;}}['deleteState'](a){this['db']['prepare']('DELETE\x20FROM\x20messenger_manager_state\x20WHERE\x20instance_id\x20=\x20?')['run'](a);}['getAllInstanceIds'](){const a=this['db']['prepare']('SELECT\x20instance_id\x20FROM\x20messenger_manager_state\x20ORDER\x20BY\x20updated_at\x20DESC')['all']();return a['map'](b=>b['instance_id']);}get['processId'](){return'pid_'+process['pid']+'_'+Date['now']();}['tryAcquireSSELock'](a,b){const c=Date['now'](),d=0x3a98,e=this['db']['transaction'](()=>{const f=this['db']['prepare']('SELECT\x20*\x20FROM\x20sse_connection_locks\x20WHERE\x20account_address\x20=\x20?')['get'](a['toLowerCase']());if(f){if(f['instance_id']===b)return this['db']['prepare']('UPDATE\x20sse_connection_locks\x20SET\x20last_heartbeat\x20=\x20?\x20WHERE\x20account_address\x20=\x20?')['run'](c,a['toLowerCase']()),!![];if(c-f['last_heartbeat']<d)return![];}return this['db']['prepare']('\x0a\x09\x09\x09\x09\x09INSERT\x20INTO\x20sse_connection_locks\x20(\x0a\x09\x09\x09\x09\x09\x09account_address,\x20process_id,\x20instance_id,\x20last_heartbeat,\x20created_at\x0a\x09\x09\x09\x09\x09)\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?)\x0a\x09\x09\x09\x09\x09ON\x20CONFLICT(account_address)\x20DO\x20UPDATE\x20SET\x0a\x09\x09\x09\x09\x09\x09process_id\x20=\x20excluded.process_id,\x0a\x09\x09\x09\x09\x09\x09instance_id\x20=\x20excluded.instance_id,\x0a\x09\x09\x09\x09\x09\x09last_heartbeat\x20=\x20excluded.last_heartbeat\x0a\x09\x09\x09\x09')['run'](a['toLowerCase'](),this['processId'],b,c,c),!![];});try{return e();}catch(f){return console['warn']('Failed\x20to\x20acquire\x20SSE\x20lock:',f),![];}}['updateSSELockHeartbeat'](a,b){const c=Date['now']();try{this['db']['prepare']('UPDATE\x20sse_connection_locks\x20SET\x20last_heartbeat\x20=\x20?\x20WHERE\x20account_address\x20=\x20?\x20AND\x20instance_id\x20=\x20?')['run'](c,a['toLowerCase'](),b);}catch(d){console['warn']('Failed\x20to\x20update\x20SSE\x20lock\x20heartbeat:',d);}}['releaseSSELock'](a,b){try{this['db']['prepare']('DELETE\x20FROM\x20sse_connection_locks\x20WHERE\x20account_address\x20=\x20?\x20AND\x20instance_id\x20=\x20?')['run'](a['toLowerCase'](),b);}catch(c){console['warn']('Failed\x20to\x20release\x20SSE\x20lock:',c);}}['holdsSSELock'](a,b){const c=this['db']['prepare']('SELECT\x20*\x20FROM\x20sse_connection_locks\x20WHERE\x20account_address\x20=\x20?\x20AND\x20instance_id\x20=\x20?')['get'](a['toLowerCase'](),b);return!!c;}['tryAcquirePollingLock'](a,b){const c=Date['now'](),d=0xea60,e=this['db']['transaction'](()=>{const f=this['db']['prepare']('SELECT\x20*\x20FROM\x20polling_connection_locks\x20WHERE\x20account_address\x20=\x20?')['get'](a['toLowerCase']());if(f){if(f['instance_id']===b)return this['db']['prepare']('UPDATE\x20polling_connection_locks\x20SET\x20last_heartbeat\x20=\x20?\x20WHERE\x20account_address\x20=\x20?')['run'](c,a['toLowerCase']()),!![];if(c-f['last_heartbeat']<d)return![];}return this['db']['prepare']('\x0a\x09\x09\x09\x09\x09INSERT\x20INTO\x20polling_connection_locks\x20(\x0a\x09\x09\x09\x09\x09\x09account_address,\x20process_id,\x20instance_id,\x20last_heartbeat,\x20created_at\x0a\x09\x09\x09\x09\x09)\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?)\x0a\x09\x09\x09\x09\x09ON\x20CONFLICT(account_address)\x20DO\x20UPDATE\x20SET\x0a\x09\x09\x09\x09\x09\x09process_id\x20=\x20excluded.process_id,\x0a\x09\x09\x09\x09\x09\x09instance_id\x20=\x20excluded.instance_id,\x0a\x09\x09\x09\x09\x09\x09last_heartbeat\x20=\x20excluded.last_heartbeat\x0a\x09\x09\x09\x09')['run'](a['toLowerCase'](),this['processId'],b,c,c),!![];});try{return e();}catch(f){return console['warn']('Failed\x20to\x20acquire\x20polling\x20lock:',f),![];}}['updatePollingLockHeartbeat'](a,b){const c=Date['now']();try{this['db']['prepare']('UPDATE\x20polling_connection_locks\x20SET\x20last_heartbeat\x20=\x20?\x20WHERE\x20account_address\x20=\x20?\x20AND\x20instance_id\x20=\x20?')['run'](c,a['toLowerCase'](),b);}catch(d){console['warn']('Failed\x20to\x20update\x20polling\x20lock\x20heartbeat:',d);}}['releasePollingLock'](a,b){try{this['db']['prepare']('DELETE\x20FROM\x20polling_connection_locks\x20WHERE\x20account_address\x20=\x20?\x20AND\x20instance_id\x20=\x20?')['run'](a['toLowerCase'](),b);}catch(c){console['warn']('Failed\x20to\x20release\x20polling\x20lock:',c);}}['holdsPollingLock'](a,b){const c=this['db']['prepare']('SELECT\x20*\x20FROM\x20polling_connection_locks\x20WHERE\x20account_address\x20=\x20?\x20AND\x20instance_id\x20=\x20?')['get'](a['toLowerCase'](),b);return!!c;}}export const defaultPersistStorage=new MessengerPersistStorage();