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