wowok 1.8.2 → 2.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (892) hide show
  1. package/README.md +4 -33
  2. package/dist/cjs/bcs/bcs.d.ts +1973 -0
  3. package/dist/cjs/bcs/bcs.js +327 -0
  4. package/dist/cjs/bcs/effects.d.ts +579 -0
  5. package/dist/cjs/bcs/effects.js +231 -0
  6. package/dist/cjs/bcs/index.d.ts +2589 -0
  7. package/dist/cjs/bcs/index.js +79 -0
  8. package/dist/cjs/bcs/pure.d.ts +22 -0
  9. package/dist/cjs/bcs/pure.js +62 -0
  10. package/dist/cjs/bcs/type-tag-serializer.d.ts +7 -0
  11. package/dist/cjs/bcs/type-tag-serializer.js +124 -0
  12. package/dist/cjs/bcs/types.d.ts +114 -0
  13. package/dist/cjs/bcs/types.js +26 -0
  14. package/dist/cjs/client/index.d.ts +5 -0
  15. package/dist/cjs/client/index.js +34 -0
  16. package/dist/cjs/client/network.d.ts +5 -0
  17. package/dist/cjs/client/network.js +43 -0
  18. package/dist/cjs/cryptography/index.d.ts +7 -0
  19. package/dist/cjs/cryptography/index.js +46 -0
  20. package/dist/cjs/cryptography/intent.d.ts +6 -0
  21. package/dist/cjs/cryptography/intent.js +34 -0
  22. package/dist/cjs/cryptography/keypair.d.ts +73 -0
  23. package/dist/cjs/cryptography/keypair.js +125 -0
  24. package/dist/cjs/cryptography/mnemonics.d.ts +27 -0
  25. package/dist/cjs/cryptography/mnemonics.js +50 -0
  26. package/dist/cjs/cryptography/publickey.d.ts +67 -0
  27. package/dist/cjs/cryptography/publickey.js +142 -0
  28. package/dist/cjs/cryptography/signature-scheme.d.ts +24 -0
  29. package/dist/cjs/cryptography/signature-scheme.js +47 -0
  30. package/dist/cjs/cryptography/signature.d.ts +62 -0
  31. package/dist/cjs/cryptography/signature.js +71 -0
  32. package/dist/cjs/experimental/cache.d.ts +12 -0
  33. package/dist/cjs/experimental/client.d.ts +12 -0
  34. package/dist/cjs/experimental/core.d.ts +33 -0
  35. package/dist/cjs/experimental/errors.d.ts +8 -0
  36. package/dist/cjs/experimental/index.d.ts +7 -0
  37. package/dist/cjs/experimental/persistent-storage.d.ts +134 -0
  38. package/dist/cjs/experimental/persistent-storage.test.d.ts +5 -0
  39. package/dist/cjs/experimental/transports/utils.d.ts +3 -0
  40. package/dist/cjs/experimental/types.d.ts +367 -0
  41. package/dist/cjs/faucet/faucet.d.ts +66 -0
  42. package/dist/cjs/faucet/faucet.js +138 -0
  43. package/dist/cjs/faucet/index.d.ts +1 -0
  44. package/dist/cjs/faucet/index.js +29 -0
  45. package/dist/cjs/graphql/client.js +98 -0
  46. package/dist/cjs/graphql/core.js +506 -0
  47. package/dist/cjs/graphql/generated/2024.1/tada-env.js +13141 -0
  48. package/dist/cjs/graphql/generated/2024.1/tsconfig.tada.js +11 -0
  49. package/dist/cjs/graphql/generated/2024.4/tada-env.js +13287 -0
  50. package/dist/cjs/graphql/generated/2024.4/tsconfig.tada.js +11 -0
  51. package/dist/cjs/graphql/generated/latest/tada-env.js +12925 -0
  52. package/dist/cjs/graphql/generated/latest/tsconfig.tada.js +11 -0
  53. package/dist/cjs/graphql/generated/queries.js +807 -0
  54. package/dist/cjs/graphql/index.js +25 -0
  55. package/dist/cjs/graphql/schemas/2024.1/index.js +28 -0
  56. package/dist/cjs/graphql/schemas/2024.4/index.js +28 -0
  57. package/dist/cjs/graphql/schemas/latest/index.js +28 -0
  58. package/dist/cjs/graphql/types.js +16 -0
  59. package/dist/cjs/grpc/client.d.ts +32 -0
  60. package/dist/cjs/grpc/client.js +64 -0
  61. package/dist/cjs/grpc/core.d.ts +28 -0
  62. package/dist/cjs/grpc/core.js +645 -0
  63. package/dist/cjs/grpc/index.d.ts +4 -0
  64. package/dist/cjs/grpc/index.js +26 -0
  65. package/dist/cjs/grpc/proto/google/protobuf/any.d.ts +173 -0
  66. package/dist/cjs/grpc/proto/google/protobuf/any.js +138 -0
  67. package/dist/cjs/grpc/proto/google/protobuf/duration.d.ts +104 -0
  68. package/dist/cjs/grpc/proto/google/protobuf/duration.js +94 -0
  69. package/dist/cjs/grpc/proto/google/protobuf/empty.d.ts +25 -0
  70. package/dist/cjs/grpc/proto/google/protobuf/empty.js +30 -0
  71. package/dist/cjs/grpc/proto/google/protobuf/field_mask.d.ts +231 -0
  72. package/dist/cjs/grpc/proto/google/protobuf/field_mask.js +77 -0
  73. package/dist/cjs/grpc/proto/google/protobuf/struct.d.ts +169 -0
  74. package/dist/cjs/grpc/proto/google/protobuf/struct.js +224 -0
  75. package/dist/cjs/grpc/proto/google/protobuf/timestamp.d.ts +145 -0
  76. package/dist/cjs/grpc/proto/google/protobuf/timestamp.js +134 -0
  77. package/dist/cjs/grpc/proto/google/rpc/error_details.d.ts +525 -0
  78. package/dist/cjs/grpc/proto/google/rpc/error_details.js +317 -0
  79. package/dist/cjs/grpc/proto/google/rpc/status.d.ts +46 -0
  80. package/dist/cjs/grpc/proto/google/rpc/status.js +52 -0
  81. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.d.ts +66 -0
  82. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js +70 -0
  83. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.d.ts +34 -0
  84. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js +52 -0
  85. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.d.ts +30 -0
  86. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js +45 -0
  87. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.d.ts +68 -0
  88. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js +77 -0
  89. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.d.ts +74 -0
  90. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js +84 -0
  91. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.d.ts +195 -0
  92. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js +170 -0
  93. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.d.ts +338 -0
  94. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js +300 -0
  95. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.d.ts +62 -0
  96. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js +87 -0
  97. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.d.ts +17 -0
  98. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js +29 -0
  99. package/dist/cjs/grpc/proto/sui/rpc/v2/event.d.ts +88 -0
  100. package/dist/cjs/grpc/proto/sui/rpc/v2/event.js +86 -0
  101. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.d.ts +80 -0
  102. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js +87 -0
  103. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.d.ts +843 -0
  104. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js +519 -0
  105. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.d.ts +41 -0
  106. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js +63 -0
  107. package/dist/cjs/grpc/proto/sui/rpc/v2/input.d.ts +98 -0
  108. package/dist/cjs/grpc/proto/sui/rpc/v2/input.js +85 -0
  109. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.d.ts +70 -0
  110. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js +81 -0
  111. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.d.ts +95 -0
  112. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js +122 -0
  113. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.d.ts +420 -0
  114. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js +368 -0
  115. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.d.ts +579 -0
  116. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js +485 -0
  117. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.d.ts +61 -0
  118. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js +81 -0
  119. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.d.ts +229 -0
  120. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js +241 -0
  121. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.d.ts +41 -0
  122. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js +55 -0
  123. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.d.ts +144 -0
  124. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js +141 -0
  125. package/dist/cjs/grpc/proto/sui/rpc/v2/object.d.ts +127 -0
  126. package/dist/cjs/grpc/proto/sui/rpc/v2/object.js +114 -0
  127. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.d.ts +34 -0
  128. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js +53 -0
  129. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.d.ts +61 -0
  130. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js +63 -0
  131. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.d.ts +30 -0
  132. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js +61 -0
  133. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.d.ts +630 -0
  134. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js +541 -0
  135. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.d.ts +40 -0
  136. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js +33 -0
  137. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.ts +35 -0
  138. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +50 -0
  139. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.d.ts +79 -0
  140. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js +90 -0
  141. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.d.ts +71 -0
  142. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js +88 -0
  143. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.d.ts +690 -0
  144. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js +546 -0
  145. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.d.ts +55 -0
  146. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js +54 -0
  147. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.d.ts +57 -0
  148. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js +65 -0
  149. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.d.ts +684 -0
  150. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js +740 -0
  151. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.d.ts +1321 -0
  152. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js +1005 -0
  153. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.ts +41 -0
  154. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +49 -0
  155. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.d.ts +184 -0
  156. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js +177 -0
  157. package/dist/cjs/index.d.ts +25 -0
  158. package/dist/cjs/index.js +93 -0
  159. package/dist/cjs/jsonRpc/client.d.ts +261 -0
  160. package/dist/cjs/jsonRpc/client.js +747 -0
  161. package/dist/cjs/jsonRpc/core.d.ts +87 -0
  162. package/dist/cjs/jsonRpc/core.js +638 -0
  163. package/dist/cjs/jsonRpc/errors.d.ts +12 -0
  164. package/dist/cjs/jsonRpc/errors.js +65 -0
  165. package/dist/cjs/jsonRpc/http-transport.d.ts +42 -0
  166. package/dist/cjs/jsonRpc/http-transport.js +121 -0
  167. package/dist/cjs/jsonRpc/index.d.ts +4 -0
  168. package/dist/cjs/jsonRpc/index.js +31 -0
  169. package/dist/cjs/jsonRpc/json-rpc-resolver.d.ts +4 -0
  170. package/dist/cjs/jsonRpc/json-rpc-resolver.js +321 -0
  171. package/dist/cjs/jsonRpc/rpc-websocket-client.d.ts +43 -0
  172. package/dist/cjs/jsonRpc/rpc-websocket-client.js +220 -0
  173. package/dist/cjs/jsonRpc/types/chain.d.ts +99 -0
  174. package/dist/cjs/jsonRpc/types/chain.js +16 -0
  175. package/dist/cjs/jsonRpc/types/changes.d.ts +19 -0
  176. package/dist/cjs/jsonRpc/types/changes.js +16 -0
  177. package/dist/cjs/jsonRpc/types/coins.d.ts +6 -0
  178. package/dist/cjs/jsonRpc/types/coins.js +16 -0
  179. package/dist/cjs/jsonRpc/types/common.d.ts +2 -0
  180. package/dist/cjs/jsonRpc/types/common.js +16 -0
  181. package/dist/cjs/jsonRpc/types/generated.d.ts +1492 -0
  182. package/dist/cjs/jsonRpc/types/generated.js +16 -0
  183. package/dist/cjs/jsonRpc/types/index.d.ts +6 -0
  184. package/dist/cjs/jsonRpc/types/index.js +16 -0
  185. package/dist/cjs/jsonRpc/types/params.d.ts +656 -0
  186. package/dist/cjs/jsonRpc/types/params.js +16 -0
  187. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.d.ts +8 -0
  188. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js +82 -0
  189. package/dist/cjs/keypairs/ed25519/index.d.ts +2 -0
  190. package/dist/cjs/keypairs/ed25519/index.js +27 -0
  191. package/dist/cjs/keypairs/ed25519/keypair.d.ts +74 -0
  192. package/dist/cjs/keypairs/ed25519/keypair.js +169 -0
  193. package/dist/cjs/keypairs/ed25519/publickey.d.ts +30 -0
  194. package/dist/cjs/keypairs/ed25519/publickey.js +90 -0
  195. package/dist/cjs/keypairs/index.d.ts +4 -0
  196. package/dist/cjs/keypairs/index.js +21 -0
  197. package/dist/cjs/keypairs/passkey/index.d.ts +3 -0
  198. package/dist/cjs/keypairs/passkey/index.js +28 -0
  199. package/dist/cjs/keypairs/passkey/keypair.d.ts +113 -0
  200. package/dist/cjs/keypairs/passkey/keypair.js +268 -0
  201. package/dist/cjs/keypairs/passkey/publickey.d.ts +72 -0
  202. package/dist/cjs/keypairs/passkey/publickey.js +175 -0
  203. package/dist/cjs/keypairs/passkey/types.d.ts +12 -0
  204. package/dist/cjs/keypairs/passkey/types.js +16 -0
  205. package/dist/cjs/keypairs/secp256k1/index.d.ts +2 -0
  206. package/dist/cjs/keypairs/secp256k1/index.js +27 -0
  207. package/dist/cjs/keypairs/secp256k1/keypair.d.ts +73 -0
  208. package/dist/cjs/keypairs/secp256k1/keypair.js +159 -0
  209. package/dist/cjs/keypairs/secp256k1/publickey.d.ts +30 -0
  210. package/dist/cjs/keypairs/secp256k1/publickey.js +95 -0
  211. package/dist/cjs/keypairs/secp256r1/index.d.ts +2 -0
  212. package/dist/cjs/keypairs/secp256r1/index.js +27 -0
  213. package/dist/cjs/keypairs/secp256r1/keypair.d.ts +73 -0
  214. package/dist/cjs/keypairs/secp256r1/keypair.js +155 -0
  215. package/dist/cjs/keypairs/secp256r1/publickey.d.ts +30 -0
  216. package/dist/cjs/keypairs/secp256r1/publickey.js +96 -0
  217. package/dist/cjs/multisig/index.d.ts +2 -0
  218. package/dist/cjs/multisig/index.js +27 -0
  219. package/dist/cjs/multisig/publickey.d.ts +79 -0
  220. package/dist/cjs/multisig/publickey.js +296 -0
  221. package/dist/cjs/multisig/signer.d.ts +20 -0
  222. package/dist/cjs/multisig/signer.js +114 -0
  223. package/dist/cjs/package.json +5 -0
  224. package/dist/cjs/transactions/Arguments.d.ts +57 -0
  225. package/dist/cjs/transactions/Arguments.js +36 -0
  226. package/dist/cjs/transactions/Commands.d.ts +57 -0
  227. package/dist/cjs/transactions/Commands.js +143 -0
  228. package/dist/cjs/transactions/Inputs.d.ts +22 -0
  229. package/dist/cjs/transactions/Inputs.js +87 -0
  230. package/dist/cjs/transactions/ObjectCache.d.ts +83 -0
  231. package/dist/cjs/transactions/ObjectCache.js +251 -0
  232. package/dist/cjs/transactions/Transaction.d.ts +710 -0
  233. package/dist/cjs/transactions/Transaction.js +742 -0
  234. package/dist/cjs/transactions/TransactionData.d.ts +73 -0
  235. package/dist/cjs/transactions/TransactionData.js +472 -0
  236. package/dist/cjs/transactions/__tests__/Transaction.test.d.ts +1 -0
  237. package/dist/cjs/transactions/__tests__/bcs.test.d.ts +1 -0
  238. package/dist/cjs/transactions/data/internal.d.ts +1010 -0
  239. package/dist/cjs/transactions/data/internal.js +230 -0
  240. package/dist/cjs/transactions/data/v1.d.ts +312 -0
  241. package/dist/cjs/transactions/data/v1.js +538 -0
  242. package/dist/cjs/transactions/data/v2.d.ts +153 -0
  243. package/dist/cjs/transactions/data/v2.js +124 -0
  244. package/dist/cjs/transactions/executor/caching.d.ts +31 -0
  245. package/dist/cjs/transactions/executor/caching.js +118 -0
  246. package/dist/cjs/transactions/executor/parallel.d.ts +37 -0
  247. package/dist/cjs/transactions/executor/parallel.js +395 -0
  248. package/dist/cjs/transactions/executor/queue.d.ts +11 -0
  249. package/dist/cjs/transactions/executor/queue.js +87 -0
  250. package/dist/cjs/transactions/executor/serial.d.ts +31 -0
  251. package/dist/cjs/transactions/executor/serial.js +136 -0
  252. package/dist/cjs/transactions/hash.d.ts +7 -0
  253. package/dist/cjs/transactions/hash.js +31 -0
  254. package/dist/cjs/transactions/index.d.ts +21 -0
  255. package/dist/cjs/transactions/index.js +50 -0
  256. package/dist/cjs/transactions/intents/CoinWithBalance.d.ts +9 -0
  257. package/dist/cjs/transactions/intents/CoinWithBalance.js +206 -0
  258. package/dist/cjs/transactions/object.d.ts +24 -0
  259. package/dist/cjs/transactions/object.js +116 -0
  260. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.d.ts +31 -0
  261. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js +37 -0
  262. package/dist/cjs/transactions/pure.d.ts +20 -0
  263. package/dist/cjs/transactions/pure.js +64 -0
  264. package/dist/cjs/transactions/resolve.d.ts +13 -0
  265. package/dist/cjs/transactions/resolve.js +103 -0
  266. package/dist/cjs/transactions/serializer.d.ts +7 -0
  267. package/dist/cjs/transactions/serializer.js +189 -0
  268. package/dist/cjs/transactions/utils.d.ts +10 -0
  269. package/dist/cjs/transactions/utils.js +143 -0
  270. package/dist/cjs/utils/constants.d.ts +17 -0
  271. package/dist/cjs/utils/constants.js +57 -0
  272. package/dist/cjs/utils/derived-objects.d.ts +5 -0
  273. package/dist/cjs/utils/derived-objects.js +33 -0
  274. package/dist/cjs/utils/dynamic-fields.d.ts +2 -0
  275. package/dist/cjs/utils/dynamic-fields.js +40 -0
  276. package/dist/cjs/utils/format.d.ts +2 -0
  277. package/dist/cjs/utils/format.js +35 -0
  278. package/dist/cjs/utils/index.d.ts +8 -0
  279. package/dist/cjs/utils/index.js +65 -0
  280. package/dist/cjs/utils/move-registry.d.ts +6 -0
  281. package/dist/cjs/utils/move-registry.js +44 -0
  282. package/dist/cjs/utils/sui-types.d.ts +26 -0
  283. package/dist/cjs/utils/sui-types.js +90 -0
  284. package/dist/cjs/utils/suins.d.ts +2 -0
  285. package/dist/cjs/utils/suins.js +56 -0
  286. package/dist/cjs/verify/index.d.ts +1 -0
  287. package/dist/cjs/verify/index.js +28 -0
  288. package/dist/cjs/verify/verify.d.ts +16 -0
  289. package/dist/cjs/verify/verify.js +125 -0
  290. package/dist/cjs/version.d.ts +2 -0
  291. package/dist/cjs/version.js +26 -0
  292. package/dist/cjs/w/call/allocation.d.ts +35 -0
  293. package/dist/cjs/w/call/allocation.js +439 -0
  294. package/dist/cjs/w/call/arb.d.ts +17 -0
  295. package/dist/cjs/w/call/arb.js +149 -0
  296. package/dist/cjs/w/call/arbitration.d.ts +106 -0
  297. package/dist/cjs/w/call/arbitration.js +1623 -0
  298. package/dist/cjs/w/call/base.d.ts +42 -0
  299. package/dist/cjs/w/call/base.js +363 -0
  300. package/dist/cjs/w/call/contact.d.ts +45 -0
  301. package/dist/cjs/w/call/contact.js +479 -0
  302. package/dist/cjs/w/call/demand.d.ts +79 -0
  303. package/dist/cjs/w/call/demand.js +872 -0
  304. package/dist/cjs/w/call/entity.d.ts +33 -0
  305. package/dist/cjs/w/call/entity.js +230 -0
  306. package/dist/cjs/w/call/guard-ins.d.ts +31 -0
  307. package/dist/cjs/w/call/guard-ins.js +4391 -0
  308. package/dist/cjs/w/call/guard.d.ts +254 -0
  309. package/dist/cjs/w/call/guard.js +1210 -0
  310. package/dist/cjs/w/call/index.d.ts +37 -0
  311. package/dist/cjs/w/call/index.js +71 -0
  312. package/dist/cjs/w/call/machine.d.ts +124 -0
  313. package/dist/cjs/w/call/machine.js +1486 -0
  314. package/dist/cjs/w/call/order.d.ts +73 -0
  315. package/dist/cjs/w/call/order.js +485 -0
  316. package/dist/cjs/w/call/passport.d.ts +24 -0
  317. package/dist/cjs/w/call/passport.js +281 -0
  318. package/dist/cjs/w/call/payment.d.ts +27 -0
  319. package/dist/cjs/w/call/payment.js +241 -0
  320. package/dist/cjs/w/call/permission.d.ts +222 -0
  321. package/dist/cjs/w/call/permission.js +1368 -0
  322. package/dist/cjs/w/call/personal.d.ts +51 -0
  323. package/dist/cjs/w/call/personal.js +184 -0
  324. package/dist/cjs/w/call/progress.d.ts +94 -0
  325. package/dist/cjs/w/call/progress.js +833 -0
  326. package/dist/cjs/w/call/proof.d.ts +27 -0
  327. package/dist/cjs/w/call/proof.js +124 -0
  328. package/dist/cjs/w/call/repository.d.ts +97 -0
  329. package/dist/cjs/w/call/repository.js +1324 -0
  330. package/dist/cjs/w/call/resource.d.ts +27 -0
  331. package/dist/cjs/w/call/resource.js +149 -0
  332. package/dist/cjs/w/call/reward.d.ts +52 -0
  333. package/dist/cjs/w/call/reward.js +879 -0
  334. package/dist/cjs/w/call/service.d.ts +184 -0
  335. package/dist/cjs/w/call/service.js +2468 -0
  336. package/dist/cjs/w/call/treasury.d.ts +77 -0
  337. package/dist/cjs/w/call/treasury.js +1192 -0
  338. package/dist/cjs/w/call/util.d.ts +12 -0
  339. package/dist/cjs/w/call/util.js +661 -0
  340. package/dist/cjs/w/common.d.ts +359 -0
  341. package/dist/cjs/w/common.js +625 -0
  342. package/dist/cjs/w/exception.d.ts +82 -0
  343. package/dist/cjs/w/exception.js +604 -0
  344. package/dist/cjs/w/index.d.ts +8 -0
  345. package/dist/cjs/w/index.js +25 -0
  346. package/dist/cjs/w/local/.eslintrc.js +15 -0
  347. package/dist/cjs/w/local/account.d.ts +134 -0
  348. package/dist/cjs/w/local/account.js +770 -0
  349. package/dist/cjs/w/local/cache.d.ts +35 -0
  350. package/dist/cjs/w/local/cache.js +181 -0
  351. package/dist/cjs/w/local/config.d.ts +15 -0
  352. package/dist/cjs/w/local/config.js +83 -0
  353. package/dist/cjs/w/local/index.d.ts +193 -0
  354. package/dist/cjs/w/local/index.js +322 -0
  355. package/dist/cjs/w/local/local.d.ts +93 -0
  356. package/dist/cjs/w/local/local.js +673 -0
  357. package/dist/cjs/w/local/storage.d.ts +61 -0
  358. package/dist/cjs/w/local/storage.js +219 -0
  359. package/dist/cjs/w/local/token.d.ts +22 -0
  360. package/dist/cjs/w/local/token.js +182 -0
  361. package/dist/cjs/w/local/util.d.ts +5 -0
  362. package/dist/cjs/w/local/util.js +57 -0
  363. package/dist/cjs/w/local/wip.d.ts +218 -0
  364. package/dist/cjs/w/local/wip.js +911 -0
  365. package/dist/cjs/w/messenger/.eslintrc.js +15 -0
  366. package/dist/cjs/w/messenger/crypto.d.ts +269 -0
  367. package/dist/cjs/w/messenger/crypto.js +448 -0
  368. package/dist/cjs/w/messenger/index.d.ts +23 -0
  369. package/dist/cjs/w/messenger/index.js +37 -0
  370. package/dist/cjs/w/messenger/messenger-api.d.ts +225 -0
  371. package/dist/cjs/w/messenger/messenger-api.js +1247 -0
  372. package/dist/cjs/w/messenger/messenger-manager.d.ts +80 -0
  373. package/dist/cjs/w/messenger/messenger-manager.js +1143 -0
  374. package/dist/cjs/w/messenger/messenger.d.ts +231 -0
  375. package/dist/cjs/w/messenger/messenger.js +1512 -0
  376. package/dist/cjs/w/messenger/server.d.ts +134 -0
  377. package/dist/cjs/w/messenger/server.js +535 -0
  378. package/dist/cjs/w/messenger/session.d.ts +78 -0
  379. package/dist/cjs/w/messenger/session.js +418 -0
  380. package/dist/cjs/w/messenger/storage.d.ts +192 -0
  381. package/dist/cjs/w/messenger/storage.js +964 -0
  382. package/dist/cjs/w/messenger/types.d.ts +705 -0
  383. package/dist/cjs/w/messenger/types.js +107 -0
  384. package/dist/cjs/w/messenger/utils.d.ts +15 -0
  385. package/dist/cjs/w/messenger/utils.js +37 -0
  386. package/dist/cjs/w/query/bult-in.d.ts +73 -0
  387. package/dist/cjs/w/query/bult-in.js +121 -0
  388. package/dist/cjs/w/query/event.d.ts +82 -0
  389. package/dist/cjs/w/query/event.js +157 -0
  390. package/dist/cjs/w/query/index.d.ts +5 -0
  391. package/dist/cjs/w/query/index.js +22 -0
  392. package/dist/cjs/w/query/object.d.ts +658 -0
  393. package/dist/cjs/w/query/object.js +1671 -0
  394. package/dist/cjs/w/query/received.d.ts +34 -0
  395. package/dist/cjs/w/query/received.js +93 -0
  396. package/dist/cjs/w/query/util.d.ts +5 -0
  397. package/dist/cjs/w/query/util.js +82 -0
  398. package/dist/cjs/w/util.d.ts +19 -0
  399. package/dist/cjs/w/util.js +715 -0
  400. package/dist/cjs/zklogin/address.js +93 -0
  401. package/dist/cjs/zklogin/bcs.js +41 -0
  402. package/dist/cjs/zklogin/index.js +45 -0
  403. package/dist/cjs/zklogin/jwt-decode.js +88 -0
  404. package/dist/cjs/zklogin/jwt-utils.js +128 -0
  405. package/dist/cjs/zklogin/nonce.js +60 -0
  406. package/dist/cjs/zklogin/poseidon.js +64 -0
  407. package/dist/cjs/zklogin/publickey.js +281 -0
  408. package/dist/cjs/zklogin/signature.js +57 -0
  409. package/dist/cjs/zklogin/utils.js +98 -0
  410. package/dist/esm/bcs/bcs.d.ts +1973 -0
  411. package/dist/esm/bcs/bcs.js +319 -0
  412. package/dist/esm/bcs/effects.d.ts +579 -0
  413. package/dist/esm/bcs/effects.js +211 -0
  414. package/dist/esm/bcs/index.d.ts +2589 -0
  415. package/dist/esm/bcs/index.js +98 -0
  416. package/dist/esm/bcs/pure.d.ts +22 -0
  417. package/dist/esm/bcs/pure.js +42 -0
  418. package/dist/esm/bcs/type-tag-serializer.d.ts +7 -0
  419. package/dist/esm/bcs/type-tag-serializer.js +104 -0
  420. package/dist/esm/bcs/types.d.ts +114 -0
  421. package/dist/esm/bcs/types.js +6 -0
  422. package/dist/esm/client/index.d.ts +5 -0
  423. package/dist/esm/client/index.js +23 -0
  424. package/dist/esm/client/network.d.ts +5 -0
  425. package/dist/esm/client/network.js +23 -0
  426. package/dist/esm/cryptography/index.d.ts +7 -0
  427. package/dist/esm/cryptography/index.js +46 -0
  428. package/dist/esm/cryptography/intent.d.ts +6 -0
  429. package/dist/esm/cryptography/intent.js +14 -0
  430. package/dist/esm/cryptography/keypair.d.ts +73 -0
  431. package/dist/esm/cryptography/keypair.js +108 -0
  432. package/dist/esm/cryptography/mnemonics.d.ts +27 -0
  433. package/dist/esm/cryptography/mnemonics.js +30 -0
  434. package/dist/esm/cryptography/publickey.d.ts +67 -0
  435. package/dist/esm/cryptography/publickey.js +125 -0
  436. package/dist/esm/cryptography/signature-scheme.d.ts +24 -0
  437. package/dist/esm/cryptography/signature-scheme.js +27 -0
  438. package/dist/esm/cryptography/signature.d.ts +62 -0
  439. package/dist/esm/cryptography/signature.js +54 -0
  440. package/dist/esm/experimental/cache.d.ts +12 -0
  441. package/dist/esm/experimental/client.d.ts +12 -0
  442. package/dist/esm/experimental/core.d.ts +33 -0
  443. package/dist/esm/experimental/errors.d.ts +8 -0
  444. package/dist/esm/experimental/index.d.ts +7 -0
  445. package/dist/esm/experimental/persistent-storage.d.ts +134 -0
  446. package/dist/esm/experimental/persistent-storage.test.d.ts +5 -0
  447. package/dist/esm/experimental/transports/utils.d.ts +3 -0
  448. package/dist/esm/experimental/types.d.ts +367 -0
  449. package/dist/esm/faucet/faucet.d.ts +66 -0
  450. package/dist/esm/faucet/faucet.js +118 -0
  451. package/dist/esm/faucet/index.d.ts +1 -0
  452. package/dist/esm/faucet/index.js +16 -0
  453. package/dist/esm/graphql/client.js +79 -0
  454. package/dist/esm/graphql/core.js +505 -0
  455. package/dist/esm/graphql/generated/2024.1/tada-env.js +13121 -0
  456. package/dist/esm/graphql/generated/2024.1/tsconfig.tada.js +16 -0
  457. package/dist/esm/graphql/generated/2024.4/tada-env.js +13267 -0
  458. package/dist/esm/graphql/generated/2024.4/tsconfig.tada.js +16 -0
  459. package/dist/esm/graphql/generated/latest/tada-env.js +12905 -0
  460. package/dist/esm/graphql/generated/latest/tsconfig.tada.js +16 -0
  461. package/dist/esm/graphql/generated/queries.js +788 -0
  462. package/dist/esm/graphql/index.js +8 -0
  463. package/dist/esm/graphql/schemas/2024.1/index.js +8 -0
  464. package/dist/esm/graphql/schemas/2024.4/index.js +8 -0
  465. package/dist/esm/graphql/schemas/latest/index.js +8 -0
  466. package/dist/esm/graphql/types.js +0 -0
  467. package/dist/esm/grpc/client.d.ts +32 -0
  468. package/dist/esm/grpc/client.js +45 -0
  469. package/dist/esm/grpc/core.d.ts +28 -0
  470. package/dist/esm/grpc/core.js +634 -0
  471. package/dist/esm/grpc/index.d.ts +4 -0
  472. package/dist/esm/grpc/index.js +6 -0
  473. package/dist/esm/grpc/proto/google/protobuf/any.d.ts +173 -0
  474. package/dist/esm/grpc/proto/google/protobuf/any.js +118 -0
  475. package/dist/esm/grpc/proto/google/protobuf/duration.d.ts +104 -0
  476. package/dist/esm/grpc/proto/google/protobuf/duration.js +74 -0
  477. package/dist/esm/grpc/proto/google/protobuf/empty.d.ts +25 -0
  478. package/dist/esm/grpc/proto/google/protobuf/empty.js +10 -0
  479. package/dist/esm/grpc/proto/google/protobuf/field_mask.d.ts +231 -0
  480. package/dist/esm/grpc/proto/google/protobuf/field_mask.js +57 -0
  481. package/dist/esm/grpc/proto/google/protobuf/struct.d.ts +169 -0
  482. package/dist/esm/grpc/proto/google/protobuf/struct.js +204 -0
  483. package/dist/esm/grpc/proto/google/protobuf/timestamp.d.ts +145 -0
  484. package/dist/esm/grpc/proto/google/protobuf/timestamp.js +114 -0
  485. package/dist/esm/grpc/proto/google/rpc/error_details.d.ts +525 -0
  486. package/dist/esm/grpc/proto/google/rpc/error_details.js +297 -0
  487. package/dist/esm/grpc/proto/google/rpc/status.d.ts +46 -0
  488. package/dist/esm/grpc/proto/google/rpc/status.js +32 -0
  489. package/dist/esm/grpc/proto/sui/rpc/v2/argument.d.ts +66 -0
  490. package/dist/esm/grpc/proto/sui/rpc/v2/argument.js +50 -0
  491. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.d.ts +34 -0
  492. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js +32 -0
  493. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.d.ts +30 -0
  494. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js +25 -0
  495. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.d.ts +68 -0
  496. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js +57 -0
  497. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.d.ts +74 -0
  498. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js +64 -0
  499. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.d.ts +195 -0
  500. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js +150 -0
  501. package/dist/esm/grpc/proto/sui/rpc/v2/effects.d.ts +338 -0
  502. package/dist/esm/grpc/proto/sui/rpc/v2/effects.js +280 -0
  503. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.d.ts +62 -0
  504. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js +67 -0
  505. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.d.ts +17 -0
  506. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js +9 -0
  507. package/dist/esm/grpc/proto/sui/rpc/v2/event.d.ts +88 -0
  508. package/dist/esm/grpc/proto/sui/rpc/v2/event.js +66 -0
  509. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.d.ts +80 -0
  510. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js +67 -0
  511. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.d.ts +843 -0
  512. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js +499 -0
  513. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.d.ts +41 -0
  514. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js +43 -0
  515. package/dist/esm/grpc/proto/sui/rpc/v2/input.d.ts +98 -0
  516. package/dist/esm/grpc/proto/sui/rpc/v2/input.js +65 -0
  517. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.d.ts +70 -0
  518. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js +61 -0
  519. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.d.ts +95 -0
  520. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js +103 -0
  521. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.d.ts +420 -0
  522. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js +348 -0
  523. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.d.ts +579 -0
  524. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js +465 -0
  525. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.d.ts +61 -0
  526. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js +62 -0
  527. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.d.ts +229 -0
  528. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js +221 -0
  529. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.d.ts +41 -0
  530. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js +36 -0
  531. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.d.ts +144 -0
  532. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js +121 -0
  533. package/dist/esm/grpc/proto/sui/rpc/v2/object.d.ts +127 -0
  534. package/dist/esm/grpc/proto/sui/rpc/v2/object.js +94 -0
  535. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.d.ts +34 -0
  536. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js +33 -0
  537. package/dist/esm/grpc/proto/sui/rpc/v2/owner.d.ts +61 -0
  538. package/dist/esm/grpc/proto/sui/rpc/v2/owner.js +43 -0
  539. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.d.ts +30 -0
  540. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js +41 -0
  541. package/dist/esm/grpc/proto/sui/rpc/v2/signature.d.ts +630 -0
  542. package/dist/esm/grpc/proto/sui/rpc/v2/signature.js +521 -0
  543. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.d.ts +40 -0
  544. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js +13 -0
  545. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.ts +35 -0
  546. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +31 -0
  547. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.d.ts +79 -0
  548. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js +70 -0
  549. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.d.ts +71 -0
  550. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js +69 -0
  551. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.d.ts +690 -0
  552. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js +526 -0
  553. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.d.ts +55 -0
  554. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js +35 -0
  555. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.d.ts +57 -0
  556. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js +45 -0
  557. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.d.ts +684 -0
  558. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js +720 -0
  559. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.d.ts +1321 -0
  560. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js +985 -0
  561. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.ts +41 -0
  562. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +30 -0
  563. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.d.ts +184 -0
  564. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js +157 -0
  565. package/dist/esm/index.d.ts +25 -0
  566. package/dist/esm/index.js +119 -0
  567. package/dist/esm/jsonRpc/client.d.ts +261 -0
  568. package/dist/esm/jsonRpc/client.js +734 -0
  569. package/dist/esm/jsonRpc/core.d.ts +87 -0
  570. package/dist/esm/jsonRpc/core.js +621 -0
  571. package/dist/esm/jsonRpc/errors.d.ts +12 -0
  572. package/dist/esm/jsonRpc/errors.js +46 -0
  573. package/dist/esm/jsonRpc/http-transport.d.ts +42 -0
  574. package/dist/esm/jsonRpc/http-transport.js +101 -0
  575. package/dist/esm/jsonRpc/index.d.ts +4 -0
  576. package/dist/esm/jsonRpc/index.js +20 -0
  577. package/dist/esm/jsonRpc/json-rpc-resolver.d.ts +4 -0
  578. package/dist/esm/jsonRpc/json-rpc-resolver.js +309 -0
  579. package/dist/esm/jsonRpc/rpc-websocket-client.d.ts +43 -0
  580. package/dist/esm/jsonRpc/rpc-websocket-client.js +201 -0
  581. package/dist/esm/jsonRpc/types/chain.d.ts +99 -0
  582. package/dist/esm/jsonRpc/types/chain.js +0 -0
  583. package/dist/esm/jsonRpc/types/changes.d.ts +19 -0
  584. package/dist/esm/jsonRpc/types/changes.js +0 -0
  585. package/dist/esm/jsonRpc/types/coins.d.ts +6 -0
  586. package/dist/esm/jsonRpc/types/coins.js +0 -0
  587. package/dist/esm/jsonRpc/types/common.d.ts +2 -0
  588. package/dist/esm/jsonRpc/types/common.js +0 -0
  589. package/dist/esm/jsonRpc/types/generated.d.ts +1492 -0
  590. package/dist/esm/jsonRpc/types/generated.js +0 -0
  591. package/dist/esm/jsonRpc/types/index.d.ts +6 -0
  592. package/dist/esm/jsonRpc/types/index.js +0 -0
  593. package/dist/esm/jsonRpc/types/params.d.ts +656 -0
  594. package/dist/esm/jsonRpc/types/params.js +0 -0
  595. package/dist/esm/keypairs/ed25519/ed25519-hd-key.d.ts +8 -0
  596. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js +62 -0
  597. package/dist/esm/keypairs/ed25519/index.d.ts +2 -0
  598. package/dist/esm/keypairs/ed25519/index.js +10 -0
  599. package/dist/esm/keypairs/ed25519/keypair.d.ts +74 -0
  600. package/dist/esm/keypairs/ed25519/keypair.js +158 -0
  601. package/dist/esm/keypairs/ed25519/publickey.d.ts +30 -0
  602. package/dist/esm/keypairs/ed25519/publickey.js +75 -0
  603. package/dist/esm/keypairs/index.d.ts +4 -0
  604. package/dist/esm/keypairs/index.js +4 -0
  605. package/dist/esm/keypairs/passkey/index.d.ts +3 -0
  606. package/dist/esm/keypairs/passkey/index.js +12 -0
  607. package/dist/esm/keypairs/passkey/keypair.d.ts +113 -0
  608. package/dist/esm/keypairs/passkey/keypair.js +258 -0
  609. package/dist/esm/keypairs/passkey/publickey.d.ts +72 -0
  610. package/dist/esm/keypairs/passkey/publickey.js +156 -0
  611. package/dist/esm/keypairs/passkey/types.d.ts +12 -0
  612. package/dist/esm/keypairs/passkey/types.js +0 -0
  613. package/dist/esm/keypairs/secp256k1/index.d.ts +2 -0
  614. package/dist/esm/keypairs/secp256k1/index.js +10 -0
  615. package/dist/esm/keypairs/secp256k1/keypair.d.ts +73 -0
  616. package/dist/esm/keypairs/secp256k1/keypair.js +147 -0
  617. package/dist/esm/keypairs/secp256k1/publickey.d.ts +30 -0
  618. package/dist/esm/keypairs/secp256k1/publickey.js +80 -0
  619. package/dist/esm/keypairs/secp256r1/index.d.ts +2 -0
  620. package/dist/esm/keypairs/secp256r1/index.js +10 -0
  621. package/dist/esm/keypairs/secp256r1/keypair.d.ts +73 -0
  622. package/dist/esm/keypairs/secp256r1/keypair.js +143 -0
  623. package/dist/esm/keypairs/secp256r1/publickey.d.ts +30 -0
  624. package/dist/esm/keypairs/secp256r1/publickey.js +77 -0
  625. package/dist/esm/multisig/index.d.ts +2 -0
  626. package/dist/esm/multisig/index.js +10 -0
  627. package/dist/esm/multisig/publickey.d.ts +79 -0
  628. package/dist/esm/multisig/publickey.js +280 -0
  629. package/dist/esm/multisig/signer.d.ts +20 -0
  630. package/dist/esm/multisig/signer.js +94 -0
  631. package/dist/esm/package.json +5 -0
  632. package/dist/esm/transactions/Arguments.d.ts +57 -0
  633. package/dist/esm/transactions/Arguments.js +16 -0
  634. package/dist/esm/transactions/Commands.d.ts +57 -0
  635. package/dist/esm/transactions/Commands.js +123 -0
  636. package/dist/esm/transactions/Inputs.d.ts +22 -0
  637. package/dist/esm/transactions/Inputs.js +67 -0
  638. package/dist/esm/transactions/ObjectCache.d.ts +83 -0
  639. package/dist/esm/transactions/ObjectCache.js +231 -0
  640. package/dist/esm/transactions/Transaction.d.ts +710 -0
  641. package/dist/esm/transactions/Transaction.js +731 -0
  642. package/dist/esm/transactions/TransactionData.d.ts +73 -0
  643. package/dist/esm/transactions/TransactionData.js +453 -0
  644. package/dist/esm/transactions/__tests__/Transaction.test.d.ts +1 -0
  645. package/dist/esm/transactions/__tests__/bcs.test.d.ts +1 -0
  646. package/dist/esm/transactions/data/internal.d.ts +1010 -0
  647. package/dist/esm/transactions/data/internal.js +232 -0
  648. package/dist/esm/transactions/data/v1.d.ts +312 -0
  649. package/dist/esm/transactions/data/v1.js +542 -0
  650. package/dist/esm/transactions/data/v2.d.ts +153 -0
  651. package/dist/esm/transactions/data/v2.js +126 -0
  652. package/dist/esm/transactions/executor/caching.d.ts +31 -0
  653. package/dist/esm/transactions/executor/caching.js +99 -0
  654. package/dist/esm/transactions/executor/parallel.d.ts +37 -0
  655. package/dist/esm/transactions/executor/parallel.js +375 -0
  656. package/dist/esm/transactions/executor/queue.d.ts +11 -0
  657. package/dist/esm/transactions/executor/queue.js +68 -0
  658. package/dist/esm/transactions/executor/serial.d.ts +31 -0
  659. package/dist/esm/transactions/executor/serial.js +116 -0
  660. package/dist/esm/transactions/hash.d.ts +7 -0
  661. package/dist/esm/transactions/hash.js +11 -0
  662. package/dist/esm/transactions/index.d.ts +21 -0
  663. package/dist/esm/transactions/index.js +41 -0
  664. package/dist/esm/transactions/intents/CoinWithBalance.d.ts +9 -0
  665. package/dist/esm/transactions/intents/CoinWithBalance.js +186 -0
  666. package/dist/esm/transactions/object.d.ts +24 -0
  667. package/dist/esm/transactions/object.js +96 -0
  668. package/dist/esm/transactions/plugins/NamedPackagesPlugin.d.ts +31 -0
  669. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js +17 -0
  670. package/dist/esm/transactions/pure.d.ts +20 -0
  671. package/dist/esm/transactions/pure.js +44 -0
  672. package/dist/esm/transactions/resolve.d.ts +13 -0
  673. package/dist/esm/transactions/resolve.js +83 -0
  674. package/dist/esm/transactions/serializer.d.ts +7 -0
  675. package/dist/esm/transactions/serializer.js +169 -0
  676. package/dist/esm/transactions/utils.d.ts +10 -0
  677. package/dist/esm/transactions/utils.js +123 -0
  678. package/dist/esm/utils/constants.d.ts +17 -0
  679. package/dist/esm/utils/constants.js +37 -0
  680. package/dist/esm/utils/derived-objects.d.ts +5 -0
  681. package/dist/esm/utils/derived-objects.js +13 -0
  682. package/dist/esm/utils/dynamic-fields.d.ts +2 -0
  683. package/dist/esm/utils/dynamic-fields.js +20 -0
  684. package/dist/esm/utils/format.d.ts +2 -0
  685. package/dist/esm/utils/format.js +15 -0
  686. package/dist/esm/utils/index.d.ts +8 -0
  687. package/dist/esm/utils/index.js +76 -0
  688. package/dist/esm/utils/move-registry.d.ts +6 -0
  689. package/dist/esm/utils/move-registry.js +24 -0
  690. package/dist/esm/utils/sui-types.d.ts +26 -0
  691. package/dist/esm/utils/sui-types.js +70 -0
  692. package/dist/esm/utils/suins.d.ts +2 -0
  693. package/dist/esm/utils/suins.js +36 -0
  694. package/dist/esm/verify/index.d.ts +1 -0
  695. package/dist/esm/verify/index.js +14 -0
  696. package/dist/esm/verify/verify.d.ts +16 -0
  697. package/dist/esm/verify/verify.js +108 -0
  698. package/dist/esm/version.d.ts +2 -0
  699. package/dist/esm/version.js +6 -0
  700. package/dist/esm/w/call/allocation.d.ts +35 -0
  701. package/dist/esm/w/call/allocation.js +433 -0
  702. package/dist/esm/w/call/arb.d.ts +17 -0
  703. package/dist/esm/w/call/arb.js +138 -0
  704. package/dist/esm/w/call/arbitration.d.ts +106 -0
  705. package/dist/esm/w/call/arbitration.js +1620 -0
  706. package/dist/esm/w/call/base.d.ts +42 -0
  707. package/dist/esm/w/call/base.js +350 -0
  708. package/dist/esm/w/call/contact.d.ts +45 -0
  709. package/dist/esm/w/call/contact.js +474 -0
  710. package/dist/esm/w/call/demand.d.ts +79 -0
  711. package/dist/esm/w/call/demand.js +869 -0
  712. package/dist/esm/w/call/entity.d.ts +33 -0
  713. package/dist/esm/w/call/entity.js +220 -0
  714. package/dist/esm/w/call/guard-ins.d.ts +31 -0
  715. package/dist/esm/w/call/guard-ins.js +4371 -0
  716. package/dist/esm/w/call/guard.d.ts +254 -0
  717. package/dist/esm/w/call/guard.js +1202 -0
  718. package/dist/esm/w/call/index.d.ts +37 -0
  719. package/dist/esm/w/call/index.js +57 -0
  720. package/dist/esm/w/call/machine.d.ts +124 -0
  721. package/dist/esm/w/call/machine.js +1492 -0
  722. package/dist/esm/w/call/order.d.ts +73 -0
  723. package/dist/esm/w/call/order.js +481 -0
  724. package/dist/esm/w/call/passport.d.ts +24 -0
  725. package/dist/esm/w/call/passport.js +266 -0
  726. package/dist/esm/w/call/payment.d.ts +27 -0
  727. package/dist/esm/w/call/payment.js +233 -0
  728. package/dist/esm/w/call/permission.d.ts +222 -0
  729. package/dist/esm/w/call/permission.js +1375 -0
  730. package/dist/esm/w/call/personal.d.ts +51 -0
  731. package/dist/esm/w/call/personal.js +177 -0
  732. package/dist/esm/w/call/progress.d.ts +94 -0
  733. package/dist/esm/w/call/progress.js +827 -0
  734. package/dist/esm/w/call/proof.d.ts +27 -0
  735. package/dist/esm/w/call/proof.js +110 -0
  736. package/dist/esm/w/call/repository.d.ts +97 -0
  737. package/dist/esm/w/call/repository.js +1325 -0
  738. package/dist/esm/w/call/resource.d.ts +27 -0
  739. package/dist/esm/w/call/resource.js +135 -0
  740. package/dist/esm/w/call/reward.d.ts +52 -0
  741. package/dist/esm/w/call/reward.js +874 -0
  742. package/dist/esm/w/call/service.d.ts +184 -0
  743. package/dist/esm/w/call/service.js +2472 -0
  744. package/dist/esm/w/call/treasury.d.ts +77 -0
  745. package/dist/esm/w/call/treasury.js +1186 -0
  746. package/dist/esm/w/call/util.d.ts +12 -0
  747. package/dist/esm/w/call/util.js +646 -0
  748. package/dist/esm/w/common.d.ts +359 -0
  749. package/dist/esm/w/common.js +605 -0
  750. package/dist/esm/w/exception.d.ts +82 -0
  751. package/dist/esm/w/exception.js +585 -0
  752. package/dist/esm/w/index.d.ts +8 -0
  753. package/dist/esm/w/index.js +8 -0
  754. package/dist/esm/w/local/.eslintrc.js +23 -0
  755. package/dist/esm/w/local/account.d.ts +134 -0
  756. package/dist/esm/w/local/account.js +746 -0
  757. package/dist/esm/w/local/cache.d.ts +35 -0
  758. package/dist/esm/w/local/cache.js +162 -0
  759. package/dist/esm/w/local/config.d.ts +15 -0
  760. package/dist/esm/w/local/config.js +64 -0
  761. package/dist/esm/w/local/index.d.ts +193 -0
  762. package/dist/esm/w/local/index.js +301 -0
  763. package/dist/esm/w/local/local.d.ts +93 -0
  764. package/dist/esm/w/local/local.js +654 -0
  765. package/dist/esm/w/local/storage.d.ts +61 -0
  766. package/dist/esm/w/local/storage.js +190 -0
  767. package/dist/esm/w/local/token.d.ts +22 -0
  768. package/dist/esm/w/local/token.js +163 -0
  769. package/dist/esm/w/local/util.d.ts +5 -0
  770. package/dist/esm/w/local/util.js +27 -0
  771. package/dist/esm/w/local/wip.d.ts +218 -0
  772. package/dist/esm/w/local/wip.js +882 -0
  773. package/dist/esm/w/messenger/.eslintrc.js +23 -0
  774. package/dist/esm/w/messenger/crypto.d.ts +269 -0
  775. package/dist/esm/w/messenger/crypto.js +428 -0
  776. package/dist/esm/w/messenger/index.d.ts +23 -0
  777. package/dist/esm/w/messenger/index.js +25 -0
  778. package/dist/esm/w/messenger/messenger-api.d.ts +225 -0
  779. package/dist/esm/w/messenger/messenger-api.js +1228 -0
  780. package/dist/esm/w/messenger/messenger-manager.d.ts +80 -0
  781. package/dist/esm/w/messenger/messenger-manager.js +1118 -0
  782. package/dist/esm/w/messenger/messenger.d.ts +231 -0
  783. package/dist/esm/w/messenger/messenger.js +1492 -0
  784. package/dist/esm/w/messenger/server.d.ts +134 -0
  785. package/dist/esm/w/messenger/server.js +520 -0
  786. package/dist/esm/w/messenger/session.d.ts +78 -0
  787. package/dist/esm/w/messenger/session.js +415 -0
  788. package/dist/esm/w/messenger/storage.d.ts +192 -0
  789. package/dist/esm/w/messenger/storage.js +935 -0
  790. package/dist/esm/w/messenger/types.d.ts +705 -0
  791. package/dist/esm/w/messenger/types.js +88 -0
  792. package/dist/esm/w/messenger/utils.d.ts +15 -0
  793. package/dist/esm/w/messenger/utils.js +17 -0
  794. package/dist/esm/w/query/bult-in.d.ts +73 -0
  795. package/dist/esm/w/query/bult-in.js +112 -0
  796. package/dist/esm/w/query/event.d.ts +82 -0
  797. package/dist/esm/w/query/event.js +137 -0
  798. package/dist/esm/w/query/index.d.ts +5 -0
  799. package/dist/esm/w/query/index.js +5 -0
  800. package/dist/esm/w/query/object.d.ts +658 -0
  801. package/dist/esm/w/query/object.js +1648 -0
  802. package/dist/esm/w/query/received.d.ts +34 -0
  803. package/dist/esm/w/query/received.js +73 -0
  804. package/dist/esm/w/query/util.d.ts +5 -0
  805. package/dist/esm/w/query/util.js +62 -0
  806. package/dist/esm/w/util.d.ts +19 -0
  807. package/dist/esm/w/util.js +710 -0
  808. package/dist/esm/zklogin/address.js +78 -0
  809. package/dist/esm/zklogin/bcs.js +21 -0
  810. package/dist/esm/zklogin/index.js +38 -0
  811. package/dist/esm/zklogin/jwt-decode.js +68 -0
  812. package/dist/esm/zklogin/jwt-utils.js +108 -0
  813. package/dist/esm/zklogin/nonce.js +40 -0
  814. package/dist/esm/zklogin/poseidon.js +61 -0
  815. package/dist/esm/zklogin/publickey.js +265 -0
  816. package/dist/esm/zklogin/signature.js +37 -0
  817. package/dist/esm/zklogin/utils.js +78 -0
  818. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  819. package/dist/tsconfig.tsbuildinfo +1 -0
  820. package/package.json +295 -61
  821. package/dist/arbitration.d.ts +0 -65
  822. package/dist/arbitration.d.ts.map +0 -1
  823. package/dist/arbitration.js +0 -517
  824. package/dist/arbitration.js.map +0 -1
  825. package/dist/demand.d.ts +0 -27
  826. package/dist/demand.d.ts.map +0 -1
  827. package/dist/demand.js +0 -266
  828. package/dist/demand.js.map +0 -1
  829. package/dist/entity.d.ts +0 -46
  830. package/dist/entity.d.ts.map +0 -1
  831. package/dist/entity.js +0 -146
  832. package/dist/entity.js.map +0 -1
  833. package/dist/exception.d.ts +0 -37
  834. package/dist/exception.d.ts.map +0 -1
  835. package/dist/exception.js +0 -41
  836. package/dist/exception.js.map +0 -1
  837. package/dist/guard.d.ts +0 -110
  838. package/dist/guard.d.ts.map +0 -1
  839. package/dist/guard.js +0 -936
  840. package/dist/guard.js.map +0 -1
  841. package/dist/index.d.ts +0 -40
  842. package/dist/index.d.ts.map +0 -1
  843. package/dist/index.js +0 -28
  844. package/dist/index.js.map +0 -1
  845. package/dist/machine.d.ts +0 -68
  846. package/dist/machine.d.ts.map +0 -1
  847. package/dist/machine.js +0 -520
  848. package/dist/machine.js.map +0 -1
  849. package/dist/passport.d.ts +0 -129
  850. package/dist/passport.d.ts.map +0 -1
  851. package/dist/passport.js +0 -1233
  852. package/dist/passport.js.map +0 -1
  853. package/dist/payment.d.ts +0 -28
  854. package/dist/payment.d.ts.map +0 -1
  855. package/dist/payment.js +0 -60
  856. package/dist/payment.js.map +0 -1
  857. package/dist/permission.d.ts +0 -155
  858. package/dist/permission.d.ts.map +0 -1
  859. package/dist/permission.js +0 -462
  860. package/dist/permission.js.map +0 -1
  861. package/dist/progress.d.ts +0 -66
  862. package/dist/progress.d.ts.map +0 -1
  863. package/dist/progress.js +0 -311
  864. package/dist/progress.js.map +0 -1
  865. package/dist/protocol.d.ts +0 -247
  866. package/dist/protocol.d.ts.map +0 -1
  867. package/dist/protocol.js +0 -726
  868. package/dist/protocol.js.map +0 -1
  869. package/dist/repository.d.ts +0 -94
  870. package/dist/repository.d.ts.map +0 -1
  871. package/dist/repository.js +0 -783
  872. package/dist/repository.js.map +0 -1
  873. package/dist/resource.d.ts +0 -36
  874. package/dist/resource.d.ts.map +0 -1
  875. package/dist/resource.js +0 -129
  876. package/dist/resource.js.map +0 -1
  877. package/dist/service.d.ts +0 -144
  878. package/dist/service.d.ts.map +0 -1
  879. package/dist/service.js +0 -1303
  880. package/dist/service.js.map +0 -1
  881. package/dist/treasury.d.ts +0 -55
  882. package/dist/treasury.d.ts.map +0 -1
  883. package/dist/treasury.js +0 -393
  884. package/dist/treasury.js.map +0 -1
  885. package/dist/utils.d.ts +0 -94
  886. package/dist/utils.d.ts.map +0 -1
  887. package/dist/utils.js +0 -582
  888. package/dist/utils.js.map +0 -1
  889. package/dist/wowok.d.ts +0 -15
  890. package/dist/wowok.d.ts.map +0 -1
  891. package/dist/wowok.js +0 -66
  892. package/dist/wowok.js.map +0 -1
@@ -0,0 +1,964 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
31
+ var storage_exports = {};
32
+ __export(storage_exports, {
33
+ MessageStorage: () => MessageStorage,
34
+ MessengerPersistStorage: () => MessengerPersistStorage,
35
+ SessionStateStorage: () => SessionStateStorage,
36
+ SignalProtocolStorage: () => SignalProtocolStorage,
37
+ defaultPersistStorage: () => defaultPersistStorage,
38
+ resetDbConnection: () => resetDbConnection
39
+ });
40
+ module.exports = __toCommonJS(storage_exports);
41
+ var import_better_sqlite3 = __toESM(require("better-sqlite3"));
42
+ var path = __toESM(require("path"));
43
+ var fs = __toESM(require("fs"));
44
+ var import_util = require("../local/util.js");
45
+ function getWowDirDynamic() {
46
+ return (0, import_util.getWowDir)();
47
+ }
48
+ function getMessengerDbDir() {
49
+ return path.join(getWowDirDynamic(), "messenger");
50
+ }
51
+ function ensureDirExists(dir) {
52
+ if (!fs.existsSync(dir)) {
53
+ fs.mkdirSync(dir, { recursive: true });
54
+ }
55
+ }
56
+ function getUserDbPath(userAddress) {
57
+ const shortAddress = userAddress.toLowerCase().replace(/^0x/, "").slice(0, 16);
58
+ const messengerDbDir = getMessengerDbDir();
59
+ ensureDirExists(messengerDbDir);
60
+ return path.join(messengerDbDir, `${shortAddress}.db`);
61
+ }
62
+ function getGlobalDbPath() {
63
+ const messengerDbDir = getMessengerDbDir();
64
+ ensureDirExists(messengerDbDir);
65
+ return path.join(messengerDbDir, "global.db");
66
+ }
67
+ const userDbInstances = /* @__PURE__ */ new Map();
68
+ let globalDbInstance = null;
69
+ function getDatabase(userAddress) {
70
+ if (!userAddress) {
71
+ throw new Error("userAddress is required to get database");
72
+ }
73
+ const cached = userDbInstances.get(userAddress);
74
+ if (cached) {
75
+ return cached;
76
+ }
77
+ const dbPath = getUserDbPath(userAddress);
78
+ const db = new import_better_sqlite3.default(dbPath);
79
+ db.pragma("journal_mode = WAL");
80
+ db.pragma("synchronous = NORMAL");
81
+ db.pragma("cache_size = -64000");
82
+ db.exec(`
83
+ CREATE TABLE IF NOT EXISTS signal_store (
84
+ store_type TEXT NOT NULL,
85
+ key TEXT NOT NULL,
86
+ value TEXT NOT NULL,
87
+ updated_at INTEGER DEFAULT (strftime('%s', 'now')),
88
+ PRIMARY KEY (store_type, key)
89
+ );
90
+ CREATE INDEX IF NOT EXISTS idx_signal_store_type ON signal_store(store_type);
91
+ `);
92
+ try {
93
+ db.exec(`
94
+ CREATE TABLE IF NOT EXISTS messages (
95
+ message_id TEXT PRIMARY KEY,
96
+ from_address TEXT NOT NULL,
97
+ to_address TEXT NOT NULL,
98
+ plaintext_hash TEXT NOT NULL,
99
+ plaintext TEXT,
100
+ guard_address TEXT,
101
+ passport_address TEXT,
102
+ direction TEXT NOT NULL,
103
+ status TEXT NOT NULL,
104
+ msg_type INTEGER NOT NULL,
105
+ leaf_index INTEGER,
106
+ prev_root TEXT,
107
+ new_root TEXT,
108
+ server_signature TEXT,
109
+ server_public_key TEXT,
110
+ server_timestamp INTEGER,
111
+ ark_recipient TEXT,
112
+ ark_recipient_pubkey TEXT,
113
+ ark_signature TEXT,
114
+ ark_timestamp INTEGER,
115
+ zip_metadata TEXT,
116
+ created_at INTEGER DEFAULT (strftime('%s', 'now') * 1000),
117
+ received_at INTEGER
118
+ );
119
+ `);
120
+ } catch (e) {
121
+ }
122
+ try {
123
+ db.exec("ALTER TABLE messages ADD COLUMN guard_address TEXT");
124
+ } catch (e) {
125
+ }
126
+ try {
127
+ db.exec("ALTER TABLE messages ADD COLUMN passport_address TEXT");
128
+ } catch (e) {
129
+ }
130
+ try {
131
+ db.exec(
132
+ "ALTER TABLE messages ADD COLUMN last_received_leaf_index INTEGER"
133
+ );
134
+ } catch (e) {
135
+ }
136
+ try {
137
+ db.exec(
138
+ "CREATE INDEX IF NOT EXISTS idx_messages_from_to ON messages(from_address, to_address)"
139
+ );
140
+ } catch (e) {
141
+ }
142
+ try {
143
+ db.exec(
144
+ "CREATE INDEX IF NOT EXISTS idx_messages_status ON messages(status)"
145
+ );
146
+ } catch (e) {
147
+ }
148
+ try {
149
+ db.exec(
150
+ "CREATE INDEX IF NOT EXISTS idx_messages_leaf ON messages(leaf_index)"
151
+ );
152
+ } catch (e) {
153
+ }
154
+ try {
155
+ db.exec(
156
+ "CREATE INDEX IF NOT EXISTS idx_messages_created_at ON messages(created_at)"
157
+ );
158
+ } catch (e) {
159
+ }
160
+ try {
161
+ db.exec(
162
+ "CREATE INDEX IF NOT EXISTS idx_messages_server_ts ON messages(server_timestamp)"
163
+ );
164
+ } catch (e) {
165
+ }
166
+ try {
167
+ db.exec(
168
+ "CREATE INDEX IF NOT EXISTS idx_messages_received_at ON messages(received_at)"
169
+ );
170
+ } catch (e) {
171
+ }
172
+ db.exec(`
173
+ CREATE TABLE IF NOT EXISTS session_states (
174
+ session_id TEXT PRIMARY KEY,
175
+ my_address TEXT NOT NULL,
176
+ peer_address TEXT NOT NULL,
177
+ current_root TEXT NOT NULL,
178
+ prev_root TEXT NOT NULL,
179
+ message_count INTEGER DEFAULT 0,
180
+ last_leaf_index INTEGER DEFAULT 0,
181
+ last_confirmed_hash TEXT,
182
+ last_sync_at INTEGER,
183
+ created_at INTEGER DEFAULT (strftime('%s', 'now')),
184
+ updated_at INTEGER DEFAULT (strftime('%s', 'now'))
185
+ );
186
+ CREATE INDEX IF NOT EXISTS idx_session_my_peer ON session_states(my_address, peer_address);
187
+ `);
188
+ userDbInstances.set(userAddress, db);
189
+ return db;
190
+ }
191
+ function getGlobalDatabase() {
192
+ if (globalDbInstance) {
193
+ return globalDbInstance;
194
+ }
195
+ const dbPath = getGlobalDbPath();
196
+ const db = new import_better_sqlite3.default(dbPath);
197
+ db.pragma("journal_mode = WAL");
198
+ db.pragma("synchronous = NORMAL");
199
+ db.pragma("cache_size = -10000");
200
+ db.pragma("busy_timeout = 5000");
201
+ globalDbInstance = db;
202
+ return db;
203
+ }
204
+ function resetDbConnection() {
205
+ for (const [_, db] of userDbInstances) {
206
+ try {
207
+ db.pragma("journal_mode = DELETE");
208
+ } catch (e) {
209
+ }
210
+ }
211
+ for (const [_, db] of userDbInstances) {
212
+ try {
213
+ db.close();
214
+ } catch (e) {
215
+ }
216
+ }
217
+ userDbInstances.clear();
218
+ if (globalDbInstance) {
219
+ try {
220
+ globalDbInstance.pragma("journal_mode = DELETE");
221
+ } catch (e) {
222
+ }
223
+ try {
224
+ globalDbInstance.close();
225
+ } catch (e) {
226
+ }
227
+ globalDbInstance = null;
228
+ }
229
+ }
230
+ process.on("exit", () => {
231
+ resetDbConnection();
232
+ });
233
+ process.on("SIGINT", () => {
234
+ resetDbConnection();
235
+ process.exit(0);
236
+ });
237
+ process.on("SIGTERM", () => {
238
+ resetDbConnection();
239
+ process.exit(0);
240
+ });
241
+ const STORE_TYPES = {
242
+ IDENTITY: "identity",
243
+ REGISTRATION_ID: "registration_id",
244
+ IDENTITIES: "identities",
245
+ PREKEYS: "prekeys",
246
+ SIGNED_PREKEYS: "signed_prekeys",
247
+ SESSIONS: "sessions",
248
+ META: "meta"
249
+ };
250
+ function arrayBufferToBase64(buffer) {
251
+ return Buffer.from(new Uint8Array(buffer)).toString("base64");
252
+ }
253
+ function base64ToArrayBuffer(base64) {
254
+ return Uint8Array.from(Buffer.from(base64, "base64")).buffer;
255
+ }
256
+ function bufferEqual(a, b) {
257
+ if (a.byteLength !== b.byteLength) return false;
258
+ const va = new Uint8Array(a);
259
+ const vb = new Uint8Array(b);
260
+ for (let i = 0; i < va.length; i++) {
261
+ if (va[i] !== vb[i]) return false;
262
+ }
263
+ return true;
264
+ }
265
+ class SignalProtocolStorage {
266
+ constructor(userAddress, storeType = "default") {
267
+ __publicField(this, "storePrefix");
268
+ __publicField(this, "userAddress");
269
+ this.userAddress = userAddress;
270
+ this.storePrefix = storeType;
271
+ }
272
+ get db() {
273
+ return getDatabase(this.userAddress);
274
+ }
275
+ // Identity
276
+ async setIdentity(identity, registrationId) {
277
+ const persisted = {
278
+ pubKey: arrayBufferToBase64(identity.pubKey),
279
+ privKey: arrayBufferToBase64(identity.privKey)
280
+ };
281
+ this.putValue(STORE_TYPES.IDENTITY, JSON.stringify(persisted));
282
+ this.putValue(STORE_TYPES.REGISTRATION_ID, registrationId.toString());
283
+ }
284
+ async getIdentityKeyPair() {
285
+ const value = this.getValue(STORE_TYPES.IDENTITY);
286
+ if (!value) return void 0;
287
+ const persisted = JSON.parse(value);
288
+ return {
289
+ pubKey: base64ToArrayBuffer(persisted.pubKey),
290
+ privKey: base64ToArrayBuffer(persisted.privKey)
291
+ };
292
+ }
293
+ async getLocalRegistrationId() {
294
+ const value = this.getValue(STORE_TYPES.REGISTRATION_ID);
295
+ return value ? parseInt(value, 10) : void 0;
296
+ }
297
+ // Identity verification
298
+ async isTrustedIdentity(identifier, identityKey) {
299
+ const key = `${STORE_TYPES.IDENTITIES}:${identifier}`;
300
+ const existing = this.getValue(key);
301
+ if (!existing) return true;
302
+ return bufferEqual(base64ToArrayBuffer(existing), identityKey);
303
+ }
304
+ async saveIdentity(encodedAddress, publicKey) {
305
+ const key = `${STORE_TYPES.IDENTITIES}:${encodedAddress}`;
306
+ const existing = this.getValue(key);
307
+ const newValue = arrayBufferToBase64(publicKey);
308
+ this.putValue(key, newValue);
309
+ return existing ? bufferEqual(base64ToArrayBuffer(existing), publicKey) : true;
310
+ }
311
+ async loadIdentity(address) {
312
+ const key = `${STORE_TYPES.IDENTITIES}:${address}`;
313
+ const value = this.getValue(key);
314
+ return value ? base64ToArrayBuffer(value) : void 0;
315
+ }
316
+ // PreKeys
317
+ async loadPreKey(keyId) {
318
+ const key = `${STORE_TYPES.PREKEYS}:${keyId}`;
319
+ const value = this.getValue(key);
320
+ if (!value) return void 0;
321
+ const persisted = JSON.parse(value);
322
+ return {
323
+ pubKey: base64ToArrayBuffer(persisted.pubKey),
324
+ privKey: base64ToArrayBuffer(persisted.privKey)
325
+ };
326
+ }
327
+ async storePreKey(keyId, keyPair) {
328
+ const key = `${STORE_TYPES.PREKEYS}:${keyId}`;
329
+ const persisted = {
330
+ pubKey: arrayBufferToBase64(keyPair.pubKey),
331
+ privKey: arrayBufferToBase64(keyPair.privKey)
332
+ };
333
+ this.putValue(key, JSON.stringify(persisted));
334
+ }
335
+ async removePreKey(keyId) {
336
+ const key = `${STORE_TYPES.PREKEYS}:${keyId}`;
337
+ this.delValue(key);
338
+ }
339
+ // Signed PreKeys
340
+ async loadSignedPreKey(keyId) {
341
+ const key = `${STORE_TYPES.SIGNED_PREKEYS}:${keyId}`;
342
+ const value = this.getValue(key);
343
+ if (!value) return void 0;
344
+ const persisted = JSON.parse(value);
345
+ return {
346
+ pubKey: base64ToArrayBuffer(persisted.pubKey),
347
+ privKey: base64ToArrayBuffer(persisted.privKey)
348
+ };
349
+ }
350
+ async storeSignedPreKey(keyId, keyPair) {
351
+ const key = `${STORE_TYPES.SIGNED_PREKEYS}:${keyId}`;
352
+ const persisted = {
353
+ pubKey: arrayBufferToBase64(keyPair.pubKey),
354
+ privKey: arrayBufferToBase64(keyPair.privKey)
355
+ };
356
+ this.putValue(key, JSON.stringify(persisted));
357
+ }
358
+ async removeSignedPreKey(keyId) {
359
+ const key = `${STORE_TYPES.SIGNED_PREKEYS}:${keyId}`;
360
+ this.delValue(key);
361
+ }
362
+ // Sessions
363
+ async loadSession(encodedAddress) {
364
+ const key = `${STORE_TYPES.SESSIONS}:${encodedAddress}`;
365
+ return this.getValue(key);
366
+ }
367
+ async storeSession(encodedAddress, record) {
368
+ const key = `${STORE_TYPES.SESSIONS}:${encodedAddress}`;
369
+ this.putValue(key, record);
370
+ }
371
+ async removeSession(encodedAddress) {
372
+ const key = `${STORE_TYPES.SESSIONS}:${encodedAddress}`;
373
+ this.delValue(key);
374
+ }
375
+ // Meta
376
+ async getMeta() {
377
+ const value = this.getValue(STORE_TYPES.META);
378
+ if (!value) return { nextPreKeyId: 1 };
379
+ return JSON.parse(value);
380
+ }
381
+ async setMeta(meta) {
382
+ const current = await this.getMeta();
383
+ const updated = { ...current, ...meta };
384
+ this.putValue(STORE_TYPES.META, JSON.stringify(updated));
385
+ }
386
+ listPreKeys() {
387
+ const rows = this.db.prepare(
388
+ "SELECT key FROM signal_store WHERE store_type = ? AND key LIKE ?"
389
+ ).all(this.storePrefix, `${STORE_TYPES.PREKEYS}:%`);
390
+ return rows.map((r) => {
391
+ const id = r.key.replace(`${STORE_TYPES.PREKEYS}:`, "");
392
+ return Number(id);
393
+ });
394
+ }
395
+ // Private helpers
396
+ getValue(key) {
397
+ const row = this.db.prepare(
398
+ "SELECT value FROM signal_store WHERE store_type = ? AND key = ?"
399
+ ).get(this.storePrefix, key);
400
+ return row?.value;
401
+ }
402
+ putValue(key, value) {
403
+ this.db.prepare(
404
+ `
405
+ INSERT INTO signal_store (store_type, key, value, updated_at)
406
+ VALUES (?, ?, ?, strftime('%s', 'now'))
407
+ ON CONFLICT(store_type, key) DO UPDATE SET
408
+ value = excluded.value,
409
+ updated_at = excluded.updated_at
410
+ `
411
+ ).run(this.storePrefix, key, value);
412
+ }
413
+ delValue(key) {
414
+ this.db.prepare(
415
+ "DELETE FROM signal_store WHERE store_type = ? AND key = ?"
416
+ ).run(this.storePrefix, key);
417
+ }
418
+ }
419
+ class MessageStorage {
420
+ constructor(userAddress) {
421
+ __publicField(this, "userAddress");
422
+ this.userAddress = userAddress;
423
+ }
424
+ get db() {
425
+ return getDatabase(this.userAddress);
426
+ }
427
+ saveMessage(message) {
428
+ const receivedAt = message.direction === "received" && !message.receivedAt ? Date.now() : message.receivedAt;
429
+ this.db.prepare(
430
+ `
431
+ INSERT INTO messages (
432
+ message_id, from_address, to_address, plaintext_hash,
433
+ plaintext, guard_address, passport_address, last_received_leaf_index, direction, status, msg_type,
434
+ leaf_index, prev_root, new_root, server_signature, server_public_key, server_timestamp,
435
+ ark_recipient, ark_recipient_pubkey, ark_signature, ark_timestamp, zip_metadata,
436
+ created_at, received_at
437
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
438
+ ON CONFLICT(message_id) DO UPDATE SET
439
+ status = COALESCE(excluded.status, status),
440
+ leaf_index = COALESCE(excluded.leaf_index, leaf_index),
441
+ prev_root = COALESCE(excluded.prev_root, prev_root),
442
+ new_root = COALESCE(excluded.new_root, new_root),
443
+ server_signature = COALESCE(excluded.server_signature, server_signature),
444
+ server_public_key = COALESCE(excluded.server_public_key, server_public_key),
445
+ server_timestamp = COALESCE(excluded.server_timestamp, server_timestamp),
446
+ plaintext = COALESCE(excluded.plaintext, plaintext),
447
+ guard_address = COALESCE(excluded.guard_address, guard_address),
448
+ passport_address = COALESCE(excluded.passport_address, passport_address),
449
+ last_received_leaf_index = COALESCE(excluded.last_received_leaf_index, last_received_leaf_index),
450
+ ark_recipient = COALESCE(excluded.ark_recipient, ark_recipient),
451
+ ark_recipient_pubkey = COALESCE(excluded.ark_recipient_pubkey, ark_recipient_pubkey),
452
+ ark_signature = COALESCE(excluded.ark_signature, ark_signature),
453
+ ark_timestamp = COALESCE(excluded.ark_timestamp, ark_timestamp),
454
+ zip_metadata = COALESCE(excluded.zip_metadata, zip_metadata),
455
+ received_at = COALESCE(excluded.received_at, received_at)
456
+ `
457
+ ).run(
458
+ message.messageId,
459
+ message.fromAddress,
460
+ message.toAddress,
461
+ message.plaintextHash,
462
+ message.plaintext === void 0 ? null : message.plaintext,
463
+ message.guardAddress === void 0 ? null : message.guardAddress,
464
+ message.passportAddress === void 0 ? null : message.passportAddress,
465
+ message.lastReceivedLeafIndex === void 0 ? null : message.lastReceivedLeafIndex,
466
+ message.direction,
467
+ message.status,
468
+ message.msgType,
469
+ message.leafIndex === void 0 ? null : message.leafIndex,
470
+ message.prevRoot === void 0 ? null : message.prevRoot,
471
+ message.newRoot === void 0 ? null : message.newRoot,
472
+ message.serverSignature === void 0 ? null : message.serverSignature,
473
+ message.serverPublicKey === void 0 ? null : message.serverPublicKey,
474
+ message.serverTimestamp === void 0 ? null : message.serverTimestamp,
475
+ message.arkConfirmed?.recipient === void 0 ? null : message.arkConfirmed?.recipient,
476
+ message.arkConfirmed?.recipientPublicKey === void 0 ? null : message.arkConfirmed?.recipientPublicKey,
477
+ message.arkConfirmed?.signature === void 0 ? null : message.arkConfirmed?.signature,
478
+ message.arkConfirmed?.timestamp === void 0 ? null : message.arkConfirmed?.timestamp,
479
+ message.zipMetadata ? JSON.stringify(message.zipMetadata) : null,
480
+ message.createdAt,
481
+ receivedAt === void 0 ? null : receivedAt
482
+ );
483
+ }
484
+ getMessage(messageId) {
485
+ const row = this.db.prepare("SELECT * FROM messages WHERE message_id = ?").get(messageId);
486
+ if (!row) return void 0;
487
+ return this.rowToMessage(row);
488
+ }
489
+ getMessagesBySession(myAddress, peerAddress) {
490
+ const rows = this.db.prepare(
491
+ `
492
+ SELECT * FROM messages
493
+ WHERE (from_address = ? AND to_address = ?)
494
+ OR (from_address = ? AND to_address = ?)
495
+ ORDER BY created_at ASC
496
+ `
497
+ ).all(myAddress, peerAddress, peerAddress, myAddress);
498
+ return rows.map((r) => this.rowToMessage(r));
499
+ }
500
+ getPendingMessages(myAddress) {
501
+ const rows = this.db.prepare(
502
+ `
503
+ SELECT * FROM messages
504
+ WHERE (from_address = ? OR to_address = ?) AND status = ?
505
+ ORDER BY created_at ASC
506
+ `
507
+ ).all(myAddress, myAddress, "pending");
508
+ return rows.map((r) => this.rowToMessage(r));
509
+ }
510
+ updateMessageStatus(messageId, status, updates) {
511
+ const fields = ["status = ?"];
512
+ const values = [status];
513
+ if (updates?.leafIndex !== void 0) {
514
+ fields.push("leaf_index = ?");
515
+ values.push(updates.leafIndex);
516
+ }
517
+ if (updates?.newRoot !== void 0) {
518
+ fields.push("new_root = ?");
519
+ values.push(updates.newRoot);
520
+ }
521
+ if (updates?.serverSignature !== void 0) {
522
+ fields.push("server_signature = ?");
523
+ values.push(updates.serverSignature);
524
+ }
525
+ if (updates?.serverTimestamp !== void 0) {
526
+ fields.push("server_timestamp = ?");
527
+ values.push(updates.serverTimestamp);
528
+ }
529
+ if (updates?.serverPublicKey !== void 0) {
530
+ fields.push("server_public_key = ?");
531
+ values.push(updates.serverPublicKey);
532
+ }
533
+ values.push(messageId);
534
+ this.db.prepare(
535
+ `
536
+ UPDATE messages SET ${fields.join(", ")} WHERE message_id = ?
537
+ `
538
+ ).run(...values);
539
+ }
540
+ /**
541
+ * 获取用户的所有消息
542
+ *
543
+ * @param userAddress 用户地址
544
+ * @returns 所有相关消息(发送和接收的)
545
+ */
546
+ getAllMessages(userAddress) {
547
+ const rows = this.db.prepare(
548
+ `
549
+ SELECT * FROM messages
550
+ WHERE from_address = ? OR to_address = ?
551
+ ORDER BY created_at DESC
552
+ `
553
+ ).all(userAddress, userAddress);
554
+ return rows.map((r) => this.rowToMessage(r));
555
+ }
556
+ /**
557
+ * 通过消息 ID 获取消息
558
+ *
559
+ * @param messageId 消息 ID
560
+ * @returns 消息对象或 undefined
561
+ */
562
+ getMessageById(messageId) {
563
+ const row = this.db.prepare(
564
+ `
565
+ SELECT * FROM messages
566
+ WHERE message_id = ?
567
+ `
568
+ ).get(messageId);
569
+ if (!row) return void 0;
570
+ return this.rowToMessage(row);
571
+ }
572
+ /**
573
+ * 更新消息 ID(用于 Guard 消息确认后更新 messageId)
574
+ *
575
+ * 由于 message_id 是主键,需要通过删除旧记录并插入新记录来实现
576
+ *
577
+ * @param oldMessageId 旧消息 ID(internal_id)
578
+ * @param newMessageId 新消息 ID(正式的 message_id)
579
+ * @param updates 可选的更新字段
580
+ * @returns 是否成功更新
581
+ */
582
+ updateMessageId(oldMessageId, newMessageId, updates) {
583
+ const row = this.db.prepare("SELECT * FROM messages WHERE message_id = ?").get(oldMessageId);
584
+ if (!row) return false;
585
+ const getUpdatedValue = (updateValue, originalValue) => {
586
+ if (updateValue !== void 0) return updateValue;
587
+ return originalValue === null ? void 0 : originalValue;
588
+ };
589
+ const message = {
590
+ messageId: newMessageId,
591
+ fromAddress: row.from_address,
592
+ toAddress: row.to_address,
593
+ plaintextHash: row.plaintext_hash,
594
+ plaintext: row.plaintext === null ? void 0 : row.plaintext,
595
+ guardAddress: row.guard_address === null ? void 0 : row.guard_address,
596
+ passportAddress: row.passport_address === null ? void 0 : row.passport_address,
597
+ direction: row.direction,
598
+ status: updates?.status !== void 0 ? updates.status : row.status,
599
+ msgType: row.msg_type,
600
+ leafIndex: getUpdatedValue(updates?.leafIndex, row.leaf_index),
601
+ prevRoot: getUpdatedValue(updates?.prevRoot, row.prev_root),
602
+ newRoot: getUpdatedValue(updates?.newRoot, row.new_root),
603
+ serverSignature: getUpdatedValue(
604
+ updates?.serverSignature,
605
+ row.server_signature
606
+ ),
607
+ serverPublicKey: getUpdatedValue(
608
+ updates?.serverPublicKey,
609
+ row.server_public_key
610
+ ),
611
+ serverTimestamp: getUpdatedValue(
612
+ updates?.serverTimestamp,
613
+ row.server_timestamp
614
+ ),
615
+ arkConfirmed: row.ark_recipient ? {
616
+ recipient: row.ark_recipient,
617
+ recipientPublicKey: row.ark_recipient_pubkey,
618
+ signature: row.ark_signature,
619
+ timestamp: row.ark_timestamp
620
+ } : void 0,
621
+ zipMetadata: row.zip_metadata ? JSON.parse(row.zip_metadata) : void 0,
622
+ createdAt: row.created_at,
623
+ receivedAt: row.received_at === null ? void 0 : row.received_at
624
+ };
625
+ const transaction = this.db.transaction(() => {
626
+ this.db.prepare("DELETE FROM messages WHERE message_id = ?").run(oldMessageId);
627
+ this.saveMessage(message);
628
+ });
629
+ try {
630
+ transaction();
631
+ return true;
632
+ } catch (error) {
633
+ return false;
634
+ }
635
+ }
636
+ rowToMessage(row) {
637
+ if (row.to_address === null) {
638
+ throw new Error(`Message ${row.message_id} has null toAddress`);
639
+ }
640
+ return {
641
+ messageId: row.message_id,
642
+ fromAddress: row.from_address,
643
+ toAddress: row.to_address,
644
+ plaintextHash: row.plaintext_hash,
645
+ plaintext: row.plaintext === null ? void 0 : row.plaintext,
646
+ guardAddress: row.guard_address === null ? void 0 : row.guard_address,
647
+ passportAddress: row.passport_address === null ? void 0 : row.passport_address,
648
+ lastReceivedLeafIndex: row.last_received_leaf_index === null ? void 0 : row.last_received_leaf_index,
649
+ direction: row.direction,
650
+ status: row.status,
651
+ msgType: row.msg_type,
652
+ leafIndex: row.leaf_index === null ? void 0 : row.leaf_index,
653
+ prevRoot: row.prev_root === null ? void 0 : row.prev_root,
654
+ newRoot: row.new_root === null ? void 0 : row.new_root,
655
+ serverSignature: row.server_signature === null ? void 0 : row.server_signature,
656
+ serverPublicKey: row.server_public_key === null ? void 0 : row.server_public_key,
657
+ serverTimestamp: row.server_timestamp === null ? void 0 : row.server_timestamp,
658
+ arkConfirmed: row.ark_recipient ? {
659
+ recipient: row.ark_recipient,
660
+ recipientPublicKey: row.ark_recipient_pubkey,
661
+ signature: row.ark_signature,
662
+ timestamp: row.ark_timestamp
663
+ } : void 0,
664
+ zipMetadata: row.zip_metadata ? JSON.parse(row.zip_metadata) : void 0,
665
+ createdAt: row.created_at,
666
+ receivedAt: row.received_at === null ? void 0 : row.received_at
667
+ };
668
+ }
669
+ /**
670
+ * 获取最后收到的消息序号(用于消息同步确认)
671
+ *
672
+ * 查询指定会话中,用户作为接收者时,发送者最后收到的消息序号
673
+ * 用于在发送新消息时,告诉对方我已经收到了哪些消息
674
+ *
675
+ * @param myAddress 当前用户地址
676
+ * @param peerAddress 对方地址
677
+ * @returns 最后收到的消息序号(leafIndex),如果没有则返回 -1
678
+ */
679
+ getLastReceivedLeafIndex(myAddress, peerAddress) {
680
+ const row = this.db.prepare(
681
+ `
682
+ SELECT MAX(last_received_leaf_index) as max_index
683
+ FROM messages
684
+ WHERE from_address = ? AND to_address = ?
685
+ AND last_received_leaf_index IS NOT NULL
686
+ `
687
+ ).get(peerAddress, myAddress);
688
+ return row?.max_index ?? -1;
689
+ }
690
+ }
691
+ class SessionStateStorage {
692
+ constructor(userAddress) {
693
+ __publicField(this, "userAddress");
694
+ this.userAddress = userAddress;
695
+ }
696
+ get db() {
697
+ return getDatabase(this.userAddress);
698
+ }
699
+ getSessionId(myAddress, peerAddress) {
700
+ const addresses = [myAddress, peerAddress].sort();
701
+ return `${addresses[0]}:${addresses[1]}`;
702
+ }
703
+ getSessionState(myAddress, peerAddress) {
704
+ const sessionId = this.getSessionId(myAddress, peerAddress);
705
+ const row = this.db.prepare("SELECT * FROM session_states WHERE session_id = ?").get(sessionId);
706
+ if (!row) return void 0;
707
+ return {
708
+ sessionId: row.session_id,
709
+ myAddress: row.my_address,
710
+ peerAddress: row.peer_address,
711
+ currentRoot: row.current_root,
712
+ prevRoot: row.prev_root,
713
+ messageCount: row.message_count,
714
+ lastLeafIndex: row.last_leaf_index,
715
+ lastConfirmedHash: row.last_confirmed_hash === null ? "" : row.last_confirmed_hash,
716
+ lastSyncAt: row.last_sync_at === null ? 0 : row.last_sync_at,
717
+ createdAt: row.created_at,
718
+ updatedAt: row.updated_at
719
+ };
720
+ }
721
+ updateSessionState(myAddress, peerAddress, updates) {
722
+ const sessionId = this.getSessionId(myAddress, peerAddress);
723
+ const existing = this.getSessionState(myAddress, peerAddress);
724
+ const now = Date.now();
725
+ if (existing) {
726
+ const updated = { ...existing, ...updates, updatedAt: now };
727
+ this.db.prepare(
728
+ `
729
+ UPDATE session_states SET
730
+ current_root = ?,
731
+ prev_root = ?,
732
+ message_count = ?,
733
+ last_leaf_index = ?,
734
+ last_confirmed_hash = ?,
735
+ last_sync_at = ?,
736
+ updated_at = ?
737
+ WHERE session_id = ?
738
+ `
739
+ ).run(
740
+ updated.currentRoot,
741
+ updated.prevRoot,
742
+ updated.messageCount,
743
+ updated.lastLeafIndex,
744
+ updated.lastConfirmedHash,
745
+ updated.lastSyncAt,
746
+ updated.updatedAt,
747
+ sessionId
748
+ );
749
+ } else {
750
+ const initialRoot = "0".repeat(64);
751
+ this.db.prepare(
752
+ `
753
+ INSERT INTO session_states (
754
+ session_id, my_address, peer_address, current_root, prev_root,
755
+ message_count, last_leaf_index, last_confirmed_hash, last_sync_at,
756
+ created_at, updated_at
757
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
758
+ `
759
+ ).run(
760
+ sessionId,
761
+ myAddress,
762
+ peerAddress,
763
+ updates.currentRoot ?? initialRoot,
764
+ updates.prevRoot ?? initialRoot,
765
+ updates.messageCount ?? 0,
766
+ updates.lastLeafIndex ?? 0,
767
+ updates.lastConfirmedHash ?? "",
768
+ updates.lastSyncAt ?? 0,
769
+ now,
770
+ now
771
+ );
772
+ }
773
+ }
774
+ getCurrentRoot(myAddress, peerAddress) {
775
+ const state = this.getSessionState(myAddress, peerAddress);
776
+ return state?.currentRoot ?? "0".repeat(64);
777
+ }
778
+ }
779
+ class MessengerPersistStorage {
780
+ constructor() {
781
+ __publicField(this, "initialized", false);
782
+ }
783
+ get db() {
784
+ const db = getGlobalDatabase();
785
+ if (!this.initialized) {
786
+ this.initTable(db);
787
+ this.initialized = true;
788
+ }
789
+ return db;
790
+ }
791
+ /**
792
+ * 初始化存储表
793
+ */
794
+ initTable(db) {
795
+ db.exec(`
796
+ CREATE TABLE IF NOT EXISTS messenger_manager_state (
797
+ instance_id TEXT PRIMARY KEY,
798
+ state_data TEXT NOT NULL,
799
+ updated_at INTEGER NOT NULL
800
+ );
801
+ CREATE INDEX IF NOT EXISTS idx_messenger_state_updated ON messenger_manager_state(updated_at);
802
+ `);
803
+ db.exec(`
804
+ CREATE TABLE IF NOT EXISTS sse_connection_locks (
805
+ account_address TEXT PRIMARY KEY,
806
+ process_id TEXT NOT NULL,
807
+ instance_id TEXT NOT NULL,
808
+ last_heartbeat INTEGER NOT NULL,
809
+ created_at INTEGER NOT NULL
810
+ );
811
+ CREATE INDEX IF NOT EXISTS idx_sse_lock_heartbeat ON sse_connection_locks(last_heartbeat);
812
+ `);
813
+ }
814
+ /**
815
+ * 保存 Messenger 配置和账号信息
816
+ *
817
+ * @param instanceId 实例标识(用于区分不同的 MessengerManager 实例)
818
+ * @param state 要保存的状态
819
+ */
820
+ saveState(instanceId, state) {
821
+ const data = JSON.stringify(state);
822
+ const now = Date.now();
823
+ this.db.prepare(
824
+ `
825
+ INSERT INTO messenger_manager_state (instance_id, state_data, updated_at)
826
+ VALUES (?, ?, ?)
827
+ ON CONFLICT(instance_id) DO UPDATE SET
828
+ state_data = excluded.state_data,
829
+ updated_at = excluded.updated_at
830
+ `
831
+ ).run(instanceId, data, now);
832
+ }
833
+ /**
834
+ * 加载 Messenger 配置和账号信息
835
+ *
836
+ * @param instanceId 实例标识
837
+ * @returns 保存的状态,如果不存在返回 null
838
+ */
839
+ loadState(instanceId) {
840
+ const row = this.db.prepare(
841
+ "SELECT state_data FROM messenger_manager_state WHERE instance_id = ?"
842
+ ).get(instanceId);
843
+ if (!row?.state_data) return null;
844
+ try {
845
+ return JSON.parse(row.state_data);
846
+ } catch (error) {
847
+ return null;
848
+ }
849
+ }
850
+ /**
851
+ * 删除保存的状态
852
+ *
853
+ * @param instanceId 实例标识
854
+ */
855
+ deleteState(instanceId) {
856
+ this.db.prepare(
857
+ "DELETE FROM messenger_manager_state WHERE instance_id = ?"
858
+ ).run(instanceId);
859
+ }
860
+ /**
861
+ * 获取所有实例ID列表
862
+ */
863
+ getAllInstanceIds() {
864
+ const rows = this.db.prepare(
865
+ "SELECT instance_id FROM messenger_manager_state ORDER BY updated_at DESC"
866
+ ).all();
867
+ return rows.map((r) => r.instance_id);
868
+ }
869
+ get processId() {
870
+ return `pid_${process.pid}_${Date.now()}`;
871
+ }
872
+ /**
873
+ * 尝试获取指定账号的 SSE 连接锁
874
+ * @param accountAddress 账号地址
875
+ * @param instanceId 当前实例ID
876
+ * @returns 是否成功获取锁
877
+ */
878
+ tryAcquireSSELock(accountAddress, instanceId) {
879
+ const now = Date.now();
880
+ const heartbeatTimeout = 15e3;
881
+ const transaction = this.db.transaction(() => {
882
+ const row = this.db.prepare(
883
+ "SELECT * FROM sse_connection_locks WHERE account_address = ?"
884
+ ).get(accountAddress.toLowerCase());
885
+ if (row) {
886
+ if (row.instance_id === instanceId) {
887
+ this.db.prepare(
888
+ "UPDATE sse_connection_locks SET last_heartbeat = ? WHERE account_address = ?"
889
+ ).run(now, accountAddress.toLowerCase());
890
+ return true;
891
+ }
892
+ if (now - row.last_heartbeat < heartbeatTimeout) {
893
+ return false;
894
+ }
895
+ }
896
+ this.db.prepare(
897
+ `
898
+ INSERT INTO sse_connection_locks (
899
+ account_address, process_id, instance_id, last_heartbeat, created_at
900
+ ) VALUES (?, ?, ?, ?, ?)
901
+ ON CONFLICT(account_address) DO UPDATE SET
902
+ process_id = excluded.process_id,
903
+ instance_id = excluded.instance_id,
904
+ last_heartbeat = excluded.last_heartbeat
905
+ `
906
+ ).run(
907
+ accountAddress.toLowerCase(),
908
+ this.processId,
909
+ instanceId,
910
+ now,
911
+ now
912
+ );
913
+ return true;
914
+ });
915
+ try {
916
+ return transaction();
917
+ } catch (error) {
918
+ console.warn("Failed to acquire SSE lock:", error);
919
+ return false;
920
+ }
921
+ }
922
+ /**
923
+ * 更新 SSE 连接锁的心跳
924
+ * @param accountAddress 账号地址
925
+ * @param instanceId 当前实例ID
926
+ */
927
+ updateSSELockHeartbeat(accountAddress, instanceId) {
928
+ const now = Date.now();
929
+ try {
930
+ this.db.prepare(
931
+ "UPDATE sse_connection_locks SET last_heartbeat = ? WHERE account_address = ? AND instance_id = ?"
932
+ ).run(now, accountAddress.toLowerCase(), instanceId);
933
+ } catch (error) {
934
+ console.warn("Failed to update SSE lock heartbeat:", error);
935
+ }
936
+ }
937
+ /**
938
+ * 释放指定账号的 SSE 连接锁
939
+ * @param accountAddress 账号地址
940
+ * @param instanceId 当前实例ID
941
+ */
942
+ releaseSSELock(accountAddress, instanceId) {
943
+ try {
944
+ this.db.prepare(
945
+ "DELETE FROM sse_connection_locks WHERE account_address = ? AND instance_id = ?"
946
+ ).run(accountAddress.toLowerCase(), instanceId);
947
+ } catch (error) {
948
+ console.warn("Failed to release SSE lock:", error);
949
+ }
950
+ }
951
+ /**
952
+ * 检查是否持有指定账号的 SSE 连接锁
953
+ * @param accountAddress 账号地址
954
+ * @param instanceId 当前实例ID
955
+ * @returns 是否持有锁
956
+ */
957
+ holdsSSELock(accountAddress, instanceId) {
958
+ const row = this.db.prepare(
959
+ "SELECT * FROM sse_connection_locks WHERE account_address = ? AND instance_id = ?"
960
+ ).get(accountAddress.toLowerCase(), instanceId);
961
+ return !!row;
962
+ }
963
+ }
964
+ const defaultPersistStorage = new MessengerPersistStorage();