wowok 2.1.40 → 2.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. package/dist/cjs/bcs/bcs.js +1 -253
  2. package/dist/cjs/bcs/effects.js +1 -199
  3. package/dist/cjs/bcs/index.js +1 -51
  4. package/dist/cjs/bcs/pure.js +1 -36
  5. package/dist/cjs/bcs/type-tag-serializer.js +1 -104
  6. package/dist/cjs/bcs/types.js +1 -3
  7. package/dist/cjs/client/index.js +1 -4
  8. package/dist/cjs/client/network.js +1 -15
  9. package/dist/cjs/cryptography/index.js +1 -6
  10. package/dist/cjs/cryptography/intent.js +1 -14
  11. package/dist/cjs/cryptography/keypair.js +1 -74
  12. package/dist/cjs/cryptography/mnemonics.js +1 -20
  13. package/dist/cjs/cryptography/publickey.js +1 -80
  14. package/dist/cjs/cryptography/signature-scheme.js +1 -22
  15. package/dist/cjs/cryptography/signature.js +1 -41
  16. package/dist/cjs/experimental/cache.js +1 -58
  17. package/dist/cjs/experimental/client.js +1 -19
  18. package/dist/cjs/experimental/core.js +1 -80
  19. package/dist/cjs/experimental/errors.js +1 -24
  20. package/dist/cjs/experimental/index.js +1 -5
  21. package/dist/cjs/experimental/persistent-storage.js +1 -220
  22. package/dist/cjs/experimental/persistent-storage.test.js +1 -144
  23. package/dist/cjs/experimental/transports/utils.js +1 -96
  24. package/dist/cjs/experimental/types.js +1 -1
  25. package/dist/cjs/faucet/faucet.js +1 -99
  26. package/dist/cjs/faucet/index.js +1 -1
  27. package/dist/cjs/grpc/client.js +1 -42
  28. package/dist/cjs/grpc/core.js +1 -587
  29. package/dist/cjs/grpc/index.js +1 -2
  30. package/dist/cjs/grpc/proto/google/protobuf/any.js +1 -106
  31. package/dist/cjs/grpc/proto/google/protobuf/duration.js +1 -58
  32. package/dist/cjs/grpc/proto/google/protobuf/empty.js +1 -7
  33. package/dist/cjs/grpc/proto/google/protobuf/field_mask.js +1 -47
  34. package/dist/cjs/grpc/proto/google/protobuf/struct.js +1 -191
  35. package/dist/cjs/grpc/proto/google/protobuf/timestamp.js +1 -91
  36. package/dist/cjs/grpc/proto/google/rpc/error_details.js +1 -265
  37. package/dist/cjs/grpc/proto/google/rpc/status.js +1 -23
  38. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js +1 -46
  39. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js +1 -29
  40. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js +1 -22
  41. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js +1 -54
  42. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js +1 -60
  43. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js +1 -144
  44. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js +1 -271
  45. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js +1 -64
  46. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js +1 -6
  47. package/dist/cjs/grpc/proto/sui/rpc/v2/event.js +1 -62
  48. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js +1 -64
  49. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js +1 -481
  50. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js +1 -40
  51. package/dist/cjs/grpc/proto/sui/rpc/v2/input.js +1 -61
  52. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js +1 -57
  53. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js +1 -39
  54. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js +1 -329
  55. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js +1 -447
  56. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js +1 -27
  57. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js +1 -206
  58. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js +1 -19
  59. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js +1 -109
  60. package/dist/cjs/grpc/proto/sui/rpc/v2/object.js +1 -90
  61. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js +1 -30
  62. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js +1 -39
  63. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js +1 -30
  64. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js +1 -501
  65. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js +1 -10
  66. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +1 -15
  67. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js +1 -62
  68. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js +1 -31
  69. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js +1 -504
  70. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js +1 -15
  71. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js +1 -37
  72. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js +1 -709
  73. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js +1 -950
  74. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +1 -19
  75. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js +1 -144
  76. package/dist/cjs/index.js +1 -22
  77. package/dist/cjs/jsonRpc/client.js +1 -516
  78. package/dist/cjs/jsonRpc/core.js +1 -587
  79. package/dist/cjs/jsonRpc/errors.js +1 -38
  80. package/dist/cjs/jsonRpc/http-transport.js +1 -70
  81. package/dist/cjs/jsonRpc/index.js +1 -3
  82. package/dist/cjs/jsonRpc/json-rpc-resolver.js +1 -296
  83. package/dist/cjs/jsonRpc/rpc-websocket-client.js +1 -155
  84. package/dist/cjs/jsonRpc/types/chain.js +1 -1
  85. package/dist/cjs/jsonRpc/types/changes.js +1 -1
  86. package/dist/cjs/jsonRpc/types/coins.js +1 -1
  87. package/dist/cjs/jsonRpc/types/common.js +1 -1
  88. package/dist/cjs/jsonRpc/types/generated.js +1 -1
  89. package/dist/cjs/jsonRpc/types/index.js +1 -1
  90. package/dist/cjs/jsonRpc/types/params.js +1 -1
  91. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js +1 -58
  92. package/dist/cjs/keypairs/ed25519/index.js +1 -2
  93. package/dist/cjs/keypairs/ed25519/keypair.js +1 -90
  94. package/dist/cjs/keypairs/ed25519/publickey.js +1 -50
  95. package/dist/cjs/keypairs/index.js +1 -4
  96. package/dist/cjs/keypairs/passkey/index.js +1 -2
  97. package/dist/cjs/keypairs/passkey/keypair.js +1 -155
  98. package/dist/cjs/keypairs/passkey/publickey.js +1 -117
  99. package/dist/cjs/keypairs/passkey/types.js +1 -1
  100. package/dist/cjs/keypairs/secp256k1/index.js +1 -2
  101. package/dist/cjs/keypairs/secp256k1/keypair.js +1 -82
  102. package/dist/cjs/keypairs/secp256k1/publickey.js +1 -51
  103. package/dist/cjs/keypairs/secp256r1/index.js +1 -2
  104. package/dist/cjs/keypairs/secp256r1/keypair.js +1 -78
  105. package/dist/cjs/keypairs/secp256r1/publickey.js +1 -52
  106. package/dist/cjs/multisig/index.js +1 -2
  107. package/dist/cjs/multisig/publickey.js +1 -201
  108. package/dist/cjs/multisig/signer.js +1 -58
  109. package/dist/cjs/transactions/Arguments.js +1 -9
  110. package/dist/cjs/transactions/Commands.js +1 -102
  111. package/dist/cjs/transactions/Inputs.js +1 -52
  112. package/dist/cjs/transactions/ObjectCache.js +1 -205
  113. package/dist/cjs/transactions/Transaction.js +1 -574
  114. package/dist/cjs/transactions/TransactionData.js +1 -409
  115. package/dist/cjs/transactions/__tests__/Transaction.test.js +1 -160
  116. package/dist/cjs/transactions/__tests__/bcs.test.js +1 -182
  117. package/dist/cjs/transactions/data/internal.js +1 -169
  118. package/dist/cjs/transactions/data/v1.js +1 -469
  119. package/dist/cjs/transactions/data/v2.js +1 -97
  120. package/dist/cjs/transactions/executor/caching.js +1 -65
  121. package/dist/cjs/transactions/executor/parallel.js +1 -347
  122. package/dist/cjs/transactions/executor/queue.js +1 -59
  123. package/dist/cjs/transactions/executor/serial.js +1 -99
  124. package/dist/cjs/transactions/hash.js +1 -8
  125. package/dist/cjs/transactions/index.js +1 -12
  126. package/dist/cjs/transactions/intents/CoinWithBalance.js +1 -145
  127. package/dist/cjs/transactions/object.js +1 -87
  128. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js +1 -11
  129. package/dist/cjs/transactions/pure.js +1 -36
  130. package/dist/cjs/transactions/resolve.js +1 -69
  131. package/dist/cjs/transactions/serializer.js +1 -167
  132. package/dist/cjs/transactions/utils.js +1 -121
  133. package/dist/cjs/utils/constants.js +1 -18
  134. package/dist/cjs/utils/derived-objects.js +1 -8
  135. package/dist/cjs/utils/dynamic-fields.js +1 -17
  136. package/dist/cjs/utils/format.js +1 -11
  137. package/dist/cjs/utils/index.js +1 -8
  138. package/dist/cjs/utils/move-registry.js +1 -24
  139. package/dist/cjs/utils/sui-types.js +1 -66
  140. package/dist/cjs/utils/suins.js +1 -33
  141. package/dist/cjs/verify/index.js +1 -1
  142. package/dist/cjs/verify/verify.js +1 -87
  143. package/dist/cjs/version.js +1 -2
  144. package/dist/cjs/w/call/allocation.js +1 -345
  145. package/dist/cjs/w/call/arb.js +1 -103
  146. package/dist/cjs/w/call/arbitration.js +1 -1192
  147. package/dist/cjs/w/call/base.js +1 -293
  148. package/dist/cjs/w/call/contact.js +1 -345
  149. package/dist/cjs/w/call/demand.js +1 -681
  150. package/dist/cjs/w/call/entity.js +1 -173
  151. package/dist/cjs/w/call/guard-ins.js +1 -4449
  152. package/dist/cjs/w/call/guard.d.ts +111 -0
  153. package/dist/cjs/w/call/guard.js +1 -1048
  154. package/dist/cjs/w/call/index.js +1 -22
  155. package/dist/cjs/w/call/machine.js +1 -1127
  156. package/dist/cjs/w/call/order.js +1 -337
  157. package/dist/cjs/w/call/passport.js +1 -220
  158. package/dist/cjs/w/call/payment.js +1 -178
  159. package/dist/cjs/w/call/permission.js +1 -1162
  160. package/dist/cjs/w/call/personal.js +1 -139
  161. package/dist/cjs/w/call/progress.js +1 -678
  162. package/dist/cjs/w/call/proof.js +1 -66
  163. package/dist/cjs/w/call/repository.js +1 -1024
  164. package/dist/cjs/w/call/resource.js +1 -108
  165. package/dist/cjs/w/call/reward.js +1 -675
  166. package/dist/cjs/w/call/service.js +1 -1960
  167. package/dist/cjs/w/call/treasury.js +1 -873
  168. package/dist/cjs/w/call/util.d.ts +1 -0
  169. package/dist/cjs/w/call/util.js +1 -566
  170. package/dist/cjs/w/common.js +1 -571
  171. package/dist/cjs/w/exception.js +1 -618
  172. package/dist/cjs/w/index.js +1 -8
  173. package/dist/cjs/w/local/account.js +1 -656
  174. package/dist/cjs/w/local/cache.js +1 -161
  175. package/dist/cjs/w/local/config.js +1 -43
  176. package/dist/cjs/w/local/index.js +1 -228
  177. package/dist/cjs/w/local/local.js +1 -574
  178. package/dist/cjs/w/local/storage.js +1 -185
  179. package/dist/cjs/w/local/token.js +1 -131
  180. package/dist/cjs/w/local/util.js +1 -26
  181. package/dist/cjs/w/local/wip.js +1 -864
  182. package/dist/cjs/w/messenger/crypto.js +1 -380
  183. package/dist/cjs/w/messenger/index.js +1 -4
  184. package/dist/cjs/w/messenger/messenger-api.js +1 -1154
  185. package/dist/cjs/w/messenger/messenger-manager.js +1 -1003
  186. package/dist/cjs/w/messenger/messenger.js +1 -1093
  187. package/dist/cjs/w/messenger/server.js +1 -343
  188. package/dist/cjs/w/messenger/session.js +1 -628
  189. package/dist/cjs/w/messenger/storage.js +1 -1023
  190. package/dist/cjs/w/messenger/templates/wts-html-template.js +1 -371
  191. package/dist/cjs/w/messenger/types.js +1 -76
  192. package/dist/cjs/w/messenger/utils.js +1 -12
  193. package/dist/cjs/w/query/bult-in.js +1 -95
  194. package/dist/cjs/w/query/event.js +1 -137
  195. package/dist/cjs/w/query/index.js +1 -5
  196. package/dist/cjs/w/query/object.js +1 -1550
  197. package/dist/cjs/w/query/received.js +1 -62
  198. package/dist/cjs/w/query/util.js +1 -49
  199. package/dist/cjs/w/util.js +1 -587
  200. package/dist/esm/bcs/bcs.js +1 -253
  201. package/dist/esm/bcs/effects.js +1 -199
  202. package/dist/esm/bcs/index.js +1 -51
  203. package/dist/esm/bcs/pure.js +1 -36
  204. package/dist/esm/bcs/type-tag-serializer.js +1 -104
  205. package/dist/esm/bcs/types.js +1 -3
  206. package/dist/esm/client/index.js +1 -4
  207. package/dist/esm/client/network.js +1 -15
  208. package/dist/esm/cryptography/index.js +1 -6
  209. package/dist/esm/cryptography/intent.js +1 -14
  210. package/dist/esm/cryptography/keypair.js +1 -74
  211. package/dist/esm/cryptography/mnemonics.js +1 -20
  212. package/dist/esm/cryptography/publickey.js +1 -80
  213. package/dist/esm/cryptography/signature-scheme.js +1 -22
  214. package/dist/esm/cryptography/signature.js +1 -41
  215. package/dist/esm/experimental/cache.js +1 -58
  216. package/dist/esm/experimental/client.js +1 -19
  217. package/dist/esm/experimental/core.js +1 -80
  218. package/dist/esm/experimental/errors.js +1 -24
  219. package/dist/esm/experimental/index.js +1 -5
  220. package/dist/esm/experimental/persistent-storage.js +1 -220
  221. package/dist/esm/experimental/persistent-storage.test.js +1 -144
  222. package/dist/esm/experimental/transports/utils.js +1 -96
  223. package/dist/esm/experimental/types.js +1 -1
  224. package/dist/esm/faucet/faucet.js +1 -99
  225. package/dist/esm/faucet/index.js +1 -1
  226. package/dist/esm/grpc/client.js +1 -42
  227. package/dist/esm/grpc/core.js +1 -587
  228. package/dist/esm/grpc/index.js +1 -2
  229. package/dist/esm/grpc/proto/google/protobuf/any.js +1 -106
  230. package/dist/esm/grpc/proto/google/protobuf/duration.js +1 -58
  231. package/dist/esm/grpc/proto/google/protobuf/empty.js +1 -7
  232. package/dist/esm/grpc/proto/google/protobuf/field_mask.js +1 -47
  233. package/dist/esm/grpc/proto/google/protobuf/struct.js +1 -191
  234. package/dist/esm/grpc/proto/google/protobuf/timestamp.js +1 -91
  235. package/dist/esm/grpc/proto/google/rpc/error_details.js +1 -265
  236. package/dist/esm/grpc/proto/google/rpc/status.js +1 -23
  237. package/dist/esm/grpc/proto/sui/rpc/v2/argument.js +1 -46
  238. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js +1 -29
  239. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js +1 -22
  240. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js +1 -54
  241. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js +1 -60
  242. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js +1 -144
  243. package/dist/esm/grpc/proto/sui/rpc/v2/effects.js +1 -271
  244. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js +1 -64
  245. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js +1 -6
  246. package/dist/esm/grpc/proto/sui/rpc/v2/event.js +1 -62
  247. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js +1 -64
  248. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js +1 -481
  249. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js +1 -40
  250. package/dist/esm/grpc/proto/sui/rpc/v2/input.js +1 -61
  251. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js +1 -57
  252. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js +1 -39
  253. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js +1 -329
  254. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js +1 -447
  255. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js +1 -27
  256. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js +1 -206
  257. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js +1 -19
  258. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js +1 -109
  259. package/dist/esm/grpc/proto/sui/rpc/v2/object.js +1 -90
  260. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js +1 -30
  261. package/dist/esm/grpc/proto/sui/rpc/v2/owner.js +1 -39
  262. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js +1 -30
  263. package/dist/esm/grpc/proto/sui/rpc/v2/signature.js +1 -501
  264. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js +1 -10
  265. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +1 -15
  266. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js +1 -62
  267. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js +1 -31
  268. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js +1 -504
  269. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js +1 -15
  270. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js +1 -37
  271. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js +1 -709
  272. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js +1 -950
  273. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +1 -19
  274. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js +1 -144
  275. package/dist/esm/index.js +1 -22
  276. package/dist/esm/jsonRpc/client.js +1 -516
  277. package/dist/esm/jsonRpc/core.js +1 -587
  278. package/dist/esm/jsonRpc/errors.js +1 -38
  279. package/dist/esm/jsonRpc/http-transport.js +1 -70
  280. package/dist/esm/jsonRpc/index.js +1 -3
  281. package/dist/esm/jsonRpc/json-rpc-resolver.js +1 -296
  282. package/dist/esm/jsonRpc/rpc-websocket-client.js +1 -155
  283. package/dist/esm/jsonRpc/types/chain.js +1 -1
  284. package/dist/esm/jsonRpc/types/changes.js +1 -1
  285. package/dist/esm/jsonRpc/types/coins.js +1 -1
  286. package/dist/esm/jsonRpc/types/common.js +1 -1
  287. package/dist/esm/jsonRpc/types/generated.js +1 -1
  288. package/dist/esm/jsonRpc/types/index.js +1 -1
  289. package/dist/esm/jsonRpc/types/params.js +1 -1
  290. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js +1 -58
  291. package/dist/esm/keypairs/ed25519/index.js +1 -2
  292. package/dist/esm/keypairs/ed25519/keypair.js +1 -90
  293. package/dist/esm/keypairs/ed25519/publickey.js +1 -50
  294. package/dist/esm/keypairs/index.js +1 -4
  295. package/dist/esm/keypairs/passkey/index.js +1 -2
  296. package/dist/esm/keypairs/passkey/keypair.js +1 -155
  297. package/dist/esm/keypairs/passkey/publickey.js +1 -117
  298. package/dist/esm/keypairs/passkey/types.js +1 -1
  299. package/dist/esm/keypairs/secp256k1/index.js +1 -2
  300. package/dist/esm/keypairs/secp256k1/keypair.js +1 -82
  301. package/dist/esm/keypairs/secp256k1/publickey.js +1 -51
  302. package/dist/esm/keypairs/secp256r1/index.js +1 -2
  303. package/dist/esm/keypairs/secp256r1/keypair.js +1 -78
  304. package/dist/esm/keypairs/secp256r1/publickey.js +1 -52
  305. package/dist/esm/multisig/index.js +1 -2
  306. package/dist/esm/multisig/publickey.js +1 -201
  307. package/dist/esm/multisig/signer.js +1 -58
  308. package/dist/esm/transactions/Arguments.js +1 -9
  309. package/dist/esm/transactions/Commands.js +1 -102
  310. package/dist/esm/transactions/Inputs.js +1 -52
  311. package/dist/esm/transactions/ObjectCache.js +1 -205
  312. package/dist/esm/transactions/Transaction.js +1 -574
  313. package/dist/esm/transactions/TransactionData.js +1 -409
  314. package/dist/esm/transactions/__tests__/Transaction.test.js +1 -160
  315. package/dist/esm/transactions/__tests__/bcs.test.js +1 -182
  316. package/dist/esm/transactions/data/internal.js +1 -169
  317. package/dist/esm/transactions/data/v1.js +1 -469
  318. package/dist/esm/transactions/data/v2.js +1 -97
  319. package/dist/esm/transactions/executor/caching.js +1 -65
  320. package/dist/esm/transactions/executor/parallel.js +1 -347
  321. package/dist/esm/transactions/executor/queue.js +1 -59
  322. package/dist/esm/transactions/executor/serial.js +1 -99
  323. package/dist/esm/transactions/hash.js +1 -8
  324. package/dist/esm/transactions/index.js +1 -12
  325. package/dist/esm/transactions/intents/CoinWithBalance.js +1 -145
  326. package/dist/esm/transactions/object.js +1 -87
  327. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js +1 -11
  328. package/dist/esm/transactions/pure.js +1 -36
  329. package/dist/esm/transactions/resolve.js +1 -69
  330. package/dist/esm/transactions/serializer.js +1 -167
  331. package/dist/esm/transactions/utils.js +1 -121
  332. package/dist/esm/utils/constants.js +1 -18
  333. package/dist/esm/utils/derived-objects.js +1 -8
  334. package/dist/esm/utils/dynamic-fields.js +1 -17
  335. package/dist/esm/utils/format.js +1 -11
  336. package/dist/esm/utils/index.js +1 -8
  337. package/dist/esm/utils/move-registry.js +1 -24
  338. package/dist/esm/utils/sui-types.js +1 -66
  339. package/dist/esm/utils/suins.js +1 -33
  340. package/dist/esm/verify/index.js +1 -1
  341. package/dist/esm/verify/verify.js +1 -87
  342. package/dist/esm/version.js +1 -2
  343. package/dist/esm/w/call/allocation.js +1 -345
  344. package/dist/esm/w/call/arb.js +1 -103
  345. package/dist/esm/w/call/arbitration.js +1 -1192
  346. package/dist/esm/w/call/base.js +1 -293
  347. package/dist/esm/w/call/contact.js +1 -345
  348. package/dist/esm/w/call/demand.js +1 -681
  349. package/dist/esm/w/call/entity.js +1 -173
  350. package/dist/esm/w/call/guard-ins.js +1 -4449
  351. package/dist/esm/w/call/guard.d.ts +111 -0
  352. package/dist/esm/w/call/guard.js +1 -1048
  353. package/dist/esm/w/call/index.js +1 -22
  354. package/dist/esm/w/call/machine.js +1 -1127
  355. package/dist/esm/w/call/order.js +1 -337
  356. package/dist/esm/w/call/passport.js +1 -220
  357. package/dist/esm/w/call/payment.js +1 -178
  358. package/dist/esm/w/call/permission.js +1 -1162
  359. package/dist/esm/w/call/personal.js +1 -139
  360. package/dist/esm/w/call/progress.js +1 -678
  361. package/dist/esm/w/call/proof.js +1 -66
  362. package/dist/esm/w/call/repository.js +1 -1024
  363. package/dist/esm/w/call/resource.js +1 -108
  364. package/dist/esm/w/call/reward.js +1 -675
  365. package/dist/esm/w/call/service.js +1 -1960
  366. package/dist/esm/w/call/treasury.js +1 -873
  367. package/dist/esm/w/call/util.d.ts +1 -0
  368. package/dist/esm/w/call/util.js +1 -566
  369. package/dist/esm/w/common.js +1 -571
  370. package/dist/esm/w/exception.js +1 -618
  371. package/dist/esm/w/index.js +1 -8
  372. package/dist/esm/w/local/account.js +1 -656
  373. package/dist/esm/w/local/cache.js +1 -161
  374. package/dist/esm/w/local/config.js +1 -43
  375. package/dist/esm/w/local/index.js +1 -228
  376. package/dist/esm/w/local/local.js +1 -574
  377. package/dist/esm/w/local/storage.js +1 -185
  378. package/dist/esm/w/local/token.js +1 -131
  379. package/dist/esm/w/local/util.js +1 -26
  380. package/dist/esm/w/local/wip.js +1 -864
  381. package/dist/esm/w/messenger/crypto.js +1 -380
  382. package/dist/esm/w/messenger/index.js +1 -4
  383. package/dist/esm/w/messenger/messenger-api.js +1 -1154
  384. package/dist/esm/w/messenger/messenger-manager.js +1 -1003
  385. package/dist/esm/w/messenger/messenger.js +1 -1093
  386. package/dist/esm/w/messenger/server.js +1 -343
  387. package/dist/esm/w/messenger/session.js +1 -628
  388. package/dist/esm/w/messenger/storage.js +1 -1023
  389. package/dist/esm/w/messenger/templates/wts-html-template.js +1 -371
  390. package/dist/esm/w/messenger/types.js +1 -76
  391. package/dist/esm/w/messenger/utils.js +1 -12
  392. package/dist/esm/w/query/bult-in.js +1 -95
  393. package/dist/esm/w/query/event.js +1 -137
  394. package/dist/esm/w/query/index.js +1 -5
  395. package/dist/esm/w/query/object.js +1 -1550
  396. package/dist/esm/w/query/received.js +1 -62
  397. package/dist/esm/w/query/util.js +1 -49
  398. package/dist/esm/w/util.js +1 -587
  399. package/package.json +5 -2
@@ -1,371 +1 @@
1
- export function escapeHtml(text) {
2
- if (!text)
3
- return "";
4
- return text
5
- .replace(/&/g, "&")
6
- .replace(/</g, "&lt;")
7
- .replace(/>/g, "&gt;")
8
- .replace(/"/g, "&quot;")
9
- .replace(/'/g, "&#039;");
10
- }
11
- export function formatFileSize(bytes) {
12
- if (bytes < 1024)
13
- return bytes + " B";
14
- if (bytes < 1024 * 1024)
15
- return (bytes / 1024).toFixed(1) + " KB";
16
- return (bytes / (1024 * 1024)).toFixed(1) + " MB";
17
- }
18
- export function isNonTextMessage(msg) {
19
- return !!msg.zipMetadata;
20
- }
21
- export function getFileTypeLabel(msg) {
22
- if (msg.zipMetadata?.contentType) {
23
- return msg.zipMetadata.contentType.toUpperCase();
24
- }
25
- const fileName = msg.zipMetadata?.fileName || "";
26
- if (fileName.endsWith(".wts"))
27
- return "WTS";
28
- if (fileName.endsWith(".wip"))
29
- return "WIP";
30
- if (fileName.endsWith(".zip"))
31
- return "ZIP";
32
- if (fileName.endsWith(".json"))
33
- return "JSON";
34
- if (fileName.endsWith(".txt"))
35
- return "TXT";
36
- if (msg.zipMetadata)
37
- return "ZIP";
38
- return "FILE";
39
- }
40
- export function getThemeColors(theme) {
41
- return {
42
- bgColor: theme === "dark" ? "#1a1a1a" : "#ffffff",
43
- textColor: theme === "dark" ? "#e0e0e0" : "#333333",
44
- borderColor: theme === "dark" ? "#444444" : "#e0e0e0",
45
- };
46
- }
47
- export function getMessageColors(theme, isMyMessage) {
48
- if (isMyMessage) {
49
- return {
50
- bgColor: theme === "dark" ? "#1a365d" : "#e3f2fd",
51
- borderColor: theme === "dark" ? "#3b82f6" : "#90caf9",
52
- };
53
- }
54
- else {
55
- return {
56
- bgColor: theme === "dark" ? "#1e3a2f" : "#e8f5e9",
57
- borderColor: theme === "dark" ? "#10b981" : "#a5d6a7",
58
- };
59
- }
60
- }
61
- export function generateFileButton(msg, index, theme) {
62
- if (!msg.plaintext || !msg.zipMetadata?.fileName)
63
- return "";
64
- const fileName = msg.zipMetadata.fileName;
65
- const fileData = msg.plaintext;
66
- const fileSize = msg.zipMetadata.fileSize || 0;
67
- const fileType = getFileTypeLabel(msg);
68
- const bgColor = theme === "dark" ? "#2a3f2a" : "#e8f5e9";
69
- const borderColor = theme === "dark" ? "#4caf50" : "#4caf50";
70
- const textColor = theme === "dark" ? "#81c784" : "#2e7d32";
71
- const buttonBg = "#4caf50";
72
- const buttonHover = "#45a049";
73
- return `
74
- <div style="margin: 12px 0; padding: 16px; background: ${bgColor}; border: 1px solid ${borderColor}; border-radius: 8px; text-align: center;">
75
- <div style="font-size: 14px; color: ${textColor}; margin-bottom: 8px;">
76
- 📎 ${escapeHtml(fileType)} File
77
- <span style="font-size: 12px; color: #666;">(${formatFileSize(fileSize)})</span>
78
- </div>
79
- <button
80
- onclick="saveFile${index}()"
81
- style="padding: 10px 24px; background: ${buttonBg}; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 14px;"
82
- onmouseover="this.style.background='${buttonHover}'"
83
- onmouseout="this.style.background='${buttonBg}'"
84
- >
85
- 💾 Save ${escapeHtml(fileName)}
86
- </button>
87
- </div>
88
- <script>
89
- function saveFile${index}() {
90
- try {
91
- const base64Data = "${escapeHtml(fileData)}";
92
- const byteCharacters = atob(base64Data);
93
- const byteNumbers = new Array(byteCharacters.length);
94
- for (let i = 0; i < byteCharacters.length; i++) {
95
- byteNumbers[i] = byteCharacters.charCodeAt(i);
96
- }
97
- const byteArray = new Uint8Array(byteNumbers);
98
-
99
- let mimeType = "application/octet-stream";
100
- const fileName = "${escapeHtml(fileName)}";
101
- if (fileName.endsWith('.json')) mimeType = "application/json";
102
- else if (fileName.endsWith('.zip')) mimeType = "application/zip";
103
- else if (fileName.endsWith('.txt')) mimeType = "text/plain";
104
-
105
- const blob = new Blob([byteArray], { type: mimeType });
106
- const url = URL.createObjectURL(blob);
107
- const a = document.createElement("a");
108
- a.href = url;
109
- a.download = fileName;
110
- document.body.appendChild(a);
111
- a.click();
112
- document.body.removeChild(a);
113
- URL.revokeObjectURL(url);
114
- } catch (e) {
115
- alert('保存文件失败: ' + e.message);
116
- }
117
- }
118
- <\/script>
119
- `;
120
- }
121
- export function generateMessageHtml(msg, index, data) {
122
- const { theme, borderColor, myAddress, maxLastReceivedLeafIndex } = data;
123
- const isNonText = isNonTextMessage(msg);
124
- const isMyMessage = msg.from.toLowerCase() === myAddress.toLowerCase();
125
- const isDeliveredAndDecrypted = isMyMessage &&
126
- maxLastReceivedLeafIndex >= 0 &&
127
- msg.leafIndex <= maxLastReceivedLeafIndex;
128
- const colors = getMessageColors(theme, isMyMessage);
129
- const contentBgColor = theme === "dark" ? "#333333" : "#ffffff";
130
- let contentHtml = "";
131
- if (isNonText) {
132
- contentHtml = generateFileButton(msg, index, theme);
133
- }
134
- else if (msg.plaintext) {
135
- contentHtml = `<div style="margin: 12px 0; padding: 12px; background: ${contentBgColor}; border: 1px solid ${borderColor}; border-radius: 4px; font-size: 14px; line-height: 1.6; max-height: calc(1.6em * 6); overflow-y: auto; white-space: pre-wrap; word-break: break-word;">${escapeHtml(msg.plaintext)}</div>`;
136
- }
137
- const metaHtml = [
138
- `<div>Merkle Root: ${escapeHtml(msg.merkleRoot)}</div>`,
139
- msg.arkConfirmed
140
- ? `<div>ARK Confirmed: ${escapeHtml(msg.arkConfirmed.recipient)} at ${new Date(msg.arkConfirmed.timestamp).toLocaleString()}</div>`
141
- : "",
142
- msg.guardAddress
143
- ? `<div>Guard: ${escapeHtml(msg.guardAddress)}</div>`
144
- : "",
145
- msg.passportAddress
146
- ? `<div>Passport: ${escapeHtml(msg.passportAddress)}</div>`
147
- : "",
148
- ]
149
- .filter(Boolean)
150
- .join("");
151
- return `
152
- <div style="margin: 16px 0; padding: 16px; border: 1px solid ${colors.borderColor}; border-radius: 8px; background: ${colors.bgColor};">
153
- <div style="display: flex; justify-content: space-between; margin-bottom: 8px; font-size: 12px; color: #666;">
154
- <span>From: ${escapeHtml(msg.from.slice(0, 6))}...${escapeHtml(msg.from.slice(-3))} To: ${escapeHtml(msg.to.slice(0, 6))}...${escapeHtml(msg.to.slice(-3))}</span>
155
- <span>${new Date(msg.timestamp).toLocaleString()}</span>
156
- </div>
157
- ${contentHtml}
158
- <div style="margin: 8px 0; font-size: 11px; color: #666;">
159
- ${metaHtml}
160
- </div>
161
- <div style="font-size: 11px; color: #888; margin-top: 8px; padding-top: 8px; border-top: 1px solid ${borderColor}; display: flex; justify-content: space-between; align-items: center;">
162
- <div>Leaf Index: ${msg.leafIndex}</div>
163
- ${isDeliveredAndDecrypted ? `<span style="color: #4caf50;">Delivered & Decrypted</span>` : ""}
164
- </div>
165
- </div>
166
- `;
167
- }
168
- export function generateSignatureHtml(verifyResult, theme, textColor) {
169
- if (!verifyResult.signatures || verifyResult.signatures.length === 0) {
170
- return "";
171
- }
172
- const bgColor = theme === "dark" ? "#2a3f2a" : "#e8f5e9";
173
- const headerColor = theme === "dark" ? "#81c784" : "#2e7d32";
174
- const signaturesHtml = verifyResult.signatures
175
- .map((s, idx) => `
176
- <div style="font-size: 10px; color: ${textColor}; margin-left: 8px;">
177
- ${idx + 1}. ${s.address ? escapeHtml(s.address.slice(0, 6)) + "..." + escapeHtml(s.address.slice(-3)) : "Unknown"}:
178
- ${s.valid ? '<span style="color: #4caf50;">✓ Valid</span>' : '<span style="color: #f44336;">✗ Invalid</span>'}
179
- </div>
180
- `)
181
- .join("");
182
- return `
183
- <div style="margin-top: 8px; padding: 8px; background: ${bgColor}; border-radius: 4px;">
184
- <div style="font-size: 11px; color: ${headerColor}; margin-bottom: 4px;">
185
- ✓ Signature Verification (${verifyResult.signatures.length} signature${verifyResult.signatures.length > 1 ? "s" : ""})
186
- </div>
187
- ${signaturesHtml}
188
- </div>
189
- `;
190
- }
191
- const MESSAGES_PER_PAGE = 100;
192
- export function generateHtmlPage(data) {
193
- const { title, theme, bgColor, textColor, borderColor, meta, payload, verifyResult, maxLastReceivedLeafIndex, } = data;
194
- const totalMessages = payload.messages.length;
195
- const totalPages = Math.ceil(totalMessages / MESSAGES_PER_PAGE);
196
- const pagesHtml = [];
197
- for (let page = 0; page < totalPages; page++) {
198
- const start = page * MESSAGES_PER_PAGE;
199
- const end = Math.min(start + MESSAGES_PER_PAGE, totalMessages);
200
- const pageMessages = payload.messages.slice(start, end);
201
- const pageMessagesHtml = pageMessages
202
- .map((msg, index) => generateMessageHtml(msg, start + index, data))
203
- .join("");
204
- pagesHtml.push({
205
- pageNum: page + 1,
206
- html: `<div class="page" data-page="${page + 1}" style="display: ${page === 0 ? "block" : "none"};">${pageMessagesHtml}</div>`,
207
- });
208
- }
209
- const paginationHtml = totalPages > 1
210
- ? generatePaginationHtml(totalPages, theme, textColor)
211
- : "";
212
- const allPagesHtml = pagesHtml.map((p) => p.html).join("");
213
- const signatureHtml = generateSignatureHtml(verifyResult, theme, textColor);
214
- const verificationStatus = verifyResult.valid
215
- ? `<span style="color: #4caf50; margin-left: 8px;">✓ The accuracy, sequentiality, and integrity of the messages are verified without tampering</span>`
216
- : `<span style="color: #ff9800; margin-left: 8px;">⚠ ${verifyResult.error || "Hash mismatch - content has been tampered"}</span>`;
217
- const lastReceivedHtml = maxLastReceivedLeafIndex >= 0
218
- ? `<div>Delivered & Decrypted Leaf Index: ${maxLastReceivedLeafIndex} (sent messages are only confirmed as decrypted after receiving a reply from the other party)</div>`
219
- : "";
220
- return `<!DOCTYPE html>
221
- <html lang="en">
222
- <head>
223
- <meta charset="UTF-8">
224
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
225
- <title>${escapeHtml(title)}</title>
226
- <style>
227
- body {
228
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
229
- max-width: 800px;
230
- margin: 0 auto;
231
- padding: 20px;
232
- background: ${bgColor};
233
- color: ${textColor};
234
- }
235
- .header {
236
- border-bottom: 2px solid ${borderColor};
237
- padding-bottom: 16px;
238
- margin-bottom: 24px;
239
- }
240
- .meta {
241
- font-size: 12px;
242
- color: #666;
243
- margin-top: 8px;
244
- }
245
- .note {
246
- font-size: 11px;
247
- color: #999;
248
- margin-top: 12px;
249
- padding: 8px;
250
- background: ${theme === "dark" ? "#2a2a2a" : "#f5f5f5"};
251
- border-radius: 4px;
252
- font-style: italic;
253
- }
254
- .pagination {
255
- display: flex;
256
- justify-content: center;
257
- align-items: center;
258
- gap: 8px;
259
- margin-top: 24px;
260
- padding: 16px;
261
- border-top: 1px solid ${borderColor};
262
- }
263
- .pagination button {
264
- padding: 8px 16px;
265
- border: 1px solid ${borderColor};
266
- background: ${theme === "dark" ? "#333" : "#fff"};
267
- color: ${textColor};
268
- cursor: pointer;
269
- border-radius: 4px;
270
- font-size: 14px;
271
- }
272
- .pagination button:hover:not(:disabled) {
273
- background: ${theme === "dark" ? "#444" : "#f0f0f0"};
274
- }
275
- .pagination button:disabled {
276
- opacity: 0.5;
277
- cursor: not-allowed;
278
- }
279
- .pagination .page-info {
280
- font-size: 14px;
281
- color: #666;
282
- }
283
- .page {
284
- animation: fadeIn 0.3s ease-in;
285
- }
286
- @keyframes fadeIn {
287
- from { opacity: 0; }
288
- to { opacity: 1; }
289
- }
290
- </style>
291
- </head>
292
- <body>
293
- <div class="header">
294
- <h1>Witness Timestamped Sequence</h1>
295
- <div class="note">
296
- Important Note: This page is for message browsing and verification reference only. Please verify whether the message sequence has been tampered with through the 'verify_wts' API using the WTS file.
297
- </div>
298
- <div style="font-size: 14px; color: #666; margin-top: 4px;">
299
- ${new Date(meta.startTime).toLocaleDateString()} - ${new Date(meta.endTime).toLocaleDateString()}
300
- ${verificationStatus}
301
- </div>
302
- <div class="meta">
303
- <div>Messages: ${meta.messageCount} | Time: ${new Date(meta.startTime).toLocaleString()} - ${new Date(meta.endTime).toLocaleString()}</div>
304
- <div style="word-break: break-all;">Merkle Root: ${escapeHtml(meta.merkleRoot)}</div>
305
- ${lastReceivedHtml}
306
- <div style="color: ${theme === "dark" ? "#3b82f6" : "#1976d2"};">Creator: ${escapeHtml(meta.creator)}</div>
307
- <div style="color: ${theme === "dark" ? "#10b981" : "#2e7d32"};">Participant: ${escapeHtml(meta.participant)}</div>
308
- ${signatureHtml}
309
- </div>
310
- </div>
311
- <div id="messages-container">
312
- ${allPagesHtml}
313
- </div>
314
- ${paginationHtml}
315
- <script>
316
- (function() {
317
- let currentPage = 1;
318
- const totalPages = ${totalPages};
319
-
320
- function showPage(pageNum) {
321
- // 隐藏所有页面
322
- document.querySelectorAll('.page').forEach(page => {
323
- page.style.display = 'none';
324
- });
325
- // 显示目标页面
326
- const targetPage = document.querySelector('.page[data-page="' + pageNum + '"]');
327
- if (targetPage) {
328
- targetPage.style.display = 'block';
329
- }
330
- currentPage = pageNum;
331
- updatePaginationButtons();
332
- }
333
-
334
- function updatePaginationButtons() {
335
- const prevBtn = document.getElementById('prev-btn');
336
- const nextBtn = document.getElementById('next-btn');
337
- const pageInfo = document.getElementById('page-info');
338
- if (prevBtn) prevBtn.disabled = currentPage === 1;
339
- if (nextBtn) nextBtn.disabled = currentPage === totalPages;
340
- if (pageInfo) pageInfo.textContent = 'Page ' + currentPage + ' of ' + totalPages;
341
- }
342
-
343
- // 绑定按钮事件
344
- const prevBtn = document.getElementById('prev-btn');
345
- const nextBtn = document.getElementById('next-btn');
346
- if (prevBtn) {
347
- prevBtn.addEventListener('click', function() {
348
- if (currentPage > 1) showPage(currentPage - 1);
349
- });
350
- }
351
- if (nextBtn) {
352
- nextBtn.addEventListener('click', function() {
353
- if (currentPage < totalPages) showPage(currentPage + 1);
354
- });
355
- }
356
-
357
- // 初始化
358
- updatePaginationButtons();
359
- })();
360
- <\/script>
361
- </body>
362
- </html>`;
363
- }
364
- function generatePaginationHtml(totalPages, theme, textColor) {
365
- return `
366
- <div class="pagination">
367
- <button id="prev-btn" disabled>← Previous</button>
368
- <span class="page-info" id="page-info">Page 1 of ${totalPages}</span>
369
- <button id="next-btn" ${totalPages <= 1 ? "disabled" : ""}>Next →</button>
370
- </div>`;
371
- }
1
+ export function escapeHtml(a){if(!a)return'';return a['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#039;');}export function formatFileSize(a){if(a<0x400)return a+'\x20B';if(a<0x400*0x400)return(a/0x400)['toFixed'](0x1)+'\x20KB';return(a/(0x400*0x400))['toFixed'](0x1)+'\x20MB';}export function isNonTextMessage(a){return!!a['zipMetadata'];}export function getFileTypeLabel(a){if(a['zipMetadata']?.['contentType'])return a['zipMetadata']['contentType']['toUpperCase']();const b=a['zipMetadata']?.['fileName']||'';if(b['endsWith']('.wts'))return'WTS';if(b['endsWith']('.wip'))return'WIP';if(b['endsWith']('.zip'))return'ZIP';if(b['endsWith']('.json'))return'JSON';if(b['endsWith']('.txt'))return'TXT';if(a['zipMetadata'])return'ZIP';return'FILE';}export function getThemeColors(a){return{'bgColor':a==='dark'?'#1a1a1a':'#ffffff','textColor':a==='dark'?'#e0e0e0':'#333333','borderColor':a==='dark'?'#444444':'#e0e0e0'};}export function getMessageColors(a,b){return b?{'bgColor':a==='dark'?'#1a365d':'#e3f2fd','borderColor':a==='dark'?'#3b82f6':'#90caf9'}:{'bgColor':a==='dark'?'#1e3a2f':'#e8f5e9','borderColor':a==='dark'?'#10b981':'#a5d6a7'};}export function generateFileButton(a,b,c){if(!a['plaintext']||!a['zipMetadata']?.['fileName'])return'';const d=a['zipMetadata']['fileName'],e=a['plaintext'],f=a['zipMetadata']['fileSize']||0x0,g=getFileTypeLabel(a),h=c==='dark'?'#2a3f2a':'#e8f5e9',i=c==='dark'?'#4caf50':'#4caf50',j=c==='dark'?'#81c784':'#2e7d32',k='#4caf50',l='#45a049';return'\x0a\x09\x09<div\x20style=\x22margin:\x2012px\x200;\x20padding:\x2016px;\x20background:\x20'+h+';\x20border:\x201px\x20solid\x20'+i+';\x20border-radius:\x208px;\x20text-align:\x20center;\x22>\x0a\x09\x09\x09<div\x20style=\x22font-size:\x2014px;\x20color:\x20'+j+';\x20margin-bottom:\x208px;\x22>\x0a\x09\x09\x09\x09📎\x20'+escapeHtml(g)+'\x20File\x0a\x09\x09\x09\x09<span\x20style=\x22font-size:\x2012px;\x20color:\x20#666;\x22>('+formatFileSize(f)+')</span>\x0a\x09\x09\x09</div>\x0a\x09\x09\x09<button\x20\x0a\x09\x09\x09\x09onclick=\x22saveFile'+b+'()\x22\x0a\x09\x09\x09\x09style=\x22padding:\x2010px\x2024px;\x20background:\x20'+k+';\x20color:\x20white;\x20border:\x20none;\x20border-radius:\x204px;\x20cursor:\x20pointer;\x20font-size:\x2014px;\x22\x0a\x09\x09\x09\x09onmouseover=\x22this.style.background=\x27'+l+'\x27\x22\x0a\x09\x09\x09\x09onmouseout=\x22this.style.background=\x27'+k+'\x27\x22\x0a\x09\x09\x09>\x0a\x09\x09\x09\x09💾\x20Save\x20'+escapeHtml(d)+'\x0a\x09\x09\x09</button>\x0a\x09\x09</div>\x0a\x09\x09<script>\x0a\x09\x09\x09function\x20saveFile'+b+'()\x20{\x0a\x09\x09\x09\x09try\x20{\x0a\x09\x09\x09\x09\x09const\x20base64Data\x20=\x20\x22'+escapeHtml(e)+'\x22;\x0a\x09\x09\x09\x09\x09const\x20byteCharacters\x20=\x20atob(base64Data);\x0a\x09\x09\x09\x09\x09const\x20byteNumbers\x20=\x20new\x20Array(byteCharacters.length);\x0a\x09\x09\x09\x09\x09for\x20(let\x20i\x20=\x200;\x20i\x20<\x20byteCharacters.length;\x20i++)\x20{\x0a\x09\x09\x09\x09\x09\x09byteNumbers[i]\x20=\x20byteCharacters.charCodeAt(i);\x0a\x09\x09\x09\x09\x09}\x0a\x09\x09\x09\x09\x09const\x20byteArray\x20=\x20new\x20Uint8Array(byteNumbers);\x0a\x09\x09\x09\x09\x09\x0a\x09\x09\x09\x09\x09let\x20mimeType\x20=\x20\x22application/octet-stream\x22;\x0a\x09\x09\x09\x09\x09const\x20fileName\x20=\x20\x22'+escapeHtml(d)+'\x22;\x0a\x09\x09\x09\x09\x09if\x20(fileName.endsWith(\x27.json\x27))\x20mimeType\x20=\x20\x22application/json\x22;\x0a\x09\x09\x09\x09\x09else\x20if\x20(fileName.endsWith(\x27.zip\x27))\x20mimeType\x20=\x20\x22application/zip\x22;\x0a\x09\x09\x09\x09\x09else\x20if\x20(fileName.endsWith(\x27.txt\x27))\x20mimeType\x20=\x20\x22text/plain\x22;\x0a\x09\x09\x09\x09\x09\x0a\x09\x09\x09\x09\x09const\x20blob\x20=\x20new\x20Blob([byteArray],\x20{\x20type:\x20mimeType\x20});\x0a\x09\x09\x09\x09\x09const\x20url\x20=\x20URL.createObjectURL(blob);\x0a\x09\x09\x09\x09\x09const\x20a\x20=\x20document.createElement(\x22a\x22);\x0a\x09\x09\x09\x09\x09a.href\x20=\x20url;\x0a\x09\x09\x09\x09\x09a.download\x20=\x20fileName;\x0a\x09\x09\x09\x09\x09document.body.appendChild(a);\x0a\x09\x09\x09\x09\x09a.click();\x0a\x09\x09\x09\x09\x09document.body.removeChild(a);\x0a\x09\x09\x09\x09\x09URL.revokeObjectURL(url);\x0a\x09\x09\x09\x09}\x20catch\x20(e)\x20{\x0a\x09\x09\x09\x09\x09alert(\x27保存文件失败:\x20\x27\x20+\x20e.message);\x0a\x09\x09\x09\x09}\x0a\x09\x09\x09}\x0a\x09\x09</script>\x0a\x09';}export function generateMessageHtml(a,b,c){const {theme:d,borderColor:e,myAddress:f,maxLastReceivedLeafIndex:g}=c,h=isNonTextMessage(a),i=a['from']['toLowerCase']()===f['toLowerCase'](),j=i&&g>=0x0&&a['leafIndex']<=g,k=getMessageColors(d,i),l=d==='dark'?'#333333':'#ffffff';let m='';if(h)m=generateFileButton(a,b,d);else a['plaintext']&&(m='<div\x20style=\x22margin:\x2012px\x200;\x20padding:\x2012px;\x20background:\x20'+l+';\x20border:\x201px\x20solid\x20'+e+';\x20border-radius:\x204px;\x20font-size:\x2014px;\x20line-height:\x201.6;\x20max-height:\x20calc(1.6em\x20*\x206);\x20overflow-y:\x20auto;\x20white-space:\x20pre-wrap;\x20word-break:\x20break-word;\x22>'+escapeHtml(a['plaintext'])+'</div>');const n=['<div>Merkle\x20Root:\x20'+escapeHtml(a['merkleRoot'])+'</div>',a['arkConfirmed']?'<div>ARK\x20Confirmed:\x20'+escapeHtml(a['arkConfirmed']['recipient'])+'\x20at\x20'+new Date(a['arkConfirmed']['timestamp'])['toLocaleString']()+'</div>':'',a['guardAddress']?'<div>Guard:\x20'+escapeHtml(a['guardAddress'])+'</div>':'',a['passportAddress']?'<div>Passport:\x20'+escapeHtml(a['passportAddress'])+'</div>':'']['filter'](Boolean)['join']('');return'\x0a\x09\x09<div\x20style=\x22margin:\x2016px\x200;\x20padding:\x2016px;\x20border:\x201px\x20solid\x20'+k['borderColor']+';\x20border-radius:\x208px;\x20background:\x20'+k['bgColor']+';\x22>\x0a\x09\x09\x09<div\x20style=\x22display:\x20flex;\x20justify-content:\x20space-between;\x20margin-bottom:\x208px;\x20font-size:\x2012px;\x20color:\x20#666;\x22>\x0a\x09\x09\x09\x09<span>From:\x20'+escapeHtml(a['from']['slice'](0x0,0x6))+'...'+escapeHtml(a['from']['slice'](-0x3))+'\x20To:\x20'+escapeHtml(a['to']['slice'](0x0,0x6))+'...'+escapeHtml(a['to']['slice'](-0x3))+'</span>\x0a\x09\x09\x09\x09<span>'+new Date(a['timestamp'])['toLocaleString']()+'</span>\x0a\x09\x09\x09</div>\x0a\x09\x09\x09'+m+'\x0a\x09\x09\x09<div\x20style=\x22margin:\x208px\x200;\x20font-size:\x2011px;\x20color:\x20#666;\x22>\x0a\x09\x09\x09\x09'+n+'\x0a\x09\x09\x09</div>\x0a\x09\x09\x09<div\x20style=\x22font-size:\x2011px;\x20color:\x20#888;\x20margin-top:\x208px;\x20padding-top:\x208px;\x20border-top:\x201px\x20solid\x20'+e+';\x20display:\x20flex;\x20justify-content:\x20space-between;\x20align-items:\x20center;\x22>\x0a\x09\x09\x09\x09<div>Leaf\x20Index:\x20'+a['leafIndex']+'</div>\x0a\x09\x09\x09\x09'+(j?'<span\x20style=\x22color:\x20#4caf50;\x22>Delivered\x20&\x20Decrypted</span>':'')+'\x0a\x09\x09\x09</div>\x0a\x09\x09</div>\x0a\x09';}export function generateSignatureHtml(a,b,c){if(!a['signatures']||a['signatures']['length']===0x0)return'';const d=b==='dark'?'#2a3f2a':'#e8f5e9',e=b==='dark'?'#81c784':'#2e7d32',f=a['signatures']['map']((g,h)=>'\x0a\x09\x09\x09<div\x20style=\x22font-size:\x2010px;\x20color:\x20'+c+';\x20margin-left:\x208px;\x22>\x0a\x09\x09\x09\x09'+(h+0x1)+'.\x20'+(g['address']?escapeHtml(g['address']['slice'](0x0,0x6))+'...'+escapeHtml(g['address']['slice'](-0x3)):'Unknown')+':\x20\x0a\x09\x09\x09\x09'+(g['valid']?'<span\x20style=\x22color:\x20#4caf50;\x22>✓\x20Valid</span>':'<span\x20style=\x22color:\x20#f44336;\x22>✗\x20Invalid</span>')+'\x0a\x09\x09\x09</div>\x0a\x09\x09')['join']('');return'\x0a\x09\x09<div\x20style=\x22margin-top:\x208px;\x20padding:\x208px;\x20background:\x20'+d+';\x20border-radius:\x204px;\x22>\x0a\x09\x09\x09<div\x20style=\x22font-size:\x2011px;\x20color:\x20'+e+';\x20margin-bottom:\x204px;\x22>\x0a\x09\x09\x09\x09✓\x20Signature\x20Verification\x20('+a['signatures']['length']+'\x20signature'+(a['signatures']['length']>0x1?'s':'')+')\x0a\x09\x09\x09</div>\x0a\x09\x09\x09'+f+'\x0a\x09\x09</div>\x0a\x09';}const MESSAGES_PER_PAGE=0x64;export function generateHtmlPage(a){const {title:b,theme:c,bgColor:d,textColor:e,borderColor:f,meta:g,payload:h,verifyResult:i,maxLastReceivedLeafIndex:j}=a,k=h['messages']['length'],l=Math['ceil'](k/MESSAGES_PER_PAGE),m=[];for(let s=0x0;s<l;s++){const t=s*MESSAGES_PER_PAGE,u=Math['min'](t+MESSAGES_PER_PAGE,k),v=h['messages']['slice'](t,u),w=v['map']((x,y)=>generateMessageHtml(x,t+y,a))['join']('');m['push']({'pageNum':s+0x1,'html':'<div\x20class=\x22page\x22\x20data-page=\x22'+(s+0x1)+'\x22\x20style=\x22display:\x20'+(s===0x0?'block':'none')+';\x22>'+w+'</div>'});}const n=l>0x1?generatePaginationHtml(l,c,e):'',o=m['map'](x=>x['html'])['join'](''),p=generateSignatureHtml(i,c,e),q=i['valid']?'<span\x20style=\x22color:\x20#4caf50;\x20margin-left:\x208px;\x22>✓\x20The\x20accuracy,\x20sequentiality,\x20and\x20integrity\x20of\x20the\x20messages\x20are\x20verified\x20without\x20tampering</span>':'<span\x20style=\x22color:\x20#ff9800;\x20margin-left:\x208px;\x22>⚠\x20'+(i['error']||'Hash\x20mismatch\x20-\x20content\x20has\x20been\x20tampered')+'</span>',r=j>=0x0?'<div>Delivered\x20&\x20Decrypted\x20Leaf\x20Index:\x20'+j+'\x20(sent\x20messages\x20are\x20only\x20confirmed\x20as\x20decrypted\x20after\x20receiving\x20a\x20reply\x20from\x20the\x20other\x20party)</div>':'';return'<!DOCTYPE\x20html>\x0a<html\x20lang=\x22en\x22>\x0a<head>\x0a\x20\x20\x20\x20<meta\x20charset=\x22UTF-8\x22>\x0a\x20\x20\x20\x20<meta\x20name=\x22viewport\x22\x20content=\x22width=device-width,\x20initial-scale=1.0\x22>\x0a\x20\x20\x20\x20<title>'+escapeHtml(b)+'</title>\x0a\x20\x20\x20\x20<style>\x0a\x20\x20\x20\x20\x20\x20\x20\x20body\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20-apple-system,\x20BlinkMacSystemFont,\x20\x22Segoe\x20UI\x22,\x20Roboto,\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20800px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin:\x200\x20auto;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2020px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20'+d+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20'+e+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.header\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x202px\x20solid\x20'+f+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding-bottom:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-bottom:\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.meta\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#666;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.note\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#999;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20'+(c==='dark'?'#2a2a2a':'#f5f5f5')+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-style:\x20italic;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.pagination\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-top:\x201px\x20solid\x20'+f+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.pagination\x20button\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20'+f+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20'+(c==='dark'?'#333':'#fff')+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20'+e+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.pagination\x20button:hover:not(:disabled)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20'+(c==='dark'?'#444':'#f0f0f0')+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.pagination\x20button:disabled\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x200.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20not-allowed;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.pagination\x20.page-info\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#666;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.page\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20animation:\x20fadeIn\x200.3s\x20ease-in;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20@keyframes\x20fadeIn\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20from\x20{\x20opacity:\x200;\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20to\x20{\x20opacity:\x201;\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20</style>\x0a</head>\x0a<body>\x0a\x20\x20\x20\x20<div\x20class=\x22header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<h1>Witness\x20Timestamped\x20Sequence</h1>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22note\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Important\x20Note:\x20This\x20page\x20is\x20for\x20message\x20browsing\x20and\x20verification\x20reference\x20only.\x20Please\x20verify\x20whether\x20the\x20message\x20sequence\x20has\x20been\x20tampered\x20with\x20through\x20the\x20\x27verify_wts\x27\x20API\x20using\x20the\x20WTS\x20file.\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2014px;\x20color:\x20#666;\x20margin-top:\x204px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+new Date(g['startTime'])['toLocaleDateString']()+'\x20-\x20'+new Date(g['endTime'])['toLocaleDateString']()+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+q+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22meta\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>Messages:\x20'+g['messageCount']+'\x20|\x20Time:\x20'+new Date(g['startTime'])['toLocaleString']()+'\x20-\x20'+new Date(g['endTime'])['toLocaleString']()+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22word-break:\x20break-all;\x22>Merkle\x20Root:\x20'+escapeHtml(g['merkleRoot'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+r+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22color:\x20'+(c==='dark'?'#3b82f6':'#1976d2')+';\x22>Creator:\x20'+escapeHtml(g['creator'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22color:\x20'+(c==='dark'?'#10b981':'#2e7d32')+';\x22>Participant:\x20'+escapeHtml(g['participant'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+p+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20id=\x22messages-container\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+o+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20'+n+'\x0a\x20\x20\x20\x20<script>\x0a\x20\x20\x20\x20\x20\x20\x20\x20(function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20currentPage\x20=\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20totalPages\x20=\x20'+l+';\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20function\x20showPage(pageNum)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20隐藏所有页面\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelectorAll(\x27.page\x27).forEach(page\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20page.style.display\x20=\x20\x27none\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20显示目标页面\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20targetPage\x20=\x20document.querySelector(\x27.page[data-page=\x22\x27\x20+\x20pageNum\x20+\x20\x27\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(targetPage)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20targetPage.style.display\x20=\x20\x27block\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20currentPage\x20=\x20pageNum;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updatePaginationButtons();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20function\x20updatePaginationButtons()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20prevBtn\x20=\x20document.getElementById(\x27prev-btn\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20nextBtn\x20=\x20document.getElementById(\x27next-btn\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20pageInfo\x20=\x20document.getElementById(\x27page-info\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(prevBtn)\x20prevBtn.disabled\x20=\x20currentPage\x20===\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(nextBtn)\x20nextBtn.disabled\x20=\x20currentPage\x20===\x20totalPages;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(pageInfo)\x20pageInfo.textContent\x20=\x20\x27Page\x20\x27\x20+\x20currentPage\x20+\x20\x27\x20of\x20\x27\x20+\x20totalPages;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20绑定按钮事件\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20prevBtn\x20=\x20document.getElementById(\x27prev-btn\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20nextBtn\x20=\x20document.getElementById(\x27next-btn\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(prevBtn)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20prevBtn.addEventListener(\x27click\x27,\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(currentPage\x20>\x201)\x20showPage(currentPage\x20-\x201);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(nextBtn)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20nextBtn.addEventListener(\x27click\x27,\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(currentPage\x20<\x20totalPages)\x20showPage(currentPage\x20+\x201);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20初始化\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updatePaginationButtons();\x0a\x20\x20\x20\x20\x20\x20\x20\x20})();\x0a\x20\x20\x20\x20</script>\x0a</body>\x0a</html>';}function generatePaginationHtml(a,b,c){return'\x0a\x20\x20\x20\x20<div\x20class=\x22pagination\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22prev-btn\x22\x20disabled>←\x20Previous</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22page-info\x22\x20id=\x22page-info\x22>Page\x201\x20of\x20'+a+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22next-btn\x22\x20'+(a<=0x1?'disabled':'')+'>Next\x20→</button>\x0a\x20\x20\x20\x20</div>';}
@@ -1,76 +1 @@
1
- import { ENTRYPOINT } from "../../client/network.js";
2
- export var MessageType;
3
- (function (MessageType) {
4
- MessageType[MessageType["PREKEY_MESSAGE"] = 3] = "PREKEY_MESSAGE";
5
- MessageType[MessageType["NORMAL_MESSAGE"] = 1] = "NORMAL_MESSAGE";
6
- })(MessageType || (MessageType = {}));
7
- export var MessageDirection;
8
- (function (MessageDirection) {
9
- MessageDirection["SENT"] = "sent";
10
- MessageDirection["RECEIVED"] = "received";
11
- })(MessageDirection || (MessageDirection = {}));
12
- export var MessageStatus;
13
- (function (MessageStatus) {
14
- MessageStatus["PENDING"] = "pending";
15
- MessageStatus["CONFIRMED"] = "confirmed";
16
- MessageStatus["READ"] = "read";
17
- MessageStatus["FAILED"] = "failed";
18
- MessageStatus["REJECTED"] = "rejected";
19
- MessageStatus["DECRYPTED"] = "decrypted";
20
- MessageStatus["DECRYPT_FAILED"] = "decrypt_failed";
21
- })(MessageStatus || (MessageStatus = {}));
22
- export const WTS_FILE_BYTES_LIMIT = 5 * 1024 * 1024;
23
- export const WTS_MAX_MESSAGE_COUNT = 500;
24
- export const NORMAL_MESSAGE_BYTES_LIMIT = 10 * 1024;
25
- export const DEFAULT_QUERY_LIMIT = 50;
26
- export const MAX_QUERY_LIMIT = 1000;
27
- export const DEFAULT_DEVICE_ID = 1;
28
- export const SERVER_URL = "https://messenger.wowok.net";
29
- export const CHAIN_PROOF_TYPE = 1;
30
- export const CURRENT_NETWORK = ENTRYPOINT.Testnet;
31
- export const DEFAULT_MESSENGER_CONFIG = {
32
- prekey_count: 40,
33
- watch_interval_ms: 60 * 1000,
34
- serverUrl: SERVER_URL,
35
- network: CURRENT_NETWORK,
36
- prekeyCheckIntervalMs: 24 * 60 * 60 * 1000,
37
- defaultQueryLimit: DEFAULT_QUERY_LIMIT,
38
- message_poll_default_interval_ms: 6 * 60 * 1000,
39
- message_poll_fast_interval_ms: 6 * 1000,
40
- prekey_poll_default_interval_ms: 60 * 60 * 1000,
41
- prekey_poll_fast_interval_ms: 30 * 1000,
42
- account_poll_delay_ms: 200,
43
- message_poll_consecutive_empty_limit: 3,
44
- prekey_poll_consecutive_ok_limit: 3,
45
- };
46
- export var MessengerErrorCode;
47
- (function (MessengerErrorCode) {
48
- MessengerErrorCode["PREKEYS_FULL"] = "PREKEYS_FULL";
49
- MessengerErrorCode["ACCOUNT_NOT_FOUND"] = "ACCOUNT_NOT_FOUND";
50
- MessengerErrorCode["IDENTITY_NOT_FOUND"] = "IDENTITY_NOT_FOUND";
51
- MessengerErrorCode["IDENTITY_CONFLICT"] = "IDENTITY_CONFLICT";
52
- MessengerErrorCode["SESSION_NOT_ESTABLISHED"] = "SESSION_NOT_ESTABLISHED";
53
- MessengerErrorCode["ENCRYPTION_FAILED"] = "ENCRYPTION_FAILED";
54
- MessengerErrorCode["DECRYPTION_FAILED"] = "DECRYPTION_FAILED";
55
- MessengerErrorCode["SERVER_ERROR"] = "SERVER_ERROR";
56
- MessengerErrorCode["INVALID_PROOF"] = "INVALID_PROOF";
57
- MessengerErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
58
- MessengerErrorCode["INVALID_INPUT"] = "INVALID_INPUT";
59
- MessengerErrorCode["FILE_NOT_FOUND"] = "FILE_NOT_FOUND";
60
- MessengerErrorCode["INVALID_MESSAGE_TYPE"] = "INVALID_MESSAGE_TYPE";
61
- MessengerErrorCode["MESSAGE_NOT_DECRYPTED"] = "MESSAGE_NOT_DECRYPTED";
62
- MessengerErrorCode["HASH_MISMATCH"] = "HASH_MISMATCH";
63
- MessengerErrorCode["ACCOUNT_MESSENGER_NOT_ENABLED"] = "ACCOUNT_MESSENGER_NOT_ENABLED";
64
- MessengerErrorCode["REGISTRATION_FAILED"] = "REGISTRATION_FAILED";
65
- })(MessengerErrorCode || (MessengerErrorCode = {}));
66
- export class MessengerError extends Error {
67
- code;
68
- cause;
69
- constructor(code, message, cause) {
70
- super(message);
71
- this.code = code;
72
- this.cause = cause;
73
- this.name = "MessengerError";
74
- }
75
- }
76
- export const WTS_SCHEMA_URL = "https://schema.wowok.net/wts/v1";
1
+ import{ENTRYPOINT}from'../../client/network.js';export var MessageType;(function(a){a[a['PREKEY_MESSAGE']=0x3]='PREKEY_MESSAGE',a[a['NORMAL_MESSAGE']=0x1]='NORMAL_MESSAGE';}(MessageType||(MessageType={})));export var MessageDirection;(function(a){a['SENT']='sent',a['RECEIVED']='received';}(MessageDirection||(MessageDirection={})));export var MessageStatus;(function(a){a['PENDING']='pending',a['CONFIRMED']='confirmed',a['READ']='read',a['FAILED']='failed',a['REJECTED']='rejected',a['DECRYPTED']='decrypted',a['DECRYPT_FAILED']='decrypt_failed';}(MessageStatus||(MessageStatus={})));export const WTS_FILE_BYTES_LIMIT=0x5*0x400*0x400;export const WTS_MAX_MESSAGE_COUNT=0x1f4;export const NORMAL_MESSAGE_BYTES_LIMIT=0xa*0x400;export const DEFAULT_QUERY_LIMIT=0x32;export const MAX_QUERY_LIMIT=0x3e8;export const DEFAULT_DEVICE_ID=0x1;export const SERVER_URL='https://messenger.wowok.net';export const CHAIN_PROOF_TYPE=0x1;export const CURRENT_NETWORK=ENTRYPOINT['Testnet'];export const DEFAULT_MESSENGER_CONFIG={'prekey_count':0x28,'watch_interval_ms':0x3c*0x3e8,'serverUrl':SERVER_URL,'network':CURRENT_NETWORK,'prekeyCheckIntervalMs':0x18*0x3c*0x3c*0x3e8,'defaultQueryLimit':DEFAULT_QUERY_LIMIT,'message_poll_default_interval_ms':0x6*0x3c*0x3e8,'message_poll_fast_interval_ms':0x6*0x3e8,'prekey_poll_default_interval_ms':0x3c*0x3c*0x3e8,'prekey_poll_fast_interval_ms':0x1e*0x3e8,'account_poll_delay_ms':0xc8,'message_poll_consecutive_empty_limit':0x3,'prekey_poll_consecutive_ok_limit':0x3};export var MessengerErrorCode;(function(a){a['PREKEYS_FULL']='PREKEYS_FULL',a['ACCOUNT_NOT_FOUND']='ACCOUNT_NOT_FOUND',a['IDENTITY_NOT_FOUND']='IDENTITY_NOT_FOUND',a['IDENTITY_CONFLICT']='IDENTITY_CONFLICT',a['SESSION_NOT_ESTABLISHED']='SESSION_NOT_ESTABLISHED',a['ENCRYPTION_FAILED']='ENCRYPTION_FAILED',a['DECRYPTION_FAILED']='DECRYPTION_FAILED',a['SERVER_ERROR']='SERVER_ERROR',a['INVALID_PROOF']='INVALID_PROOF',a['NETWORK_ERROR']='NETWORK_ERROR',a['INVALID_INPUT']='INVALID_INPUT',a['FILE_NOT_FOUND']='FILE_NOT_FOUND',a['INVALID_MESSAGE_TYPE']='INVALID_MESSAGE_TYPE',a['MESSAGE_NOT_DECRYPTED']='MESSAGE_NOT_DECRYPTED',a['HASH_MISMATCH']='HASH_MISMATCH',a['ACCOUNT_MESSENGER_NOT_ENABLED']='ACCOUNT_MESSENGER_NOT_ENABLED',a['REGISTRATION_FAILED']='REGISTRATION_FAILED';}(MessengerErrorCode||(MessengerErrorCode={})));export class MessengerError extends Error{['code'];['cause'];constructor(a,b,c){super(b),this['code']=a,this['cause']=c,this['name']='MessengerError';}}export const WTS_SCHEMA_URL='https://schema.wowok.net/wts/v1';
@@ -1,12 +1 @@
1
- export function canonicalizeJson(obj) {
2
- if (obj === null || typeof obj !== "object") {
3
- return JSON.stringify(obj);
4
- }
5
- if (Array.isArray(obj)) {
6
- return "[" + obj.map(canonicalizeJson).join(",") + "]";
7
- }
8
- const sortedObj = obj;
9
- const keys = Object.keys(sortedObj).sort();
10
- const pairs = keys.map((key) => `"${key}":${canonicalizeJson(sortedObj[key])}`);
11
- return "{" + pairs.join(",") + "}";
12
- }
1
+ export function canonicalizeJson(a){if(a===null||typeof a!=='object')return JSON['stringify'](a);if(Array['isArray'](a))return'['+a['map'](canonicalizeJson)['join'](',')+']';const b=a,c=Object['keys'](b)['sort'](),d=c['map'](e=>'\x22'+e+'\x22:'+canonicalizeJson(b[e]));return'{'+d['join'](',')+'}';}
@@ -1,95 +1 @@
1
- import { ObjectType, ValueType, OperatorType, WitnessType, ContextType, PackageAddress, GasTokenType, GasCoinType, RegistrarAddress, EntityAddress, } from "../common.js";
2
- import { query_permissions } from "../call/permission.js";
3
- import { filterGuardInstruct } from "../call/guard-ins.js";
4
- import { Config } from "../local/config.js";
5
- const CONSTANTS = [
6
- {
7
- name: "Protocol Package ID",
8
- value: PackageAddress,
9
- description: "Protocol package ID",
10
- },
11
- {
12
- name: "Gas Token Type",
13
- value: GasTokenType,
14
- description: "Gas token type",
15
- },
16
- {
17
- name: "Gas Coin Type",
18
- value: GasCoinType,
19
- description: "Gas coin type",
20
- },
21
- {
22
- name: "Entity Linker ID",
23
- value: RegistrarAddress,
24
- description: "Entity Linker ID",
25
- },
26
- {
27
- name: "Entity Registrar ID",
28
- value: EntityAddress,
29
- description: "Entity registrar ID",
30
- },
31
- ];
32
- const VALUE_TYPES = Object.entries(ValueType)
33
- .filter(([key, value]) => isNaN(Number(key)) && key !== "Value")
34
- .map(([key, value]) => ({
35
- name: key,
36
- value: key,
37
- description: `Value type ${key} = ${value}`,
38
- }));
39
- const OBJECT_TYPES = Object.values(ObjectType).map((type) => ({
40
- name: type,
41
- value: type,
42
- description: `Object type ${type}`,
43
- }));
44
- export const INFO_CONSTANT = {
45
- type: "constants",
46
- constants: CONSTANTS,
47
- value_types: VALUE_TYPES,
48
- object_types: OBJECT_TYPES,
49
- guard_instructions: Object.values(OperatorType).map((type) => ({
50
- name: type,
51
- value: type,
52
- description: `Guard instruction ${type}`,
53
- })),
54
- guard_contexts: Object.values(ContextType).map((type) => ({
55
- name: type,
56
- value: type,
57
- description: `Guard context ${type}`,
58
- })),
59
- guard_witnesses: Object.values(WitnessType).map((type) => ({
60
- name: type,
61
- value: type,
62
- description: `Guard witness ${type}`,
63
- })),
64
- };
65
- export async function queryProtocolInfo(query) {
66
- switch (query.info) {
67
- case "constants":
68
- return { info: "constants", result: INFO_CONSTANT.constants };
69
- case "built-in permissions":
70
- return {
71
- info: "built-in permissions",
72
- result: queryPermissions(query.filter || {}),
73
- };
74
- case "guard instructions":
75
- return {
76
- info: "guard instructions",
77
- result: filterGuardInstruct(query.filter || {}),
78
- };
79
- case "current network":
80
- return {
81
- info: "current network",
82
- result: await Config.Instance().network_get(),
83
- };
84
- case "value types":
85
- return {
86
- info: "value types",
87
- result: INFO_CONSTANT.value_types,
88
- };
89
- default:
90
- throw new Error(`Unsupported info type: "${query.info}". Valid are: "constants", "built-in permissions", "guard instructions", "current network", "value types"`);
91
- }
92
- }
93
- export function queryPermissions(filter) {
94
- return query_permissions(filter);
95
- }
1
+ import{ObjectType,ValueType,OperatorType,WitnessType,ContextType,PackageAddress,GasTokenType,GasCoinType,RegistrarAddress,EntityAddress}from'../common.js';import{query_permissions}from'../call/permission.js';import{filterGuardInstruct}from'../call/guard-ins.js';import{Config}from'../local/config.js';const CONSTANTS=[{'name':'Protocol\x20Package\x20ID','value':PackageAddress,'description':'Protocol\x20package\x20ID'},{'name':'Gas\x20Token\x20Type','value':GasTokenType,'description':'Gas\x20token\x20type'},{'name':'Gas\x20Coin\x20Type','value':GasCoinType,'description':'Gas\x20coin\x20type'},{'name':'Entity\x20Linker\x20ID','value':RegistrarAddress,'description':'Entity\x20Linker\x20ID'},{'name':'Entity\x20Registrar\x20ID','value':EntityAddress,'description':'Entity\x20registrar\x20ID'}],VALUE_TYPES=Object['entries'](ValueType)['filter'](([a,b])=>isNaN(Number(a))&&a!=='Value')['map'](([a,b])=>({'name':a,'value':a,'description':'Value\x20type\x20'+a+'\x20=\x20'+b})),OBJECT_TYPES=Object['values'](ObjectType)['map'](a=>({'name':a,'value':a,'description':'Object\x20type\x20'+a}));export const INFO_CONSTANT={'type':'constants','constants':CONSTANTS,'value_types':VALUE_TYPES,'object_types':OBJECT_TYPES,'guard_instructions':Object['values'](OperatorType)['map'](a=>({'name':a,'value':a,'description':'Guard\x20instruction\x20'+a})),'guard_contexts':Object['values'](ContextType)['map'](a=>({'name':a,'value':a,'description':'Guard\x20context\x20'+a})),'guard_witnesses':Object['values'](WitnessType)['map'](a=>({'name':a,'value':a,'description':'Guard\x20witness\x20'+a}))};export async function queryProtocolInfo(a){switch(a['info']){case'constants':return{'info':'constants','result':INFO_CONSTANT['constants']};case'built-in\x20permissions':return{'info':'built-in\x20permissions','result':queryPermissions(a['filter']||{})};case'guard\x20instructions':return{'info':'guard\x20instructions','result':filterGuardInstruct(a['filter']||{})};case'current\x20network':return{'info':'current\x20network','result':await Config['Instance']()['network_get']()};case'value\x20types':return{'info':'value\x20types','result':INFO_CONSTANT['value_types']};default:throw new Error('Unsupported\x20info\x20type:\x20\x22'+a['info']+'\x22.\x20Valid\x20are:\x20\x22constants\x22,\x20\x22built-in\x20permissions\x22,\x20\x22guard\x20instructions\x22,\x20\x22current\x20network\x22,\x20\x22value\x20types\x22');}}export function queryPermissions(a){return query_permissions(a);}