wowok 2.1.40 → 2.2.0

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 +113 -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 +113 -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
@@ -8,5 +8,6 @@ export declare const checkType: (type: ValueType | ContextType.TypeClock | Conte
8
8
  export interface RestoreNodeResult {
9
9
  root: GuardNode;
10
10
  rep_quote: Map<string, string[]>;
11
+ autoGeneratedIdentifiers: number[];
11
12
  }
12
13
  export declare const restoreNodeFromOutput: (output: Uint8Array, table: GuardTableItem[]) => RestoreNodeResult;
@@ -1,566 +1 @@
1
- import { bcs } from "../../bcs/index.js";
2
- import { isValueTypeNumber, OperatorType, ValueType, parseValueType, } from "../common.js";
3
- import { ContextType, MAX_ENV_PERMISSION_GUARD_COUNT } from "../common.js";
4
- import { W_ERROR, WErrors } from "../exception.js";
5
- import { Config, GetAccountOrMark_Address } from "../local/index.js";
6
- import { LocalMark } from "../local/local.js";
7
- import { GUARDQUERY, getGuardQueryInfo } from "./guard-ins.js";
8
- export const getCallEnvAccount = async (env) => {
9
- const acc = await GetAccountOrMark_Address({
10
- name_or_address: env.account || "",
11
- });
12
- if (!acc) {
13
- W_ERROR(WErrors.InvalidParam, `account ${env.account} not found`);
14
- }
15
- env.account = acc;
16
- return acc;
17
- };
18
- function createSingleOperandNode(property, operand) {
19
- const node = { type: property, node: operand };
20
- return node;
21
- }
22
- export const resolveCallEnv = async (env) => {
23
- env.network = await Config.Instance().network_get(env?.network);
24
- const acc = await getCallEnvAccount(env);
25
- if (env?.permission_guard && env.permission_guard?.length > 0) {
26
- const guards = await LocalMark.Instance().get_many_address_availables(env.permission_guard);
27
- if (guards.length !== env.permission_guard.length) {
28
- const foundGuardSet = new Set(guards);
29
- const notFoundGuards = env.permission_guard.filter((guard) => !foundGuardSet.has(guard));
30
- W_ERROR(WErrors.InvalidParam, `permission_guard not found: ${notFoundGuards.join(", ")}`);
31
- }
32
- env.permission_guard = [...guards];
33
- if (env.permission_guard.length > MAX_ENV_PERMISSION_GUARD_COUNT) {
34
- W_ERROR(WErrors.InvalidParam, `permission_guard length ${env.permission_guard.length} exceeds ${MAX_ENV_PERMISSION_GUARD_COUNT}`);
35
- }
36
- }
37
- if (env?.referrer) {
38
- const r = await GetAccountOrMark_Address({
39
- name_or_address: env.referrer || "",
40
- });
41
- if (r) {
42
- env.referrer = r;
43
- }
44
- else {
45
- W_ERROR(WErrors.InvalidParam, `referrer ${env.referrer} not found`);
46
- }
47
- }
48
- return acc;
49
- };
50
- export const checkType = (type, type_required, node) => {
51
- if (type_required === "variable") {
52
- return;
53
- }
54
- else if (type_required === "number") {
55
- if (isValueTypeNumber(type) ||
56
- type === ContextType.TypeClock ||
57
- type === ValueType.Value) {
58
- return;
59
- }
60
- }
61
- else if (type_required === ValueType.Address) {
62
- if (type === ContextType.TypeSigner ||
63
- type === ContextType.TypeGuard ||
64
- type === ValueType.Value) {
65
- return;
66
- }
67
- }
68
- else if (type === ValueType.Value) {
69
- return;
70
- }
71
- else if (type_required === ValueType.Value) {
72
- return;
73
- }
74
- else if (type_required === "vec_number") {
75
- if (type === ValueType.VecU8 ||
76
- type === ValueType.VecU16 ||
77
- type === ValueType.VecU32 ||
78
- type === ValueType.VecU64 ||
79
- type === ValueType.VecU128 ||
80
- type === ValueType.VecU256) {
81
- return;
82
- }
83
- }
84
- else if (type_required === "vec") {
85
- if (type === ValueType.VecBool ||
86
- type === ValueType.VecAddress ||
87
- type === ValueType.VecString ||
88
- type === ValueType.VecU8 ||
89
- type === ValueType.VecU16 ||
90
- type === ValueType.VecU32 ||
91
- type === ValueType.VecU64 ||
92
- type === ValueType.VecU128 ||
93
- type === ValueType.VecU256) {
94
- return;
95
- }
96
- }
97
- if (type !== type_required) {
98
- W_ERROR(WErrors.InvalidParam, `checkType: ${type} require type: ${type_required} with node: ${JSON.stringify(node)}`);
99
- }
100
- };
101
- const parseNode = (parserState) => {
102
- if (parserState.currentPosition >= parserState.output.length) {
103
- W_ERROR(WErrors.InvalidParam, "parseNode: Unexpected end of output while parsing node");
104
- }
105
- const opCode = parserState.output[parserState.currentPosition];
106
- parserState.currentPosition++;
107
- switch (opCode) {
108
- case ContextType.TypeConstant:
109
- if (parserState.currentPosition >= parserState.output.length) {
110
- W_ERROR(WErrors.InvalidParam, "parseNode: Missing identifier after TypeConstant opcode");
111
- }
112
- const identifierByte = parserState.output[parserState.currentPosition];
113
- parserState.currentPosition++;
114
- return { type: "identifier", identifier: identifierByte };
115
- case OperatorType.TypeQuery:
116
- return parseQueryNode(parserState);
117
- case OperatorType.TypeLogicAsU256GreaterEqual:
118
- return parseMultiOperandNode(parserState, "logic_as_u256_greater_or_equal");
119
- case OperatorType.TypeLogicAsU256LesserEqual:
120
- return parseMultiOperandNode(parserState, "logic_as_u256_lesser_or_equal");
121
- case OperatorType.TypeLogicAsU256Equal:
122
- return parseMultiOperandNode(parserState, "logic_as_u256_equal");
123
- case OperatorType.TypeLogicAsU256Greater:
124
- return parseMultiOperandNode(parserState, "logic_as_u256_greater");
125
- case OperatorType.TypeLogicAsU256Lesser:
126
- return parseMultiOperandNode(parserState, "logic_as_u256_lesser");
127
- case OperatorType.TypeLogicEqual:
128
- return parseMultiOperandNode(parserState, "logic_equal");
129
- case OperatorType.TypeLogicAnd:
130
- return parseMultiOperandNode(parserState, "logic_and");
131
- case OperatorType.TypeLogicOr:
132
- return parseMultiOperandNode(parserState, "logic_or");
133
- case OperatorType.TypeStringContains:
134
- return parseMultiOperandNode(parserState, "logic_string_contains");
135
- case OperatorType.TypeStringNocaseContains:
136
- return parseMultiOperandNode(parserState, "logic_string_nocase_contains");
137
- case OperatorType.TypeStringNocaseEqual:
138
- return parseMultiOperandNode(parserState, "logic_string_nocase_equal");
139
- case OperatorType.TypeNumberAdd:
140
- return parseMultiOperandNode(parserState, "calc_number_add");
141
- case OperatorType.TypeNumberSubtract:
142
- return parseMultiOperandNode(parserState, "calc_number_subtract");
143
- case OperatorType.TypeNumberMultiply:
144
- return parseMultiOperandNode(parserState, "calc_number_multiply");
145
- case OperatorType.TypeNumberDivide:
146
- return parseMultiOperandNode(parserState, "calc_number_divide");
147
- case OperatorType.TypeNumberMod:
148
- return parseMultiOperandNode(parserState, "calc_number_mod");
149
- case OperatorType.TypeLogicNot:
150
- return parseSingleOperandNode(parserState, "logic_not");
151
- case OperatorType.TypeStringLength:
152
- return parseSingleOperandNode(parserState, "calc_string_length");
153
- case OperatorType.TypeNumberAddress:
154
- return parseSingleOperandNode(parserState, "convert_number_address");
155
- case OperatorType.TypeAddressNumber:
156
- return parseSingleOperandNode(parserState, "convert_address_number");
157
- case OperatorType.TypeNumberString:
158
- return parseSingleOperandNode(parserState, "convert_number_string");
159
- case OperatorType.TypeStringNumber:
160
- return parseSingleOperandNode(parserState, "convert_string_number");
161
- case OperatorType.TypeSafeU8:
162
- return parseSingleOperandNode(parserState, "convert_safe_u8");
163
- case OperatorType.TypeSafeU16:
164
- return parseSingleOperandNode(parserState, "convert_safe_u16");
165
- case OperatorType.TypeSafeU32:
166
- return parseSingleOperandNode(parserState, "convert_safe_u32");
167
- case OperatorType.TypeSafeU64:
168
- return parseSingleOperandNode(parserState, "convert_safe_u64");
169
- case OperatorType.TypeSafeU128:
170
- return parseSingleOperandNode(parserState, "convert_safe_u128");
171
- case OperatorType.TypeSafeU256:
172
- return parseSingleOperandNode(parserState, "convert_safe_u256");
173
- case OperatorType.TypeStringIndexof:
174
- return parseTwoOperandNode(parserState, "calc_string_indexof");
175
- case OperatorType.TypeStringNocaseIndexof:
176
- return parseTwoOperandNode(parserState, "calc_string_nocase_indexof");
177
- case OperatorType.TypedValueType:
178
- return parseSingleOperandNode(parserState, "value_type");
179
- case OperatorType.TypedValueVecLength:
180
- return parseSingleOperandNode(parserState, "vec_length");
181
- case OperatorType.TypedValueVecContains_Bool:
182
- return parseMultiOperandNode(parserState, "vec_contains_bool");
183
- case OperatorType.TypedValueVecContains_Address:
184
- return parseMultiOperandNode(parserState, "vec_contains_address");
185
- case OperatorType.TypedValueVecContains_String:
186
- return parseMultiOperandNode(parserState, "vec_contains_string");
187
- case OperatorType.TypedValueVecContains_StringNoCase:
188
- return parseMultiOperandNode(parserState, "vec_contains_string_nocase");
189
- case OperatorType.TypedValueVecContains_Number:
190
- return parseMultiOperandNode(parserState, "vec_contains_number");
191
- case OperatorType.TypedValueVecIndexOf_Bool:
192
- return parseTwoOperandNode(parserState, "vec_indexof_bool");
193
- case OperatorType.TypedValueVecIndexOf_Address:
194
- return parseTwoOperandNode(parserState, "vec_indexof_address");
195
- case OperatorType.TypedValueVecIndexOf_String:
196
- return parseTwoOperandNode(parserState, "vec_indexof_string");
197
- case OperatorType.TypedValueVecIndexOf_StringNoCase:
198
- return parseTwoOperandNode(parserState, "vec_indexof_string_nocase");
199
- case OperatorType.TypedValueVecIndexOf_Number:
200
- return parseTwoOperandNode(parserState, "vec_indexof_number");
201
- case ContextType.TypeSigner:
202
- return { type: "context", context: "Signer" };
203
- case ContextType.TypeGuard:
204
- return { type: "context", context: "Guard" };
205
- case ContextType.TypeClock:
206
- return { type: "context", context: "Clock" };
207
- default:
208
- throw new Error(`ParseGuardNode: Unknown opcode: ${opCode}`);
209
- }
210
- };
211
- const parseMultiOperandNode = (parserState, nodeProperty) => {
212
- if (parserState.currentPosition >= parserState.output.length) {
213
- W_ERROR(WErrors.InvalidParam, "parseMultiOperandNode: Insufficient data for multi-operand operation");
214
- }
215
- const operandCount = parserState.output[parserState.currentPosition];
216
- parserState.currentPosition++;
217
- const operands = [];
218
- for (let i = 0; i < operandCount; i++) {
219
- operands.unshift(parseNode(parserState));
220
- }
221
- const node = {
222
- type: nodeProperty,
223
- nodes: operands,
224
- };
225
- return node;
226
- };
227
- const parseSingleOperandNode = (parserState, nodeProperty) => {
228
- const operand = parseNode(parserState);
229
- return createSingleOperandNode(nodeProperty, operand);
230
- };
231
- const parseTwoOperandNode = (parserState, nodeProperty) => {
232
- if (parserState.currentPosition >= parserState.output.length) {
233
- W_ERROR(WErrors.InvalidParam, "parseTwoOperandNode: Missing order byte");
234
- }
235
- const orderByte = parserState.output[parserState.currentPosition];
236
- parserState.currentPosition++;
237
- const order = orderByte === 0 ? "forward" : "backward";
238
- const nodeRight = parseNode(parserState);
239
- const nodeLeft = parseNode(parserState);
240
- const node = {
241
- type: nodeProperty,
242
- nodeLeft,
243
- nodeRight,
244
- order,
245
- };
246
- return node;
247
- };
248
- const parseQueryNode = (parserState) => {
249
- if (parserState.currentPosition >= parserState.output.length) {
250
- W_ERROR(WErrors.InvalidParam, "parseQueryNode: Missing witness byte after TypeQuery opcode");
251
- }
252
- const witnessByte = parserState.output[parserState.currentPosition];
253
- parserState.currentPosition++;
254
- if (parserState.currentPosition >= parserState.output.length) {
255
- W_ERROR(WErrors.InvalidParam, "parseQueryNode: Missing object identifier after witness byte");
256
- }
257
- const objectIdentifier = parserState.output[parserState.currentPosition];
258
- parserState.currentPosition++;
259
- const remainingBytes = parserState.output.subarray(parserState.currentPosition);
260
- if (remainingBytes.length < 2) {
261
- W_ERROR(WErrors.InvalidParam, "parseQueryNode: Not enough bytes for query ID after object identifier");
262
- }
263
- const queryId = bcs.U16.parse(remainingBytes);
264
- parserState.currentPosition += 2;
265
- const query = GUARDQUERY.find((q) => q.id === queryId);
266
- if (!query) {
267
- W_ERROR(WErrors.InvalidParam, `parseQueryNode: Query with ID ${queryId} not found`);
268
- }
269
- const queryInfo = getGuardQueryInfo(queryId);
270
- if (!queryInfo) {
271
- W_ERROR(WErrors.InvalidParam, `parseQueryNode: Query name not found for ID ${queryId}`);
272
- }
273
- const parameters = [];
274
- const paramTypes = queryInfo.parameters;
275
- for (let i = paramTypes.length - 1; i >= 0; i--) {
276
- parameters.unshift(parseNode(parserState));
277
- }
278
- const node = {
279
- type: "query",
280
- query: queryInfo.name,
281
- object: {
282
- identifier: objectIdentifier,
283
- ...(witnessByte !== ContextType.TypeConstant
284
- ? { convert_witness: witnessByte }
285
- : {}),
286
- },
287
- parameters,
288
- };
289
- return node;
290
- };
291
- export const restoreNodeFromOutput = (output, table) => {
292
- try {
293
- if (!output || output.length === 0) {
294
- W_ERROR(WErrors.InvalidParam, "restoreNodeFromOutput: output is empty");
295
- }
296
- const nodeStack = [];
297
- const rep_quote = new Map();
298
- let position = 0;
299
- const readByte = () => {
300
- if (position >= output.length) {
301
- W_ERROR(WErrors.InvalidParam, "readByte: Unexpected end of output");
302
- }
303
- return output[position++];
304
- };
305
- const readU16 = () => {
306
- if (position + 2 > output.length) {
307
- W_ERROR(WErrors.InvalidParam, "readU16: Insufficient bytes for u16");
308
- }
309
- const value = output[position] + output[position + 1] * 256;
310
- position += 2;
311
- return value;
312
- };
313
- while (position < output.length) {
314
- const opCode = readByte();
315
- switch (opCode) {
316
- case ContextType.TypeConstant: {
317
- const identifier = readByte();
318
- nodeStack.push({ type: "identifier", identifier });
319
- break;
320
- }
321
- case ContextType.TypeSigner:
322
- nodeStack.push({ type: "context", context: "Signer" });
323
- break;
324
- case ContextType.TypeClock:
325
- nodeStack.push({ type: "context", context: "Clock" });
326
- break;
327
- case ContextType.TypeGuard:
328
- nodeStack.push({ type: "context", context: "Guard" });
329
- break;
330
- case OperatorType.TypeQuery: {
331
- const witnessByte = readByte();
332
- const identifier = readByte();
333
- const queryId = readU16();
334
- const queryInfo = getGuardQueryInfo(queryId);
335
- if (!queryInfo) {
336
- W_ERROR(WErrors.InvalidParam, `restoreNodeFromOutput: Query with ID ${queryId} not found`);
337
- }
338
- const parameters = [];
339
- for (let i = 0; i < queryInfo.parameters.length; i++) {
340
- if (nodeStack.length === 0) {
341
- W_ERROR(WErrors.InvalidParam, `restoreNodeFromOutput: Insufficient parameters for query ${queryInfo.name}`);
342
- }
343
- parameters.unshift(nodeStack.pop());
344
- }
345
- if (queryInfo.id === 1167 &&
346
- parameters[0].type === "identifier" &&
347
- parameters[0]?.identifier != null) {
348
- const rep_item = table.find((item) => item.identifier === identifier &&
349
- !item.b_submission);
350
- const policy_item = table.find((item) => item.identifier ===
351
- parameters[0].identifier &&
352
- !item.b_submission);
353
- const repItemValueType = rep_item
354
- ? parseValueType(rep_item.value_type)
355
- : undefined;
356
- const policyItemValueType = policy_item
357
- ? parseValueType(policy_item.value_type)
358
- : undefined;
359
- if (rep_item &&
360
- policy_item &&
361
- repItemValueType === ValueType.Address &&
362
- policyItemValueType === ValueType.String) {
363
- if (rep_quote.has(rep_item.value)) {
364
- if (!rep_quote
365
- .get(rep_item.value)
366
- .includes(policy_item.value)) {
367
- rep_quote
368
- .get(rep_item.value)
369
- .push(policy_item.value);
370
- }
371
- }
372
- else {
373
- rep_quote.set(rep_item.value, [
374
- policy_item.value,
375
- ]);
376
- }
377
- }
378
- }
379
- nodeStack.push({
380
- type: "query",
381
- query: queryInfo.name,
382
- object: {
383
- identifier,
384
- ...(witnessByte !== ContextType.TypeConstant
385
- ? { convert_witness: witnessByte }
386
- : {}),
387
- },
388
- parameters,
389
- });
390
- break;
391
- }
392
- case OperatorType.TypeLogicEqual:
393
- case OperatorType.TypeLogicAnd:
394
- case OperatorType.TypeLogicOr:
395
- case OperatorType.TypeLogicAsU256GreaterEqual:
396
- case OperatorType.TypeLogicAsU256LesserEqual:
397
- case OperatorType.TypeLogicAsU256Equal:
398
- case OperatorType.TypeLogicAsU256Greater:
399
- case OperatorType.TypeLogicAsU256Lesser:
400
- case OperatorType.TypeStringContains:
401
- case OperatorType.TypeStringNocaseContains:
402
- case OperatorType.TypeStringNocaseEqual:
403
- case OperatorType.TypeNumberAdd:
404
- case OperatorType.TypeNumberSubtract:
405
- case OperatorType.TypeNumberMultiply:
406
- case OperatorType.TypeNumberDivide:
407
- case OperatorType.TypeNumberMod: {
408
- const operandCount = readByte();
409
- const operands = [];
410
- for (let i = 0; i < operandCount; i++) {
411
- if (nodeStack.length === 0) {
412
- W_ERROR(WErrors.InvalidParam, `restoreNodeFromOutput: Insufficient operands for multi-operand operation`);
413
- }
414
- operands.push(nodeStack.pop());
415
- }
416
- const nodeProperty = getNodePropertyFromOpCode(opCode);
417
- nodeStack.push({
418
- type: nodeProperty,
419
- nodes: operands,
420
- });
421
- break;
422
- }
423
- case OperatorType.TypeLogicNot:
424
- case OperatorType.TypeStringLength:
425
- case OperatorType.TypeNumberAddress:
426
- case OperatorType.TypeAddressNumber:
427
- case OperatorType.TypeNumberString:
428
- case OperatorType.TypeStringNumber:
429
- case OperatorType.TypeSafeU8:
430
- case OperatorType.TypeSafeU16:
431
- case OperatorType.TypeSafeU32:
432
- case OperatorType.TypeSafeU64:
433
- case OperatorType.TypeSafeU128:
434
- case OperatorType.TypeSafeU256:
435
- case OperatorType.TypedValueType:
436
- case OperatorType.TypedValueVecLength: {
437
- if (nodeStack.length === 0) {
438
- W_ERROR(WErrors.InvalidParam, `restoreNodeFromOutput: Insufficient operand for single-operand operation`);
439
- }
440
- const operand = nodeStack.pop();
441
- const nodeProperty = getNodePropertyFromOpCode(opCode);
442
- nodeStack.push({
443
- type: nodeProperty,
444
- node: operand,
445
- });
446
- break;
447
- }
448
- case OperatorType.TypeStringIndexof:
449
- case OperatorType.TypeStringNocaseIndexof:
450
- case OperatorType.TypedValueVecIndexOf_Bool:
451
- case OperatorType.TypedValueVecIndexOf_Address:
452
- case OperatorType.TypedValueVecIndexOf_String:
453
- case OperatorType.TypedValueVecIndexOf_StringNoCase:
454
- case OperatorType.TypedValueVecIndexOf_Number: {
455
- const orderByte = readByte();
456
- const order = orderByte === 0 ? "forward" : "backward";
457
- if (nodeStack.length < 2) {
458
- W_ERROR(WErrors.InvalidParam, `restoreNodeFromOutput: Insufficient operands for two-operand operation`);
459
- }
460
- const nodeLeft = nodeStack.pop();
461
- const nodeRight = nodeStack.pop();
462
- const nodeProperty = getNodePropertyFromOpCode(opCode);
463
- nodeStack.push({
464
- type: nodeProperty,
465
- nodeLeft,
466
- nodeRight,
467
- order,
468
- });
469
- break;
470
- }
471
- default:
472
- W_ERROR(WErrors.InvalidParam, `restoreNodeFromOutput: Unknown opcode ${opCode}`);
473
- }
474
- }
475
- if (nodeStack.length !== 1) {
476
- W_ERROR(WErrors.InvalidParam, `restoreNodeFromOutput: Expected 1 node in stack, found ${nodeStack.length}`);
477
- }
478
- return {
479
- root: nodeStack[0],
480
- rep_quote,
481
- };
482
- }
483
- catch (error) {
484
- throw new Error(`restoreNodeFromOutput: Failed to restore GuardNode from output: ${error.message}`);
485
- }
486
- };
487
- const getNodePropertyFromOpCode = (opCode) => {
488
- switch (opCode) {
489
- case OperatorType.TypeLogicEqual:
490
- return "logic_equal";
491
- case OperatorType.TypeLogicAnd:
492
- return "logic_and";
493
- case OperatorType.TypeLogicOr:
494
- return "logic_or";
495
- case OperatorType.TypeLogicAsU256GreaterEqual:
496
- return "logic_as_u256_greater_or_equal";
497
- case OperatorType.TypeLogicAsU256LesserEqual:
498
- return "logic_as_u256_lesser_or_equal";
499
- case OperatorType.TypeLogicAsU256Equal:
500
- return "logic_as_u256_equal";
501
- case OperatorType.TypeLogicAsU256Greater:
502
- return "logic_as_u256_greater";
503
- case OperatorType.TypeLogicAsU256Lesser:
504
- return "logic_as_u256_lesser";
505
- case OperatorType.TypeStringContains:
506
- return "logic_string_contains";
507
- case OperatorType.TypeStringNocaseContains:
508
- return "logic_string_nocase_contains";
509
- case OperatorType.TypeStringNocaseEqual:
510
- return "logic_string_nocase_equal";
511
- case OperatorType.TypeNumberAdd:
512
- return "calc_number_add";
513
- case OperatorType.TypeNumberSubtract:
514
- return "calc_number_subtract";
515
- case OperatorType.TypeNumberMultiply:
516
- return "calc_number_multiply";
517
- case OperatorType.TypeNumberDivide:
518
- return "calc_number_divide";
519
- case OperatorType.TypeNumberMod:
520
- return "calc_number_mod";
521
- case OperatorType.TypeLogicNot:
522
- return "logic_not";
523
- case OperatorType.TypeStringLength:
524
- return "calc_string_length";
525
- case OperatorType.TypeNumberAddress:
526
- return "convert_number_address";
527
- case OperatorType.TypeAddressNumber:
528
- return "convert_address_number";
529
- case OperatorType.TypeNumberString:
530
- return "convert_number_string";
531
- case OperatorType.TypeStringNumber:
532
- return "convert_string_number";
533
- case OperatorType.TypeSafeU8:
534
- return "convert_safe_u8";
535
- case OperatorType.TypeSafeU16:
536
- return "convert_safe_u16";
537
- case OperatorType.TypeSafeU32:
538
- return "convert_safe_u32";
539
- case OperatorType.TypeSafeU64:
540
- return "convert_safe_u64";
541
- case OperatorType.TypeSafeU128:
542
- return "convert_safe_u128";
543
- case OperatorType.TypeSafeU256:
544
- return "convert_safe_u256";
545
- case OperatorType.TypedValueType:
546
- return "value_type";
547
- case OperatorType.TypedValueVecLength:
548
- return "vec_length";
549
- case OperatorType.TypeStringIndexof:
550
- return "calc_string_indexof";
551
- case OperatorType.TypeStringNocaseIndexof:
552
- return "calc_string_nocase_indexof";
553
- case OperatorType.TypedValueVecIndexOf_Bool:
554
- return "vec_indexof_bool";
555
- case OperatorType.TypedValueVecIndexOf_Address:
556
- return "vec_indexof_address";
557
- case OperatorType.TypedValueVecIndexOf_String:
558
- return "vec_indexof_string";
559
- case OperatorType.TypedValueVecIndexOf_StringNoCase:
560
- return "vec_indexof_string_nocase";
561
- case OperatorType.TypedValueVecIndexOf_Number:
562
- return "vec_indexof_number";
563
- default:
564
- return "unknown";
565
- }
566
- };
1
+ import{bcs}from'../../bcs/index.js';import{isValueTypeNumber,OperatorType,ValueType,parseValueType}from'../common.js';import{ContextType,MAX_ENV_PERMISSION_GUARD_COUNT}from'../common.js';import{W_ERROR,WErrors}from'../exception.js';import{Config,GetAccountOrMark_Address}from'../local/index.js';import{LocalMark}from'../local/local.js';import{GUARDQUERY,getGuardQueryInfo}from'./guard-ins.js';const ProgressHistoryFindConditionsBCS=bcs['struct']('ProgressHistoryFindConditions',{'node':bcs['option'](bcs['String']),'next_node':bcs['option'](bcs['String']),'time_min':bcs['option'](bcs['U64']),'time_max':bcs['option'](bcs['U64']),'find':bcs['U8']}),ProgressSessionFindConditionsBCS=bcs['struct']('ProgressSessionFindConditions',{'next_node':bcs['option'](bcs['String']),'find':bcs['U8']}),ProgressForwardFindConditionsBCS=bcs['struct']('ProgressForwardFindConditions',{'who':bcs['option'](bcs['Address']),'operation':bcs['option'](bcs['String']),'accomplished':bcs['option'](bcs['Bool']),'time_min':bcs['option'](bcs['U64']),'time_max':bcs['option'](bcs['U64']),'find':bcs['U8']}),StoreFromIdFilterBCS=bcs['struct']('StoreFromIdFilter',{'mode':bcs['U8'],'value':bcs['option'](bcs['Address'])}),RecordQueryConditionsBCS=bcs['struct']('RecordQueryConditions',{'recipient':bcs['Address'],'guard':bcs['option'](bcs['Address']),'time_min':bcs['option'](bcs['U64']),'time_max':bcs['option'](bcs['U64']),'amount_min':bcs['option'](bcs['U64']),'amount_max':bcs['option'](bcs['U64']),'store_from_id':bcs['option'](StoreFromIdFilterBCS)});export const getCallEnvAccount=async a=>{const b=await GetAccountOrMark_Address({'name_or_address':a['account']||''});return!b&&W_ERROR(WErrors['InvalidParam'],'account\x20'+a['account']+'\x20not\x20found'),a['account']=b,b;};function createSingleOperandNode(a,b){const c={'type':a,'node':b};return c;}export const resolveCallEnv=async a=>{a['network']=await Config['Instance']()['network_get'](a?.['network']);const b=await getCallEnvAccount(a);if(a?.['permission_guard']&&a['permission_guard']?.['length']>0x0){const c=await LocalMark['Instance']()['get_many_address_availables'](a['permission_guard']);if(c['length']!==a['permission_guard']['length']){const d=new Set(c),e=a['permission_guard']['filter'](f=>!d['has'](f));W_ERROR(WErrors['InvalidParam'],'permission_guard\x20not\x20found:\x20'+e['join'](',\x20'));}a['permission_guard']=[...c],a['permission_guard']['length']>MAX_ENV_PERMISSION_GUARD_COUNT&&W_ERROR(WErrors['InvalidParam'],'permission_guard\x20length\x20'+a['permission_guard']['length']+'\x20exceeds\x20'+MAX_ENV_PERMISSION_GUARD_COUNT);}if(a?.['referrer']){const f=await GetAccountOrMark_Address({'name_or_address':a['referrer']||''});f?a['referrer']=f:W_ERROR(WErrors['InvalidParam'],'referrer\x20'+a['referrer']+'\x20not\x20found');}return b;};export const checkType=(a,b,c)=>{if(b==='variable')return;else{if(b==='number'){if(isValueTypeNumber(a)||a===ContextType['TypeClock']||a===ValueType['Value'])return;}else{if(b===ValueType['Address']){if(a===ContextType['TypeSigner']||a===ContextType['TypeGuard']||a===ValueType['Value'])return;}else{if(a===ValueType['Value'])return;else{if(b===ValueType['Value'])return;else{if(b==='vec_number'){if(a===ValueType['VecU8']||a===ValueType['VecU16']||a===ValueType['VecU32']||a===ValueType['VecU64']||a===ValueType['VecU128']||a===ValueType['VecU256'])return;}else{if(b==='vec'){if(a===ValueType['VecBool']||a===ValueType['VecAddress']||a===ValueType['VecString']||a===ValueType['VecU8']||a===ValueType['VecU16']||a===ValueType['VecU32']||a===ValueType['VecU64']||a===ValueType['VecU128']||a===ValueType['VecU256'])return;}}}}}}}a!==b&&W_ERROR(WErrors['InvalidParam'],'checkType:\x20'+a+'\x20require\x20type:\x20'+b+'\x20with\x20node:\x20'+JSON['stringify'](c));};const parseNode=a=>{a['currentPosition']>=a['output']['length']&&W_ERROR(WErrors['InvalidParam'],'parseNode:\x20Unexpected\x20end\x20of\x20output\x20while\x20parsing\x20node');const b=a['output'][a['currentPosition']];a['currentPosition']++;switch(b){case ContextType['TypeConstant']:a['currentPosition']>=a['output']['length']&&W_ERROR(WErrors['InvalidParam'],'parseNode:\x20Missing\x20identifier\x20after\x20TypeConstant\x20opcode');const c=a['output'][a['currentPosition']];a['currentPosition']++;return{'type':'identifier','identifier':c};case OperatorType['TypeQuery']:return parseQueryNode(a);case OperatorType['TypeLogicAsU256GreaterEqual']:return parseMultiOperandNode(a,'logic_as_u256_greater_or_equal');case OperatorType['TypeLogicAsU256LesserEqual']:return parseMultiOperandNode(a,'logic_as_u256_lesser_or_equal');case OperatorType['TypeLogicAsU256Equal']:return parseMultiOperandNode(a,'logic_as_u256_equal');case OperatorType['TypeLogicAsU256Greater']:return parseMultiOperandNode(a,'logic_as_u256_greater');case OperatorType['TypeLogicAsU256Lesser']:return parseMultiOperandNode(a,'logic_as_u256_lesser');case OperatorType['TypeLogicEqual']:return parseMultiOperandNode(a,'logic_equal');case OperatorType['TypeLogicAnd']:return parseMultiOperandNode(a,'logic_and');case OperatorType['TypeLogicOr']:return parseMultiOperandNode(a,'logic_or');case OperatorType['TypeStringContains']:return parseMultiOperandNode(a,'logic_string_contains');case OperatorType['TypeStringNocaseContains']:return parseMultiOperandNode(a,'logic_string_nocase_contains');case OperatorType['TypeStringNocaseEqual']:return parseMultiOperandNode(a,'logic_string_nocase_equal');case OperatorType['TypeNumberAdd']:return parseMultiOperandNode(a,'calc_number_add');case OperatorType['TypeNumberSubtract']:return parseMultiOperandNode(a,'calc_number_subtract');case OperatorType['TypeNumberMultiply']:return parseMultiOperandNode(a,'calc_number_multiply');case OperatorType['TypeNumberDivide']:return parseMultiOperandNode(a,'calc_number_divide');case OperatorType['TypeNumberMod']:return parseMultiOperandNode(a,'calc_number_mod');case OperatorType['TypeLogicNot']:return parseSingleOperandNode(a,'logic_not');case OperatorType['TypeStringLength']:return parseSingleOperandNode(a,'calc_string_length');case OperatorType['TypeNumberAddress']:return parseSingleOperandNode(a,'convert_number_address');case OperatorType['TypeAddressNumber']:return parseSingleOperandNode(a,'convert_address_number');case OperatorType['TypeNumberString']:return parseSingleOperandNode(a,'convert_number_string');case OperatorType['TypeStringNumber']:return parseSingleOperandNode(a,'convert_string_number');case OperatorType['TypeSafeU8']:return parseSingleOperandNode(a,'convert_safe_u8');case OperatorType['TypeSafeU16']:return parseSingleOperandNode(a,'convert_safe_u16');case OperatorType['TypeSafeU32']:return parseSingleOperandNode(a,'convert_safe_u32');case OperatorType['TypeSafeU64']:return parseSingleOperandNode(a,'convert_safe_u64');case OperatorType['TypeSafeU128']:return parseSingleOperandNode(a,'convert_safe_u128');case OperatorType['TypeSafeU256']:return parseSingleOperandNode(a,'convert_safe_u256');case OperatorType['TypeStringIndexof']:return parseTwoOperandNode(a,'calc_string_indexof');case OperatorType['TypeStringNocaseIndexof']:return parseTwoOperandNode(a,'calc_string_nocase_indexof');case OperatorType['TypedValueType']:return parseSingleOperandNode(a,'value_type');case OperatorType['TypedValueVecLength']:return parseSingleOperandNode(a,'vec_length');case OperatorType['TypedValueVecContains_Bool']:return parseMultiOperandNode(a,'vec_contains_bool');case OperatorType['TypedValueVecContains_Address']:return parseMultiOperandNode(a,'vec_contains_address');case OperatorType['TypedValueVecContains_String']:return parseMultiOperandNode(a,'vec_contains_string');case OperatorType['TypedValueVecContains_StringNoCase']:return parseMultiOperandNode(a,'vec_contains_string_nocase');case OperatorType['TypedValueVecContains_Number']:return parseMultiOperandNode(a,'vec_contains_number');case OperatorType['TypedValueVecIndexOf_Bool']:return parseTwoOperandNode(a,'vec_indexof_bool');case OperatorType['TypedValueVecIndexOf_Address']:return parseTwoOperandNode(a,'vec_indexof_address');case OperatorType['TypedValueVecIndexOf_String']:return parseTwoOperandNode(a,'vec_indexof_string');case OperatorType['TypedValueVecIndexOf_StringNoCase']:return parseTwoOperandNode(a,'vec_indexof_string_nocase');case OperatorType['TypedValueVecIndexOf_Number']:return parseTwoOperandNode(a,'vec_indexof_number');case ContextType['TypeSigner']:return{'type':'context','context':'Signer'};case ContextType['TypeGuard']:return{'type':'context','context':'Guard'};case ContextType['TypeClock']:return{'type':'context','context':'Clock'};default:throw new Error('ParseGuardNode:\x20Unknown\x20opcode:\x20'+b);}},parseMultiOperandNode=(a,b)=>{a['currentPosition']>=a['output']['length']&&W_ERROR(WErrors['InvalidParam'],'parseMultiOperandNode:\x20Insufficient\x20data\x20for\x20multi-operand\x20operation');const c=a['output'][a['currentPosition']];a['currentPosition']++;const d=[];for(let f=0x0;f<c;f++){d['unshift'](parseNode(a));}const e={'type':b,'nodes':d};return e;},parseSingleOperandNode=(a,b)=>{const c=parseNode(a);return createSingleOperandNode(b,c);},parseTwoOperandNode=(a,b)=>{a['currentPosition']>=a['output']['length']&&W_ERROR(WErrors['InvalidParam'],'parseTwoOperandNode:\x20Missing\x20order\x20byte');const c=a['output'][a['currentPosition']];a['currentPosition']++;const d=c===0x0?'forward':'backward',e=parseNode(a),f=parseNode(a),g={'type':b,'nodeLeft':f,'nodeRight':e,'order':d};return g;},parseQueryNode=a=>{a['currentPosition']>=a['output']['length']&&W_ERROR(WErrors['InvalidParam'],'parseQueryNode:\x20Missing\x20witness\x20byte\x20after\x20TypeQuery\x20opcode');const b=a['output'][a['currentPosition']];a['currentPosition']++;a['currentPosition']>=a['output']['length']&&W_ERROR(WErrors['InvalidParam'],'parseQueryNode:\x20Missing\x20object\x20identifier\x20after\x20witness\x20byte');const c=a['output'][a['currentPosition']];a['currentPosition']++;const d=a['output']['subarray'](a['currentPosition']);d['length']<0x2&&W_ERROR(WErrors['InvalidParam'],'parseQueryNode:\x20Not\x20enough\x20bytes\x20for\x20query\x20ID\x20after\x20object\x20identifier');const e=bcs['U16']['parse'](d);a['currentPosition']+=0x2;const f=GUARDQUERY['find'](m=>m['id']===e);!f&&W_ERROR(WErrors['InvalidParam'],'parseQueryNode:\x20Query\x20with\x20ID\x20'+e+'\x20not\x20found');const g=getGuardQueryInfo(e);!g&&W_ERROR(WErrors['InvalidParam'],'parseQueryNode:\x20Query\x20name\x20not\x20found\x20for\x20ID\x20'+e);const h=[],j=g['parameters'];for(let m=j['length']-0x1;m>=0x0;m--){h['unshift'](parseNode(a));}const k=parseSpecializedQueryNode(e,c,h,a['table']);if(k)return k;const l={'type':'query','query':g['name'],'object':{'identifier':c,...b!==ContextType['TypeConstant']?{'convert_witness':b}:{}},'parameters':h};return l;},parseSpecializedQueryNode=(a,b,c,d)=>{if(a>=0x65a&&a<=0x65d)return parseRewardRecordQueryNode(a,b,c,d);if(a>=0x4fa&&a<=0x4ff)return parseProgressQueryNode(a,b,c,d);return null;},parseRewardRecordQueryNode=(a,b,c,d)=>{if(c['length']!==0x1||c[0x0]['type']!=='identifier')return null;const f=c[0x0]['identifier'];let g,h;switch(a){case 0x65a:g='query_reward_record_find',h='first';break;case 0x65b:g='query_reward_record_find',h='last';break;case 0x65c:g='query_reward_record_count';break;case 0x65d:g='query_reward_record_exists';break;default:return null;}const i=getConditionsFromTable(d,f);let j={};if(i)try{const m=RecordQueryConditionsBCS['parse'](i);j={'recipient':m['recipient'],'guard':m['guard'],'time_min':m['time_min'],'time_max':m['time_max'],'amount_min':m['amount_min'],'amount_max':m['amount_max']};}catch(n){}const k={};if(j['recipient'])k['recipient']=j['recipient'];if(j['guard'])k['guard']=j['guard'];if(j['time_min']!==null&&j['time_min']!==undefined)k['timeMin']=j['time_min']['toString']();if(j['time_max']!==null&&j['time_max']!==undefined)k['timeMax']=j['time_max']['toString']();if(j['amount_min']!==null&&j['amount_min']!==undefined)k['amountMin']=j['amount_min']['toString']();if(j['amount_max']!==null&&j['amount_max']!==undefined)k['amountMax']=j['amount_max']['toString']();const l={'object':{'identifier':b},'recipient':{'type':'identifier','identifier':f},'where':k};if(g==='query_reward_record_find')return{'type':g,...l,'find':h,'conditionsIdentifier':f};return{'type':g,...l,'conditionsIdentifier':f};},parseProgressQueryNode=(a,b,c,d)=>{switch(a){case 0x4fa:return parseProgressHistoryFindNode(b,c,d);case 0x4fb:return parseProgressSessionFindNode(b,c,d);case 0x4fc:return parseProgressForwardFindNode(b,c,d);case 0x4fd:return parseProgressSessionCountNode(b,c,d);case 0x4fe:return parseProgressForwardCountNode(b,c,d);case 0x4ff:return parseProgressRetainedCountNode(b,c,d);default:return null;}},parseProgressHistoryFindNode=(a,b,c)=>{if(b['length']!==0x1||b[0x0]['type']!=='identifier')return null;const d=b[0x0]['identifier'],f=getConditionsFromTable(c,d),g={};let h='first';if(f)try{const i=ProgressHistoryFindConditionsBCS['parse'](f);if(i['node'])g['node']=i['node'];if(i['next_node'])g['nextNode']=i['next_node'];if(i['time_min'])g['timeMin']=i['time_min']['toString']();if(i['time_max'])g['timeMax']=i['time_max']['toString']();h=i['find']===0x1?'last':'first';}catch(j){}return{'type':'query_progress_history_find','object':{'identifier':a},'where':g,'find':h,'conditionsIdentifier':d};},parseProgressSessionFindNode=(a,b,c)=>{if(b['length']!==0x2)return null;const d=b[0x0],f=b[0x1];if(d['type']!=='identifier')return null;if(f['type']!=='identifier'&&!f['type']['startsWith']('query_progress'))return null;const g=d['identifier'],h=getConditionsFromTable(c,g),i={};let j='first';if(h)try{const k=ProgressSessionFindConditionsBCS['parse'](h);if(k['next_node'])i['nextNode']=k['next_node'];j=k['find']===0x1?'last':'first';}catch(l){}return{'type':'query_progress_history_session_find','object':{'identifier':a},'historyIdx':f,'where':i,'find':j};},parseProgressForwardFindNode=(a,b,c)=>{if(b['length']!==0x3)return null;const d=b[0x0],f=b[0x1],g=b[0x2];if(d['type']!=='identifier')return null;const h=m=>m['type']==='identifier'||m['type']['startsWith']('query_progress');if(!h(f)||!h(g))return null;const i=d['identifier'],j=getConditionsFromTable(c,i),k={};let l='first';if(j)try{const m=ProgressForwardFindConditionsBCS['parse'](j);if(m['who'])k['who']=m['who'];if(m['operation'])k['operation']=m['operation'];if(m['accomplished']!==undefined)k['accomplished']=m['accomplished'];if(m['time_min'])k['timeMin']=m['time_min']['toString']();if(m['time_max'])k['timeMax']=m['time_max']['toString']();l=m['find']===0x1?'last':'first';}catch(n){}return{'type':'query_progress_history_session_forward_find','object':{'identifier':a},'historyIdx':g,'sessionIdx':f,'where':k,'find':l};},parseProgressSessionCountNode=(a,b,c)=>{if(b['length']!==0x1)return null;const d=b[0x0];if(d['type']!=='identifier'&&!d['type']['startsWith']('query_progress'))return null;return{'type':'query_progress_history_session_count','object':{'identifier':a},'historyIdx':d};},parseProgressForwardCountNode=(a,b,c)=>{if(b['length']!==0x2)return null;const d=b[0x0],e=b[0x1],f=g=>g['type']==='identifier'||g['type']['startsWith']('query_progress');if(!f(d)||!f(e))return null;return{'type':'query_progress_history_session_forward_count','object':{'identifier':a},'historyIdx':d,'sessionIdx':e};},parseProgressRetainedCountNode=(a,b,c)=>{if(b['length']!==0x3)return null;const d=b[0x0],e=b[0x1],f=b[0x2],g=h=>h['type']==='identifier'||h['type']['startsWith']('query_progress');if(!g(d)||!g(e)||!g(f))return null;return{'type':'query_progress_history_session_forward_retained_submission_count','object':{'identifier':a},'historyIdx':d,'sessionIdx':e,'forwardIdx':f};},getConditionsFromTable=(a,b)=>{const c=a['find'](d=>d['identifier']===b);if(!c||!c['value'])return null;if(Array['isArray'](c['value'])&&c['value']['length']>0x0&&typeof c['value'][0x0]==='number')return new Uint8Array(c['value']);return null;},createQueryNode=(a,b,c,d,e,f)=>{switch(a){case 0x4fa:{const g=parseProgressHistoryFindNode(c,e,f);if(g)return g;break;}case 0x4fb:{const h=parseProgressSessionFindNode(c,e,f);if(h)return h;break;}case 0x4fc:{const i=parseProgressForwardFindNode(c,e,f);if(i)return i;break;}case 0x4fd:{const j=parseProgressSessionCountNode(c,e,f);if(j)return j;break;}case 0x4fe:{const k=parseProgressForwardCountNode(c,e,f);if(k)return k;break;}case 0x4ff:{const l=parseProgressRetainedCountNode(c,e,f);if(l)return l;break;}}return{'type':'query','query':b,'object':{'identifier':c,...d!==ContextType['TypeConstant']?{'convert_witness':d}:{}},'parameters':e};};export const restoreNodeFromOutput=(a,b)=>{try{(!a||a['length']===0x0)&&W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20output\x20is\x20empty');const c=[],d=new Map();let e=0x0;const f=()=>{return e>=a['length']&&W_ERROR(WErrors['InvalidParam'],'readByte:\x20Unexpected\x20end\x20of\x20output'),a[e++];},g=()=>{e+0x2>a['length']&&W_ERROR(WErrors['InvalidParam'],'readU16:\x20Insufficient\x20bytes\x20for\x20u16');const j=a[e]+a[e+0x1]*0x100;return e+=0x2,j;};while(e<a['length']){const j=f();switch(j){case ContextType['TypeConstant']:{const k=f();c['push']({'type':'identifier','identifier':k});break;}case ContextType['TypeSigner']:c['push']({'type':'context','context':'Signer'});break;case ContextType['TypeClock']:c['push']({'type':'context','context':'Clock'});break;case ContextType['TypeGuard']:c['push']({'type':'context','context':'Guard'});break;case OperatorType['TypeQuery']:{const l=f(),m=f(),n=g(),o=getGuardQueryInfo(n);!o&&W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20Query\x20with\x20ID\x20'+n+'\x20not\x20found');const p=[];for(let r=0x0;r<o['parameters']['length'];r++){c['length']===0x0&&W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20Insufficient\x20parameters\x20for\x20query\x20'+o['name']),p['unshift'](c['pop']());}if(o['id']===0x48f&&p[0x0]['type']==='identifier'&&p[0x0]?.['identifier']!=null){const s=b['find'](w=>w['identifier']===m&&!w['b_submission']),t=b['find'](w=>w['identifier']===p[0x0]['identifier']&&!w['b_submission']),u=s?parseValueType(s['value_type']):undefined,v=t?parseValueType(t['value_type']):undefined;s&&t&&u===ValueType['Address']&&v===ValueType['String']&&(d['has'](s['value'])?!d['get'](s['value'])['includes'](t['value'])&&d['get'](s['value'])['push'](t['value']):d['set'](s['value'],[t['value']]));}const q=createQueryNode(o['id'],o['name'],m,l,p,b);c['push'](q);break;}case OperatorType['TypeLogicEqual']:case OperatorType['TypeLogicAnd']:case OperatorType['TypeLogicOr']:case OperatorType['TypeLogicAsU256GreaterEqual']:case OperatorType['TypeLogicAsU256LesserEqual']:case OperatorType['TypeLogicAsU256Equal']:case OperatorType['TypeLogicAsU256Greater']:case OperatorType['TypeLogicAsU256Lesser']:case OperatorType['TypeStringContains']:case OperatorType['TypeStringNocaseContains']:case OperatorType['TypeStringNocaseEqual']:case OperatorType['TypeNumberAdd']:case OperatorType['TypeNumberSubtract']:case OperatorType['TypeNumberMultiply']:case OperatorType['TypeNumberDivide']:case OperatorType['TypeNumberMod']:{const w=f(),x=[];for(let z=0x0;z<w;z++){c['length']===0x0&&W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20Insufficient\x20operands\x20for\x20multi-operand\x20operation'),x['push'](c['pop']());}const y=getNodePropertyFromOpCode(j);c['push']({'type':y,'nodes':x});break;}case OperatorType['TypeLogicNot']:case OperatorType['TypeStringLength']:case OperatorType['TypeNumberAddress']:case OperatorType['TypeAddressNumber']:case OperatorType['TypeNumberString']:case OperatorType['TypeStringNumber']:case OperatorType['TypeSafeU8']:case OperatorType['TypeSafeU16']:case OperatorType['TypeSafeU32']:case OperatorType['TypeSafeU64']:case OperatorType['TypeSafeU128']:case OperatorType['TypeSafeU256']:case OperatorType['TypedValueType']:case OperatorType['TypedValueVecLength']:{c['length']===0x0&&W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20Insufficient\x20operand\x20for\x20single-operand\x20operation');const A=c['pop'](),B=getNodePropertyFromOpCode(j);c['push']({'type':B,'node':A});break;}case OperatorType['TypeStringIndexof']:case OperatorType['TypeStringNocaseIndexof']:case OperatorType['TypedValueVecIndexOf_Bool']:case OperatorType['TypedValueVecIndexOf_Address']:case OperatorType['TypedValueVecIndexOf_String']:case OperatorType['TypedValueVecIndexOf_StringNoCase']:case OperatorType['TypedValueVecIndexOf_Number']:{const C=f(),D=C===0x0?'forward':'backward';c['length']<0x2&&W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20Insufficient\x20operands\x20for\x20two-operand\x20operation');const E=c['pop'](),F=c['pop'](),G=getNodePropertyFromOpCode(j);c['push']({'type':G,'nodeLeft':E,'nodeRight':F,'order':D});break;}default:W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20Unknown\x20opcode\x20'+j);}}c['length']!==0x1&&W_ERROR(WErrors['InvalidParam'],'restoreNodeFromOutput:\x20Expected\x201\x20node\x20in\x20stack,\x20found\x20'+c['length']);const h=collectAutoGeneratedIdentifiers(c[0x0]);return{'root':c[0x0],'rep_quote':d,'autoGeneratedIdentifiers':h};}catch(H){throw new Error('restoreNodeFromOutput:\x20Failed\x20to\x20restore\x20GuardNode\x20from\x20output:\x20'+H['message']);}};const collectAutoGeneratedIdentifiers=a=>{const b=[];switch(a['type']){case'query_progress_history_find':break;case'query_progress_history_session_find':b['push'](...collectAutoGeneratedIdentifiers(a['historyIdx']));break;case'query_progress_history_session_forward_find':b['push'](...collectAutoGeneratedIdentifiers(a['historyIdx'])),b['push'](...collectAutoGeneratedIdentifiers(a['sessionIdx']));break;case'query_progress_history_session_count':b['push'](...collectAutoGeneratedIdentifiers(a['historyIdx']));break;case'query_progress_history_session_forward_count':b['push'](...collectAutoGeneratedIdentifiers(a['historyIdx'])),b['push'](...collectAutoGeneratedIdentifiers(a['sessionIdx']));break;case'query_progress_history_session_forward_retained_submission_count':b['push'](...collectAutoGeneratedIdentifiers(a['historyIdx'])),b['push'](...collectAutoGeneratedIdentifiers(a['sessionIdx'])),b['push'](...collectAutoGeneratedIdentifiers(a['forwardIdx']));break;case'query_reward_record_find':case'query_reward_record_count':case'query_reward_record_exists':a['recipient']['type']==='identifier'&&b['push'](a['recipient']['identifier']);break;case'logic_equal':case'logic_and':case'logic_or':case'logic_as_u256_greater_or_equal':case'logic_as_u256_lesser_or_equal':case'logic_as_u256_equal':case'logic_as_u256_greater':case'logic_as_u256_lesser':case'logic_string_contains':case'logic_string_nocase_contains':case'logic_string_nocase_equal':case'calc_number_add':case'calc_number_multiply':case'calc_number_subtract':case'calc_number_divide':case'calc_number_mod':for(const c of a['nodes']){b['push'](...collectAutoGeneratedIdentifiers(c));}break;case'logic_not':case'calc_string_length':case'convert_number_address':case'convert_address_number':case'convert_number_string':case'convert_string_number':case'convert_safe_u8':case'convert_safe_u16':case'convert_safe_u32':case'convert_safe_u64':case'convert_safe_u128':case'convert_safe_u256':case'value_type':case'vec_length':b['push'](...collectAutoGeneratedIdentifiers(a['node']));break;case'calc_string_indexof':case'calc_string_nocase_indexof':case'vec_indexof_bool':case'vec_indexof_address':case'vec_indexof_string':case'vec_indexof_string_nocase':case'vec_indexof_number':b['push'](...collectAutoGeneratedIdentifiers(a['nodeLeft'])),b['push'](...collectAutoGeneratedIdentifiers(a['nodeRight']));break;case'vec_contains_bool':case'vec_contains_address':case'vec_contains_string':case'vec_contains_string_nocase':case'vec_contains_number':for(const d of a['nodes']){b['push'](...collectAutoGeneratedIdentifiers(d));}break;}return b;},getNodePropertyFromOpCode=a=>{switch(a){case OperatorType['TypeLogicEqual']:return'logic_equal';case OperatorType['TypeLogicAnd']:return'logic_and';case OperatorType['TypeLogicOr']:return'logic_or';case OperatorType['TypeLogicAsU256GreaterEqual']:return'logic_as_u256_greater_or_equal';case OperatorType['TypeLogicAsU256LesserEqual']:return'logic_as_u256_lesser_or_equal';case OperatorType['TypeLogicAsU256Equal']:return'logic_as_u256_equal';case OperatorType['TypeLogicAsU256Greater']:return'logic_as_u256_greater';case OperatorType['TypeLogicAsU256Lesser']:return'logic_as_u256_lesser';case OperatorType['TypeStringContains']:return'logic_string_contains';case OperatorType['TypeStringNocaseContains']:return'logic_string_nocase_contains';case OperatorType['TypeStringNocaseEqual']:return'logic_string_nocase_equal';case OperatorType['TypeNumberAdd']:return'calc_number_add';case OperatorType['TypeNumberSubtract']:return'calc_number_subtract';case OperatorType['TypeNumberMultiply']:return'calc_number_multiply';case OperatorType['TypeNumberDivide']:return'calc_number_divide';case OperatorType['TypeNumberMod']:return'calc_number_mod';case OperatorType['TypeLogicNot']:return'logic_not';case OperatorType['TypeStringLength']:return'calc_string_length';case OperatorType['TypeNumberAddress']:return'convert_number_address';case OperatorType['TypeAddressNumber']:return'convert_address_number';case OperatorType['TypeNumberString']:return'convert_number_string';case OperatorType['TypeStringNumber']:return'convert_string_number';case OperatorType['TypeSafeU8']:return'convert_safe_u8';case OperatorType['TypeSafeU16']:return'convert_safe_u16';case OperatorType['TypeSafeU32']:return'convert_safe_u32';case OperatorType['TypeSafeU64']:return'convert_safe_u64';case OperatorType['TypeSafeU128']:return'convert_safe_u128';case OperatorType['TypeSafeU256']:return'convert_safe_u256';case OperatorType['TypedValueType']:return'value_type';case OperatorType['TypedValueVecLength']:return'vec_length';case OperatorType['TypeStringIndexof']:return'calc_string_indexof';case OperatorType['TypeStringNocaseIndexof']:return'calc_string_nocase_indexof';case OperatorType['TypedValueVecIndexOf_Bool']:return'vec_indexof_bool';case OperatorType['TypedValueVecIndexOf_Address']:return'vec_indexof_address';case OperatorType['TypedValueVecIndexOf_String']:return'vec_indexof_string';case OperatorType['TypedValueVecIndexOf_StringNoCase']:return'vec_indexof_string_nocase';case OperatorType['TypedValueVecIndexOf_Number']:return'vec_indexof_number';default:return'unknown';}};