wowok 2.1.9 → 2.1.12

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 (887) hide show
  1. package/NOTICE +46 -0
  2. package/dist/cjs/bcs/bcs.d.ts +199 -199
  3. package/dist/cjs/bcs/bcs.js +273 -318
  4. package/dist/cjs/bcs/bcs.js.map +1 -0
  5. package/dist/cjs/bcs/effects.d.ts +109 -109
  6. package/dist/cjs/bcs/effects.js +205 -230
  7. package/dist/cjs/bcs/effects.js.map +1 -0
  8. package/dist/cjs/bcs/index.d.ts +1 -2584
  9. package/dist/cjs/bcs/index.js +61 -76
  10. package/dist/cjs/bcs/index.js.map +1 -0
  11. package/dist/cjs/bcs/pure.js +38 -58
  12. package/dist/cjs/bcs/pure.js.map +1 -0
  13. package/dist/cjs/bcs/type-tag-serializer.js +102 -114
  14. package/dist/cjs/bcs/type-tag-serializer.js.map +1 -0
  15. package/dist/cjs/bcs/types.js +6 -23
  16. package/dist/cjs/bcs/types.js.map +1 -0
  17. package/dist/cjs/client/index.js +17 -33
  18. package/dist/cjs/client/index.js.map +1 -0
  19. package/dist/cjs/client/network.js +25 -40
  20. package/dist/cjs/client/network.js.map +1 -0
  21. package/dist/cjs/cryptography/index.js +29 -45
  22. package/dist/cjs/cryptography/index.js.map +1 -0
  23. package/dist/cjs/cryptography/intent.d.ts +1 -1
  24. package/dist/cjs/cryptography/intent.js +20 -31
  25. package/dist/cjs/cryptography/intent.js.map +1 -0
  26. package/dist/cjs/cryptography/keypair.js +102 -116
  27. package/dist/cjs/cryptography/keypair.js.map +1 -0
  28. package/dist/cjs/cryptography/mnemonics.js +43 -41
  29. package/dist/cjs/cryptography/mnemonics.js.map +1 -0
  30. package/dist/cjs/cryptography/publickey.js +112 -134
  31. package/dist/cjs/cryptography/publickey.js.map +1 -0
  32. package/dist/cjs/cryptography/signature-scheme.js +24 -43
  33. package/dist/cjs/cryptography/signature-scheme.js.map +1 -0
  34. package/dist/cjs/cryptography/signature.d.ts +2 -24
  35. package/dist/cjs/cryptography/signature.js +50 -67
  36. package/dist/cjs/cryptography/signature.js.map +1 -0
  37. package/dist/cjs/experimental/cache.js +65 -0
  38. package/dist/cjs/experimental/cache.js.map +1 -0
  39. package/dist/cjs/experimental/client.js +27 -0
  40. package/dist/cjs/experimental/client.js.map +1 -0
  41. package/dist/cjs/experimental/core.js +89 -0
  42. package/dist/cjs/experimental/core.js.map +1 -0
  43. package/dist/cjs/experimental/errors.js +32 -0
  44. package/dist/cjs/experimental/errors.js.map +1 -0
  45. package/dist/cjs/experimental/index.js +15 -0
  46. package/dist/cjs/experimental/index.js.map +1 -0
  47. package/dist/cjs/experimental/persistent-storage.js +343 -0
  48. package/dist/cjs/experimental/persistent-storage.js.map +1 -0
  49. package/dist/cjs/experimental/persistent-storage.test.js +200 -0
  50. package/dist/cjs/experimental/persistent-storage.test.js.map +1 -0
  51. package/dist/cjs/experimental/transports/utils.js +104 -0
  52. package/dist/cjs/experimental/transports/utils.js.map +1 -0
  53. package/dist/cjs/experimental/types.js +6 -0
  54. package/dist/cjs/experimental/types.js.map +1 -0
  55. package/dist/cjs/faucet/faucet.js +106 -124
  56. package/dist/cjs/faucet/faucet.js.map +1 -0
  57. package/dist/cjs/faucet/index.js +12 -28
  58. package/dist/cjs/faucet/index.js.map +1 -0
  59. package/dist/cjs/grpc/client.js +47 -62
  60. package/dist/cjs/grpc/client.js.map +1 -0
  61. package/dist/cjs/grpc/core.js +580 -617
  62. package/dist/cjs/grpc/core.js.map +1 -0
  63. package/dist/cjs/grpc/index.js +9 -25
  64. package/dist/cjs/grpc/index.js.map +1 -0
  65. package/dist/cjs/grpc/proto/google/protobuf/any.js +168 -135
  66. package/dist/cjs/grpc/proto/google/protobuf/any.js.map +1 -0
  67. package/dist/cjs/grpc/proto/google/protobuf/duration.js +105 -90
  68. package/dist/cjs/grpc/proto/google/protobuf/duration.js.map +1 -0
  69. package/dist/cjs/grpc/proto/google/protobuf/empty.js +50 -28
  70. package/dist/cjs/grpc/proto/google/protobuf/empty.js.map +1 -0
  71. package/dist/cjs/grpc/proto/google/protobuf/field_mask.js +96 -75
  72. package/dist/cjs/grpc/proto/google/protobuf/field_mask.js.map +1 -0
  73. package/dist/cjs/grpc/proto/google/protobuf/struct.js +266 -215
  74. package/dist/cjs/grpc/proto/google/protobuf/struct.js.map +1 -0
  75. package/dist/cjs/grpc/proto/google/protobuf/timestamp.js +150 -131
  76. package/dist/cjs/grpc/proto/google/protobuf/timestamp.js.map +1 -0
  77. package/dist/cjs/grpc/proto/google/rpc/error_details.js +331 -302
  78. package/dist/cjs/grpc/proto/google/rpc/error_details.js.map +1 -0
  79. package/dist/cjs/grpc/proto/google/rpc/status.js +50 -50
  80. package/dist/cjs/grpc/proto/google/rpc/status.js.map +1 -0
  81. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js +84 -68
  82. package/dist/cjs/grpc/proto/sui/rpc/v2/argument.js.map +1 -0
  83. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js +45 -50
  84. package/dist/cjs/grpc/proto/sui/rpc/v2/balance_change.js.map +1 -0
  85. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js +38 -43
  86. package/dist/cjs/grpc/proto/sui/rpc/v2/bcs.js.map +1 -0
  87. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js +70 -75
  88. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint.js.map +1 -0
  89. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js +79 -81
  90. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_contents.js.map +1 -0
  91. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js +183 -166
  92. package/dist/cjs/grpc/proto/sui/rpc/v2/checkpoint_summary.js.map +1 -0
  93. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js +369 -296
  94. package/dist/cjs/grpc/proto/sui/rpc/v2/effects.js.map +1 -0
  95. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js +80 -85
  96. package/dist/cjs/grpc/proto/sui/rpc/v2/epoch.js.map +1 -0
  97. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js +31 -28
  98. package/dist/cjs/grpc/proto/sui/rpc/v2/error_reason.js.map +1 -0
  99. package/dist/cjs/grpc/proto/sui/rpc/v2/event.js +81 -83
  100. package/dist/cjs/grpc/proto/sui/rpc/v2/event.js.map +1 -0
  101. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js +80 -85
  102. package/dist/cjs/grpc/proto/sui/rpc/v2/executed_transaction.js.map +1 -0
  103. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js +876 -506
  104. package/dist/cjs/grpc/proto/sui/rpc/v2/execution_status.js.map +1 -0
  105. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js +56 -61
  106. package/dist/cjs/grpc/proto/sui/rpc/v2/gas_cost_summary.js.map +1 -0
  107. package/dist/cjs/grpc/proto/sui/rpc/v2/input.js +103 -83
  108. package/dist/cjs/grpc/proto/sui/rpc/v2/input.js.map +1 -0
  109. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js +76 -78
  110. package/dist/cjs/grpc/proto/sui/rpc/v2/jwk.js.map +1 -0
  111. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js +69 -119
  112. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.client.js.map +1 -0
  113. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js +392 -350
  114. package/dist/cjs/grpc/proto/sui/rpc/v2/ledger_service.js.map +1 -0
  115. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js +599 -473
  116. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package.js.map +1 -0
  117. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js +46 -78
  118. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.client.js.map +1 -0
  119. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js +242 -224
  120. package/dist/cjs/grpc/proto/sui/rpc/v2/move_package_service.js.map +1 -0
  121. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js +32 -52
  122. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.client.js.map +1 -0
  123. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js +139 -134
  124. package/dist/cjs/grpc/proto/sui/rpc/v2/name_service.js.map +1 -0
  125. package/dist/cjs/grpc/proto/sui/rpc/v2/object.js +109 -111
  126. package/dist/cjs/grpc/proto/sui/rpc/v2/object.js.map +1 -0
  127. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js +46 -51
  128. package/dist/cjs/grpc/proto/sui/rpc/v2/object_reference.js.map +1 -0
  129. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js +76 -61
  130. package/dist/cjs/grpc/proto/sui/rpc/v2/owner.js.map +1 -0
  131. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js +46 -59
  132. package/dist/cjs/grpc/proto/sui/rpc/v2/protocol_config.js.map +1 -0
  133. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js +568 -522
  134. package/dist/cjs/grpc/proto/sui/rpc/v2/signature.js.map +1 -0
  135. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js +54 -32
  136. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_scheme.js.map +1 -0
  137. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +27 -47
  138. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.client.js.map +1 -0
  139. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js +83 -86
  140. package/dist/cjs/grpc/proto/sui/rpc/v2/signature_verification_service.js.map +1 -0
  141. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js +53 -85
  142. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.client.js.map +1 -0
  143. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js +645 -529
  144. package/dist/cjs/grpc/proto/sui/rpc/v2/state_service.js.map +1 -0
  145. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js +37 -51
  146. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.client.js.map +1 -0
  147. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js +58 -61
  148. package/dist/cjs/grpc/proto/sui/rpc/v2/subscription_service.js.map +1 -0
  149. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js +749 -730
  150. package/dist/cjs/grpc/proto/sui/rpc/v2/system_state.js.map +1 -0
  151. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js +1218 -975
  152. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction.js.map +1 -0
  153. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +32 -46
  154. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js.map +1 -0
  155. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js +186 -167
  156. package/dist/cjs/grpc/proto/sui/rpc/v2/transaction_execution_service.js.map +1 -0
  157. package/dist/cjs/index.js +96 -91
  158. package/dist/cjs/index.js.map +1 -0
  159. package/dist/cjs/jsonRpc/client.js +654 -743
  160. package/dist/cjs/jsonRpc/client.js.map +1 -0
  161. package/dist/cjs/jsonRpc/core.d.ts +7 -7
  162. package/dist/cjs/jsonRpc/core.js +562 -606
  163. package/dist/cjs/jsonRpc/core.js.map +1 -0
  164. package/dist/cjs/jsonRpc/errors.js +38 -56
  165. package/dist/cjs/jsonRpc/errors.js.map +1 -0
  166. package/dist/cjs/jsonRpc/http-transport.js +70 -114
  167. package/dist/cjs/jsonRpc/http-transport.js.map +1 -0
  168. package/dist/cjs/jsonRpc/index.js +14 -30
  169. package/dist/cjs/jsonRpc/index.js.map +1 -0
  170. package/dist/cjs/jsonRpc/json-rpc-resolver.js +286 -290
  171. package/dist/cjs/jsonRpc/json-rpc-resolver.js.map +1 -0
  172. package/dist/cjs/jsonRpc/rpc-websocket-client.js +150 -207
  173. package/dist/cjs/jsonRpc/rpc-websocket-client.js.map +1 -0
  174. package/dist/cjs/jsonRpc/types/chain.js +4 -15
  175. package/dist/cjs/jsonRpc/types/chain.js.map +1 -0
  176. package/dist/cjs/jsonRpc/types/changes.js +4 -15
  177. package/dist/cjs/jsonRpc/types/changes.js.map +1 -0
  178. package/dist/cjs/jsonRpc/types/coins.js +4 -15
  179. package/dist/cjs/jsonRpc/types/coins.js.map +1 -0
  180. package/dist/cjs/jsonRpc/types/common.js +4 -15
  181. package/dist/cjs/jsonRpc/types/common.js.map +1 -0
  182. package/dist/cjs/jsonRpc/types/generated.d.ts +1 -1
  183. package/dist/cjs/jsonRpc/types/generated.js +4 -15
  184. package/dist/cjs/jsonRpc/types/generated.js.map +1 -0
  185. package/dist/cjs/jsonRpc/types/index.js +4 -15
  186. package/dist/cjs/jsonRpc/types/index.js.map +1 -0
  187. package/dist/cjs/jsonRpc/types/params.js +4 -15
  188. package/dist/cjs/jsonRpc/types/params.js.map +1 -0
  189. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js +54 -69
  190. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js.map +1 -0
  191. package/dist/cjs/keypairs/ed25519/index.js +10 -26
  192. package/dist/cjs/keypairs/ed25519/index.js.map +1 -0
  193. package/dist/cjs/keypairs/ed25519/keypair.js +134 -159
  194. package/dist/cjs/keypairs/ed25519/keypair.js.map +1 -0
  195. package/dist/cjs/keypairs/ed25519/publickey.js +70 -84
  196. package/dist/cjs/keypairs/ed25519/publickey.js.map +1 -0
  197. package/dist/cjs/keypairs/index.js +21 -19
  198. package/dist/cjs/keypairs/index.js.map +1 -0
  199. package/dist/cjs/keypairs/passkey/index.js +11 -27
  200. package/dist/cjs/keypairs/passkey/index.js.map +1 -0
  201. package/dist/cjs/keypairs/passkey/keypair.js +245 -256
  202. package/dist/cjs/keypairs/passkey/keypair.js.map +1 -0
  203. package/dist/cjs/keypairs/passkey/publickey.js +163 -162
  204. package/dist/cjs/keypairs/passkey/publickey.js.map +1 -0
  205. package/dist/cjs/keypairs/passkey/types.js +4 -15
  206. package/dist/cjs/keypairs/passkey/types.js.map +1 -0
  207. package/dist/cjs/keypairs/secp256k1/index.js +10 -26
  208. package/dist/cjs/keypairs/secp256k1/index.js.map +1 -0
  209. package/dist/cjs/keypairs/secp256k1/keypair.js +129 -151
  210. package/dist/cjs/keypairs/secp256k1/keypair.js.map +1 -0
  211. package/dist/cjs/keypairs/secp256k1/publickey.js +71 -89
  212. package/dist/cjs/keypairs/secp256k1/publickey.js.map +1 -0
  213. package/dist/cjs/keypairs/secp256r1/index.js +10 -26
  214. package/dist/cjs/keypairs/secp256r1/index.js.map +1 -0
  215. package/dist/cjs/keypairs/secp256r1/keypair.js +127 -148
  216. package/dist/cjs/keypairs/secp256r1/keypair.js.map +1 -0
  217. package/dist/cjs/keypairs/secp256r1/publickey.js +72 -90
  218. package/dist/cjs/keypairs/secp256r1/publickey.js.map +1 -0
  219. package/dist/cjs/multisig/index.js +10 -26
  220. package/dist/cjs/multisig/index.js.map +1 -0
  221. package/dist/cjs/multisig/publickey.d.ts +1 -1
  222. package/dist/cjs/multisig/publickey.js +228 -276
  223. package/dist/cjs/multisig/publickey.js.map +1 -0
  224. package/dist/cjs/multisig/signer.js +62 -110
  225. package/dist/cjs/multisig/signer.js.map +1 -0
  226. package/dist/cjs/transactions/Arguments.d.ts +4 -4
  227. package/dist/cjs/transactions/Arguments.js +13 -34
  228. package/dist/cjs/transactions/Arguments.js.map +1 -0
  229. package/dist/cjs/transactions/Commands.js +111 -141
  230. package/dist/cjs/transactions/Commands.js.map +1 -0
  231. package/dist/cjs/transactions/Inputs.js +53 -82
  232. package/dist/cjs/transactions/Inputs.js.map +1 -0
  233. package/dist/cjs/transactions/ObjectCache.d.ts +8 -8
  234. package/dist/cjs/transactions/ObjectCache.js +204 -241
  235. package/dist/cjs/transactions/ObjectCache.js.map +1 -0
  236. package/dist/cjs/transactions/Transaction.d.ts +31 -31
  237. package/dist/cjs/transactions/Transaction.js +628 -719
  238. package/dist/cjs/transactions/Transaction.js.map +1 -0
  239. package/dist/cjs/transactions/TransactionData.d.ts +9 -9
  240. package/dist/cjs/transactions/TransactionData.js +396 -440
  241. package/dist/cjs/transactions/TransactionData.js.map +1 -0
  242. package/dist/cjs/transactions/__tests__/Transaction.test.js +169 -0
  243. package/dist/cjs/transactions/__tests__/Transaction.test.js.map +1 -0
  244. package/dist/cjs/transactions/__tests__/bcs.test.js +202 -0
  245. package/dist/cjs/transactions/__tests__/bcs.test.js.map +1 -0
  246. package/dist/cjs/transactions/data/internal.js +166 -207
  247. package/dist/cjs/transactions/data/internal.js.map +1 -0
  248. package/dist/cjs/transactions/data/v1.js +436 -495
  249. package/dist/cjs/transactions/data/v1.js.map +1 -0
  250. package/dist/cjs/transactions/data/v2.d.ts +5 -5
  251. package/dist/cjs/transactions/data/v2.js +94 -107
  252. package/dist/cjs/transactions/data/v2.js.map +1 -0
  253. package/dist/cjs/transactions/executor/caching.js +71 -113
  254. package/dist/cjs/transactions/executor/caching.js.map +1 -0
  255. package/dist/cjs/transactions/executor/parallel.js +339 -378
  256. package/dist/cjs/transactions/executor/parallel.js.map +1 -0
  257. package/dist/cjs/transactions/executor/queue.js +60 -80
  258. package/dist/cjs/transactions/executor/queue.js.map +1 -0
  259. package/dist/cjs/transactions/executor/serial.d.ts +4 -4
  260. package/dist/cjs/transactions/executor/serial.js +102 -131
  261. package/dist/cjs/transactions/executor/serial.js.map +1 -0
  262. package/dist/cjs/transactions/hash.js +17 -28
  263. package/dist/cjs/transactions/hash.js.map +1 -0
  264. package/dist/cjs/transactions/index.js +33 -49
  265. package/dist/cjs/transactions/index.js.map +1 -0
  266. package/dist/cjs/transactions/intents/CoinWithBalance.js +137 -191
  267. package/dist/cjs/transactions/intents/CoinWithBalance.js.map +1 -0
  268. package/dist/cjs/transactions/object.js +88 -111
  269. package/dist/cjs/transactions/object.js.map +1 -0
  270. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js +20 -32
  271. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js.map +1 -0
  272. package/dist/cjs/transactions/pure.js +38 -60
  273. package/dist/cjs/transactions/pure.js.map +1 -0
  274. package/dist/cjs/transactions/resolve.js +62 -88
  275. package/dist/cjs/transactions/resolve.js.map +1 -0
  276. package/dist/cjs/transactions/serializer.js +150 -163
  277. package/dist/cjs/transactions/serializer.js.map +1 -0
  278. package/dist/cjs/transactions/utils.d.ts +1 -1
  279. package/dist/cjs/transactions/utils.js +114 -125
  280. package/dist/cjs/transactions/utils.js.map +1 -0
  281. package/dist/cjs/utils/constants.js +29 -56
  282. package/dist/cjs/utils/constants.js.map +1 -0
  283. package/dist/cjs/utils/derived-objects.js +14 -30
  284. package/dist/cjs/utils/derived-objects.js.map +1 -0
  285. package/dist/cjs/utils/dynamic-fields.js +20 -37
  286. package/dist/cjs/utils/dynamic-fields.js.map +1 -0
  287. package/dist/cjs/utils/format.js +14 -30
  288. package/dist/cjs/utils/format.js.map +1 -0
  289. package/dist/cjs/utils/index.js +50 -64
  290. package/dist/cjs/utils/index.js.map +1 -0
  291. package/dist/cjs/utils/move-registry.js +37 -35
  292. package/dist/cjs/utils/move-registry.js.map +1 -0
  293. package/dist/cjs/utils/sui-types.js +74 -68
  294. package/dist/cjs/utils/sui-types.js.map +1 -0
  295. package/dist/cjs/utils/suins.js +30 -46
  296. package/dist/cjs/utils/suins.js.map +1 -0
  297. package/dist/cjs/verify/index.js +12 -27
  298. package/dist/cjs/verify/index.js.map +1 -0
  299. package/dist/cjs/verify/verify.js +83 -110
  300. package/dist/cjs/verify/verify.js.map +1 -0
  301. package/dist/cjs/version.js +8 -25
  302. package/dist/cjs/version.js.map +1 -0
  303. package/dist/cjs/w/call/allocation.js +323 -413
  304. package/dist/cjs/w/call/allocation.js.map +1 -0
  305. package/dist/cjs/w/call/arb.js +105 -136
  306. package/dist/cjs/w/call/arb.js.map +1 -0
  307. package/dist/cjs/w/call/arbitration.js +1206 -1581
  308. package/dist/cjs/w/call/arbitration.js.map +1 -0
  309. package/dist/cjs/w/call/base.js +303 -333
  310. package/dist/cjs/w/call/base.js.map +1 -0
  311. package/dist/cjs/w/call/contact.js +335 -452
  312. package/dist/cjs/w/call/contact.js.map +1 -0
  313. package/dist/cjs/w/call/demand.js +690 -844
  314. package/dist/cjs/w/call/demand.js.map +1 -0
  315. package/dist/cjs/w/call/entity.js +167 -201
  316. package/dist/cjs/w/call/entity.js.map +1 -0
  317. package/dist/cjs/w/call/guard-ins.d.ts +1 -0
  318. package/dist/cjs/w/call/guard-ins.js +4376 -4384
  319. package/dist/cjs/w/call/guard-ins.js.map +1 -0
  320. package/dist/cjs/w/call/guard.d.ts +10 -0
  321. package/dist/cjs/w/call/guard.js +1078 -1119
  322. package/dist/cjs/w/call/guard.js.map +1 -0
  323. package/dist/cjs/w/call/index.d.ts +1 -1
  324. package/dist/cjs/w/call/index.js +69 -69
  325. package/dist/cjs/w/call/index.js.map +1 -0
  326. package/dist/cjs/w/call/machine.js +1105 -1419
  327. package/dist/cjs/w/call/machine.js.map +1 -0
  328. package/dist/cjs/w/call/order.js +314 -454
  329. package/dist/cjs/w/call/order.js.map +1 -0
  330. package/dist/cjs/w/call/passport.js +214 -253
  331. package/dist/cjs/w/call/passport.js.map +1 -0
  332. package/dist/cjs/w/call/payment.js +187 -224
  333. package/dist/cjs/w/call/payment.js.map +1 -0
  334. package/dist/cjs/w/call/permission.js +1183 -1294
  335. package/dist/cjs/w/call/permission.js.map +1 -0
  336. package/dist/cjs/w/call/personal.js +132 -170
  337. package/dist/cjs/w/call/personal.js.map +1 -0
  338. package/dist/cjs/w/call/progress.js +634 -794
  339. package/dist/cjs/w/call/progress.js.map +1 -0
  340. package/dist/cjs/w/call/proof.js +67 -116
  341. package/dist/cjs/w/call/proof.js.map +1 -0
  342. package/dist/cjs/w/call/repository.js +1037 -1251
  343. package/dist/cjs/w/call/repository.js.map +1 -0
  344. package/dist/cjs/w/call/resource.js +111 -131
  345. package/dist/cjs/w/call/resource.js.map +1 -0
  346. package/dist/cjs/w/call/reward.js +675 -853
  347. package/dist/cjs/w/call/reward.js.map +1 -0
  348. package/dist/cjs/w/call/service.js +1879 -2385
  349. package/dist/cjs/w/call/service.js.map +1 -0
  350. package/dist/cjs/w/call/treasury.js +841 -1138
  351. package/dist/cjs/w/call/treasury.js.map +1 -0
  352. package/dist/cjs/w/call/util.js +593 -624
  353. package/dist/cjs/w/call/util.js.map +1 -0
  354. package/dist/cjs/w/common.d.ts +1 -1
  355. package/dist/cjs/w/common.js +548 -518
  356. package/dist/cjs/w/common.js.map +1 -0
  357. package/dist/cjs/w/exception.js +574 -584
  358. package/dist/cjs/w/exception.js.map +1 -0
  359. package/dist/cjs/w/index.js +26 -23
  360. package/dist/cjs/w/index.js.map +1 -0
  361. package/dist/cjs/w/local/account.js +664 -741
  362. package/dist/cjs/w/local/account.js.map +1 -0
  363. package/dist/cjs/w/local/cache.js +180 -166
  364. package/dist/cjs/w/local/cache.js.map +1 -0
  365. package/dist/cjs/w/local/config.js +51 -80
  366. package/dist/cjs/w/local/config.js.map +1 -0
  367. package/dist/cjs/w/local/index.js +225 -290
  368. package/dist/cjs/w/local/index.js.map +1 -0
  369. package/dist/cjs/w/local/local.d.ts +2 -2
  370. package/dist/cjs/w/local/local.js +638 -646
  371. package/dist/cjs/w/local/local.js.map +1 -0
  372. package/dist/cjs/w/local/storage.js +210 -164
  373. package/dist/cjs/w/local/storage.js.map +1 -0
  374. package/dist/cjs/w/local/token.js +158 -175
  375. package/dist/cjs/w/local/token.js.map +1 -0
  376. package/dist/cjs/w/local/util.js +80 -51
  377. package/dist/cjs/w/local/util.js.map +1 -0
  378. package/dist/cjs/w/local/wip.js +1078 -802
  379. package/dist/cjs/w/local/wip.js.map +1 -0
  380. package/dist/cjs/w/messenger/crypto.js +496 -389
  381. package/dist/cjs/w/messenger/crypto.js.map +1 -0
  382. package/dist/cjs/w/messenger/index.js +53 -35
  383. package/dist/cjs/w/messenger/index.js.map +1 -0
  384. package/dist/cjs/w/messenger/messenger-api.js +1159 -1035
  385. package/dist/cjs/w/messenger/messenger-api.js.map +1 -0
  386. package/dist/cjs/w/messenger/messenger-manager.js +954 -1083
  387. package/dist/cjs/w/messenger/messenger-manager.js.map +1 -0
  388. package/dist/cjs/w/messenger/messenger.d.ts +1 -1
  389. package/dist/cjs/w/messenger/messenger.js +1304 -1450
  390. package/dist/cjs/w/messenger/messenger.js.map +1 -0
  391. package/dist/cjs/w/messenger/server.js +390 -512
  392. package/dist/cjs/w/messenger/server.js.map +1 -0
  393. package/dist/cjs/w/messenger/session.js +399 -403
  394. package/dist/cjs/w/messenger/session.js.map +1 -0
  395. package/dist/cjs/w/messenger/storage.js +881 -777
  396. package/dist/cjs/w/messenger/storage.js.map +1 -0
  397. package/dist/cjs/w/messenger/types.d.ts +2 -2
  398. package/dist/cjs/w/messenger/types.js +83 -103
  399. package/dist/cjs/w/messenger/types.js.map +1 -0
  400. package/dist/cjs/w/messenger/utils.js +29 -34
  401. package/dist/cjs/w/messenger/utils.js.map +1 -0
  402. package/dist/cjs/w/query/bult-in.js +101 -110
  403. package/dist/cjs/w/query/bult-in.js.map +1 -0
  404. package/dist/cjs/w/query/event.js +134 -146
  405. package/dist/cjs/w/query/event.js.map +1 -0
  406. package/dist/cjs/w/query/index.js +22 -20
  407. package/dist/cjs/w/query/index.js.map +1 -0
  408. package/dist/cjs/w/query/object.js +1576 -1576
  409. package/dist/cjs/w/query/object.js.map +1 -0
  410. package/dist/cjs/w/query/received.js +66 -88
  411. package/dist/cjs/w/query/received.js.map +1 -0
  412. package/dist/cjs/w/query/util.js +53 -77
  413. package/dist/cjs/w/query/util.js.map +1 -0
  414. package/dist/cjs/w/util.js +589 -675
  415. package/dist/cjs/w/util.js.map +1 -0
  416. package/dist/esm/bcs/bcs.d.ts +199 -199
  417. package/dist/esm/bcs/bcs.js +269 -310
  418. package/dist/esm/bcs/bcs.js.map +1 -0
  419. package/dist/esm/bcs/effects.d.ts +109 -109
  420. package/dist/esm/bcs/effects.js +171 -179
  421. package/dist/esm/bcs/effects.js.map +1 -0
  422. package/dist/esm/bcs/index.d.ts +1 -2584
  423. package/dist/esm/bcs/index.js +51 -94
  424. package/dist/esm/bcs/index.js.map +1 -0
  425. package/dist/esm/bcs/pure.js +35 -38
  426. package/dist/esm/bcs/pure.js.map +1 -0
  427. package/dist/esm/bcs/type-tag-serializer.js +98 -95
  428. package/dist/esm/bcs/type-tag-serializer.js.map +1 -0
  429. package/dist/esm/bcs/types.js +5 -5
  430. package/dist/esm/bcs/types.js.map +1 -0
  431. package/dist/esm/client/index.js +7 -23
  432. package/dist/esm/client/index.js.map +1 -0
  433. package/dist/esm/client/network.js +23 -22
  434. package/dist/esm/client/network.js.map +1 -0
  435. package/dist/esm/cryptography/index.js +9 -46
  436. package/dist/esm/cryptography/index.js.map +1 -0
  437. package/dist/esm/cryptography/intent.d.ts +1 -1
  438. package/dist/esm/cryptography/intent.js +18 -12
  439. package/dist/esm/cryptography/intent.js.map +1 -0
  440. package/dist/esm/cryptography/keypair.js +95 -99
  441. package/dist/esm/cryptography/keypair.js.map +1 -0
  442. package/dist/esm/cryptography/mnemonics.js +40 -24
  443. package/dist/esm/cryptography/mnemonics.js.map +1 -0
  444. package/dist/esm/cryptography/publickey.js +104 -115
  445. package/dist/esm/cryptography/publickey.js.map +1 -0
  446. package/dist/esm/cryptography/signature-scheme.js +22 -24
  447. package/dist/esm/cryptography/signature-scheme.js.map +1 -0
  448. package/dist/esm/cryptography/signature.d.ts +2 -24
  449. package/dist/esm/cryptography/signature.js +44 -48
  450. package/dist/esm/cryptography/signature.js.map +1 -0
  451. package/dist/esm/experimental/cache.js +61 -0
  452. package/dist/esm/experimental/cache.js.map +1 -0
  453. package/dist/esm/experimental/client.js +23 -0
  454. package/dist/esm/experimental/client.js.map +1 -0
  455. package/dist/esm/experimental/core.js +85 -0
  456. package/dist/esm/experimental/core.js.map +1 -0
  457. package/dist/esm/experimental/errors.js +27 -0
  458. package/dist/esm/experimental/errors.js.map +1 -0
  459. package/dist/esm/experimental/index.js +8 -0
  460. package/dist/esm/experimental/index.js.map +1 -0
  461. package/dist/esm/experimental/persistent-storage.js +337 -0
  462. package/dist/esm/experimental/persistent-storage.js.map +1 -0
  463. package/dist/esm/experimental/persistent-storage.test.js +198 -0
  464. package/dist/esm/experimental/persistent-storage.test.js.map +1 -0
  465. package/dist/esm/experimental/transports/utils.js +100 -0
  466. package/dist/esm/experimental/transports/utils.js.map +1 -0
  467. package/dist/esm/experimental/types.js +5 -0
  468. package/dist/esm/experimental/types.js.map +1 -0
  469. package/dist/esm/faucet/faucet.js +104 -111
  470. package/dist/esm/faucet/faucet.js.map +1 -0
  471. package/dist/esm/faucet/index.js +4 -16
  472. package/dist/esm/faucet/index.js.map +1 -0
  473. package/dist/esm/grpc/client.js +34 -34
  474. package/dist/esm/grpc/client.js.map +1 -0
  475. package/dist/esm/grpc/core.js +570 -601
  476. package/dist/esm/grpc/core.js.map +1 -0
  477. package/dist/esm/grpc/index.js +5 -6
  478. package/dist/esm/grpc/index.js.map +1 -0
  479. package/dist/esm/grpc/proto/google/protobuf/any.js +161 -111
  480. package/dist/esm/grpc/proto/google/protobuf/any.js.map +1 -0
  481. package/dist/esm/grpc/proto/google/protobuf/duration.js +99 -67
  482. package/dist/esm/grpc/proto/google/protobuf/duration.js.map +1 -0
  483. package/dist/esm/grpc/proto/google/protobuf/empty.js +46 -7
  484. package/dist/esm/grpc/proto/google/protobuf/empty.js.map +1 -0
  485. package/dist/esm/grpc/proto/google/protobuf/field_mask.js +90 -52
  486. package/dist/esm/grpc/proto/google/protobuf/field_mask.js.map +1 -0
  487. package/dist/esm/grpc/proto/google/protobuf/struct.js +258 -190
  488. package/dist/esm/grpc/proto/google/protobuf/struct.js.map +1 -0
  489. package/dist/esm/grpc/proto/google/protobuf/timestamp.js +144 -108
  490. package/dist/esm/grpc/proto/google/protobuf/timestamp.js.map +1 -0
  491. package/dist/esm/grpc/proto/google/rpc/error_details.js +313 -267
  492. package/dist/esm/grpc/proto/google/rpc/error_details.js.map +1 -0
  493. package/dist/esm/grpc/proto/google/rpc/status.js +45 -28
  494. package/dist/esm/grpc/proto/google/rpc/status.js.map +1 -0
  495. package/dist/esm/grpc/proto/sui/rpc/v2/argument.js +80 -47
  496. package/dist/esm/grpc/proto/sui/rpc/v2/argument.js.map +1 -0
  497. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js +41 -29
  498. package/dist/esm/grpc/proto/sui/rpc/v2/balance_change.js.map +1 -0
  499. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js +34 -22
  500. package/dist/esm/grpc/proto/sui/rpc/v2/bcs.js.map +1 -0
  501. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js +61 -49
  502. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint.js.map +1 -0
  503. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js +72 -57
  504. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_contents.js.map +1 -0
  505. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js +173 -139
  506. package/dist/esm/grpc/proto/sui/rpc/v2/checkpoint_summary.js.map +1 -0
  507. package/dist/esm/grpc/proto/sui/rpc/v2/effects.js +358 -268
  508. package/dist/esm/grpc/proto/sui/rpc/v2/effects.js.map +1 -0
  509. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js +72 -60
  510. package/dist/esm/grpc/proto/sui/rpc/v2/epoch.js.map +1 -0
  511. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js +29 -9
  512. package/dist/esm/grpc/proto/sui/rpc/v2/error_reason.js.map +1 -0
  513. package/dist/esm/grpc/proto/sui/rpc/v2/event.js +74 -59
  514. package/dist/esm/grpc/proto/sui/rpc/v2/event.js.map +1 -0
  515. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js +69 -57
  516. package/dist/esm/grpc/proto/sui/rpc/v2/executed_transaction.js.map +1 -0
  517. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js +861 -474
  518. package/dist/esm/grpc/proto/sui/rpc/v2/execution_status.js.map +1 -0
  519. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js +52 -40
  520. package/dist/esm/grpc/proto/sui/rpc/v2/gas_cost_summary.js.map +1 -0
  521. package/dist/esm/grpc/proto/sui/rpc/v2/input.js +98 -61
  522. package/dist/esm/grpc/proto/sui/rpc/v2/input.js.map +1 -0
  523. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js +71 -56
  524. package/dist/esm/grpc/proto/sui/rpc/v2/jwk.js.map +1 -0
  525. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js +65 -100
  526. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.client.js.map +1 -0
  527. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js +365 -306
  528. package/dist/esm/grpc/proto/sui/rpc/v2/ledger_service.js.map +1 -0
  529. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js +585 -442
  530. package/dist/esm/grpc/proto/sui/rpc/v2/move_package.js.map +1 -0
  531. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js +42 -59
  532. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.client.js.map +1 -0
  533. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js +226 -191
  534. package/dist/esm/grpc/proto/sui/rpc/v2/move_package_service.js.map +1 -0
  535. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js +28 -33
  536. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.client.js.map +1 -0
  537. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js +129 -107
  538. package/dist/esm/grpc/proto/sui/rpc/v2/name_service.js.map +1 -0
  539. package/dist/esm/grpc/proto/sui/rpc/v2/object.js +100 -85
  540. package/dist/esm/grpc/proto/sui/rpc/v2/object.js.map +1 -0
  541. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js +42 -30
  542. package/dist/esm/grpc/proto/sui/rpc/v2/object_reference.js.map +1 -0
  543. package/dist/esm/grpc/proto/sui/rpc/v2/owner.js +72 -40
  544. package/dist/esm/grpc/proto/sui/rpc/v2/owner.js.map +1 -0
  545. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js +42 -38
  546. package/dist/esm/grpc/proto/sui/rpc/v2/protocol_config.js.map +1 -0
  547. package/dist/esm/grpc/proto/sui/rpc/v2/signature.js +544 -481
  548. package/dist/esm/grpc/proto/sui/rpc/v2/signature.js.map +1 -0
  549. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js +52 -13
  550. package/dist/esm/grpc/proto/sui/rpc/v2/signature_scheme.js.map +1 -0
  551. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js +23 -28
  552. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.client.js.map +1 -0
  553. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js +74 -60
  554. package/dist/esm/grpc/proto/sui/rpc/v2/signature_verification_service.js.map +1 -0
  555. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js +49 -66
  556. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.client.js.map +1 -0
  557. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js +623 -490
  558. package/dist/esm/grpc/proto/sui/rpc/v2/state_service.js.map +1 -0
  559. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js +33 -32
  560. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.client.js.map +1 -0
  561. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js +50 -36
  562. package/dist/esm/grpc/proto/sui/rpc/v2/subscription_service.js.map +1 -0
  563. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js +737 -701
  564. package/dist/esm/grpc/proto/sui/rpc/v2/system_state.js.map +1 -0
  565. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js +1177 -917
  566. package/dist/esm/grpc/proto/sui/rpc/v2/transaction.js.map +1 -0
  567. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js +28 -27
  568. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.client.js.map +1 -0
  569. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js +169 -133
  570. package/dist/esm/grpc/proto/sui/rpc/v2/transaction_execution_service.js.map +1 -0
  571. package/dist/esm/index.js +21 -107
  572. package/dist/esm/index.js.map +1 -0
  573. package/dist/esm/jsonRpc/client.js +646 -727
  574. package/dist/esm/jsonRpc/client.js.map +1 -0
  575. package/dist/esm/jsonRpc/core.d.ts +7 -7
  576. package/dist/esm/jsonRpc/core.js +550 -581
  577. package/dist/esm/jsonRpc/core.js.map +1 -0
  578. package/dist/esm/jsonRpc/errors.js +36 -41
  579. package/dist/esm/jsonRpc/errors.js.map +1 -0
  580. package/dist/esm/jsonRpc/http-transport.js +65 -93
  581. package/dist/esm/jsonRpc/http-transport.js.map +1 -0
  582. package/dist/esm/jsonRpc/index.js +6 -20
  583. package/dist/esm/jsonRpc/index.js.map +1 -0
  584. package/dist/esm/jsonRpc/json-rpc-resolver.js +281 -276
  585. package/dist/esm/jsonRpc/json-rpc-resolver.js.map +1 -0
  586. package/dist/esm/jsonRpc/rpc-websocket-client.js +147 -189
  587. package/dist/esm/jsonRpc/rpc-websocket-client.js.map +1 -0
  588. package/dist/esm/jsonRpc/types/chain.js +4 -0
  589. package/dist/esm/jsonRpc/types/chain.js.map +1 -0
  590. package/dist/esm/jsonRpc/types/changes.js +4 -0
  591. package/dist/esm/jsonRpc/types/changes.js.map +1 -0
  592. package/dist/esm/jsonRpc/types/coins.js +4 -0
  593. package/dist/esm/jsonRpc/types/coins.js.map +1 -0
  594. package/dist/esm/jsonRpc/types/common.js +4 -0
  595. package/dist/esm/jsonRpc/types/common.js.map +1 -0
  596. package/dist/esm/jsonRpc/types/generated.d.ts +1 -1
  597. package/dist/esm/jsonRpc/types/generated.js +4 -0
  598. package/dist/esm/jsonRpc/types/generated.js.map +1 -0
  599. package/dist/esm/jsonRpc/types/index.js +4 -0
  600. package/dist/esm/jsonRpc/types/index.js.map +1 -0
  601. package/dist/esm/jsonRpc/types/params.js +4 -0
  602. package/dist/esm/jsonRpc/types/params.js.map +1 -0
  603. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js +49 -48
  604. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js.map +1 -0
  605. package/dist/esm/keypairs/ed25519/index.js +5 -10
  606. package/dist/esm/keypairs/ed25519/index.js.map +1 -0
  607. package/dist/esm/keypairs/ed25519/keypair.js +128 -146
  608. package/dist/esm/keypairs/ed25519/keypair.js.map +1 -0
  609. package/dist/esm/keypairs/ed25519/publickey.js +64 -67
  610. package/dist/esm/keypairs/ed25519/publickey.js.map +1 -0
  611. package/dist/esm/keypairs/index.js +3 -0
  612. package/dist/esm/keypairs/index.js.map +1 -0
  613. package/dist/esm/keypairs/passkey/index.js +5 -12
  614. package/dist/esm/keypairs/passkey/index.js.map +1 -0
  615. package/dist/esm/keypairs/passkey/keypair.js +236 -243
  616. package/dist/esm/keypairs/passkey/keypair.js.map +1 -0
  617. package/dist/esm/keypairs/passkey/publickey.js +154 -140
  618. package/dist/esm/keypairs/passkey/publickey.js.map +1 -0
  619. package/dist/esm/keypairs/passkey/types.js +4 -0
  620. package/dist/esm/keypairs/passkey/types.js.map +1 -0
  621. package/dist/esm/keypairs/secp256k1/index.js +5 -10
  622. package/dist/esm/keypairs/secp256k1/index.js.map +1 -0
  623. package/dist/esm/keypairs/secp256k1/keypair.js +120 -134
  624. package/dist/esm/keypairs/secp256k1/keypair.js.map +1 -0
  625. package/dist/esm/keypairs/secp256k1/publickey.js +64 -71
  626. package/dist/esm/keypairs/secp256k1/publickey.js.map +1 -0
  627. package/dist/esm/keypairs/secp256r1/index.js +5 -10
  628. package/dist/esm/keypairs/secp256r1/index.js.map +1 -0
  629. package/dist/esm/keypairs/secp256r1/keypair.js +118 -131
  630. package/dist/esm/keypairs/secp256r1/keypair.js.map +1 -0
  631. package/dist/esm/keypairs/secp256r1/publickey.js +63 -66
  632. package/dist/esm/keypairs/secp256r1/publickey.js.map +1 -0
  633. package/dist/esm/multisig/index.js +5 -10
  634. package/dist/esm/multisig/index.js.map +1 -0
  635. package/dist/esm/multisig/publickey.d.ts +1 -1
  636. package/dist/esm/multisig/publickey.js +216 -253
  637. package/dist/esm/multisig/publickey.js.map +1 -0
  638. package/dist/esm/multisig/signer.js +57 -89
  639. package/dist/esm/multisig/signer.js.map +1 -0
  640. package/dist/esm/transactions/Arguments.d.ts +4 -4
  641. package/dist/esm/transactions/Arguments.js +9 -13
  642. package/dist/esm/transactions/Arguments.js.map +1 -0
  643. package/dist/esm/transactions/Commands.js +105 -118
  644. package/dist/esm/transactions/Commands.js.map +1 -0
  645. package/dist/esm/transactions/Inputs.js +49 -61
  646. package/dist/esm/transactions/Inputs.js.map +1 -0
  647. package/dist/esm/transactions/ObjectCache.d.ts +8 -8
  648. package/dist/esm/transactions/ObjectCache.js +200 -223
  649. package/dist/esm/transactions/ObjectCache.js.map +1 -0
  650. package/dist/esm/transactions/Transaction.d.ts +32 -32
  651. package/dist/esm/transactions/Transaction.js +611 -696
  652. package/dist/esm/transactions/Transaction.js.map +1 -0
  653. package/dist/esm/transactions/TransactionData.d.ts +9 -9
  654. package/dist/esm/transactions/TransactionData.js +386 -415
  655. package/dist/esm/transactions/TransactionData.js.map +1 -0
  656. package/dist/esm/transactions/__tests__/Transaction.test.js +167 -0
  657. package/dist/esm/transactions/__tests__/Transaction.test.js.map +1 -0
  658. package/dist/esm/transactions/__tests__/bcs.test.js +200 -0
  659. package/dist/esm/transactions/__tests__/bcs.test.js.map +1 -0
  660. package/dist/esm/transactions/data/internal.js +158 -205
  661. package/dist/esm/transactions/data/internal.js.map +1 -0
  662. package/dist/esm/transactions/data/v1.js +419 -487
  663. package/dist/esm/transactions/data/v1.js.map +1 -0
  664. package/dist/esm/transactions/data/v2.d.ts +5 -5
  665. package/dist/esm/transactions/data/v2.js +89 -107
  666. package/dist/esm/transactions/data/v2.js.map +1 -0
  667. package/dist/esm/transactions/executor/caching.d.ts +2 -2
  668. package/dist/esm/transactions/executor/caching.js +66 -93
  669. package/dist/esm/transactions/executor/caching.js.map +1 -0
  670. package/dist/esm/transactions/executor/parallel.js +329 -352
  671. package/dist/esm/transactions/executor/parallel.js.map +1 -0
  672. package/dist/esm/transactions/executor/queue.js +58 -64
  673. package/dist/esm/transactions/executor/queue.js.map +1 -0
  674. package/dist/esm/transactions/executor/serial.d.ts +5 -5
  675. package/dist/esm/transactions/executor/serial.js +96 -110
  676. package/dist/esm/transactions/executor/serial.js.map +1 -0
  677. package/dist/esm/transactions/hash.js +15 -9
  678. package/dist/esm/transactions/hash.js.map +1 -0
  679. package/dist/esm/transactions/index.js +15 -41
  680. package/dist/esm/transactions/index.js.map +1 -0
  681. package/dist/esm/transactions/intents/CoinWithBalance.js +127 -165
  682. package/dist/esm/transactions/intents/CoinWithBalance.js.map +1 -0
  683. package/dist/esm/transactions/object.js +86 -92
  684. package/dist/esm/transactions/object.js.map +1 -0
  685. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js +18 -15
  686. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js.map +1 -0
  687. package/dist/esm/transactions/pure.js +34 -39
  688. package/dist/esm/transactions/pure.js.map +1 -0
  689. package/dist/esm/transactions/resolve.js +58 -69
  690. package/dist/esm/transactions/resolve.js.map +1 -0
  691. package/dist/esm/transactions/serializer.js +145 -144
  692. package/dist/esm/transactions/serializer.js.map +1 -0
  693. package/dist/esm/transactions/utils.d.ts +1 -1
  694. package/dist/esm/transactions/utils.js +110 -109
  695. package/dist/esm/transactions/utils.js.map +1 -0
  696. package/dist/esm/utils/constants.js +26 -36
  697. package/dist/esm/utils/constants.js.map +1 -0
  698. package/dist/esm/utils/derived-objects.js +11 -10
  699. package/dist/esm/utils/derived-objects.js.map +1 -0
  700. package/dist/esm/utils/dynamic-fields.js +16 -16
  701. package/dist/esm/utils/dynamic-fields.js.map +1 -0
  702. package/dist/esm/utils/format.js +13 -13
  703. package/dist/esm/utils/format.js.map +1 -0
  704. package/dist/esm/utils/index.js +15 -76
  705. package/dist/esm/utils/index.js.map +1 -0
  706. package/dist/esm/utils/move-registry.js +34 -17
  707. package/dist/esm/utils/move-registry.js.map +1 -0
  708. package/dist/esm/utils/sui-types.js +70 -54
  709. package/dist/esm/utils/sui-types.js.map +1 -0
  710. package/dist/esm/utils/suins.js +29 -29
  711. package/dist/esm/utils/suins.js.map +1 -0
  712. package/dist/esm/verify/index.js +5 -14
  713. package/dist/esm/verify/index.js.map +1 -0
  714. package/dist/esm/verify/verify.js +76 -93
  715. package/dist/esm/verify/verify.js.map +1 -0
  716. package/dist/esm/version.js +6 -6
  717. package/dist/esm/version.js.map +1 -0
  718. package/dist/esm/w/call/allocation.js +307 -402
  719. package/dist/esm/w/call/allocation.js.map +1 -0
  720. package/dist/esm/w/call/arb.js +100 -129
  721. package/dist/esm/w/call/arb.js.map +1 -0
  722. package/dist/esm/w/call/arbitration.js +1170 -1568
  723. package/dist/esm/w/call/arbitration.js.map +1 -0
  724. package/dist/esm/w/call/base.js +288 -315
  725. package/dist/esm/w/call/base.js.map +1 -0
  726. package/dist/esm/w/call/contact.js +318 -442
  727. package/dist/esm/w/call/contact.js.map +1 -0
  728. package/dist/esm/w/call/demand.js +673 -841
  729. package/dist/esm/w/call/demand.js.map +1 -0
  730. package/dist/esm/w/call/entity.js +162 -203
  731. package/dist/esm/w/call/entity.js.map +1 -0
  732. package/dist/esm/w/call/guard-ins.d.ts +1 -0
  733. package/dist/esm/w/call/guard-ins.js +4373 -4366
  734. package/dist/esm/w/call/guard-ins.js.map +1 -0
  735. package/dist/esm/w/call/guard.d.ts +10 -0
  736. package/dist/esm/w/call/guard.js +1061 -1115
  737. package/dist/esm/w/call/guard.js.map +1 -0
  738. package/dist/esm/w/call/index.d.ts +1 -1
  739. package/dist/esm/w/call/index.js +24 -54
  740. package/dist/esm/w/call/index.js.map +1 -0
  741. package/dist/esm/w/call/machine.js +1086 -1433
  742. package/dist/esm/w/call/machine.js.map +1 -0
  743. package/dist/esm/w/call/order.js +301 -448
  744. package/dist/esm/w/call/order.js.map +1 -0
  745. package/dist/esm/w/call/passport.js +204 -240
  746. package/dist/esm/w/call/passport.js.map +1 -0
  747. package/dist/esm/w/call/payment.js +177 -215
  748. package/dist/esm/w/call/payment.js.map +1 -0
  749. package/dist/esm/w/call/permission.js +1172 -1320
  750. package/dist/esm/w/call/permission.js.map +1 -0
  751. package/dist/esm/w/call/personal.js +121 -156
  752. package/dist/esm/w/call/personal.js.map +1 -0
  753. package/dist/esm/w/call/progress.js +625 -797
  754. package/dist/esm/w/call/progress.js.map +1 -0
  755. package/dist/esm/w/call/proof.js +61 -103
  756. package/dist/esm/w/call/proof.js.map +1 -0
  757. package/dist/esm/w/call/repository.js +1017 -1251
  758. package/dist/esm/w/call/repository.js.map +1 -0
  759. package/dist/esm/w/call/resource.js +108 -124
  760. package/dist/esm/w/call/resource.js.map +1 -0
  761. package/dist/esm/w/call/reward.js +660 -847
  762. package/dist/esm/w/call/reward.js.map +1 -0
  763. package/dist/esm/w/call/service.js +1849 -2400
  764. package/dist/esm/w/call/service.js.map +1 -0
  765. package/dist/esm/w/call/treasury.js +815 -1125
  766. package/dist/esm/w/call/treasury.js.map +1 -0
  767. package/dist/esm/w/call/util.js +553 -576
  768. package/dist/esm/w/call/util.js.map +1 -0
  769. package/dist/esm/w/common.d.ts +1 -1
  770. package/dist/esm/w/common.js +579 -580
  771. package/dist/esm/w/common.js.map +1 -0
  772. package/dist/esm/w/exception.js +570 -573
  773. package/dist/esm/w/exception.js.map +1 -0
  774. package/dist/esm/w/index.js +4 -0
  775. package/dist/esm/w/index.js.map +1 -0
  776. package/dist/esm/w/local/account.js +652 -709
  777. package/dist/esm/w/local/account.js.map +1 -0
  778. package/dist/esm/w/local/cache.js +176 -147
  779. package/dist/esm/w/local/cache.js.map +1 -0
  780. package/dist/esm/w/local/config.js +46 -60
  781. package/dist/esm/w/local/config.js.map +1 -0
  782. package/dist/esm/w/local/index.js +196 -273
  783. package/dist/esm/w/local/index.js.map +1 -0
  784. package/dist/esm/w/local/local.d.ts +2 -2
  785. package/dist/esm/w/local/local.js +631 -626
  786. package/dist/esm/w/local/local.js.map +1 -0
  787. package/dist/esm/w/local/storage.js +168 -136
  788. package/dist/esm/w/local/storage.js.map +1 -0
  789. package/dist/esm/w/local/token.js +149 -151
  790. package/dist/esm/w/local/token.js.map +1 -0
  791. package/dist/esm/w/local/util.js +45 -22
  792. package/dist/esm/w/local/util.js.map +1 -0
  793. package/dist/esm/w/local/wip.js +1038 -781
  794. package/dist/esm/w/local/wip.js.map +1 -0
  795. package/dist/esm/w/messenger/crypto.js +491 -387
  796. package/dist/esm/w/messenger/crypto.js.map +1 -0
  797. package/dist/esm/w/messenger/index.js +27 -24
  798. package/dist/esm/w/messenger/index.js.map +1 -0
  799. package/dist/esm/w/messenger/messenger-api.js +1111 -1017
  800. package/dist/esm/w/messenger/messenger-api.js.map +1 -0
  801. package/dist/esm/w/messenger/messenger-manager.js +944 -1052
  802. package/dist/esm/w/messenger/messenger-manager.js.map +1 -0
  803. package/dist/esm/w/messenger/messenger.d.ts +1 -1
  804. package/dist/esm/w/messenger/messenger.js +1258 -1421
  805. package/dist/esm/w/messenger/messenger.js.map +1 -0
  806. package/dist/esm/w/messenger/server.js +388 -499
  807. package/dist/esm/w/messenger/server.js.map +1 -0
  808. package/dist/esm/w/messenger/session.js +394 -399
  809. package/dist/esm/w/messenger/session.js.map +1 -0
  810. package/dist/esm/w/messenger/storage.js +840 -751
  811. package/dist/esm/w/messenger/storage.js.map +1 -0
  812. package/dist/esm/w/messenger/types.d.ts +2 -2
  813. package/dist/esm/w/messenger/types.js +80 -85
  814. package/dist/esm/w/messenger/types.js.map +1 -0
  815. package/dist/esm/w/messenger/utils.js +28 -16
  816. package/dist/esm/w/messenger/utils.js.map +1 -0
  817. package/dist/esm/w/query/bult-in.js +95 -100
  818. package/dist/esm/w/query/bult-in.js.map +1 -0
  819. package/dist/esm/w/query/event.js +128 -125
  820. package/dist/esm/w/query/event.js.map +1 -0
  821. package/dist/esm/w/query/index.js +3 -0
  822. package/dist/esm/w/query/index.js.map +1 -0
  823. package/dist/esm/w/query/object.js +1560 -1574
  824. package/dist/esm/w/query/object.js.map +1 -0
  825. package/dist/esm/w/query/received.js +57 -63
  826. package/dist/esm/w/query/received.js.map +1 -0
  827. package/dist/esm/w/query/util.js +48 -56
  828. package/dist/esm/w/query/util.js.map +1 -0
  829. package/dist/esm/w/util.js +578 -673
  830. package/dist/esm/w/util.js.map +1 -0
  831. package/package.json +14 -9
  832. package/dist/cjs/graphql/client.js +0 -98
  833. package/dist/cjs/graphql/core.js +0 -506
  834. package/dist/cjs/graphql/generated/2024.1/tada-env.js +0 -13141
  835. package/dist/cjs/graphql/generated/2024.1/tsconfig.tada.js +0 -11
  836. package/dist/cjs/graphql/generated/2024.4/tada-env.js +0 -13287
  837. package/dist/cjs/graphql/generated/2024.4/tsconfig.tada.js +0 -11
  838. package/dist/cjs/graphql/generated/latest/tada-env.js +0 -12925
  839. package/dist/cjs/graphql/generated/latest/tsconfig.tada.js +0 -11
  840. package/dist/cjs/graphql/generated/queries.js +0 -807
  841. package/dist/cjs/graphql/index.js +0 -25
  842. package/dist/cjs/graphql/schemas/2024.1/index.js +0 -28
  843. package/dist/cjs/graphql/schemas/2024.4/index.js +0 -28
  844. package/dist/cjs/graphql/schemas/latest/index.js +0 -28
  845. package/dist/cjs/graphql/types.js +0 -16
  846. package/dist/cjs/package.json +0 -5
  847. package/dist/cjs/w/local/.eslintrc.js +0 -15
  848. package/dist/cjs/w/messenger/.eslintrc.js +0 -15
  849. package/dist/cjs/zklogin/address.js +0 -93
  850. package/dist/cjs/zklogin/bcs.js +0 -41
  851. package/dist/cjs/zklogin/index.js +0 -45
  852. package/dist/cjs/zklogin/jwt-decode.js +0 -88
  853. package/dist/cjs/zklogin/jwt-utils.js +0 -128
  854. package/dist/cjs/zklogin/nonce.js +0 -60
  855. package/dist/cjs/zklogin/poseidon.js +0 -64
  856. package/dist/cjs/zklogin/publickey.js +0 -281
  857. package/dist/cjs/zklogin/signature.js +0 -57
  858. package/dist/cjs/zklogin/utils.js +0 -98
  859. package/dist/esm/graphql/client.js +0 -79
  860. package/dist/esm/graphql/core.js +0 -505
  861. package/dist/esm/graphql/generated/2024.1/tada-env.js +0 -13121
  862. package/dist/esm/graphql/generated/2024.1/tsconfig.tada.js +0 -16
  863. package/dist/esm/graphql/generated/2024.4/tada-env.js +0 -13267
  864. package/dist/esm/graphql/generated/2024.4/tsconfig.tada.js +0 -16
  865. package/dist/esm/graphql/generated/latest/tada-env.js +0 -12905
  866. package/dist/esm/graphql/generated/latest/tsconfig.tada.js +0 -16
  867. package/dist/esm/graphql/generated/queries.js +0 -788
  868. package/dist/esm/graphql/index.js +0 -8
  869. package/dist/esm/graphql/schemas/2024.1/index.js +0 -8
  870. package/dist/esm/graphql/schemas/2024.4/index.js +0 -8
  871. package/dist/esm/graphql/schemas/latest/index.js +0 -8
  872. package/dist/esm/graphql/types.js +0 -0
  873. package/dist/esm/package.json +0 -5
  874. package/dist/esm/w/local/.eslintrc.js +0 -23
  875. package/dist/esm/w/messenger/.eslintrc.js +0 -23
  876. package/dist/esm/zklogin/address.js +0 -78
  877. package/dist/esm/zklogin/bcs.js +0 -21
  878. package/dist/esm/zklogin/index.js +0 -38
  879. package/dist/esm/zklogin/jwt-decode.js +0 -68
  880. package/dist/esm/zklogin/jwt-utils.js +0 -108
  881. package/dist/esm/zklogin/nonce.js +0 -40
  882. package/dist/esm/zklogin/poseidon.js +0 -61
  883. package/dist/esm/zklogin/publickey.js +0 -265
  884. package/dist/esm/zklogin/signature.js +0 -37
  885. package/dist/esm/zklogin/utils.js +0 -78
  886. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  887. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,26 +1,6 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import {
5
- toTxObject,
6
- toTxString,
7
- isValidDescription,
8
- MAX_DESCRIPTION_LENGTH,
9
- isValidName,
10
- isValidLongName,
11
- isValidU16,
12
- isValidU64,
13
- PackageAddress,
14
- MAX_LONG_NAME_LENGTH,
15
- isValidArray,
16
- IsValidArgType,
17
- GetObjectExisted,
18
- GetObject,
19
- GetObjectDescription,
20
- serviceFn,
21
- MAX_NAME_LENGTH,
22
- isValidHttpUrl
23
- } from "../common.js";
1
+ // Copyright (c) Wowok.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { toTxObject, toTxString, isValidDescription, MAX_DESCRIPTION_LENGTH, isValidName, isValidLongName, isValidU16, isValidU64, PackageAddress, MAX_LONG_NAME_LENGTH, isValidArray, IsValidArgType, GetObjectExisted, GetObject, GetObjectDescription, serviceFn, MAX_NAME_LENGTH, isValidHttpUrl, } from "../common.js";
24
4
  import { W_ERROR, WErrors } from "../exception.js";
25
5
  import { ObjectType } from "../query/object.js";
26
6
  import { owner_receive, parseObjectType, validObjects } from "../util.js";
@@ -29,2444 +9,1913 @@ import { CallBase, getCoinParam } from "./base.js";
29
9
  import { BuiltinPermissionIndex, newPermission } from "./permission.js";
30
10
  import { GetManyAccountOrMark_Address } from "../local/index.js";
31
11
  import { LocalMark } from "../local/local.js";
32
- import {
33
- agent_set,
34
- order_required_info_update,
35
- owner_change
36
- } from "./order.js";
12
+ import { agent_set, order_required_info_update, owner_change, } from "./order.js";
37
13
  import { create as progressCreate } from "./progress.js";
38
14
  import { create as orderCreate } from "./order.js";
39
15
  import { create as permissionCreate } from "./permission.js";
40
16
  import { queryObjectsWithType } from "../query/util.js";
41
17
  import { query_received } from "../query/received.js";
42
- class CallService extends CallBase {
43
- constructor(data) {
44
- super();
45
- __publicField(this, "data");
46
- __publicField(this, "object_address");
47
- __publicField(this, "permission_address");
48
- __publicField(this, "new_permission_description");
49
- __publicField(this, "parameter_type");
50
- __publicField(this, "checkPublished", (op) => {
51
- if (this.content && !this.content.bPublished) {
52
- W_ERROR(
53
- WErrors.Fail,
54
- `Service object has not been published yet, so the operation (${op}) cannot proceed.`
55
- );
56
- }
57
- });
58
- __publicField(this, "checkNotPublished", (op) => {
59
- if (this.content && this.content.bPublished) {
60
- W_ERROR(
61
- WErrors.Fail,
62
- `Service object has been published and operation (${op}) cannot proceed.
63
- If further modifications are needed, you can 'clone' a new Service and then proceed with the operation.`
64
- );
65
- }
66
- });
67
- __publicField(this, "checkNotPaused", (op) => {
68
- if (this.content && this.content.bPaused) {
69
- W_ERROR(
70
- WErrors.Fail,
71
- `Service object has been paused and operation (${op}) cannot proceed.`
72
- );
73
- }
74
- });
75
- this.data = data;
76
- }
77
- async prepare(env) {
78
- await super.prepare(env);
79
- if (!this.object_address) {
80
- this.object_address = await GetObjectExisted(this.data?.object);
81
- }
82
- if (this.object_address) {
83
- await this.update_content(
84
- env,
85
- ObjectType.Service,
86
- this.object_address
87
- );
88
- if (!this.content)
89
- W_ERROR(
90
- WErrors.InvalidParam,
91
- "CallService_Data.data.object:" + this.object_address
92
- );
93
- this.permission_address = this.content.permission;
94
- this.parameter_type = parseObjectType(
95
- this.content.type_raw,
96
- "service::Service"
97
- );
98
- if (!this.permission_address) {
99
- W_ERROR(
100
- WErrors.InvalidParam,
101
- "CallService_Data.data.object.permission is empty"
102
- );
103
- }
104
- if (!IsValidArgType(this.parameter_type)) {
105
- W_ERROR(
106
- WErrors.IsValidArgType,
107
- "CallService_Data.data.object.type_parameter is empty"
108
- );
109
- }
110
- } else {
111
- const n = GetObject(
112
- this.data.object
113
- );
114
- this.permission_address = await GetObjectExisted(n?.permission);
115
- this.new_permission_description = GetObjectDescription(
116
- n?.permission
117
- );
118
- this.parameter_type = n?.type_parameter;
119
- if (!IsValidArgType(this.parameter_type)) {
120
- W_ERROR(
121
- WErrors.IsValidArgType,
122
- "CallService_Data.data.object.type_parameter invalid"
123
- );
124
- }
125
- }
126
- }
127
- async call(env) {
128
- await this.prepare(env);
129
- const guards = [];
130
- const perms = [];
131
- const add_guard = (guard) => {
132
- if (!guards.includes(guard)) {
133
- guards.push(guard);
134
- }
18
+ export class CallService extends CallBase {
19
+ data;
20
+ object_address = undefined;
21
+ permission_address = undefined;
22
+ new_permission_description = undefined;
23
+ parameter_type = undefined;
24
+ constructor(data) {
25
+ super();
26
+ this.data = data;
27
+ }
28
+ async prepare(env) {
29
+ await super.prepare(env);
30
+ if (!this.object_address) {
31
+ this.object_address = await GetObjectExisted(this.data?.object);
32
+ }
33
+ if (this.object_address) {
34
+ await this.update_content(env, ObjectType.Service, this.object_address);
35
+ if (!this.content)
36
+ W_ERROR(WErrors.InvalidParam, "CallService_Data.data.object:" + this.object_address);
37
+ this.permission_address = this.content.permission;
38
+ this.parameter_type = parseObjectType(this.content.type_raw, "service::Service");
39
+ if (!this.permission_address) {
40
+ W_ERROR(WErrors.InvalidParam, "CallService_Data.data.object.permission is empty");
41
+ }
42
+ if (!IsValidArgType(this.parameter_type)) {
43
+ W_ERROR(WErrors.IsValidArgType, "CallService_Data.data.object.type_parameter is empty");
44
+ }
45
+ }
46
+ else {
47
+ const n = GetObject(this.data.object);
48
+ this.permission_address = await GetObjectExisted(n?.permission);
49
+ this.new_permission_description = GetObjectDescription(n?.permission);
50
+ this.parameter_type = n?.type_parameter;
51
+ if (!IsValidArgType(this.parameter_type)) {
52
+ W_ERROR(WErrors.IsValidArgType, "CallService_Data.data.object.type_parameter invalid");
53
+ }
54
+ }
55
+ }
56
+ async call(env) {
57
+ await this.prepare(env); // prepare first.
58
+ const guards = [];
59
+ const perms = [];
60
+ const add_guard = (guard) => {
61
+ if (!guards.includes(guard)) {
62
+ guards.push(guard);
63
+ }
64
+ };
65
+ const add_perm = (index) => {
66
+ if (this.permission_address && !perms.includes(index)) {
67
+ perms.push(index);
68
+ }
69
+ };
70
+ if (this.permission_address && !this.object_address) {
71
+ add_perm(BuiltinPermissionIndex.SERVICE_NEW);
72
+ }
73
+ if (this.data?.order_new) {
74
+ if (!this.content) {
75
+ W_ERROR(WErrors.InvalidParam, `CallService_Data.data.order_new fail because the Service ${JSON.stringify(this.data.object)} content not ready`);
76
+ }
77
+ this.order_allowed();
78
+ if (this.content.buy_guard != null) {
79
+ add_guard(this.content.buy_guard);
80
+ }
81
+ }
82
+ if (this.permission_address &&
83
+ this.data?.description != null &&
84
+ this.object_address) {
85
+ add_perm(BuiltinPermissionIndex.SERVICE_DESCRIPTION);
86
+ }
87
+ if (this.permission_address && this.data?.location != null) {
88
+ add_perm(BuiltinPermissionIndex.SERVICE_LOCATION);
89
+ }
90
+ if (this.permission_address && this.data?.repositories != null) {
91
+ add_perm(BuiltinPermissionIndex.SERVICE_REPOSITORY);
92
+ }
93
+ if (this.permission_address && this.data?.sales != null) {
94
+ add_perm(BuiltinPermissionIndex.SERVICE_SALES);
95
+ }
96
+ if (this.permission_address && this.data?.machine !== undefined) {
97
+ this.checkNotPublished("machine");
98
+ add_perm(BuiltinPermissionIndex.SERVICE_MACHINE);
99
+ }
100
+ if (this.permission_address && this.data?.discount != null) {
101
+ add_perm(BuiltinPermissionIndex.SERVICE_DISCOUNT);
102
+ }
103
+ if (this.permission_address && this.data?.arbitrations != null) {
104
+ this.checkNotPublished("arbitrations");
105
+ add_perm(BuiltinPermissionIndex.SERVICE_ARBITRATION);
106
+ }
107
+ if (this.permission_address && this.data?.customer_required != null) {
108
+ add_perm(BuiltinPermissionIndex.SERVICE_CUSTOMER_INFO_REQUIRED);
109
+ }
110
+ if (this.permission_address && this.data?.pause !== undefined) {
111
+ add_perm(BuiltinPermissionIndex.SERVICE_PAUSE);
112
+ }
113
+ if (this.permission_address && this.data?.publish) {
114
+ add_perm(BuiltinPermissionIndex.SERVICE_PUBLISH);
115
+ }
116
+ if (this.permission_address &&
117
+ this.data?.order_allocators !== undefined) {
118
+ this.checkNotPublished("order_allocators");
119
+ add_perm(BuiltinPermissionIndex.SERVICE_ORDER_ALLOCATOR);
120
+ }
121
+ if (this.permission_address &&
122
+ this.data?.compensation_fund_add != null) {
123
+ add_perm(BuiltinPermissionIndex.SERVICE_COMPENSATION_FUND_DEPOSIT);
124
+ }
125
+ if (this.permission_address &&
126
+ this.data?.compensation_locked_time_add !== undefined) {
127
+ add_perm(BuiltinPermissionIndex.SERVICE_COMPENSATION_LOCKED_TIME_ADD);
128
+ }
129
+ if (this.permission_address && this.data?.rewards != null) {
130
+ add_perm(BuiltinPermissionIndex.SERVICE_REWARD);
131
+ }
132
+ if (this.permission_address &&
133
+ this.data?.compensation_fund_receive != null) {
134
+ add_perm(BuiltinPermissionIndex.SERVICE_COMPENSATION_FUND_RECEIVE);
135
+ }
136
+ if (this.permission_address && this.data?.owner_receive != null) {
137
+ add_perm(BuiltinPermissionIndex.SERVICE_OWNER_RECEIVE);
138
+ }
139
+ if (this.permission_address && this.data?.um !== undefined) {
140
+ add_perm(BuiltinPermissionIndex.SERVICE_UM);
141
+ }
142
+ if (this.permission_address || guards.length > 0) {
143
+ return await this.check_permission_and_call(env, this.permission_address, perms, guards);
144
+ }
145
+ return await this.exec(env);
146
+ }
147
+ async operate(env, tx, passport, submission) {
148
+ let permission = this.permission_address;
149
+ let object = this.object_address;
150
+ if (!this.object_address) {
151
+ if (!permission) {
152
+ permission = newPermission(tx, this.new_permission_description ?? "");
153
+ }
154
+ if (permission && this.parameter_type) {
155
+ object = newService(tx, this.parameter_type, permission, this.data?.description ?? "", passport);
156
+ }
157
+ }
158
+ if (!object || !permission) {
159
+ W_ERROR(WErrors.InvalidParam, "CallService_Data.data.object:" + this.object_address);
160
+ }
161
+ // 最后再给地址命名
162
+ let buyResult;
163
+ if (this.data?.order_new != null && this.content) {
164
+ this.order_allowed();
165
+ const n = this.data?.order_new;
166
+ n.buy.discount = await LocalMark.Instance().get_address(this.data.order_new.buy.discount);
167
+ buyResult = await buy(env, tx, object, this.parameter_type, this.content.machine, n.buy, passport);
168
+ if (!buyResult) {
169
+ W_ERROR(WErrors.Fail, "Buy failed, no order created");
170
+ }
171
+ if (n?.agents != null) {
172
+ agent_set(tx, {
173
+ order: buyResult.order,
174
+ agents: await GetManyAccountOrMark_Address(n.agents),
175
+ });
176
+ }
177
+ if (n?.order_required_info !== undefined) {
178
+ await order_required_info_update(tx, buyResult.order, n.order_required_info);
179
+ }
180
+ if (n?.transfer != null) {
181
+ await owner_change(tx, {
182
+ order: buyResult.order,
183
+ new_owner: n.transfer,
184
+ });
185
+ }
186
+ if (n?.namedNewAllocation != null && buyResult?.allocation) {
187
+ await this.new_with_mark(env, tx, ObjectType.Allocation, buyResult?.allocation, GetObject(n.namedNewAllocation));
188
+ }
189
+ if (buyResult?.progress) {
190
+ if (n?.namedNewProgress != null) {
191
+ await this.new_with_mark(env, tx, ObjectType.Progress, progressCreate(tx, buyResult?.progress), GetObject(n.namedNewProgress));
192
+ }
193
+ else {
194
+ progressCreate(tx, buyResult?.progress);
195
+ }
196
+ }
197
+ if (buyResult?.order) {
198
+ const addr = orderCreate(tx, buyResult?.order);
199
+ if (n?.namedNewOrder != null) {
200
+ await this.new_with_mark(env, tx, ObjectType.Order, addr, GetObject(n.namedNewOrder));
201
+ }
202
+ }
203
+ }
204
+ if (this.data.description != null && !this.object_address) {
205
+ description_set(tx, object, this.parameter_type, permission, this.data.description, passport);
206
+ }
207
+ if (this.data.location != null) {
208
+ location_set(tx, object, this.parameter_type, permission, this.data.location, passport);
209
+ }
210
+ if (this.data.sales != null) {
211
+ switch (this.data.sales.op) {
212
+ case "add": {
213
+ sales_add(tx, object, this.parameter_type, permission, this.data.sales.sales, passport);
214
+ break;
215
+ }
216
+ case "set": {
217
+ sales_set(tx, object, this.parameter_type, permission, this.data.sales.sales, passport);
218
+ break;
219
+ }
220
+ case "remove": {
221
+ sales_remove(tx, object, this.parameter_type, permission, this.data.sales.sales_name, passport);
222
+ break;
223
+ }
224
+ case "clear": {
225
+ sales_clear(tx, object, this.parameter_type, permission, passport);
226
+ break;
227
+ }
228
+ }
229
+ }
230
+ if (this.data.repositories != null) {
231
+ switch (this.data.repositories.op) {
232
+ case "add":
233
+ case "set": {
234
+ if (this.data.repositories.objects.length >
235
+ MAX_REPOSITORY_COUNT) {
236
+ W_ERROR(WErrors.InvalidParam, "CallService_Data.data.repositories.objects:" +
237
+ this.data.repositories.objects);
238
+ }
239
+ if (this.data.repositories.op === "set") {
240
+ repository_clear(tx, object, this.parameter_type, permission, passport);
241
+ }
242
+ const r = await LocalMark.Instance().get_many_address_availables(this.data.repositories.objects);
243
+ r.forEach((repo) => {
244
+ repository_add(tx, object, this.parameter_type, permission, repo, passport);
245
+ });
246
+ break;
247
+ }
248
+ case "remove": {
249
+ if (this.data.repositories.objects.length >
250
+ MAX_REPOSITORY_COUNT) {
251
+ W_ERROR(WErrors.InvalidParam, "CallService_Data.data.repositories.objects:" +
252
+ this.data.repositories.objects);
253
+ }
254
+ const addrs = await LocalMark.Instance().get_many_address_availables(this.data.repositories.objects);
255
+ repository_remove(tx, object, this.parameter_type, permission, addrs, passport);
256
+ break;
257
+ }
258
+ case "clear": {
259
+ repository_clear(tx, object, this.parameter_type, permission, passport);
260
+ break;
261
+ }
262
+ }
263
+ }
264
+ if (this.data.rewards != null) {
265
+ switch (this.data.rewards.op) {
266
+ case "add":
267
+ case "set": {
268
+ if (this.data.rewards.objects.length > MAX_REWARD_COUNT) {
269
+ W_ERROR(WErrors.InvalidParam, `rewards count exceeds maximum limit ${MAX_REWARD_COUNT}`);
270
+ }
271
+ if (this.data.rewards.op === "set") {
272
+ reward_clear(tx, object, this.parameter_type, permission, passport);
273
+ }
274
+ // 无需localmark查询
275
+ const rewards = await queryObjectsWithType(env, this.data.rewards.objects, ObjectType.Reward, "reward::Reward", false);
276
+ rewards.forEach((reward) => {
277
+ reward_add(tx, object, this.parameter_type, permission, reward.object, reward.type, passport);
278
+ });
279
+ break;
280
+ }
281
+ case "remove": {
282
+ if (this.data.rewards.objects.length > MAX_REWARD_COUNT) {
283
+ W_ERROR(WErrors.InvalidParam, `rewards count exceeds maximum limit ${MAX_REWARD_COUNT}`);
284
+ }
285
+ const addrs = await LocalMark.Instance().get_many_address_availables(this.data.rewards.objects);
286
+ reward_remove(tx, object, this.parameter_type, permission, addrs, passport);
287
+ break;
288
+ }
289
+ case "clear": {
290
+ reward_clear(tx, object, this.parameter_type, permission, passport);
291
+ break;
292
+ }
293
+ }
294
+ }
295
+ if (this.data.arbitrations != null) {
296
+ switch (this.data.arbitrations.op) {
297
+ case "add":
298
+ case "set": {
299
+ if (this.data.arbitrations.objects.length >
300
+ MAX_ARBITRATION_COUNT) {
301
+ W_ERROR(WErrors.InvalidParam, `arbitrations count exceeds maximum limit ${MAX_ARBITRATION_COUNT}`);
302
+ }
303
+ if (this.data.arbitrations.op === "set") {
304
+ arbitration_clear(tx, object, this.parameter_type, permission, passport);
305
+ }
306
+ const arbitrations = await queryObjectsWithType(env, this.data.arbitrations.objects, ObjectType.Arbitration, "arbitration::Arbitration", false);
307
+ arbitrations.forEach((arbitration) => {
308
+ arbitrations_add(tx, object, this.parameter_type, permission, arbitration.object, arbitration.type, passport);
309
+ });
310
+ break;
311
+ }
312
+ case "remove": {
313
+ if (this.data.arbitrations.objects.length >
314
+ MAX_ARBITRATION_COUNT) {
315
+ W_ERROR(WErrors.InvalidParam, `arbitrations count exceeds maximum limit ${MAX_ARBITRATION_COUNT}`);
316
+ }
317
+ const addrs = await LocalMark.Instance().get_many_address_availables(this.data.arbitrations.objects);
318
+ arbitrations_remove(tx, object, this.parameter_type, permission, addrs, passport);
319
+ break;
320
+ }
321
+ case "clear": {
322
+ arbitration_clear(tx, object, this.parameter_type, permission, passport);
323
+ break;
324
+ }
325
+ }
326
+ }
327
+ if (this.data.discount != null) {
328
+ await discount(tx, object, this.parameter_type, permission, this.data.discount, passport);
329
+ }
330
+ if (this.data.discount_destroy != null) {
331
+ const r = await LocalMark.Instance().get_many_address_availables(this.data.discount_destroy);
332
+ discount_destroy(tx, r);
333
+ }
334
+ if (this.data.machine !== undefined) {
335
+ if (this.data.machine) {
336
+ const m = await LocalMark.Instance().get_address(this.data.machine);
337
+ if (m) {
338
+ this.data.machine = m;
339
+ }
340
+ else {
341
+ W_ERROR(WErrors.IsValidArgType, `Machine not found ${this.data.machine}`);
342
+ }
343
+ }
344
+ machine_set(tx, object, this.parameter_type, permission, this.data.machine, passport);
345
+ }
346
+ if (this.data.customer_required != null) {
347
+ customer_required_set(tx, object, this.parameter_type, permission, this.data.customer_required, passport);
348
+ }
349
+ if (this.data.order_allocators !== undefined) {
350
+ // localMark 查询在allocators中完成
351
+ order_allocators_set(tx, object, this.parameter_type, permission, this.data.order_allocators
352
+ ? await allocators(tx, this.data.order_allocators)
353
+ : null, passport);
354
+ }
355
+ if (this.data.compensation_fund_add != null) {
356
+ // getCoinParam中完成地址查询
357
+ compensation_fund_add(env, tx, object, this.parameter_type, permission, this.data.compensation_fund_add, passport);
358
+ }
359
+ if (this.data.compensation_locked_time_add !== undefined) {
360
+ compensation_lock_duration_set(tx, object, this.parameter_type, permission, this.data.compensation_locked_time_add, passport);
361
+ }
362
+ if (this.data.compensation_fund_receive != null &&
363
+ this.object_address) {
364
+ if (this.data.compensation_fund_receive === "recently") {
365
+ const received = await query_received({
366
+ object: this.object_address,
367
+ network: env.network,
368
+ no_cache: env.no_cache,
369
+ });
370
+ // 检查received的类型,如果是ReceivedNormal[],需要转换为ReceivedBalance
371
+ if (Array.isArray(received)) {
372
+ W_ERROR(WErrors.InvalidParam, "CallAllocation_Data.data.received_coins: received is ReceivedNormal[]");
373
+ }
374
+ else {
375
+ // 如果是ReceivedBalance类型,直接赋值
376
+ this.data.compensation_fund_receive = received;
377
+ }
378
+ }
379
+ if (typeof this.data.compensation_fund_receive === "object" &&
380
+ "received" in this.data.compensation_fund_receive &&
381
+ this.data.compensation_fund_receive.received?.length > 0) {
382
+ if (this.data.compensation_fund_receive.token_type !==
383
+ this.parameter_type) {
384
+ W_ERROR(WErrors.InvalidParam, `token_type ${this.data.compensation_fund_receive.token_type} is not equal to parameter_type ${this.parameter_type}`);
385
+ }
386
+ for (const item of this.data.compensation_fund_receive
387
+ .received) {
388
+ const [received_object, payment_object] = await Promise.all([
389
+ LocalMark.Instance().get_address(item.id),
390
+ LocalMark.Instance().get_address(item.payment),
391
+ ]);
392
+ if (!received_object || !payment_object) {
393
+ W_ERROR(WErrors.IsValidArgType, `Compensation fund receive object ${item.id} or payment object ${item.payment} not found`);
394
+ }
395
+ compensation_fund_receive(tx, object, this.parameter_type, permission, item.id, item.payment, passport);
396
+ }
397
+ }
398
+ }
399
+ if (this.data.owner_receive != null && this.object_address) {
400
+ // owner_receive 中完成地址查询
401
+ if (this.data.owner_receive === "recently") {
402
+ this.data.owner_receive = await query_received({
403
+ object: this.object_address,
404
+ all_type: true,
405
+ network: env.network,
406
+ no_cache: env.no_cache,
407
+ });
408
+ }
409
+ await owner_receive(tx, object, permission, this.data.owner_receive, this.parameter_type, (name) => `${PackageAddress}::service::${name}`, passport);
410
+ }
411
+ // 处理 um
412
+ if (this.data.um !== undefined) {
413
+ let um_address = null;
414
+ if (this.data.um) {
415
+ um_address =
416
+ (await LocalMark.Instance().get_address(this.data.um)) ||
417
+ null;
418
+ if (!um_address) {
419
+ W_ERROR(WErrors.InvalidParam, "CallService_Data.data.um:" + this.data.um);
420
+ }
421
+ }
422
+ um_set(tx, object, this.parameter_type, permission, um_address, passport);
423
+ }
424
+ if (this.data.pause != null) {
425
+ pause(tx, object, this.parameter_type, permission, this.data.pause, passport);
426
+ }
427
+ if (this.data.publish) {
428
+ publish(tx, object, this.parameter_type, permission, passport);
429
+ }
430
+ if (!this.permission_address) {
431
+ const p = GetObject(this.data?.object);
432
+ await this.new_with_mark(env, tx, ObjectType.Permission, permissionCreate(tx, permission), GetObject(p.permission));
433
+ }
434
+ if (!this.object_address) {
435
+ await this.new_with_mark(env, tx, ObjectType.Service, create(tx, object, this.parameter_type), GetObject(this.data?.object));
436
+ }
437
+ }
438
+ checkPublished = (op) => {
439
+ if (this.content && !this.content.bPublished) {
440
+ W_ERROR(WErrors.Fail, `Service object has not been published yet, so the operation (${op}) cannot proceed.`);
441
+ }
135
442
  };
136
- const add_perm = (index) => {
137
- if (this.permission_address && !perms.includes(index)) {
138
- perms.push(index);
139
- }
443
+ checkNotPublished = (op) => {
444
+ if (this.content && this.content.bPublished) {
445
+ W_ERROR(WErrors.Fail, `Service object has been published and operation (${op}) cannot proceed.
446
+ If further modifications are needed, you can 'clone' a new Service and then proceed with the operation.`);
447
+ }
448
+ };
449
+ checkNotPaused = (op) => {
450
+ if (this.content && this.content.bPaused) {
451
+ W_ERROR(WErrors.Fail, `Service object has been paused and operation (${op}) cannot proceed.`);
452
+ }
140
453
  };
141
- if (this.permission_address && !this.object_address) {
142
- add_perm(BuiltinPermissionIndex.SERVICE_NEW);
143
- }
144
- if (this.data?.order_new) {
145
- if (!this.content) {
146
- W_ERROR(
147
- WErrors.InvalidParam,
148
- `CallService_Data.data.order_new fail because the Service ${JSON.stringify(this.data.object)} content not ready`
149
- );
150
- }
151
- this.order_allowed();
152
- if (this.content.buy_guard != null) {
153
- add_guard(this.content.buy_guard);
154
- }
155
- }
156
- if (this.permission_address && this.data?.description != null && this.object_address) {
157
- add_perm(BuiltinPermissionIndex.SERVICE_DESCRIPTION);
158
- }
159
- if (this.permission_address && this.data?.location != null) {
160
- add_perm(BuiltinPermissionIndex.SERVICE_LOCATION);
161
- }
162
- if (this.permission_address && this.data?.repositories != null) {
163
- add_perm(BuiltinPermissionIndex.SERVICE_REPOSITORY);
164
- }
165
- if (this.permission_address && this.data?.sales != null) {
166
- add_perm(BuiltinPermissionIndex.SERVICE_SALES);
167
- }
168
- if (this.permission_address && this.data?.machine !== void 0) {
169
- this.checkNotPublished("machine");
170
- add_perm(BuiltinPermissionIndex.SERVICE_MACHINE);
171
- }
172
- if (this.permission_address && this.data?.discount != null) {
173
- add_perm(BuiltinPermissionIndex.SERVICE_DISCOUNT);
174
- }
175
- if (this.permission_address && this.data?.arbitrations != null) {
176
- this.checkNotPublished("arbitrations");
177
- add_perm(BuiltinPermissionIndex.SERVICE_ARBITRATION);
178
- }
179
- if (this.permission_address && this.data?.customer_required != null) {
180
- add_perm(BuiltinPermissionIndex.SERVICE_CUSTOMER_INFO_REQUIRED);
181
- }
182
- if (this.permission_address && this.data?.pause !== void 0) {
183
- add_perm(BuiltinPermissionIndex.SERVICE_PAUSE);
184
- }
185
- if (this.permission_address && this.data?.publish) {
186
- add_perm(BuiltinPermissionIndex.SERVICE_PUBLISH);
187
- }
188
- if (this.permission_address && this.data?.order_allocators !== void 0) {
189
- this.checkNotPublished("order_allocators");
190
- add_perm(BuiltinPermissionIndex.SERVICE_ORDER_ALLOCATOR);
191
- }
192
- if (this.permission_address && this.data?.compensation_fund_add != null) {
193
- add_perm(BuiltinPermissionIndex.SERVICE_COMPENSATION_FUND_DEPOSIT);
194
- }
195
- if (this.permission_address && this.data?.compensation_locked_time_add !== void 0) {
196
- add_perm(
197
- BuiltinPermissionIndex.SERVICE_COMPENSATION_LOCKED_TIME_ADD
198
- );
199
- }
200
- if (this.permission_address && this.data?.rewards != null) {
201
- add_perm(BuiltinPermissionIndex.SERVICE_REWARD);
202
- }
203
- if (this.permission_address && this.data?.compensation_fund_receive != null) {
204
- add_perm(BuiltinPermissionIndex.SERVICE_COMPENSATION_FUND_RECEIVE);
205
- }
206
- if (this.permission_address && this.data?.owner_receive != null) {
207
- add_perm(BuiltinPermissionIndex.SERVICE_OWNER_RECEIVE);
208
- }
209
- if (this.permission_address && this.data?.um !== void 0) {
210
- add_perm(BuiltinPermissionIndex.SERVICE_UM);
211
- }
212
- if (this.permission_address || guards.length > 0) {
213
- return await this.check_permission_and_call(
214
- env,
215
- this.permission_address,
216
- perms,
217
- guards
218
- );
219
- }
220
- return await this.exec(env);
221
- }
222
- async operate(env, tx, passport, submission) {
223
- let permission = this.permission_address;
224
- let object = this.object_address;
225
- if (!this.object_address) {
226
- if (!permission) {
227
- permission = newPermission(
228
- tx,
229
- this.new_permission_description ?? ""
230
- );
231
- }
232
- if (permission && this.parameter_type) {
233
- object = newService(
234
- tx,
235
- this.parameter_type,
236
- permission,
237
- this.data?.description ?? "",
238
- passport
239
- );
240
- }
241
- }
242
- if (!object || !permission) {
243
- W_ERROR(
244
- WErrors.InvalidParam,
245
- "CallService_Data.data.object:" + this.object_address
246
- );
247
- }
248
- let buyResult;
249
- if (this.data?.order_new != null && this.content) {
250
- this.order_allowed();
251
- const n = this.data?.order_new;
252
- n.buy.discount = await LocalMark.Instance().get_address(
253
- this.data.order_new.buy.discount
254
- );
255
- buyResult = await buy(
256
- env,
257
- tx,
258
- object,
259
- this.parameter_type,
260
- this.content.machine,
261
- n.buy,
262
- passport
263
- );
264
- if (!buyResult) {
265
- W_ERROR(WErrors.Fail, "Buy failed, no order created");
266
- }
267
- if (n?.agents != null) {
268
- agent_set(tx, {
269
- order: buyResult.order,
270
- agents: await GetManyAccountOrMark_Address(n.agents)
271
- });
272
- }
273
- if (n?.order_required_info !== void 0) {
274
- await order_required_info_update(
275
- tx,
276
- buyResult.order,
277
- n.order_required_info
278
- );
279
- }
280
- if (n?.transfer != null) {
281
- await owner_change(tx, {
282
- order: buyResult.order,
283
- new_owner: n.transfer
284
- });
285
- }
286
- if (n?.namedNewAllocation != null && buyResult?.allocation) {
287
- await this.new_with_mark(
288
- env,
289
- tx,
290
- ObjectType.Allocation,
291
- buyResult?.allocation,
292
- GetObject(n.namedNewAllocation)
293
- );
294
- }
295
- if (buyResult?.progress) {
296
- if (n?.namedNewProgress != null) {
297
- await this.new_with_mark(
298
- env,
299
- tx,
300
- ObjectType.Progress,
301
- progressCreate(tx, buyResult?.progress),
302
- GetObject(n.namedNewProgress)
303
- );
304
- } else {
305
- progressCreate(tx, buyResult?.progress);
306
- }
307
- }
308
- if (buyResult?.order) {
309
- const addr = orderCreate(tx, buyResult?.order);
310
- if (n?.namedNewOrder != null) {
311
- await this.new_with_mark(
312
- env,
313
- tx,
314
- ObjectType.Order,
315
- addr,
316
- GetObject(n.namedNewOrder)
317
- );
318
- }
319
- }
320
- }
321
- if (this.data.description != null && !this.object_address) {
322
- description_set(
323
- tx,
324
- object,
325
- this.parameter_type,
326
- permission,
327
- this.data.description,
328
- passport
329
- );
330
- }
331
- if (this.data.location != null) {
332
- location_set(
333
- tx,
334
- object,
335
- this.parameter_type,
336
- permission,
337
- this.data.location,
338
- passport
339
- );
340
- }
341
- if (this.data.sales != null) {
342
- switch (this.data.sales.op) {
343
- case "add": {
344
- sales_add(
345
- tx,
346
- object,
347
- this.parameter_type,
348
- permission,
349
- this.data.sales.sales,
350
- passport
351
- );
352
- break;
353
- }
354
- case "set": {
355
- sales_set(
356
- tx,
357
- object,
358
- this.parameter_type,
359
- permission,
360
- this.data.sales.sales,
361
- passport
362
- );
363
- break;
364
- }
365
- case "remove": {
366
- sales_remove(
367
- tx,
368
- object,
369
- this.parameter_type,
370
- permission,
371
- this.data.sales.sales_name,
372
- passport
373
- );
374
- break;
375
- }
376
- case "clear": {
377
- sales_clear(
378
- tx,
379
- object,
380
- this.parameter_type,
381
- permission,
382
- passport
383
- );
384
- break;
385
- }
386
- }
387
- }
388
- if (this.data.repositories != null) {
389
- switch (this.data.repositories.op) {
390
- case "add":
391
- case "set": {
392
- if (this.data.repositories.objects.length > MAX_REPOSITORY_COUNT) {
393
- W_ERROR(
394
- WErrors.InvalidParam,
395
- "CallService_Data.data.repositories.objects:" + this.data.repositories.objects
396
- );
397
- }
398
- if (this.data.repositories.op === "set") {
399
- repository_clear(
400
- tx,
401
- object,
402
- this.parameter_type,
403
- permission,
404
- passport
405
- );
406
- }
407
- const r = await LocalMark.Instance().get_many_address_availables(
408
- this.data.repositories.objects
409
- );
410
- r.forEach((repo) => {
411
- repository_add(
412
- tx,
413
- object,
414
- this.parameter_type,
415
- permission,
416
- repo,
417
- passport
418
- );
419
- });
420
- break;
421
- }
422
- case "remove": {
423
- if (this.data.repositories.objects.length > MAX_REPOSITORY_COUNT) {
424
- W_ERROR(
425
- WErrors.InvalidParam,
426
- "CallService_Data.data.repositories.objects:" + this.data.repositories.objects
427
- );
428
- }
429
- const addrs = await LocalMark.Instance().get_many_address_availables(
430
- this.data.repositories.objects
431
- );
432
- repository_remove(
433
- tx,
434
- object,
435
- this.parameter_type,
436
- permission,
437
- addrs,
438
- passport
439
- );
440
- break;
441
- }
442
- case "clear": {
443
- repository_clear(
444
- tx,
445
- object,
446
- this.parameter_type,
447
- permission,
448
- passport
449
- );
450
- break;
451
- }
452
- }
453
- }
454
- if (this.data.rewards != null) {
455
- switch (this.data.rewards.op) {
456
- case "add":
457
- case "set": {
458
- if (this.data.rewards.objects.length > MAX_REWARD_COUNT) {
459
- W_ERROR(
460
- WErrors.InvalidParam,
461
- `rewards count exceeds maximum limit ${MAX_REWARD_COUNT}`
462
- );
463
- }
464
- if (this.data.rewards.op === "set") {
465
- reward_clear(
466
- tx,
467
- object,
468
- this.parameter_type,
469
- permission,
470
- passport
471
- );
472
- }
473
- const rewards = await queryObjectsWithType(
474
- env,
475
- this.data.rewards.objects,
476
- ObjectType.Reward,
477
- "reward::Reward",
478
- false
479
- );
480
- rewards.forEach((reward) => {
481
- reward_add(
482
- tx,
483
- object,
484
- this.parameter_type,
485
- permission,
486
- reward.object,
487
- reward.type,
488
- passport
489
- );
490
- });
491
- break;
492
- }
493
- case "remove": {
494
- if (this.data.rewards.objects.length > MAX_REWARD_COUNT) {
495
- W_ERROR(
496
- WErrors.InvalidParam,
497
- `rewards count exceeds maximum limit ${MAX_REWARD_COUNT}`
498
- );
499
- }
500
- const addrs = await LocalMark.Instance().get_many_address_availables(
501
- this.data.rewards.objects
502
- );
503
- reward_remove(
504
- tx,
505
- object,
506
- this.parameter_type,
507
- permission,
508
- addrs,
509
- passport
510
- );
511
- break;
512
- }
513
- case "clear": {
514
- reward_clear(
515
- tx,
516
- object,
517
- this.parameter_type,
518
- permission,
519
- passport
520
- );
521
- break;
522
- }
523
- }
524
- }
525
- if (this.data.arbitrations != null) {
526
- switch (this.data.arbitrations.op) {
527
- case "add":
528
- case "set": {
529
- if (this.data.arbitrations.objects.length > MAX_ARBITRATION_COUNT) {
530
- W_ERROR(
531
- WErrors.InvalidParam,
532
- `arbitrations count exceeds maximum limit ${MAX_ARBITRATION_COUNT}`
533
- );
534
- }
535
- if (this.data.arbitrations.op === "set") {
536
- arbitration_clear(
537
- tx,
538
- object,
539
- this.parameter_type,
540
- permission,
541
- passport
542
- );
543
- }
544
- const arbitrations = await queryObjectsWithType(
545
- env,
546
- this.data.arbitrations.objects,
547
- ObjectType.Arbitration,
548
- "arbitration::Arbitration",
549
- false
550
- );
551
- arbitrations.forEach((arbitration) => {
552
- arbitrations_add(
553
- tx,
554
- object,
555
- this.parameter_type,
556
- permission,
557
- arbitration.object,
558
- arbitration.type,
559
- passport
560
- );
561
- });
562
- break;
563
- }
564
- case "remove": {
565
- if (this.data.arbitrations.objects.length > MAX_ARBITRATION_COUNT) {
566
- W_ERROR(
567
- WErrors.InvalidParam,
568
- `arbitrations count exceeds maximum limit ${MAX_ARBITRATION_COUNT}`
569
- );
570
- }
571
- const addrs = await LocalMark.Instance().get_many_address_availables(
572
- this.data.arbitrations.objects
573
- );
574
- arbitrations_remove(
575
- tx,
576
- object,
577
- this.parameter_type,
578
- permission,
579
- addrs,
580
- passport
581
- );
582
- break;
583
- }
584
- case "clear": {
585
- arbitration_clear(
586
- tx,
587
- object,
588
- this.parameter_type,
589
- permission,
590
- passport
591
- );
592
- break;
593
- }
594
- }
595
- }
596
- if (this.data.discount != null) {
597
- await discount(
598
- tx,
599
- object,
600
- this.parameter_type,
601
- permission,
602
- this.data.discount,
603
- passport
604
- );
605
- }
606
- if (this.data.discount_destroy != null) {
607
- const r = await LocalMark.Instance().get_many_address_availables(
608
- this.data.discount_destroy
609
- );
610
- discount_destroy(tx, r);
611
- }
612
- if (this.data.machine !== void 0) {
613
- if (this.data.machine) {
614
- const m = await LocalMark.Instance().get_address(
615
- this.data.machine
616
- );
617
- if (m) {
618
- this.data.machine = m;
619
- } else {
620
- W_ERROR(
621
- WErrors.IsValidArgType,
622
- `Machine not found ${this.data.machine}`
623
- );
624
- }
625
- }
626
- machine_set(
627
- tx,
628
- object,
629
- this.parameter_type,
630
- permission,
631
- this.data.machine,
632
- passport
633
- );
634
- }
635
- if (this.data.customer_required != null) {
636
- customer_required_set(
637
- tx,
638
- object,
639
- this.parameter_type,
640
- permission,
641
- this.data.customer_required,
642
- passport
643
- );
644
- }
645
- if (this.data.order_allocators !== void 0) {
646
- order_allocators_set(
647
- tx,
648
- object,
649
- this.parameter_type,
650
- permission,
651
- this.data.order_allocators ? await allocators(tx, this.data.order_allocators) : null,
652
- passport
653
- );
654
- }
655
- if (this.data.compensation_fund_add != null) {
656
- compensation_fund_add(
657
- env,
658
- tx,
659
- object,
660
- this.parameter_type,
661
- permission,
662
- this.data.compensation_fund_add,
663
- passport
664
- );
665
- }
666
- if (this.data.compensation_locked_time_add !== void 0) {
667
- compensation_lock_duration_set(
668
- tx,
669
- object,
670
- this.parameter_type,
671
- permission,
672
- this.data.compensation_locked_time_add,
673
- passport
674
- );
675
- }
676
- if (this.data.compensation_fund_receive != null && this.object_address) {
677
- if (this.data.compensation_fund_receive === "recently") {
678
- const received = await query_received({
679
- object: this.object_address,
680
- network: env.network,
681
- no_cache: env.no_cache
682
- });
683
- if (Array.isArray(received)) {
684
- W_ERROR(
685
- WErrors.InvalidParam,
686
- "CallAllocation_Data.data.received_coins: received is ReceivedNormal[]"
687
- );
688
- } else {
689
- this.data.compensation_fund_receive = received;
690
- }
691
- }
692
- if (typeof this.data.compensation_fund_receive === "object" && "received" in this.data.compensation_fund_receive && this.data.compensation_fund_receive.received?.length > 0) {
693
- if (this.data.compensation_fund_receive.token_type !== this.parameter_type) {
694
- W_ERROR(
695
- WErrors.InvalidParam,
696
- `token_type ${this.data.compensation_fund_receive.token_type} is not equal to parameter_type ${this.parameter_type}`
697
- );
698
- }
699
- for (const item of this.data.compensation_fund_receive.received) {
700
- const [received_object, payment_object] = await Promise.all(
701
- [
702
- LocalMark.Instance().get_address(item.id),
703
- LocalMark.Instance().get_address(item.payment)
704
- ]
705
- );
706
- if (!received_object || !payment_object) {
707
- W_ERROR(
708
- WErrors.IsValidArgType,
709
- `Compensation fund receive object ${item.id} or payment object ${item.payment} not found`
710
- );
711
- }
712
- compensation_fund_receive(
713
- tx,
714
- object,
715
- this.parameter_type,
716
- permission,
717
- item.id,
718
- item.payment,
719
- passport
720
- );
721
- }
722
- }
723
- }
724
- if (this.data.owner_receive != null && this.object_address) {
725
- if (this.data.owner_receive === "recently") {
726
- this.data.owner_receive = await query_received({
727
- object: this.object_address,
728
- all_type: true,
729
- network: env.network,
730
- no_cache: env.no_cache
731
- });
732
- }
733
- await owner_receive(
734
- tx,
735
- object,
736
- permission,
737
- this.data.owner_receive,
738
- this.parameter_type,
739
- (name) => `${PackageAddress}::service::${name}`,
740
- passport
741
- );
742
- }
743
- if (this.data.um !== void 0) {
744
- let um_address = null;
745
- if (this.data.um) {
746
- um_address = await LocalMark.Instance().get_address(this.data.um) || null;
747
- if (!um_address) {
748
- W_ERROR(
749
- WErrors.InvalidParam,
750
- "CallService_Data.data.um:" + this.data.um
751
- );
752
- }
753
- }
754
- um_set(
755
- tx,
756
- object,
757
- this.parameter_type,
758
- permission,
759
- um_address,
760
- passport
761
- );
762
- }
763
- if (this.data.pause != null) {
764
- pause(
765
- tx,
766
- object,
767
- this.parameter_type,
768
- permission,
769
- this.data.pause,
770
- passport
771
- );
772
- }
773
- if (this.data.publish) {
774
- publish(tx, object, this.parameter_type, permission, passport);
775
- }
776
- if (!this.permission_address) {
777
- const p = GetObject(
778
- this.data?.object
779
- );
780
- await this.new_with_mark(
781
- env,
782
- tx,
783
- ObjectType.Permission,
784
- permissionCreate(tx, permission),
785
- GetObject(p.permission)
786
- );
787
- }
788
- if (!this.object_address) {
789
- await this.new_with_mark(
790
- env,
791
- tx,
792
- ObjectType.Service,
793
- create(tx, object, this.parameter_type),
794
- GetObject(this.data?.object)
795
- );
796
- }
797
- }
798
- order_allowed() {
799
- if (this.content?.bPaused) {
800
- W_ERROR(WErrors.InvalidParam, "Service is paused");
801
- return false;
802
- }
803
- if (this.content?.bPublished !== true) {
804
- W_ERROR(WErrors.InvalidParam, "Service is not published");
805
- return false;
806
- }
807
- return true;
808
- }
454
+ order_allowed() {
455
+ if (this.content?.bPaused) {
456
+ W_ERROR(WErrors.InvalidParam, "Service is paused");
457
+ return false;
458
+ }
459
+ if (this.content?.bPublished !== true) {
460
+ W_ERROR(WErrors.InvalidParam, "Service is not published");
461
+ return false;
462
+ }
463
+ return true;
464
+ }
809
465
  }
810
- const MAX_SALE_COUNT = 50;
811
- const MAX_REPOSITORY_COUNT = 100;
812
- const MAX_ARBITRATION_COUNT = 20;
813
- const MAX_REWARD_COUNT = 20;
814
- const MAX_CUSTOMER_REQUIRED_INFO_COUNT = 10;
815
- const MAX_PUBKEY_LENGTH = 1024;
816
- const MAX_DISCOUNT_COUNT_ONCE = 1e3;
817
- const MAX_DISCOUNT_RECEIVER_ONCE = 1e3;
818
- const MAX_DISCOUNT_TOTAL_COUNT = 2e4;
819
- const MAX_REQUIRED_INFO_SIZE = 20;
820
- const DEFAULT_COMPENSATION_LOCK_DURATION = 2592e6;
821
- const DISCOUNT_TYPE_RATES = 0;
822
- const DISCOUNT_TYPE_MINUS = 1;
466
+ // ================================================
467
+ // 常量定义
468
+ export const MAX_SALE_COUNT = 50;
469
+ export const MAX_REPOSITORY_COUNT = 100;
470
+ export const MAX_ARBITRATION_COUNT = 20;
471
+ export const MAX_REWARD_COUNT = 20;
472
+ export const MAX_CUSTOMER_REQUIRED_INFO_COUNT = 10;
473
+ export const MAX_PUBKEY_LENGTH = 1024;
474
+ export const MAX_DISCOUNT_COUNT_ONCE = 1000;
475
+ export const MAX_DISCOUNT_RECEIVER_ONCE = 1000;
476
+ export const MAX_DISCOUNT_TOTAL_COUNT = 20000;
477
+ export const MAX_REQUIRED_INFO_SIZE = 20;
478
+ export const DEFAULT_COMPENSATION_LOCK_DURATION = 2592000000; // 30 days
479
+ export const DISCOUNT_TYPE_RATES = 0;
480
+ export const DISCOUNT_TYPE_MINUS = 1;
823
481
  const MAX_WIP_LENGTH = 1024;
824
482
  const MAX_WIP_HASH_LENGTH = 64;
825
- function sale(tx, sale2) {
826
- if (typeof sale2.name === "string" && !isValidLongName(sale2.name)) {
827
- W_ERROR(
828
- WErrors.InvalidParam,
829
- `Name ${sale2.name} exceeds maximum length ${MAX_LONG_NAME_LENGTH}`
830
- );
831
- }
832
- if (sale2.wip.length > MAX_WIP_LENGTH) {
833
- W_ERROR(
834
- WErrors.InvalidParam,
835
- `WIP ${sale2.wip} exceeds maximum length ${MAX_WIP_LENGTH}`
836
- );
837
- }
838
- if (!isValidHttpUrl(sale2.wip)) {
839
- W_ERROR(
840
- WErrors.IsValidHttpUrl,
841
- `WIP ${sale2.wip} is not a valid HTTP/HTTPS URL`
842
- );
843
- }
844
- if (sale2.wip_hash.length > MAX_WIP_HASH_LENGTH) {
845
- W_ERROR(
846
- WErrors.InvalidParam,
847
- `WIP hash ${sale2.wip_hash} exceeds maximum length ${MAX_WIP_HASH_LENGTH}`
848
- );
849
- }
850
- return tx.moveCall({
851
- target: serviceFn("sale"),
852
- arguments: [
853
- toTxString(tx, sale2.name),
854
- tx.pure.u64(sale2.price),
855
- tx.pure.u64(sale2.stock),
856
- tx.pure.bool(sale2.suspension),
857
- toTxString(tx, sale2.wip),
858
- toTxString(tx, sale2.wip_hash)
859
- ]
860
- });
861
- }
862
- function quote_item(tx, item) {
863
- if (!isValidLongName(item.name)) {
864
- W_ERROR(
865
- WErrors.InvalidParam,
866
- `Quote item name ${item.name} is not valid`
867
- );
868
- }
869
- if (!isValidU64(item.stock)) {
870
- W_ERROR(
871
- WErrors.IsValidU64,
872
- `Quote item stock ${item.stock} is not valid`
873
- );
874
- }
875
- if (item.wip_hash.length > MAX_WIP_HASH_LENGTH) {
876
- W_ERROR(
877
- WErrors.InvalidParam,
878
- `Quote item wip_hash ${item.wip_hash} exceeds maximum length ${MAX_WIP_HASH_LENGTH}`
879
- );
880
- }
881
- return tx.moveCall({
882
- target: serviceFn("quote_item"),
883
- arguments: [
884
- toTxString(tx, item.name),
885
- tx.pure.u64(item.stock),
886
- toTxString(tx, item.wip_hash)
887
- ]
888
- });
889
- }
890
- function discount_send(tx, discount2, recipient) {
891
- if (discount2.length === 0) {
892
- return;
893
- }
894
- validObjects([...discount2, recipient]);
895
- if (discount2.length > MAX_DISCOUNT_COUNT_ONCE) {
896
- W_ERROR(
897
- WErrors.InvalidParam,
898
- `Discount count ${discount2.length} exceeds maximum limit ${MAX_DISCOUNT_COUNT_ONCE}`
899
- );
900
- }
901
- if (discount2.length === 1) {
902
- tx.moveCall({
903
- target: serviceFn("discount_send_singleton"),
904
- arguments: [
905
- toTxObject(tx, discount2[0]),
906
- tx.pure.address(recipient)
907
- ]
908
- });
909
- return;
910
- } else {
911
- tx.moveCall({
912
- target: serviceFn("discount_send"),
913
- arguments: [
914
- tx.makeMoveVec({
915
- elements: discount2,
916
- type: `${PackageAddress}::service::Discount`
917
- }),
918
- tx.pure.address(recipient)
919
- ]
920
- });
921
- }
922
- }
923
- function discount_destroy(tx, discount2) {
924
- validObjects([...discount2]);
925
- discount2.forEach((item) => {
926
- tx.moveCall({
927
- target: serviceFn("discount_destroy"),
928
- arguments: [toTxObject(tx, item)]
483
+ function sale(tx, sale) {
484
+ if (typeof sale.name === "string" && !isValidLongName(sale.name)) {
485
+ W_ERROR(WErrors.InvalidParam, `Name ${sale.name} exceeds maximum length ${MAX_LONG_NAME_LENGTH}`);
486
+ }
487
+ if (sale.wip.length > MAX_WIP_LENGTH) {
488
+ W_ERROR(WErrors.InvalidParam, `WIP ${sale.wip} exceeds maximum length ${MAX_WIP_LENGTH}`);
489
+ }
490
+ if (!isValidHttpUrl(sale.wip)) {
491
+ W_ERROR(WErrors.IsValidHttpUrl, `WIP ${sale.wip} is not a valid HTTP/HTTPS URL`);
492
+ }
493
+ if (sale.wip_hash.length > MAX_WIP_HASH_LENGTH) {
494
+ W_ERROR(WErrors.InvalidParam, `WIP hash ${sale.wip_hash} exceeds maximum length ${MAX_WIP_HASH_LENGTH}`);
495
+ }
496
+ return tx.moveCall({
497
+ target: serviceFn("sale"),
498
+ arguments: [
499
+ toTxString(tx, sale.name),
500
+ tx.pure.u64(sale.price),
501
+ tx.pure.u64(sale.stock),
502
+ tx.pure.bool(sale.suspension),
503
+ toTxString(tx, sale.wip),
504
+ toTxString(tx, sale.wip_hash),
505
+ ],
929
506
  });
930
- });
931
507
  }
932
- const buy = async (env, tx, service, service_type, machine, buy2, passport) => {
933
- if (buy2.items.length === 0) {
934
- return void 0;
935
- }
936
- validObjects([service, buy2.discount, machine, passport]);
937
- if (!IsValidArgType(service_type)) {
938
- W_ERROR(
939
- WErrors.InvalidParam,
940
- `Buy service type ${service_type} is not valid`
941
- );
942
- }
943
- if (!isValidArray(buy2.items, (item) => {
508
+ function quote_item(tx, item) {
944
509
  if (!isValidLongName(item.name)) {
945
- W_ERROR(
946
- WErrors.InvalidParam,
947
- `Buy item name ${item.name} is not valid`
948
- );
510
+ W_ERROR(WErrors.InvalidParam, `Quote item name ${item.name} is not valid`);
949
511
  }
950
512
  if (!isValidU64(item.stock)) {
951
- W_ERROR(
952
- WErrors.IsValidU64,
953
- `Buy item stock ${item.stock} is not valid`
954
- );
955
- }
956
- return true;
957
- })) {
958
- W_ERROR(WErrors.InvalidParam, "Buy items is not valid");
959
- }
960
- if (typeof buy2.payment_remark === "string" && !isValidName(buy2.payment_remark)) {
961
- W_ERROR(
962
- WErrors.InvalidParam,
963
- `Buy payment remark ${buy2.payment_remark} is not valid`
964
- );
965
- }
966
- buy2.payment_remark = buy2.payment_remark || "";
967
- if (buy2.payment_index != null && !isValidU64(buy2.payment_index)) {
968
- W_ERROR(
969
- WErrors.IsValidU64,
970
- `Buy payment index ${buy2.payment_index} is not valid`
971
- );
972
- }
973
- const coinParam = await getCoinParam(env, tx, buy2.total_pay, service_type);
974
- buy2.discount = await LocalMark.Instance().get_address(buy2.discount);
975
- let quote = void 0;
976
- if (buy2.discount) {
977
- quote = tx.moveCall({
978
- target: serviceFn("quote_with_discount"),
979
- arguments: [
980
- toTxObject(tx, service),
981
- tx.makeMoveVec({
982
- elements: buy2.items.map((item) => quote_item(tx, item)),
983
- type: `${PackageAddress}::service::QuoteItem`
984
- }),
985
- toTxObject(tx, buy2.discount)
986
- ],
987
- typeArguments: [service_type]
988
- });
989
- } else {
990
- quote = tx.moveCall({
991
- target: serviceFn("quote"),
992
- arguments: [
993
- toTxObject(tx, service),
994
- tx.makeMoveVec({
995
- elements: buy2.items.map((item) => quote_item(tx, item)),
996
- type: `${PackageAddress}::service::QuoteItem`
997
- })
998
- ],
999
- typeArguments: [service_type]
1000
- });
1001
- }
1002
- let order;
1003
- if (passport) {
1004
- order = tx.moveCall({
1005
- target: serviceFn("buy_with_passport"),
1006
- arguments: [
1007
- toTxObject(tx, service),
1008
- toTxObject(tx, passport),
1009
- quote,
1010
- tx.object.mutRegistrar(),
1011
- tx.object.clock()
1012
- ],
1013
- typeArguments: [service_type]
1014
- });
1015
- } else {
1016
- order = tx.moveCall({
1017
- target: serviceFn("buy"),
1018
- arguments: [
1019
- toTxObject(tx, service),
1020
- quote,
1021
- tx.object.mutRegistrar(),
1022
- tx.object.clock()
1023
- ],
1024
- typeArguments: [service_type]
1025
- });
1026
- }
1027
- const result = {
1028
- order
1029
- };
1030
- result.allocation = tx.moveCall({
1031
- target: serviceFn("order_allocation"),
1032
- arguments: [
1033
- toTxObject(tx, service),
1034
- toTxObject(tx, order),
1035
- coinParam,
1036
- tx.pure.string(buy2.payment_remark ?? ""),
1037
- tx.pure.u64(buy2.payment_index || 0),
1038
- tx.object.mutRegistrar(),
1039
- tx.object.clock()
1040
- ],
1041
- typeArguments: [service_type]
1042
- });
1043
- if (machine) {
1044
- result.progress = tx.moveCall({
1045
- target: serviceFn("order_progress"),
1046
- arguments: [
1047
- toTxObject(tx, service),
1048
- toTxObject(tx, order),
1049
- toTxObject(tx, machine),
1050
- tx.object.mutRegistrar(),
1051
- tx.object.clock()
1052
- ],
1053
- typeArguments: [service_type]
1054
- });
1055
- }
1056
- return result;
1057
- };
1058
- function newService(tx, service_type, permission, description, passport) {
1059
- validObjects([permission, passport]);
1060
- if (typeof description === "string" && !isValidDescription(description)) {
1061
- W_ERROR(
1062
- WErrors.IsValidDescription,
1063
- `Description exceeds maximum length ${MAX_DESCRIPTION_LENGTH}`
1064
- );
1065
- }
1066
- if (!IsValidArgType(service_type)) {
1067
- W_ERROR(
1068
- WErrors.InvalidParam,
1069
- `New service type ${service_type} is not valid`
1070
- );
1071
- }
1072
- if (passport) {
1073
- return tx.moveCall({
1074
- target: serviceFn("new_with_passport"),
1075
- arguments: [
1076
- toTxObject(tx, permission),
1077
- toTxObject(tx, passport),
1078
- toTxString(tx, description),
1079
- tx.object.mutRegistrar(),
1080
- tx.object.clock()
1081
- ],
1082
- typeArguments: [service_type]
1083
- });
1084
- } else {
513
+ W_ERROR(WErrors.IsValidU64, `Quote item stock ${item.stock} is not valid`);
514
+ }
515
+ if (item.wip_hash.length > MAX_WIP_HASH_LENGTH) {
516
+ W_ERROR(WErrors.InvalidParam, `Quote item wip_hash ${item.wip_hash} exceeds maximum length ${MAX_WIP_HASH_LENGTH}`);
517
+ }
1085
518
  return tx.moveCall({
1086
- target: serviceFn("new"),
1087
- arguments: [
1088
- toTxObject(tx, permission),
1089
- toTxString(tx, description),
1090
- tx.object.mutRegistrar(),
1091
- tx.object.clock()
1092
- ],
1093
- typeArguments: [service_type]
519
+ target: serviceFn("quote_item"),
520
+ arguments: [
521
+ toTxString(tx, item.name),
522
+ tx.pure.u64(item.stock),
523
+ toTxString(tx, item.wip_hash),
524
+ ],
1094
525
  });
1095
- }
1096
526
  }
1097
- function description_set(tx, service, service_type, permission, description, passport) {
1098
- validObjects([service, permission, passport]);
1099
- if (typeof description === "string" && !isValidDescription(description)) {
1100
- W_ERROR(
1101
- WErrors.IsValidDescription,
1102
- `Description exceeds maximum length ${MAX_DESCRIPTION_LENGTH}`
1103
- );
1104
- }
1105
- if (!IsValidArgType(service_type)) {
1106
- W_ERROR(
1107
- WErrors.InvalidParam,
1108
- `Description set service type ${service_type} is not valid`
1109
- );
1110
- }
1111
- if (passport) {
1112
- tx.moveCall({
1113
- target: serviceFn("description_set_with_passport"),
1114
- arguments: [
1115
- toTxObject(tx, service),
1116
- toTxObject(tx, permission),
1117
- toTxObject(tx, passport),
1118
- toTxString(tx, description)
1119
- ],
1120
- typeArguments: [service_type]
1121
- });
1122
- } else {
1123
- tx.moveCall({
1124
- target: serviceFn("description_set"),
1125
- arguments: [
1126
- toTxObject(tx, service),
1127
- toTxObject(tx, permission),
1128
- toTxString(tx, description)
1129
- ],
1130
- typeArguments: [service_type]
527
+ export function discount_send(tx, discount, recipient) {
528
+ if (discount.length === 0) {
529
+ return;
530
+ }
531
+ validObjects([...discount, recipient]);
532
+ if (discount.length > MAX_DISCOUNT_COUNT_ONCE) {
533
+ W_ERROR(WErrors.InvalidParam, `Discount count ${discount.length} exceeds maximum limit ${MAX_DISCOUNT_COUNT_ONCE}`);
534
+ }
535
+ if (discount.length === 1) {
536
+ tx.moveCall({
537
+ target: serviceFn("discount_send_singleton"),
538
+ arguments: [
539
+ toTxObject(tx, discount[0]),
540
+ tx.pure.address(recipient),
541
+ ],
542
+ });
543
+ return;
544
+ }
545
+ else {
546
+ tx.moveCall({
547
+ target: serviceFn("discount_send"),
548
+ arguments: [
549
+ tx.makeMoveVec({
550
+ elements: discount,
551
+ type: `${PackageAddress}::service::Discount`,
552
+ }),
553
+ tx.pure.address(recipient),
554
+ ],
555
+ });
556
+ }
557
+ }
558
+ export function discount_destroy(tx, discount) {
559
+ validObjects([...discount]);
560
+ discount.forEach((item) => {
561
+ tx.moveCall({
562
+ target: serviceFn("discount_destroy"),
563
+ arguments: [toTxObject(tx, item)],
564
+ });
1131
565
  });
1132
- }
1133
566
  }
1134
- function um_set(tx, service, service_type, permission, um, passport) {
1135
- validObjects([service, permission]);
1136
- if (!IsValidArgType(service_type)) {
1137
- W_ERROR(
1138
- WErrors.InvalidParam,
1139
- `Service type ${service_type} is not valid`
1140
- );
1141
- }
1142
- if (um) {
567
+ export const buy = async (env, tx, service, service_type, machine, buy, passport) => {
568
+ if (buy.items.length === 0) {
569
+ return undefined;
570
+ }
571
+ validObjects([service, buy.discount, machine, passport]);
572
+ if (!IsValidArgType(service_type)) {
573
+ W_ERROR(WErrors.InvalidParam, `Buy service type ${service_type} is not valid`);
574
+ }
575
+ if (!isValidArray(buy.items, (item) => {
576
+ if (!isValidLongName(item.name)) {
577
+ W_ERROR(WErrors.InvalidParam, `Buy item name ${item.name} is not valid`);
578
+ }
579
+ if (!isValidU64(item.stock)) {
580
+ W_ERROR(WErrors.IsValidU64, `Buy item stock ${item.stock} is not valid`);
581
+ }
582
+ return true;
583
+ })) {
584
+ W_ERROR(WErrors.InvalidParam, "Buy items is not valid");
585
+ }
586
+ if (typeof buy.payment_remark === "string" &&
587
+ !isValidName(buy.payment_remark)) {
588
+ W_ERROR(WErrors.InvalidParam, `Buy payment remark ${buy.payment_remark} is not valid`);
589
+ }
590
+ buy.payment_remark = buy.payment_remark || "";
591
+ if (buy.payment_index != null && !isValidU64(buy.payment_index)) {
592
+ W_ERROR(WErrors.IsValidU64, `Buy payment index ${buy.payment_index} is not valid`);
593
+ }
594
+ const coinParam = await getCoinParam(env, tx, buy.total_pay, service_type);
595
+ buy.discount = await LocalMark.Instance().get_address(buy.discount);
596
+ let quote = undefined;
597
+ if (buy.discount) {
598
+ quote = tx.moveCall({
599
+ target: serviceFn("quote_with_discount"),
600
+ arguments: [
601
+ toTxObject(tx, service),
602
+ tx.makeMoveVec({
603
+ elements: buy.items.map((item) => quote_item(tx, item)),
604
+ type: `${PackageAddress}::service::QuoteItem`,
605
+ }),
606
+ toTxObject(tx, buy.discount),
607
+ ],
608
+ typeArguments: [service_type],
609
+ });
610
+ }
611
+ else {
612
+ quote = tx.moveCall({
613
+ target: serviceFn("quote"),
614
+ arguments: [
615
+ toTxObject(tx, service),
616
+ tx.makeMoveVec({
617
+ elements: buy.items.map((item) => quote_item(tx, item)),
618
+ type: `${PackageAddress}::service::QuoteItem`,
619
+ }),
620
+ ],
621
+ typeArguments: [service_type],
622
+ });
623
+ }
624
+ let order;
1143
625
  if (passport) {
1144
- tx.moveCall({
1145
- target: serviceFn(`um_set_with_passport`),
1146
- arguments: [
1147
- toTxObject(tx, service),
1148
- toTxObject(tx, permission),
1149
- passport,
1150
- toTxObject(tx, um),
1151
- tx.object.mutRegistrar(),
1152
- tx.object.clock()
1153
- ],
1154
- typeArguments: [service_type]
1155
- });
1156
- } else {
1157
- tx.moveCall({
1158
- target: serviceFn(`um_set`),
626
+ order = tx.moveCall({
627
+ target: serviceFn("buy_with_passport"),
628
+ arguments: [
629
+ toTxObject(tx, service),
630
+ toTxObject(tx, passport),
631
+ quote,
632
+ tx.object.mutRegistrar(),
633
+ tx.object.clock(),
634
+ ],
635
+ typeArguments: [service_type],
636
+ });
637
+ }
638
+ else {
639
+ order = tx.moveCall({
640
+ target: serviceFn("buy"),
641
+ arguments: [
642
+ toTxObject(tx, service),
643
+ quote,
644
+ tx.object.mutRegistrar(),
645
+ tx.object.clock(),
646
+ ],
647
+ typeArguments: [service_type],
648
+ });
649
+ }
650
+ const result = {
651
+ order: order,
652
+ };
653
+ result.allocation = tx.moveCall({
654
+ target: serviceFn("order_allocation"),
1159
655
  arguments: [
1160
- toTxObject(tx, service),
1161
- toTxObject(tx, permission),
1162
- toTxObject(tx, um),
1163
- tx.object.mutRegistrar(),
1164
- tx.object.clock()
656
+ toTxObject(tx, service),
657
+ toTxObject(tx, order),
658
+ coinParam,
659
+ tx.pure.string(buy.payment_remark ?? ""),
660
+ tx.pure.u64(buy.payment_index || 0),
661
+ tx.object.mutRegistrar(),
662
+ tx.object.clock(),
1165
663
  ],
1166
- typeArguments: [service_type]
1167
- });
664
+ typeArguments: [service_type],
665
+ });
666
+ if (machine) {
667
+ result.progress = tx.moveCall({
668
+ target: serviceFn("order_progress"),
669
+ arguments: [
670
+ toTxObject(tx, service),
671
+ toTxObject(tx, order),
672
+ toTxObject(tx, machine),
673
+ tx.object.mutRegistrar(),
674
+ tx.object.clock(),
675
+ ],
676
+ typeArguments: [service_type],
677
+ });
678
+ }
679
+ return result;
680
+ };
681
+ // ================================================
682
+ // 构造函数和设置函数
683
+ export function newService(tx, service_type, permission, description, passport) {
684
+ validObjects([permission, passport]);
685
+ if (typeof description === "string" && !isValidDescription(description)) {
686
+ W_ERROR(WErrors.IsValidDescription, `Description exceeds maximum length ${MAX_DESCRIPTION_LENGTH}`);
687
+ }
688
+ if (!IsValidArgType(service_type)) {
689
+ W_ERROR(WErrors.InvalidParam, `New service type ${service_type} is not valid`);
1168
690
  }
1169
- } else {
1170
691
  if (passport) {
1171
- tx.moveCall({
1172
- target: serviceFn(`um_none_with_passport`),
1173
- arguments: [
1174
- toTxObject(tx, service),
1175
- toTxObject(tx, permission),
1176
- passport,
1177
- tx.object.mutRegistrar()
1178
- ],
1179
- typeArguments: [service_type]
1180
- });
1181
- } else {
1182
- tx.moveCall({
1183
- target: serviceFn(`um_none`),
1184
- arguments: [
1185
- toTxObject(tx, service),
1186
- toTxObject(tx, permission),
1187
- tx.object.mutRegistrar()
1188
- ],
1189
- typeArguments: [service_type]
1190
- });
692
+ return tx.moveCall({
693
+ target: serviceFn("new_with_passport"),
694
+ arguments: [
695
+ toTxObject(tx, permission),
696
+ toTxObject(tx, passport),
697
+ toTxString(tx, description),
698
+ tx.object.mutRegistrar(),
699
+ tx.object.clock(),
700
+ ],
701
+ typeArguments: [service_type],
702
+ });
703
+ }
704
+ else {
705
+ return tx.moveCall({
706
+ target: serviceFn("new"),
707
+ arguments: [
708
+ toTxObject(tx, permission),
709
+ toTxString(tx, description),
710
+ tx.object.mutRegistrar(),
711
+ tx.object.clock(),
712
+ ],
713
+ typeArguments: [service_type],
714
+ });
1191
715
  }
1192
- }
1193
716
  }
1194
- function location_set(tx, service, service_type, permission, location, passport) {
1195
- validObjects([service, permission, passport]);
1196
- if (typeof location === "string" && !isValidLongName(location)) {
1197
- W_ERROR(
1198
- WErrors.InvalidParam,
1199
- `Location ${location} exceeds maximum length ${MAX_LONG_NAME_LENGTH}`
1200
- );
1201
- }
1202
- if (!IsValidArgType(service_type)) {
1203
- W_ERROR(
1204
- WErrors.InvalidParam,
1205
- `Location set service type ${service_type} is not valid`
1206
- );
1207
- }
1208
- if (passport) {
1209
- tx.moveCall({
1210
- target: serviceFn("location_set_with_passport"),
1211
- arguments: [
1212
- toTxObject(tx, service),
1213
- toTxObject(tx, permission),
1214
- toTxObject(tx, passport),
1215
- toTxString(tx, location)
1216
- ],
1217
- typeArguments: [service_type]
1218
- });
1219
- } else {
1220
- tx.moveCall({
1221
- target: serviceFn("location_set"),
1222
- arguments: [
1223
- toTxObject(tx, service),
1224
- toTxObject(tx, permission),
1225
- toTxString(tx, location)
1226
- ],
1227
- typeArguments: [service_type]
1228
- });
1229
- }
717
+ export function description_set(tx, service, service_type, permission, description, passport) {
718
+ validObjects([service, permission, passport]);
719
+ if (typeof description === "string" && !isValidDescription(description)) {
720
+ W_ERROR(WErrors.IsValidDescription, `Description exceeds maximum length ${MAX_DESCRIPTION_LENGTH}`);
721
+ }
722
+ if (!IsValidArgType(service_type)) {
723
+ W_ERROR(WErrors.InvalidParam, `Description set service type ${service_type} is not valid`);
724
+ }
725
+ if (passport) {
726
+ tx.moveCall({
727
+ target: serviceFn("description_set_with_passport"),
728
+ arguments: [
729
+ toTxObject(tx, service),
730
+ toTxObject(tx, permission),
731
+ toTxObject(tx, passport),
732
+ toTxString(tx, description),
733
+ ],
734
+ typeArguments: [service_type],
735
+ });
736
+ }
737
+ else {
738
+ tx.moveCall({
739
+ target: serviceFn("description_set"),
740
+ arguments: [
741
+ toTxObject(tx, service),
742
+ toTxObject(tx, permission),
743
+ toTxString(tx, description),
744
+ ],
745
+ typeArguments: [service_type],
746
+ });
747
+ }
1230
748
  }
1231
- function create(tx, service, service_type) {
1232
- validObjects([service]);
1233
- if (!IsValidArgType(service_type)) {
1234
- W_ERROR(
1235
- WErrors.InvalidParam,
1236
- `Create service type ${service_type} is not valid`
1237
- );
1238
- }
1239
- return tx.moveCall({
1240
- target: serviceFn("create"),
1241
- arguments: [toTxObject(tx, service)],
1242
- typeArguments: [service_type]
1243
- });
749
+ export function um_set(tx, service, service_type, permission, um, passport) {
750
+ validObjects([service, permission]);
751
+ if (!IsValidArgType(service_type)) {
752
+ W_ERROR(WErrors.InvalidParam, `Service type ${service_type} is not valid`);
753
+ }
754
+ if (um) {
755
+ if (passport) {
756
+ tx.moveCall({
757
+ target: serviceFn(`um_set_with_passport`),
758
+ arguments: [
759
+ toTxObject(tx, service),
760
+ toTxObject(tx, permission),
761
+ passport,
762
+ toTxObject(tx, um),
763
+ tx.object.mutRegistrar(),
764
+ tx.object.clock(),
765
+ ],
766
+ typeArguments: [service_type],
767
+ });
768
+ }
769
+ else {
770
+ tx.moveCall({
771
+ target: serviceFn(`um_set`),
772
+ arguments: [
773
+ toTxObject(tx, service),
774
+ toTxObject(tx, permission),
775
+ toTxObject(tx, um),
776
+ tx.object.mutRegistrar(),
777
+ tx.object.clock(),
778
+ ],
779
+ typeArguments: [service_type],
780
+ });
781
+ }
782
+ }
783
+ else {
784
+ if (passport) {
785
+ tx.moveCall({
786
+ target: serviceFn(`um_none_with_passport`),
787
+ arguments: [
788
+ toTxObject(tx, service),
789
+ toTxObject(tx, permission),
790
+ passport,
791
+ tx.object.mutRegistrar(),
792
+ ],
793
+ typeArguments: [service_type],
794
+ });
795
+ }
796
+ else {
797
+ tx.moveCall({
798
+ target: serviceFn(`um_none`),
799
+ arguments: [
800
+ toTxObject(tx, service),
801
+ toTxObject(tx, permission),
802
+ tx.object.mutRegistrar(),
803
+ ],
804
+ typeArguments: [service_type],
805
+ });
806
+ }
807
+ }
1244
808
  }
1245
- function sales_add(tx, service, service_type, permission, sales, passport) {
1246
- if (sales.length === 0) {
1247
- return;
1248
- }
1249
- validObjects([service, permission, passport]);
1250
- if (!IsValidArgType(service_type)) {
1251
- W_ERROR(
1252
- WErrors.InvalidParam,
1253
- `Sales add service type ${service_type} is not valid`
1254
- );
1255
- }
1256
- if (passport) {
1257
- tx.moveCall({
1258
- target: serviceFn("sales_add_with_passport"),
1259
- arguments: [
1260
- toTxObject(tx, service),
1261
- toTxObject(tx, permission),
1262
- toTxObject(tx, passport),
1263
- tx.makeMoveVec({
1264
- elements: sales.map((s) => sale(tx, s)),
1265
- type: `${PackageAddress}::service::Sale`
1266
- })
1267
- ],
1268
- typeArguments: [service_type]
1269
- });
1270
- } else {
1271
- tx.moveCall({
1272
- target: serviceFn("sales_add"),
1273
- arguments: [
1274
- toTxObject(tx, service),
1275
- toTxObject(tx, permission),
1276
- tx.makeMoveVec({
1277
- elements: sales.map((s) => sale(tx, s)),
1278
- type: `${PackageAddress}::service::Sale`
1279
- })
1280
- ],
1281
- typeArguments: [service_type]
1282
- });
1283
- }
809
+ export function location_set(tx, service, service_type, permission, location, passport) {
810
+ validObjects([service, permission, passport]);
811
+ if (typeof location === "string" && !isValidLongName(location)) {
812
+ W_ERROR(WErrors.InvalidParam, `Location ${location} exceeds maximum length ${MAX_LONG_NAME_LENGTH}`);
813
+ }
814
+ if (!IsValidArgType(service_type)) {
815
+ W_ERROR(WErrors.InvalidParam, `Location set service type ${service_type} is not valid`);
816
+ }
817
+ if (passport) {
818
+ tx.moveCall({
819
+ target: serviceFn("location_set_with_passport"),
820
+ arguments: [
821
+ toTxObject(tx, service),
822
+ toTxObject(tx, permission),
823
+ toTxObject(tx, passport),
824
+ toTxString(tx, location),
825
+ ],
826
+ typeArguments: [service_type],
827
+ });
828
+ }
829
+ else {
830
+ tx.moveCall({
831
+ target: serviceFn("location_set"),
832
+ arguments: [
833
+ toTxObject(tx, service),
834
+ toTxObject(tx, permission),
835
+ toTxString(tx, location),
836
+ ],
837
+ typeArguments: [service_type],
838
+ });
839
+ }
1284
840
  }
1285
- function sales_remove(tx, service, service_type, permission, sales_name, passport) {
1286
- if (sales_name.length === 0) {
1287
- return;
1288
- }
1289
- validObjects([service, permission, passport]);
1290
- if (!IsValidArgType(service_type)) {
1291
- W_ERROR(
1292
- WErrors.InvalidParam,
1293
- `Sales remove service type ${service_type} is not valid`
1294
- );
1295
- }
1296
- if (passport) {
1297
- tx.moveCall({
1298
- target: serviceFn("sales_remove_with_passport"),
1299
- arguments: [
1300
- toTxObject(tx, service),
1301
- toTxObject(tx, permission),
1302
- toTxObject(tx, passport),
1303
- tx.pure.vector("string", sales_name)
1304
- ],
1305
- typeArguments: [service_type]
1306
- });
1307
- } else {
1308
- tx.moveCall({
1309
- target: serviceFn("sales_remove"),
1310
- arguments: [
1311
- toTxObject(tx, service),
1312
- toTxObject(tx, permission),
1313
- tx.pure.vector("string", sales_name)
1314
- ],
1315
- typeArguments: [service_type]
841
+ export function create(tx, service, service_type) {
842
+ validObjects([service]);
843
+ if (!IsValidArgType(service_type)) {
844
+ W_ERROR(WErrors.InvalidParam, `Create service type ${service_type} is not valid`);
845
+ }
846
+ return tx.moveCall({
847
+ target: serviceFn("create"),
848
+ arguments: [toTxObject(tx, service)],
849
+ typeArguments: [service_type],
1316
850
  });
1317
- }
1318
851
  }
1319
- function sales_clear(tx, service, service_type, permission, passport) {
1320
- validObjects([service, permission, passport]);
1321
- if (!IsValidArgType(service_type)) {
1322
- W_ERROR(
1323
- WErrors.InvalidParam,
1324
- `Sales clear service type ${service_type} is not valid`
1325
- );
1326
- }
1327
- if (passport) {
1328
- tx.moveCall({
1329
- target: serviceFn("sales_clear_with_passport"),
1330
- arguments: [
1331
- toTxObject(tx, service),
1332
- toTxObject(tx, permission),
1333
- toTxObject(tx, passport)
1334
- ],
1335
- typeArguments: [service_type]
1336
- });
1337
- } else {
1338
- tx.moveCall({
1339
- target: serviceFn("sales_clear"),
1340
- arguments: [toTxObject(tx, service), toTxObject(tx, permission)],
1341
- typeArguments: [service_type]
1342
- });
1343
- }
852
+ export function sales_add(tx, service, service_type, permission, sales, passport) {
853
+ if (sales.length === 0) {
854
+ return;
855
+ }
856
+ validObjects([service, permission, passport]);
857
+ if (!IsValidArgType(service_type)) {
858
+ W_ERROR(WErrors.InvalidParam, `Sales add service type ${service_type} is not valid`);
859
+ }
860
+ if (passport) {
861
+ tx.moveCall({
862
+ target: serviceFn("sales_add_with_passport"),
863
+ arguments: [
864
+ toTxObject(tx, service),
865
+ toTxObject(tx, permission),
866
+ toTxObject(tx, passport),
867
+ tx.makeMoveVec({
868
+ elements: sales.map((s) => sale(tx, s)),
869
+ type: `${PackageAddress}::service::Sale`,
870
+ }),
871
+ ],
872
+ typeArguments: [service_type],
873
+ });
874
+ }
875
+ else {
876
+ tx.moveCall({
877
+ target: serviceFn("sales_add"),
878
+ arguments: [
879
+ toTxObject(tx, service),
880
+ toTxObject(tx, permission),
881
+ tx.makeMoveVec({
882
+ elements: sales.map((s) => sale(tx, s)),
883
+ type: `${PackageAddress}::service::Sale`,
884
+ }),
885
+ ],
886
+ typeArguments: [service_type],
887
+ });
888
+ }
1344
889
  }
1345
- function sales_set(tx, service, service_type, permission, sales, passport) {
1346
- if (sales.length === 0) {
1347
- return;
1348
- }
1349
- validObjects([service, permission, passport]);
1350
- if (!IsValidArgType(service_type)) {
1351
- W_ERROR(
1352
- WErrors.InvalidParam,
1353
- `Sales set service type ${service_type} is not valid`
1354
- );
1355
- }
1356
- if (passport) {
1357
- tx.moveCall({
1358
- target: serviceFn("sales_set_with_passport"),
1359
- arguments: [
1360
- toTxObject(tx, service),
1361
- toTxObject(tx, permission),
1362
- toTxObject(tx, passport),
1363
- tx.makeMoveVec({
1364
- elements: sales.map((s) => sale(tx, s)),
1365
- type: `${PackageAddress}::service::Sale`
1366
- })
1367
- ],
1368
- typeArguments: [service_type]
1369
- });
1370
- } else {
1371
- tx.moveCall({
1372
- target: serviceFn("sales_set"),
1373
- arguments: [
1374
- toTxObject(tx, service),
1375
- toTxObject(tx, permission),
1376
- tx.makeMoveVec({
1377
- elements: sales.map((s) => sale(tx, s)),
1378
- type: `${PackageAddress}::service::Sale`
1379
- })
1380
- ],
1381
- typeArguments: [service_type]
1382
- });
1383
- }
890
+ export function sales_remove(tx, service, service_type, permission, sales_name, passport) {
891
+ if (sales_name.length === 0) {
892
+ return;
893
+ }
894
+ validObjects([service, permission, passport]);
895
+ if (!IsValidArgType(service_type)) {
896
+ W_ERROR(WErrors.InvalidParam, `Sales remove service type ${service_type} is not valid`);
897
+ }
898
+ if (passport) {
899
+ tx.moveCall({
900
+ target: serviceFn("sales_remove_with_passport"),
901
+ arguments: [
902
+ toTxObject(tx, service),
903
+ toTxObject(tx, permission),
904
+ toTxObject(tx, passport),
905
+ tx.pure.vector("string", sales_name),
906
+ ],
907
+ typeArguments: [service_type],
908
+ });
909
+ }
910
+ else {
911
+ tx.moveCall({
912
+ target: serviceFn("sales_remove"),
913
+ arguments: [
914
+ toTxObject(tx, service),
915
+ toTxObject(tx, permission),
916
+ tx.pure.vector("string", sales_name),
917
+ ],
918
+ typeArguments: [service_type],
919
+ });
920
+ }
1384
921
  }
1385
- function price_add(tx, service, service_type, permission, sale_name, price_add2, passport) {
1386
- validObjects([service, permission, passport]);
1387
- if (!IsValidArgType(service_type)) {
1388
- W_ERROR(
1389
- WErrors.InvalidParam,
1390
- `Price add service type ${service_type} is not valid`
1391
- );
1392
- }
1393
- if (typeof sale_name === "string" && !isValidLongName(sale_name)) {
1394
- W_ERROR(
1395
- WErrors.InvalidParam,
1396
- `Sale name ${sale_name} exceeds maximum length ${MAX_LONG_NAME_LENGTH}`
1397
- );
1398
- }
1399
- if (!isValidU64(price_add2)) {
1400
- W_ERROR(WErrors.IsValidU64, `Price add ${price_add2} is not valid`);
1401
- }
1402
- if (passport) {
1403
- tx.moveCall({
1404
- target: serviceFn("price_add_with_passport"),
1405
- arguments: [
1406
- toTxObject(tx, service),
1407
- toTxObject(tx, permission),
1408
- toTxObject(tx, passport),
1409
- toTxString(tx, sale_name),
1410
- tx.pure.u64(price_add2)
1411
- ],
1412
- typeArguments: [service_type]
1413
- });
1414
- } else {
1415
- tx.moveCall({
1416
- target: serviceFn("price_add"),
1417
- arguments: [
1418
- toTxObject(tx, service),
1419
- toTxObject(tx, permission),
1420
- toTxString(tx, sale_name),
1421
- tx.pure.u64(price_add2)
1422
- ],
1423
- typeArguments: [service_type]
1424
- });
1425
- }
922
+ export function sales_clear(tx, service, service_type, permission, passport) {
923
+ validObjects([service, permission, passport]);
924
+ if (!IsValidArgType(service_type)) {
925
+ W_ERROR(WErrors.InvalidParam, `Sales clear service type ${service_type} is not valid`);
926
+ }
927
+ if (passport) {
928
+ tx.moveCall({
929
+ target: serviceFn("sales_clear_with_passport"),
930
+ arguments: [
931
+ toTxObject(tx, service),
932
+ toTxObject(tx, permission),
933
+ toTxObject(tx, passport),
934
+ ],
935
+ typeArguments: [service_type],
936
+ });
937
+ }
938
+ else {
939
+ tx.moveCall({
940
+ target: serviceFn("sales_clear"),
941
+ arguments: [toTxObject(tx, service), toTxObject(tx, permission)],
942
+ typeArguments: [service_type],
943
+ });
944
+ }
1426
945
  }
1427
- function price_reduce(tx, service, service_type, permission, sale_name, price_reduce2, passport) {
1428
- validObjects([service, permission, passport]);
1429
- if (!IsValidArgType(service_type)) {
1430
- W_ERROR(
1431
- WErrors.InvalidParam,
1432
- `Price reduce service type ${service_type} is not valid`
1433
- );
1434
- }
1435
- if (typeof sale_name === "string" && !isValidLongName(sale_name)) {
1436
- W_ERROR(
1437
- WErrors.InvalidParam,
1438
- `Sale name ${sale_name} exceeds maximum length ${MAX_LONG_NAME_LENGTH}`
1439
- );
1440
- }
1441
- if (!isValidU64(price_reduce2)) {
1442
- W_ERROR(
1443
- WErrors.IsValidU64,
1444
- `Price reduce ${price_reduce2} is not valid`
1445
- );
1446
- }
1447
- if (passport) {
1448
- tx.moveCall({
1449
- target: serviceFn("price_reduce_with_passport"),
1450
- arguments: [
1451
- toTxObject(tx, service),
1452
- toTxObject(tx, permission),
1453
- toTxObject(tx, passport),
1454
- toTxString(tx, sale_name),
1455
- tx.pure.u64(price_reduce2)
1456
- ],
1457
- typeArguments: [service_type]
1458
- });
1459
- } else {
1460
- tx.moveCall({
1461
- target: serviceFn("price_reduce"),
1462
- arguments: [
1463
- toTxObject(tx, service),
1464
- toTxObject(tx, permission),
1465
- toTxString(tx, sale_name),
1466
- tx.pure.u64(price_reduce2)
1467
- ],
1468
- typeArguments: [service_type]
1469
- });
1470
- }
946
+ export function sales_set(tx, service, service_type, permission, sales, passport) {
947
+ if (sales.length === 0) {
948
+ return;
949
+ }
950
+ validObjects([service, permission, passport]);
951
+ if (!IsValidArgType(service_type)) {
952
+ W_ERROR(WErrors.InvalidParam, `Sales set service type ${service_type} is not valid`);
953
+ }
954
+ if (passport) {
955
+ tx.moveCall({
956
+ target: serviceFn("sales_set_with_passport"),
957
+ arguments: [
958
+ toTxObject(tx, service),
959
+ toTxObject(tx, permission),
960
+ toTxObject(tx, passport),
961
+ tx.makeMoveVec({
962
+ elements: sales.map((s) => sale(tx, s)),
963
+ type: `${PackageAddress}::service::Sale`,
964
+ }),
965
+ ],
966
+ typeArguments: [service_type],
967
+ });
968
+ }
969
+ else {
970
+ tx.moveCall({
971
+ target: serviceFn("sales_set"),
972
+ arguments: [
973
+ toTxObject(tx, service),
974
+ toTxObject(tx, permission),
975
+ tx.makeMoveVec({
976
+ elements: sales.map((s) => sale(tx, s)),
977
+ type: `${PackageAddress}::service::Sale`,
978
+ }),
979
+ ],
980
+ typeArguments: [service_type],
981
+ });
982
+ }
1471
983
  }
1472
- function stock_add(tx, service, service_type, permission, sale_name, stock_add2, passport) {
1473
- validObjects([service, permission, passport]);
1474
- if (!IsValidArgType(service_type)) {
1475
- W_ERROR(
1476
- WErrors.InvalidParam,
1477
- `Stock add service type ${service_type} is not valid`
1478
- );
1479
- }
1480
- if (typeof sale_name === "string" && !isValidLongName(sale_name)) {
1481
- W_ERROR(
1482
- WErrors.InvalidParam,
1483
- `Sale name ${sale_name} exceeds maximum length ${MAX_LONG_NAME_LENGTH}`
1484
- );
1485
- }
1486
- if (!isValidU64(stock_add2)) {
1487
- W_ERROR(WErrors.IsValidU64, `Stock add ${stock_add2} is not valid`);
1488
- }
1489
- if (passport) {
1490
- tx.moveCall({
1491
- target: serviceFn("stock_add_with_passport"),
1492
- arguments: [
1493
- toTxObject(tx, service),
1494
- toTxObject(tx, permission),
1495
- toTxObject(tx, passport),
1496
- toTxString(tx, sale_name),
1497
- tx.pure.u64(stock_add2)
1498
- ],
1499
- typeArguments: [service_type]
1500
- });
1501
- } else {
1502
- tx.moveCall({
1503
- target: serviceFn("stock_add"),
1504
- arguments: [
1505
- toTxObject(tx, service),
1506
- toTxObject(tx, permission),
1507
- toTxString(tx, sale_name),
1508
- tx.pure.u64(stock_add2)
1509
- ],
1510
- typeArguments: [service_type]
1511
- });
1512
- }
984
+ export function price_add(tx, service, service_type, permission, sale_name, price_add, passport) {
985
+ validObjects([service, permission, passport]);
986
+ if (!IsValidArgType(service_type)) {
987
+ W_ERROR(WErrors.InvalidParam, `Price add service type ${service_type} is not valid`);
988
+ }
989
+ if (typeof sale_name === "string" && !isValidLongName(sale_name)) {
990
+ W_ERROR(WErrors.InvalidParam, `Sale name ${sale_name} exceeds maximum length ${MAX_LONG_NAME_LENGTH}`);
991
+ }
992
+ if (!isValidU64(price_add)) {
993
+ W_ERROR(WErrors.IsValidU64, `Price add ${price_add} is not valid`);
994
+ }
995
+ if (passport) {
996
+ tx.moveCall({
997
+ target: serviceFn("price_add_with_passport"),
998
+ arguments: [
999
+ toTxObject(tx, service),
1000
+ toTxObject(tx, permission),
1001
+ toTxObject(tx, passport),
1002
+ toTxString(tx, sale_name),
1003
+ tx.pure.u64(price_add),
1004
+ ],
1005
+ typeArguments: [service_type],
1006
+ });
1007
+ }
1008
+ else {
1009
+ tx.moveCall({
1010
+ target: serviceFn("price_add"),
1011
+ arguments: [
1012
+ toTxObject(tx, service),
1013
+ toTxObject(tx, permission),
1014
+ toTxString(tx, sale_name),
1015
+ tx.pure.u64(price_add),
1016
+ ],
1017
+ typeArguments: [service_type],
1018
+ });
1019
+ }
1513
1020
  }
1514
- function stock_reduce(tx, service, service_type, permission, sale_name, stock_reduce2, passport) {
1515
- validObjects([service, permission, passport]);
1516
- if (!IsValidArgType(service_type)) {
1517
- W_ERROR(
1518
- WErrors.InvalidParam,
1519
- `Stock reduce service type ${service_type} is not valid`
1520
- );
1521
- }
1522
- if (typeof sale_name === "string" && !isValidLongName(sale_name)) {
1523
- W_ERROR(
1524
- WErrors.InvalidParam,
1525
- `Sale name ${sale_name} exceeds maximum length ${MAX_LONG_NAME_LENGTH}`
1526
- );
1527
- }
1528
- if (!isValidU64(stock_reduce2)) {
1529
- W_ERROR(
1530
- WErrors.IsValidU64,
1531
- `Stock reduce ${stock_reduce2} is not valid`
1532
- );
1533
- }
1534
- if (passport) {
1535
- tx.moveCall({
1536
- target: serviceFn("stock_reduce_with_passport"),
1537
- arguments: [
1538
- toTxObject(tx, service),
1539
- toTxObject(tx, permission),
1540
- toTxObject(tx, passport),
1541
- toTxString(tx, sale_name),
1542
- tx.pure.u64(stock_reduce2)
1543
- ],
1544
- typeArguments: [service_type]
1545
- });
1546
- } else {
1547
- tx.moveCall({
1548
- target: serviceFn("stock_reduce"),
1549
- arguments: [
1550
- toTxObject(tx, service),
1551
- toTxObject(tx, permission),
1552
- toTxString(tx, sale_name),
1553
- tx.pure.u64(stock_reduce2)
1554
- ],
1555
- typeArguments: [service_type]
1556
- });
1557
- }
1021
+ export function price_reduce(tx, service, service_type, permission, sale_name, price_reduce, passport) {
1022
+ validObjects([service, permission, passport]);
1023
+ if (!IsValidArgType(service_type)) {
1024
+ W_ERROR(WErrors.InvalidParam, `Price reduce service type ${service_type} is not valid`);
1025
+ }
1026
+ if (typeof sale_name === "string" && !isValidLongName(sale_name)) {
1027
+ W_ERROR(WErrors.InvalidParam, `Sale name ${sale_name} exceeds maximum length ${MAX_LONG_NAME_LENGTH}`);
1028
+ }
1029
+ if (!isValidU64(price_reduce)) {
1030
+ W_ERROR(WErrors.IsValidU64, `Price reduce ${price_reduce} is not valid`);
1031
+ }
1032
+ if (passport) {
1033
+ tx.moveCall({
1034
+ target: serviceFn("price_reduce_with_passport"),
1035
+ arguments: [
1036
+ toTxObject(tx, service),
1037
+ toTxObject(tx, permission),
1038
+ toTxObject(tx, passport),
1039
+ toTxString(tx, sale_name),
1040
+ tx.pure.u64(price_reduce),
1041
+ ],
1042
+ typeArguments: [service_type],
1043
+ });
1044
+ }
1045
+ else {
1046
+ tx.moveCall({
1047
+ target: serviceFn("price_reduce"),
1048
+ arguments: [
1049
+ toTxObject(tx, service),
1050
+ toTxObject(tx, permission),
1051
+ toTxString(tx, sale_name),
1052
+ tx.pure.u64(price_reduce),
1053
+ ],
1054
+ typeArguments: [service_type],
1055
+ });
1056
+ }
1558
1057
  }
1559
- function sale_suspension(tx, service, service_type, permission, sale_name, suspension, passport) {
1560
- validObjects([service, permission, passport]);
1561
- if (!IsValidArgType(service_type)) {
1562
- W_ERROR(
1563
- WErrors.InvalidParam,
1564
- `Sale suspension service type ${service_type} is not valid`
1565
- );
1566
- }
1567
- if (typeof sale_name === "string" && !isValidLongName(sale_name)) {
1568
- W_ERROR(
1569
- WErrors.InvalidParam,
1570
- `Sale name ${sale_name} exceeds maximum length ${MAX_LONG_NAME_LENGTH}`
1571
- );
1572
- }
1573
- if (passport) {
1574
- tx.moveCall({
1575
- target: serviceFn("sale_suspension_with_passport"),
1576
- arguments: [
1577
- toTxObject(tx, service),
1578
- toTxObject(tx, permission),
1579
- toTxObject(tx, passport),
1580
- toTxString(tx, sale_name),
1581
- tx.pure.bool(suspension)
1582
- ],
1583
- typeArguments: [service_type]
1584
- });
1585
- } else {
1586
- tx.moveCall({
1587
- target: serviceFn("sale_suspension"),
1588
- arguments: [
1589
- toTxObject(tx, service),
1590
- toTxObject(tx, permission),
1591
- toTxString(tx, sale_name),
1592
- tx.pure.bool(suspension)
1593
- ],
1594
- typeArguments: [service_type]
1595
- });
1596
- }
1058
+ export function stock_add(tx, service, service_type, permission, sale_name, stock_add, passport) {
1059
+ validObjects([service, permission, passport]);
1060
+ if (!IsValidArgType(service_type)) {
1061
+ W_ERROR(WErrors.InvalidParam, `Stock add service type ${service_type} is not valid`);
1062
+ }
1063
+ if (typeof sale_name === "string" && !isValidLongName(sale_name)) {
1064
+ W_ERROR(WErrors.InvalidParam, `Sale name ${sale_name} exceeds maximum length ${MAX_LONG_NAME_LENGTH}`);
1065
+ }
1066
+ if (!isValidU64(stock_add)) {
1067
+ W_ERROR(WErrors.IsValidU64, `Stock add ${stock_add} is not valid`);
1068
+ }
1069
+ if (passport) {
1070
+ tx.moveCall({
1071
+ target: serviceFn("stock_add_with_passport"),
1072
+ arguments: [
1073
+ toTxObject(tx, service),
1074
+ toTxObject(tx, permission),
1075
+ toTxObject(tx, passport),
1076
+ toTxString(tx, sale_name),
1077
+ tx.pure.u64(stock_add),
1078
+ ],
1079
+ typeArguments: [service_type],
1080
+ });
1081
+ }
1082
+ else {
1083
+ tx.moveCall({
1084
+ target: serviceFn("stock_add"),
1085
+ arguments: [
1086
+ toTxObject(tx, service),
1087
+ toTxObject(tx, permission),
1088
+ toTxString(tx, sale_name),
1089
+ tx.pure.u64(stock_add),
1090
+ ],
1091
+ typeArguments: [service_type],
1092
+ });
1093
+ }
1597
1094
  }
1598
- function repository_add(tx, service, service_type, permission, repository, passport) {
1599
- validObjects([service, permission, repository, passport]);
1600
- if (!IsValidArgType(service_type)) {
1601
- W_ERROR(
1602
- WErrors.InvalidParam,
1603
- `Repository add service type ${service_type} is not valid`
1604
- );
1605
- }
1606
- if (passport) {
1607
- tx.moveCall({
1608
- target: serviceFn("repository_add_with_passport"),
1609
- arguments: [
1610
- toTxObject(tx, service),
1611
- toTxObject(tx, permission),
1612
- toTxObject(tx, passport),
1613
- toTxObject(tx, repository),
1614
- tx.object.mutRegistrar(),
1615
- tx.object.clock()
1616
- ],
1617
- typeArguments: [service_type]
1618
- });
1619
- } else {
1620
- tx.moveCall({
1621
- target: serviceFn("repository_add"),
1622
- arguments: [
1623
- toTxObject(tx, service),
1624
- toTxObject(tx, permission),
1625
- toTxObject(tx, repository),
1626
- tx.object.mutRegistrar(),
1627
- tx.object.clock()
1628
- ],
1629
- typeArguments: [service_type]
1630
- });
1631
- }
1095
+ export function stock_reduce(tx, service, service_type, permission, sale_name, stock_reduce, passport) {
1096
+ validObjects([service, permission, passport]);
1097
+ if (!IsValidArgType(service_type)) {
1098
+ W_ERROR(WErrors.InvalidParam, `Stock reduce service type ${service_type} is not valid`);
1099
+ }
1100
+ if (typeof sale_name === "string" && !isValidLongName(sale_name)) {
1101
+ W_ERROR(WErrors.InvalidParam, `Sale name ${sale_name} exceeds maximum length ${MAX_LONG_NAME_LENGTH}`);
1102
+ }
1103
+ if (!isValidU64(stock_reduce)) {
1104
+ W_ERROR(WErrors.IsValidU64, `Stock reduce ${stock_reduce} is not valid`);
1105
+ }
1106
+ if (passport) {
1107
+ tx.moveCall({
1108
+ target: serviceFn("stock_reduce_with_passport"),
1109
+ arguments: [
1110
+ toTxObject(tx, service),
1111
+ toTxObject(tx, permission),
1112
+ toTxObject(tx, passport),
1113
+ toTxString(tx, sale_name),
1114
+ tx.pure.u64(stock_reduce),
1115
+ ],
1116
+ typeArguments: [service_type],
1117
+ });
1118
+ }
1119
+ else {
1120
+ tx.moveCall({
1121
+ target: serviceFn("stock_reduce"),
1122
+ arguments: [
1123
+ toTxObject(tx, service),
1124
+ toTxObject(tx, permission),
1125
+ toTxString(tx, sale_name),
1126
+ tx.pure.u64(stock_reduce),
1127
+ ],
1128
+ typeArguments: [service_type],
1129
+ });
1130
+ }
1632
1131
  }
1633
- function repository_remove(tx, service, service_type, permission, repositories, passport) {
1634
- if (repositories.length === 0) {
1635
- return;
1636
- }
1637
- validObjects([service, permission, passport, ...repositories]);
1638
- if (!IsValidArgType(service_type)) {
1639
- W_ERROR(
1640
- WErrors.InvalidParam,
1641
- `Repository remove service type ${service_type} is not valid`
1642
- );
1643
- }
1644
- if (passport) {
1645
- tx.moveCall({
1646
- target: serviceFn("repository_remove_with_passport"),
1647
- arguments: [
1648
- toTxObject(tx, service),
1649
- toTxObject(tx, permission),
1650
- toTxObject(tx, passport),
1651
- tx.pure.vector("address", repositories),
1652
- tx.object.mutRegistrar()
1653
- ],
1654
- typeArguments: [service_type]
1655
- });
1656
- } else {
1657
- tx.moveCall({
1658
- target: serviceFn("repository_remove"),
1659
- arguments: [
1660
- toTxObject(tx, service),
1661
- toTxObject(tx, permission),
1662
- tx.pure.vector("address", repositories),
1663
- tx.object.mutRegistrar()
1664
- ],
1665
- typeArguments: [service_type]
1666
- });
1667
- }
1132
+ export function sale_suspension(tx, service, service_type, permission, sale_name, suspension, passport) {
1133
+ validObjects([service, permission, passport]);
1134
+ if (!IsValidArgType(service_type)) {
1135
+ W_ERROR(WErrors.InvalidParam, `Sale suspension service type ${service_type} is not valid`);
1136
+ }
1137
+ if (typeof sale_name === "string" && !isValidLongName(sale_name)) {
1138
+ W_ERROR(WErrors.InvalidParam, `Sale name ${sale_name} exceeds maximum length ${MAX_LONG_NAME_LENGTH}`);
1139
+ }
1140
+ if (passport) {
1141
+ tx.moveCall({
1142
+ target: serviceFn("sale_suspension_with_passport"),
1143
+ arguments: [
1144
+ toTxObject(tx, service),
1145
+ toTxObject(tx, permission),
1146
+ toTxObject(tx, passport),
1147
+ toTxString(tx, sale_name),
1148
+ tx.pure.bool(suspension),
1149
+ ],
1150
+ typeArguments: [service_type],
1151
+ });
1152
+ }
1153
+ else {
1154
+ tx.moveCall({
1155
+ target: serviceFn("sale_suspension"),
1156
+ arguments: [
1157
+ toTxObject(tx, service),
1158
+ toTxObject(tx, permission),
1159
+ toTxString(tx, sale_name),
1160
+ tx.pure.bool(suspension),
1161
+ ],
1162
+ typeArguments: [service_type],
1163
+ });
1164
+ }
1668
1165
  }
1669
- function repository_clear(tx, service, service_type, permission, passport) {
1670
- validObjects([service, permission, passport]);
1671
- if (!IsValidArgType(service_type)) {
1672
- W_ERROR(
1673
- WErrors.InvalidParam,
1674
- `Repository clear service type ${service_type} is not valid`
1675
- );
1676
- }
1677
- if (passport) {
1678
- tx.moveCall({
1679
- target: serviceFn("repository_clear_with_passport"),
1680
- arguments: [
1681
- toTxObject(tx, service),
1682
- toTxObject(tx, permission),
1683
- toTxObject(tx, passport),
1684
- tx.object.mutRegistrar()
1685
- ],
1686
- typeArguments: [service_type]
1687
- });
1688
- } else {
1689
- tx.moveCall({
1690
- target: serviceFn("repository_clear"),
1691
- arguments: [
1692
- toTxObject(tx, service),
1693
- toTxObject(tx, permission),
1694
- tx.object.mutRegistrar()
1695
- ],
1696
- typeArguments: [service_type]
1697
- });
1698
- }
1166
+ export function repository_add(tx, service, service_type, permission, repository, passport) {
1167
+ validObjects([service, permission, repository, passport]);
1168
+ if (!IsValidArgType(service_type)) {
1169
+ W_ERROR(WErrors.InvalidParam, `Repository add service type ${service_type} is not valid`);
1170
+ }
1171
+ if (passport) {
1172
+ tx.moveCall({
1173
+ target: serviceFn("repository_add_with_passport"),
1174
+ arguments: [
1175
+ toTxObject(tx, service),
1176
+ toTxObject(tx, permission),
1177
+ toTxObject(tx, passport),
1178
+ toTxObject(tx, repository),
1179
+ tx.object.mutRegistrar(),
1180
+ tx.object.clock(),
1181
+ ],
1182
+ typeArguments: [service_type],
1183
+ });
1184
+ }
1185
+ else {
1186
+ tx.moveCall({
1187
+ target: serviceFn("repository_add"),
1188
+ arguments: [
1189
+ toTxObject(tx, service),
1190
+ toTxObject(tx, permission),
1191
+ toTxObject(tx, repository),
1192
+ tx.object.mutRegistrar(),
1193
+ tx.object.clock(),
1194
+ ],
1195
+ typeArguments: [service_type],
1196
+ });
1197
+ }
1699
1198
  }
1700
- function buy_guard_set(tx, service, service_type, permission, guard, passport) {
1701
- validObjects([service, permission, guard, passport]);
1702
- if (!IsValidArgType(service_type)) {
1703
- W_ERROR(
1704
- WErrors.InvalidParam,
1705
- `Buy guard set service type ${service_type} is not valid`
1706
- );
1707
- }
1708
- if (passport) {
1709
- if (guard) {
1710
- tx.moveCall({
1711
- target: serviceFn("buy_guard_set_with_passport"),
1712
- arguments: [
1713
- toTxObject(tx, service),
1714
- toTxObject(tx, permission),
1715
- toTxObject(tx, passport),
1716
- toTxObject(tx, guard),
1717
- tx.object.mutRegistrar(),
1718
- tx.object.clock()
1719
- ],
1720
- typeArguments: [service_type]
1721
- });
1722
- } else {
1723
- tx.moveCall({
1724
- target: serviceFn("buy_guard_none_with_passport"),
1725
- arguments: [
1726
- toTxObject(tx, service),
1727
- toTxObject(tx, permission),
1728
- toTxObject(tx, passport),
1729
- tx.object.mutRegistrar()
1730
- ],
1731
- typeArguments: [service_type]
1732
- });
1199
+ export function repository_remove(tx, service, service_type, permission, repositories, passport) {
1200
+ if (repositories.length === 0) {
1201
+ return;
1733
1202
  }
1734
- } else {
1735
- if (guard) {
1736
- tx.moveCall({
1737
- target: serviceFn("buy_guard_set"),
1738
- arguments: [
1739
- toTxObject(tx, service),
1740
- toTxObject(tx, permission),
1741
- toTxObject(tx, guard),
1742
- tx.object.mutRegistrar(),
1743
- tx.object.clock()
1744
- ],
1745
- typeArguments: [service_type]
1746
- });
1747
- } else {
1748
- tx.moveCall({
1749
- target: serviceFn("buy_guard_none"),
1750
- arguments: [
1751
- toTxObject(tx, service),
1752
- toTxObject(tx, permission),
1753
- tx.object.mutRegistrar()
1754
- ],
1755
- typeArguments: [service_type]
1756
- });
1203
+ validObjects([service, permission, passport, ...repositories]);
1204
+ if (!IsValidArgType(service_type)) {
1205
+ W_ERROR(WErrors.InvalidParam, `Repository remove service type ${service_type} is not valid`);
1206
+ }
1207
+ if (passport) {
1208
+ tx.moveCall({
1209
+ target: serviceFn("repository_remove_with_passport"),
1210
+ arguments: [
1211
+ toTxObject(tx, service),
1212
+ toTxObject(tx, permission),
1213
+ toTxObject(tx, passport),
1214
+ tx.pure.vector("address", repositories),
1215
+ tx.object.mutRegistrar(),
1216
+ ],
1217
+ typeArguments: [service_type],
1218
+ });
1219
+ }
1220
+ else {
1221
+ tx.moveCall({
1222
+ target: serviceFn("repository_remove"),
1223
+ arguments: [
1224
+ toTxObject(tx, service),
1225
+ toTxObject(tx, permission),
1226
+ tx.pure.vector("address", repositories),
1227
+ tx.object.mutRegistrar(),
1228
+ ],
1229
+ typeArguments: [service_type],
1230
+ });
1757
1231
  }
1758
- }
1759
1232
  }
1760
- function machine_set(tx, service, service_type, permission, machine, passport) {
1761
- validObjects([service, permission, machine, passport]);
1762
- if (!IsValidArgType(service_type)) {
1763
- W_ERROR(
1764
- WErrors.InvalidParam,
1765
- `Machine set service type ${service_type} is not valid`
1766
- );
1767
- }
1768
- if (passport) {
1769
- if (machine) {
1770
- tx.moveCall({
1771
- target: serviceFn("machine_set_with_passport"),
1772
- arguments: [
1773
- toTxObject(tx, service),
1774
- toTxObject(tx, permission),
1775
- toTxObject(tx, passport),
1776
- toTxObject(tx, machine),
1777
- tx.object.mutRegistrar(),
1778
- tx.object.clock()
1779
- ],
1780
- typeArguments: [service_type]
1781
- });
1782
- } else {
1783
- tx.moveCall({
1784
- target: serviceFn("machine_none_with_passport"),
1785
- arguments: [
1786
- toTxObject(tx, service),
1787
- toTxObject(tx, permission),
1788
- toTxObject(tx, passport),
1789
- tx.object.mutRegistrar()
1790
- ],
1791
- typeArguments: [service_type]
1792
- });
1233
+ export function repository_clear(tx, service, service_type, permission, passport) {
1234
+ validObjects([service, permission, passport]);
1235
+ if (!IsValidArgType(service_type)) {
1236
+ W_ERROR(WErrors.InvalidParam, `Repository clear service type ${service_type} is not valid`);
1793
1237
  }
1794
- } else {
1795
- if (machine) {
1796
- tx.moveCall({
1797
- target: serviceFn("machine_set"),
1798
- arguments: [
1799
- toTxObject(tx, service),
1800
- toTxObject(tx, permission),
1801
- toTxObject(tx, machine),
1802
- tx.object.mutRegistrar(),
1803
- tx.object.clock()
1804
- ],
1805
- typeArguments: [service_type]
1806
- });
1807
- } else {
1808
- tx.moveCall({
1809
- target: serviceFn("machine_set_none"),
1810
- arguments: [
1811
- toTxObject(tx, service),
1812
- toTxObject(tx, permission),
1813
- tx.object.mutRegistrar()
1814
- ],
1815
- typeArguments: [service_type]
1816
- });
1238
+ if (passport) {
1239
+ tx.moveCall({
1240
+ target: serviceFn("repository_clear_with_passport"),
1241
+ arguments: [
1242
+ toTxObject(tx, service),
1243
+ toTxObject(tx, permission),
1244
+ toTxObject(tx, passport),
1245
+ tx.object.mutRegistrar(),
1246
+ ],
1247
+ typeArguments: [service_type],
1248
+ });
1249
+ }
1250
+ else {
1251
+ tx.moveCall({
1252
+ target: serviceFn("repository_clear"),
1253
+ arguments: [
1254
+ toTxObject(tx, service),
1255
+ toTxObject(tx, permission),
1256
+ tx.object.mutRegistrar(),
1257
+ ],
1258
+ typeArguments: [service_type],
1259
+ });
1817
1260
  }
1818
- }
1819
1261
  }
1820
- function publish(tx, service, service_type, permission, passport) {
1821
- validObjects([service, permission, passport]);
1822
- if (!IsValidArgType(service_type)) {
1823
- W_ERROR(
1824
- WErrors.InvalidParam,
1825
- `Publish service type ${service_type} is not valid`
1826
- );
1827
- }
1828
- if (passport) {
1829
- tx.moveCall({
1830
- target: serviceFn("publish_with_passport"),
1831
- arguments: [
1832
- toTxObject(tx, service),
1833
- toTxObject(tx, permission),
1834
- toTxObject(tx, passport)
1835
- ],
1836
- typeArguments: [service_type]
1837
- });
1838
- } else {
1839
- tx.moveCall({
1840
- target: serviceFn("publish"),
1841
- arguments: [toTxObject(tx, service), toTxObject(tx, permission)],
1842
- typeArguments: [service_type]
1843
- });
1844
- }
1262
+ export function buy_guard_set(tx, service, service_type, permission, guard, passport) {
1263
+ validObjects([service, permission, guard, passport]);
1264
+ if (!IsValidArgType(service_type)) {
1265
+ W_ERROR(WErrors.InvalidParam, `Buy guard set service type ${service_type} is not valid`);
1266
+ }
1267
+ if (passport) {
1268
+ if (guard) {
1269
+ tx.moveCall({
1270
+ target: serviceFn("buy_guard_set_with_passport"),
1271
+ arguments: [
1272
+ toTxObject(tx, service),
1273
+ toTxObject(tx, permission),
1274
+ toTxObject(tx, passport),
1275
+ toTxObject(tx, guard),
1276
+ tx.object.mutRegistrar(),
1277
+ tx.object.clock(),
1278
+ ],
1279
+ typeArguments: [service_type],
1280
+ });
1281
+ }
1282
+ else {
1283
+ tx.moveCall({
1284
+ target: serviceFn("buy_guard_none_with_passport"),
1285
+ arguments: [
1286
+ toTxObject(tx, service),
1287
+ toTxObject(tx, permission),
1288
+ toTxObject(tx, passport),
1289
+ tx.object.mutRegistrar(),
1290
+ ],
1291
+ typeArguments: [service_type],
1292
+ });
1293
+ }
1294
+ }
1295
+ else {
1296
+ if (guard) {
1297
+ tx.moveCall({
1298
+ target: serviceFn("buy_guard_set"),
1299
+ arguments: [
1300
+ toTxObject(tx, service),
1301
+ toTxObject(tx, permission),
1302
+ toTxObject(tx, guard),
1303
+ tx.object.mutRegistrar(),
1304
+ tx.object.clock(),
1305
+ ],
1306
+ typeArguments: [service_type],
1307
+ });
1308
+ }
1309
+ else {
1310
+ tx.moveCall({
1311
+ target: serviceFn("buy_guard_none"),
1312
+ arguments: [
1313
+ toTxObject(tx, service),
1314
+ toTxObject(tx, permission),
1315
+ tx.object.mutRegistrar(),
1316
+ ],
1317
+ typeArguments: [service_type],
1318
+ });
1319
+ }
1320
+ }
1845
1321
  }
1846
- function pause(tx, service, service_type, permission, bPaused, passport) {
1847
- validObjects([service, permission, passport]);
1848
- if (!IsValidArgType(service_type)) {
1849
- W_ERROR(
1850
- WErrors.InvalidParam,
1851
- `Pause service type ${service_type} is not valid`
1852
- );
1853
- }
1854
- if (passport) {
1855
- tx.moveCall({
1856
- target: serviceFn("pause_with_passport"),
1857
- arguments: [
1858
- toTxObject(tx, service),
1859
- toTxObject(tx, permission),
1860
- toTxObject(tx, passport),
1861
- tx.pure.bool(bPaused),
1862
- tx.object.clock()
1863
- ],
1864
- typeArguments: [service_type]
1865
- });
1866
- } else {
1867
- tx.moveCall({
1868
- target: serviceFn("pause"),
1869
- arguments: [
1870
- toTxObject(tx, service),
1871
- toTxObject(tx, permission),
1872
- tx.pure.bool(bPaused),
1873
- tx.object.clock()
1874
- ],
1875
- typeArguments: [service_type]
1876
- });
1877
- }
1322
+ export function machine_set(tx, service, service_type, permission, machine, passport) {
1323
+ validObjects([service, permission, machine, passport]);
1324
+ if (!IsValidArgType(service_type)) {
1325
+ W_ERROR(WErrors.InvalidParam, `Machine set service type ${service_type} is not valid`);
1326
+ }
1327
+ if (passport) {
1328
+ if (machine) {
1329
+ tx.moveCall({
1330
+ target: serviceFn("machine_set_with_passport"),
1331
+ arguments: [
1332
+ toTxObject(tx, service),
1333
+ toTxObject(tx, permission),
1334
+ toTxObject(tx, passport),
1335
+ toTxObject(tx, machine),
1336
+ tx.object.mutRegistrar(),
1337
+ tx.object.clock(),
1338
+ ],
1339
+ typeArguments: [service_type],
1340
+ });
1341
+ }
1342
+ else {
1343
+ tx.moveCall({
1344
+ target: serviceFn("machine_none_with_passport"),
1345
+ arguments: [
1346
+ toTxObject(tx, service),
1347
+ toTxObject(tx, permission),
1348
+ toTxObject(tx, passport),
1349
+ tx.object.mutRegistrar(),
1350
+ ],
1351
+ typeArguments: [service_type],
1352
+ });
1353
+ }
1354
+ }
1355
+ else {
1356
+ if (machine) {
1357
+ tx.moveCall({
1358
+ target: serviceFn("machine_set"),
1359
+ arguments: [
1360
+ toTxObject(tx, service),
1361
+ toTxObject(tx, permission),
1362
+ toTxObject(tx, machine),
1363
+ tx.object.mutRegistrar(),
1364
+ tx.object.clock(),
1365
+ ],
1366
+ typeArguments: [service_type],
1367
+ });
1368
+ }
1369
+ else {
1370
+ tx.moveCall({
1371
+ target: serviceFn("machine_set_none"),
1372
+ arguments: [
1373
+ toTxObject(tx, service),
1374
+ toTxObject(tx, permission),
1375
+ tx.object.mutRegistrar(),
1376
+ ],
1377
+ typeArguments: [service_type],
1378
+ });
1379
+ }
1380
+ }
1878
1381
  }
1879
- function customer_required_set(tx, service, service_type, permission, required_info, passport) {
1880
- if (required_info.length > MAX_REQUIRED_INFO_SIZE) {
1881
- W_ERROR(
1882
- WErrors.InvalidParam,
1883
- `Customer required set size ${required_info.length} is exceed maximum size ${MAX_REQUIRED_INFO_SIZE}`
1884
- );
1885
- }
1886
- validObjects([service, permission, passport]);
1887
- if (!IsValidArgType(service_type)) {
1888
- W_ERROR(
1889
- WErrors.InvalidParam,
1890
- `Customer required set service type ${service_type} is not valid`
1891
- );
1892
- }
1893
- required_info.forEach((item) => {
1894
- if (!isValidName(item)) {
1895
- W_ERROR(
1896
- WErrors.InvalidParam,
1897
- `Customer required info ${item} is exceed maximum length ${MAX_NAME_LENGTH} or start with "0x"`
1898
- );
1899
- }
1900
- });
1901
- if (passport) {
1902
- tx.moveCall({
1903
- target: serviceFn("custom_required_info_set_with_passport"),
1904
- arguments: [
1905
- toTxObject(tx, service),
1906
- toTxObject(tx, permission),
1907
- toTxObject(tx, passport),
1908
- tx.pure.vector("string", required_info)
1909
- ],
1910
- typeArguments: [service_type]
1911
- });
1912
- } else {
1913
- tx.moveCall({
1914
- target: serviceFn("custom_required_info_set"),
1915
- arguments: [
1916
- toTxObject(tx, service),
1917
- toTxObject(tx, permission),
1918
- tx.pure.vector("string", required_info)
1919
- ],
1920
- typeArguments: [service_type]
1921
- });
1922
- }
1382
+ export function publish(tx, service, service_type, permission, passport) {
1383
+ validObjects([service, permission, passport]);
1384
+ if (!IsValidArgType(service_type)) {
1385
+ W_ERROR(WErrors.InvalidParam, `Publish service type ${service_type} is not valid`);
1386
+ }
1387
+ if (passport) {
1388
+ tx.moveCall({
1389
+ target: serviceFn("publish_with_passport"),
1390
+ arguments: [
1391
+ toTxObject(tx, service),
1392
+ toTxObject(tx, permission),
1393
+ toTxObject(tx, passport),
1394
+ ],
1395
+ typeArguments: [service_type],
1396
+ });
1397
+ }
1398
+ else {
1399
+ tx.moveCall({
1400
+ target: serviceFn("publish"),
1401
+ arguments: [toTxObject(tx, service), toTxObject(tx, permission)],
1402
+ typeArguments: [service_type],
1403
+ });
1404
+ }
1923
1405
  }
1924
- function arbitrations_add(tx, service, service_type, permission, arbitration, arbitration_type, passport) {
1925
- validObjects([service, permission, arbitration, passport]);
1926
- if (!IsValidArgType(service_type)) {
1927
- W_ERROR(
1928
- WErrors.InvalidParam,
1929
- `Arbitrations add service type ${service_type} is not valid`
1930
- );
1931
- }
1932
- if (!IsValidArgType(arbitration_type)) {
1933
- W_ERROR(
1934
- WErrors.InvalidParam,
1935
- `Arbitrations add arbitration type ${arbitration_type} is not valid`
1936
- );
1937
- }
1938
- if (passport) {
1939
- tx.moveCall({
1940
- target: serviceFn("arbitration_add_with_passport"),
1941
- arguments: [
1942
- toTxObject(tx, service),
1943
- toTxObject(tx, permission),
1944
- toTxObject(tx, passport),
1945
- toTxObject(tx, arbitration),
1946
- tx.object.mutRegistrar(),
1947
- tx.object.clock()
1948
- ],
1949
- typeArguments: [service_type]
1950
- });
1951
- } else {
1952
- tx.moveCall({
1953
- target: serviceFn("arbitrations_add"),
1954
- arguments: [
1955
- toTxObject(tx, service),
1956
- toTxObject(tx, permission),
1957
- toTxObject(tx, arbitration),
1958
- tx.object.mutRegistrar(),
1959
- tx.object.clock()
1960
- ],
1961
- typeArguments: [service_type, arbitration_type]
1962
- });
1963
- }
1406
+ export function pause(tx, service, service_type, permission, bPaused, passport) {
1407
+ validObjects([service, permission, passport]);
1408
+ if (!IsValidArgType(service_type)) {
1409
+ W_ERROR(WErrors.InvalidParam, `Pause service type ${service_type} is not valid`);
1410
+ }
1411
+ if (passport) {
1412
+ tx.moveCall({
1413
+ target: serviceFn("pause_with_passport"),
1414
+ arguments: [
1415
+ toTxObject(tx, service),
1416
+ toTxObject(tx, permission),
1417
+ toTxObject(tx, passport),
1418
+ tx.pure.bool(bPaused),
1419
+ tx.object.clock(),
1420
+ ],
1421
+ typeArguments: [service_type],
1422
+ });
1423
+ }
1424
+ else {
1425
+ tx.moveCall({
1426
+ target: serviceFn("pause"),
1427
+ arguments: [
1428
+ toTxObject(tx, service),
1429
+ toTxObject(tx, permission),
1430
+ tx.pure.bool(bPaused),
1431
+ tx.object.clock(),
1432
+ ],
1433
+ typeArguments: [service_type],
1434
+ });
1435
+ }
1964
1436
  }
1965
- function arbitrations_remove(tx, service, service_type, permission, arbitrations, passport) {
1966
- if (arbitrations.length === 0) {
1967
- return;
1968
- }
1969
- validObjects([service, permission, passport]);
1970
- if (!IsValidArgType(service_type)) {
1971
- W_ERROR(
1972
- WErrors.InvalidParam,
1973
- `Arbitrations remove service type ${service_type} is not valid`
1974
- );
1975
- }
1976
- if (passport) {
1977
- tx.moveCall({
1978
- target: serviceFn("arbitration_remove_with_passport"),
1979
- arguments: [
1980
- toTxObject(tx, service),
1981
- toTxObject(tx, permission),
1982
- toTxObject(tx, passport),
1983
- tx.pure.vector("address", arbitrations),
1984
- tx.object.mutRegistrar()
1985
- ],
1986
- typeArguments: [service_type]
1987
- });
1988
- } else {
1989
- tx.moveCall({
1990
- target: serviceFn("arbitration_remove"),
1991
- arguments: [
1992
- toTxObject(tx, service),
1993
- toTxObject(tx, permission),
1994
- tx.pure.vector("address", arbitrations),
1995
- tx.object.mutRegistrar()
1996
- ],
1997
- typeArguments: [service_type]
1437
+ export function customer_required_set(tx, service, service_type, permission, required_info, passport) {
1438
+ if (required_info.length > MAX_REQUIRED_INFO_SIZE) {
1439
+ W_ERROR(WErrors.InvalidParam, `Customer required set size ${required_info.length} is exceed maximum size ${MAX_REQUIRED_INFO_SIZE}`);
1440
+ }
1441
+ validObjects([service, permission, passport]);
1442
+ if (!IsValidArgType(service_type)) {
1443
+ W_ERROR(WErrors.InvalidParam, `Customer required set service type ${service_type} is not valid`);
1444
+ }
1445
+ required_info.forEach((item) => {
1446
+ if (!isValidName(item)) {
1447
+ W_ERROR(WErrors.InvalidParam, `Customer required info ${item} is exceed maximum length ${MAX_NAME_LENGTH} or start with "0x"`);
1448
+ }
1998
1449
  });
1999
- }
1450
+ if (passport) {
1451
+ tx.moveCall({
1452
+ target: serviceFn("custom_required_info_set_with_passport"),
1453
+ arguments: [
1454
+ toTxObject(tx, service),
1455
+ toTxObject(tx, permission),
1456
+ toTxObject(tx, passport),
1457
+ tx.pure.vector("string", required_info),
1458
+ ],
1459
+ typeArguments: [service_type],
1460
+ });
1461
+ }
1462
+ else {
1463
+ tx.moveCall({
1464
+ target: serviceFn("custom_required_info_set"),
1465
+ arguments: [
1466
+ toTxObject(tx, service),
1467
+ toTxObject(tx, permission),
1468
+ tx.pure.vector("string", required_info),
1469
+ ],
1470
+ typeArguments: [service_type],
1471
+ });
1472
+ }
2000
1473
  }
2001
- function arbitration_clear(tx, service, service_type, permission, passport) {
2002
- validObjects([service, permission, passport]);
2003
- if (!IsValidArgType(service_type)) {
2004
- W_ERROR(
2005
- WErrors.InvalidParam,
2006
- `Arbitrations clear service type ${service_type} is not valid`
2007
- );
2008
- }
2009
- if (passport) {
2010
- tx.moveCall({
2011
- target: serviceFn("arbitration_clear_with_passport"),
2012
- arguments: [
2013
- toTxObject(tx, service),
2014
- toTxObject(tx, permission),
2015
- toTxObject(tx, passport),
2016
- tx.object.mutRegistrar()
2017
- ],
2018
- typeArguments: [service_type]
2019
- });
2020
- } else {
2021
- tx.moveCall({
2022
- target: serviceFn("arbitration_clear"),
2023
- arguments: [
2024
- toTxObject(tx, service),
2025
- toTxObject(tx, permission),
2026
- tx.object.mutRegistrar()
2027
- ],
2028
- typeArguments: [service_type]
2029
- });
2030
- }
1474
+ export function arbitrations_add(tx, service, service_type, permission, arbitration, arbitration_type, passport) {
1475
+ validObjects([service, permission, arbitration, passport]);
1476
+ if (!IsValidArgType(service_type)) {
1477
+ W_ERROR(WErrors.InvalidParam, `Arbitrations add service type ${service_type} is not valid`);
1478
+ }
1479
+ if (!IsValidArgType(arbitration_type)) {
1480
+ W_ERROR(WErrors.InvalidParam, `Arbitrations add arbitration type ${arbitration_type} is not valid`);
1481
+ }
1482
+ if (passport) {
1483
+ tx.moveCall({
1484
+ target: serviceFn("arbitration_add_with_passport"),
1485
+ arguments: [
1486
+ toTxObject(tx, service),
1487
+ toTxObject(tx, permission),
1488
+ toTxObject(tx, passport),
1489
+ toTxObject(tx, arbitration),
1490
+ tx.object.mutRegistrar(),
1491
+ tx.object.clock(),
1492
+ ],
1493
+ typeArguments: [service_type],
1494
+ });
1495
+ }
1496
+ else {
1497
+ tx.moveCall({
1498
+ target: serviceFn("arbitrations_add"),
1499
+ arguments: [
1500
+ toTxObject(tx, service),
1501
+ toTxObject(tx, permission),
1502
+ toTxObject(tx, arbitration),
1503
+ tx.object.mutRegistrar(),
1504
+ tx.object.clock(),
1505
+ ],
1506
+ typeArguments: [service_type, arbitration_type],
1507
+ });
1508
+ }
2031
1509
  }
2032
- async function compensation_fund_add(env, tx, service, service_type, permission, coin, passport) {
2033
- validObjects([service, permission, passport]);
2034
- if (!IsValidArgType(service_type)) {
2035
- W_ERROR(
2036
- WErrors.InvalidParam,
2037
- `Compensation fund add service type ${service_type} is not valid`
2038
- );
2039
- }
2040
- const coinParam = await getCoinParam(env, tx, coin, service_type);
2041
- if (passport) {
2042
- tx.moveCall({
2043
- target: serviceFn("compensation_fund_add_with_passport"),
2044
- arguments: [
2045
- toTxObject(tx, service),
2046
- toTxObject(tx, permission),
2047
- toTxObject(tx, passport),
2048
- coinParam
2049
- ],
2050
- typeArguments: [service_type]
2051
- });
2052
- } else {
2053
- tx.moveCall({
2054
- target: serviceFn("compensation_fund_add"),
2055
- arguments: [
2056
- toTxObject(tx, service),
2057
- toTxObject(tx, permission),
2058
- coinParam
2059
- ],
2060
- typeArguments: [service_type]
2061
- });
2062
- }
1510
+ export function arbitrations_remove(tx, service, service_type, permission, arbitrations, passport) {
1511
+ if (arbitrations.length === 0) {
1512
+ return;
1513
+ }
1514
+ validObjects([service, permission, passport]);
1515
+ if (!IsValidArgType(service_type)) {
1516
+ W_ERROR(WErrors.InvalidParam, `Arbitrations remove service type ${service_type} is not valid`);
1517
+ }
1518
+ if (passport) {
1519
+ tx.moveCall({
1520
+ target: serviceFn("arbitration_remove_with_passport"),
1521
+ arguments: [
1522
+ toTxObject(tx, service),
1523
+ toTxObject(tx, permission),
1524
+ toTxObject(tx, passport),
1525
+ tx.pure.vector("address", arbitrations),
1526
+ tx.object.mutRegistrar(),
1527
+ ],
1528
+ typeArguments: [service_type],
1529
+ });
1530
+ }
1531
+ else {
1532
+ tx.moveCall({
1533
+ target: serviceFn("arbitration_remove"),
1534
+ arguments: [
1535
+ toTxObject(tx, service),
1536
+ toTxObject(tx, permission),
1537
+ tx.pure.vector("address", arbitrations),
1538
+ tx.object.mutRegistrar(),
1539
+ ],
1540
+ typeArguments: [service_type],
1541
+ });
1542
+ }
2063
1543
  }
2064
- function compensation_lock_duration_set(tx, service, service_type, permission, duration_ms, passport) {
2065
- if (!isValidU64(duration_ms) || duration_ms === 0) {
2066
- return;
2067
- }
2068
- validObjects([service, permission, passport]);
2069
- if (!IsValidArgType(service_type)) {
2070
- W_ERROR(
2071
- WErrors.InvalidParam,
2072
- `Compensation lock duration set service type ${service_type} is not valid`
2073
- );
2074
- }
2075
- if (passport) {
2076
- tx.moveCall({
2077
- target: serviceFn("compensation_lock_duration_add_with_passport"),
2078
- arguments: [
2079
- toTxObject(tx, service),
2080
- toTxObject(tx, permission),
2081
- toTxObject(tx, passport),
2082
- tx.pure.u64(duration_ms)
2083
- ],
2084
- typeArguments: [service_type]
2085
- });
2086
- } else {
2087
- tx.moveCall({
2088
- target: serviceFn("compensation_lock_duration_add"),
2089
- arguments: [
2090
- toTxObject(tx, service),
2091
- toTxObject(tx, permission),
2092
- tx.pure.u64(duration_ms)
2093
- ],
2094
- typeArguments: [service_type]
2095
- });
2096
- }
1544
+ export function arbitration_clear(tx, service, service_type, permission, passport) {
1545
+ validObjects([service, permission, passport]);
1546
+ if (!IsValidArgType(service_type)) {
1547
+ W_ERROR(WErrors.InvalidParam, `Arbitrations clear service type ${service_type} is not valid`);
1548
+ }
1549
+ if (passport) {
1550
+ tx.moveCall({
1551
+ target: serviceFn("arbitration_clear_with_passport"),
1552
+ arguments: [
1553
+ toTxObject(tx, service),
1554
+ toTxObject(tx, permission),
1555
+ toTxObject(tx, passport),
1556
+ tx.object.mutRegistrar(),
1557
+ ],
1558
+ typeArguments: [service_type],
1559
+ });
1560
+ }
1561
+ else {
1562
+ tx.moveCall({
1563
+ target: serviceFn("arbitration_clear"),
1564
+ arguments: [
1565
+ toTxObject(tx, service),
1566
+ toTxObject(tx, permission),
1567
+ tx.object.mutRegistrar(),
1568
+ ],
1569
+ typeArguments: [service_type],
1570
+ });
1571
+ }
2097
1572
  }
2098
- function order_allocators_set(tx, service, service_type, permission, allocators2, passport) {
2099
- validObjects([service, permission, allocators2, passport]);
2100
- if (!IsValidArgType(service_type)) {
2101
- W_ERROR(
2102
- WErrors.InvalidParam,
2103
- `Order allocators set service type ${service_type} is not valid`
2104
- );
2105
- }
2106
- if (passport) {
2107
- tx.moveCall({
2108
- target: serviceFn("order_allocators_set_with_passport"),
2109
- arguments: [
2110
- toTxObject(tx, service),
2111
- toTxObject(tx, permission),
2112
- toTxObject(tx, passport),
2113
- tx.object.option({
2114
- type: `${PackageAddress}::allocation::Allocators`,
2115
- value: allocators2 ?? null
2116
- })
2117
- ],
2118
- typeArguments: [service_type]
2119
- });
2120
- } else {
2121
- tx.moveCall({
2122
- target: serviceFn("order_allocators_set"),
2123
- arguments: [
2124
- toTxObject(tx, service),
2125
- toTxObject(tx, permission),
2126
- tx.object.option({
2127
- type: `${PackageAddress}::allocation::Allocators`,
2128
- value: allocators2 ?? null
2129
- })
2130
- ],
2131
- typeArguments: [service_type]
2132
- });
2133
- }
1573
+ export async function compensation_fund_add(env, tx, service, service_type, permission, coin, passport) {
1574
+ validObjects([service, permission, passport]);
1575
+ if (!IsValidArgType(service_type)) {
1576
+ W_ERROR(WErrors.InvalidParam, `Compensation fund add service type ${service_type} is not valid`);
1577
+ }
1578
+ const coinParam = await getCoinParam(env, tx, coin, service_type);
1579
+ if (passport) {
1580
+ tx.moveCall({
1581
+ target: serviceFn("compensation_fund_add_with_passport"),
1582
+ arguments: [
1583
+ toTxObject(tx, service),
1584
+ toTxObject(tx, permission),
1585
+ toTxObject(tx, passport),
1586
+ coinParam,
1587
+ ],
1588
+ typeArguments: [service_type],
1589
+ });
1590
+ }
1591
+ else {
1592
+ tx.moveCall({
1593
+ target: serviceFn("compensation_fund_add"),
1594
+ arguments: [
1595
+ toTxObject(tx, service),
1596
+ toTxObject(tx, permission),
1597
+ coinParam,
1598
+ ],
1599
+ typeArguments: [service_type],
1600
+ });
1601
+ }
2134
1602
  }
2135
- function reward_add(tx, service, service_type, permission, reward, reward_type, passport) {
2136
- validObjects([service, permission, reward, passport]);
2137
- if (!IsValidArgType(service_type)) {
2138
- W_ERROR(
2139
- WErrors.InvalidParam,
2140
- `Rewards add service type ${service_type} is not valid`
2141
- );
2142
- }
2143
- if (!IsValidArgType(reward_type)) {
2144
- W_ERROR(
2145
- WErrors.InvalidParam,
2146
- `Rewards add reward type ${reward_type} is not valid`
2147
- );
2148
- }
2149
- if (passport) {
2150
- tx.moveCall({
2151
- target: serviceFn("reward_add_with_passport"),
2152
- arguments: [
2153
- toTxObject(tx, service),
2154
- toTxObject(tx, permission),
2155
- toTxObject(tx, passport),
2156
- toTxObject(tx, reward),
2157
- tx.object.mutRegistrar(),
2158
- tx.object.clock()
2159
- ],
2160
- typeArguments: [service_type, reward_type]
2161
- });
2162
- } else {
2163
- tx.moveCall({
2164
- target: serviceFn("reward_add"),
2165
- arguments: [
2166
- toTxObject(tx, service),
2167
- toTxObject(tx, permission),
2168
- toTxObject(tx, reward),
2169
- tx.object.mutRegistrar(),
2170
- tx.object.clock()
2171
- ],
2172
- typeArguments: [service_type, reward_type]
2173
- });
2174
- }
1603
+ export function compensation_lock_duration_set(tx, service, service_type, permission, duration_ms, passport) {
1604
+ if (!isValidU64(duration_ms) || duration_ms === 0) {
1605
+ return;
1606
+ }
1607
+ validObjects([service, permission, passport]);
1608
+ if (!IsValidArgType(service_type)) {
1609
+ W_ERROR(WErrors.InvalidParam, `Compensation lock duration set service type ${service_type} is not valid`);
1610
+ }
1611
+ if (passport) {
1612
+ tx.moveCall({
1613
+ target: serviceFn("compensation_lock_duration_add_with_passport"),
1614
+ arguments: [
1615
+ toTxObject(tx, service),
1616
+ toTxObject(tx, permission),
1617
+ toTxObject(tx, passport),
1618
+ tx.pure.u64(duration_ms),
1619
+ ],
1620
+ typeArguments: [service_type],
1621
+ });
1622
+ }
1623
+ else {
1624
+ tx.moveCall({
1625
+ target: serviceFn("compensation_lock_duration_add"),
1626
+ arguments: [
1627
+ toTxObject(tx, service),
1628
+ toTxObject(tx, permission),
1629
+ tx.pure.u64(duration_ms),
1630
+ ],
1631
+ typeArguments: [service_type],
1632
+ });
1633
+ }
2175
1634
  }
2176
- function reward_remove(tx, service, service_type, permission, rewards, passport) {
2177
- if (rewards.length === 0) {
2178
- return;
2179
- }
2180
- validObjects([service, permission, passport]);
2181
- if (!IsValidArgType(service_type)) {
2182
- W_ERROR(
2183
- WErrors.InvalidParam,
2184
- `Rewards remove service type ${service_type} is not valid`
2185
- );
2186
- }
2187
- if (passport) {
2188
- tx.moveCall({
2189
- target: serviceFn("reward_remove_with_passport"),
2190
- arguments: [
2191
- toTxObject(tx, service),
2192
- toTxObject(tx, permission),
2193
- toTxObject(tx, passport),
2194
- tx.pure.vector("address", rewards),
2195
- tx.object.mutRegistrar()
2196
- ],
2197
- typeArguments: [service_type]
2198
- });
2199
- } else {
2200
- tx.moveCall({
2201
- target: serviceFn("reward_remove"),
2202
- arguments: [
2203
- toTxObject(tx, service),
2204
- toTxObject(tx, permission),
2205
- tx.pure.vector("address", rewards),
2206
- tx.object.mutRegistrar()
2207
- ],
2208
- typeArguments: [service_type]
2209
- });
2210
- }
1635
+ export function order_allocators_set(tx, service, service_type, permission, allocators, passport) {
1636
+ validObjects([service, permission, allocators, passport]);
1637
+ if (!IsValidArgType(service_type)) {
1638
+ W_ERROR(WErrors.InvalidParam, `Order allocators set service type ${service_type} is not valid`);
1639
+ }
1640
+ if (passport) {
1641
+ tx.moveCall({
1642
+ target: serviceFn("order_allocators_set_with_passport"),
1643
+ arguments: [
1644
+ toTxObject(tx, service),
1645
+ toTxObject(tx, permission),
1646
+ toTxObject(tx, passport),
1647
+ tx.object.option({
1648
+ type: `${PackageAddress}::allocation::Allocators`,
1649
+ value: allocators ?? null,
1650
+ }),
1651
+ ],
1652
+ typeArguments: [service_type],
1653
+ });
1654
+ }
1655
+ else {
1656
+ tx.moveCall({
1657
+ target: serviceFn("order_allocators_set"),
1658
+ arguments: [
1659
+ toTxObject(tx, service),
1660
+ toTxObject(tx, permission),
1661
+ tx.object.option({
1662
+ type: `${PackageAddress}::allocation::Allocators`,
1663
+ value: allocators ?? null,
1664
+ }),
1665
+ ],
1666
+ typeArguments: [service_type],
1667
+ });
1668
+ }
2211
1669
  }
2212
- function reward_clear(tx, service, service_type, permission, passport) {
2213
- validObjects([service, permission, passport]);
2214
- if (!IsValidArgType(service_type)) {
2215
- W_ERROR(
2216
- WErrors.InvalidParam,
2217
- `Rewards clear service type ${service_type} is not valid`
2218
- );
2219
- }
2220
- if (passport) {
2221
- tx.moveCall({
2222
- target: serviceFn("reward_clear_with_passport"),
2223
- arguments: [
2224
- toTxObject(tx, service),
2225
- toTxObject(tx, permission),
2226
- toTxObject(tx, passport),
2227
- tx.object.mutRegistrar()
2228
- ],
2229
- typeArguments: [service_type]
2230
- });
2231
- } else {
2232
- tx.moveCall({
2233
- target: serviceFn("reward_clear"),
2234
- arguments: [
2235
- toTxObject(tx, service),
2236
- toTxObject(tx, permission),
2237
- tx.object.mutRegistrar()
2238
- ],
2239
- typeArguments: [service_type]
2240
- });
2241
- }
1670
+ export function reward_add(tx, service, service_type, permission, reward, reward_type, passport) {
1671
+ validObjects([service, permission, reward, passport]);
1672
+ if (!IsValidArgType(service_type)) {
1673
+ W_ERROR(WErrors.InvalidParam, `Rewards add service type ${service_type} is not valid`);
1674
+ }
1675
+ if (!IsValidArgType(reward_type)) {
1676
+ W_ERROR(WErrors.InvalidParam, `Rewards add reward type ${reward_type} is not valid`);
1677
+ }
1678
+ if (passport) {
1679
+ tx.moveCall({
1680
+ target: serviceFn("reward_add_with_passport"),
1681
+ arguments: [
1682
+ toTxObject(tx, service),
1683
+ toTxObject(tx, permission),
1684
+ toTxObject(tx, passport),
1685
+ toTxObject(tx, reward),
1686
+ tx.object.mutRegistrar(),
1687
+ tx.object.clock(),
1688
+ ],
1689
+ typeArguments: [service_type, reward_type],
1690
+ });
1691
+ }
1692
+ else {
1693
+ tx.moveCall({
1694
+ target: serviceFn("reward_add"),
1695
+ arguments: [
1696
+ toTxObject(tx, service),
1697
+ toTxObject(tx, permission),
1698
+ toTxObject(tx, reward),
1699
+ tx.object.mutRegistrar(),
1700
+ tx.object.clock(),
1701
+ ],
1702
+ typeArguments: [service_type, reward_type],
1703
+ });
1704
+ }
2242
1705
  }
2243
- function compensation_fund_receive(tx, service, service_type, permission, received_object, payment, passport) {
2244
- if (!payment) {
2245
- W_ERROR(
2246
- WErrors.InvalidParam,
2247
- `Compensation fund receive payment is required`
2248
- );
2249
- }
2250
- validObjects([service, permission, received_object, payment, passport]);
2251
- if (!IsValidArgType(service_type)) {
2252
- W_ERROR(
2253
- WErrors.InvalidParam,
2254
- `Compensation fund receive service type ${service_type} is not valid`
2255
- );
2256
- }
2257
- if (passport) {
2258
- tx.moveCall({
2259
- target: serviceFn("compensation_fund_receive_with_passport"),
2260
- arguments: [
2261
- toTxObject(tx, service),
2262
- toTxObject(tx, permission),
2263
- toTxObject(tx, passport),
2264
- toTxObject(tx, received_object),
2265
- toTxObject(tx, payment)
2266
- ],
2267
- typeArguments: [service_type]
2268
- });
2269
- } else {
2270
- tx.moveCall({
2271
- target: serviceFn("compensation_fund_receive"),
2272
- arguments: [
2273
- toTxObject(tx, service),
2274
- toTxObject(tx, permission),
2275
- toTxObject(tx, received_object),
2276
- toTxObject(tx, payment)
2277
- ],
2278
- typeArguments: [service_type]
2279
- });
2280
- }
1706
+ export function reward_remove(tx, service, service_type, permission, rewards, passport) {
1707
+ if (rewards.length === 0) {
1708
+ return;
1709
+ }
1710
+ validObjects([service, permission, passport]);
1711
+ if (!IsValidArgType(service_type)) {
1712
+ W_ERROR(WErrors.InvalidParam, `Rewards remove service type ${service_type} is not valid`);
1713
+ }
1714
+ if (passport) {
1715
+ tx.moveCall({
1716
+ target: serviceFn("reward_remove_with_passport"),
1717
+ arguments: [
1718
+ toTxObject(tx, service),
1719
+ toTxObject(tx, permission),
1720
+ toTxObject(tx, passport),
1721
+ tx.pure.vector("address", rewards),
1722
+ tx.object.mutRegistrar(),
1723
+ ],
1724
+ typeArguments: [service_type],
1725
+ });
1726
+ }
1727
+ else {
1728
+ tx.moveCall({
1729
+ target: serviceFn("reward_remove"),
1730
+ arguments: [
1731
+ toTxObject(tx, service),
1732
+ toTxObject(tx, permission),
1733
+ tx.pure.vector("address", rewards),
1734
+ tx.object.mutRegistrar(),
1735
+ ],
1736
+ typeArguments: [service_type],
1737
+ });
1738
+ }
2281
1739
  }
2282
- function compensation_fund_withdraw(tx, service, service_type, payment_info, receipt, permission, passport) {
2283
- validObjects([service, permission, receipt, payment_info, passport]);
2284
- if (!IsValidArgType(service_type)) {
2285
- W_ERROR(
2286
- WErrors.InvalidParam,
2287
- `Compensation fund withdraw service type ${service_type} is not valid`
2288
- );
2289
- }
2290
- if (passport) {
2291
- tx.moveCall({
2292
- target: serviceFn("compensation_fund_withdraw_with_passport"),
2293
- arguments: [
2294
- toTxObject(tx, service),
2295
- toTxObject(tx, permission),
2296
- toTxObject(tx, passport),
2297
- tx.pure.address(receipt),
2298
- toTxObject(tx, payment_info),
2299
- tx.object.mutRegistrar(),
2300
- tx.object.clock()
2301
- ],
2302
- typeArguments: [service_type]
2303
- });
2304
- } else {
2305
- tx.moveCall({
2306
- target: serviceFn("compensation_fund_withdraw"),
2307
- arguments: [
2308
- toTxObject(tx, service),
2309
- toTxObject(tx, permission),
2310
- tx.pure.address(receipt),
2311
- toTxObject(tx, payment_info),
2312
- tx.object.mutRegistrar(),
2313
- tx.object.clock()
2314
- ],
2315
- typeArguments: [service_type]
2316
- });
2317
- }
1740
+ export function reward_clear(tx, service, service_type, permission, passport) {
1741
+ validObjects([service, permission, passport]);
1742
+ if (!IsValidArgType(service_type)) {
1743
+ W_ERROR(WErrors.InvalidParam, `Rewards clear service type ${service_type} is not valid`);
1744
+ }
1745
+ if (passport) {
1746
+ tx.moveCall({
1747
+ target: serviceFn("reward_clear_with_passport"),
1748
+ arguments: [
1749
+ toTxObject(tx, service),
1750
+ toTxObject(tx, permission),
1751
+ toTxObject(tx, passport),
1752
+ tx.object.mutRegistrar(),
1753
+ ],
1754
+ typeArguments: [service_type],
1755
+ });
1756
+ }
1757
+ else {
1758
+ tx.moveCall({
1759
+ target: serviceFn("reward_clear"),
1760
+ arguments: [
1761
+ toTxObject(tx, service),
1762
+ toTxObject(tx, permission),
1763
+ tx.object.mutRegistrar(),
1764
+ ],
1765
+ typeArguments: [service_type],
1766
+ });
1767
+ }
2318
1768
  }
2319
- async function discount(tx, service, service_type, permission, discount2, passport) {
2320
- let recipient = [];
2321
- if (Array.isArray(discount2.recipient)) {
2322
- recipient = discount2.recipient;
2323
- } else {
2324
- recipient = await GetManyAccountOrMark_Address(discount2.recipient);
2325
- }
2326
- if (recipient.length === 0 || discount2.count === 0) {
2327
- return;
2328
- }
2329
- if (recipient.length > MAX_DISCOUNT_RECEIVER_ONCE) {
2330
- W_ERROR(
2331
- WErrors.InvalidParam,
2332
- `Discount recipient length ${recipient.length} is exceed max ${MAX_DISCOUNT_RECEIVER_ONCE}`
2333
- );
2334
- }
2335
- if (!isValidName(discount2.name)) {
2336
- W_ERROR(
2337
- WErrors.InvalidParam,
2338
- `Discount name ${discount2.name} is not valid`
2339
- );
2340
- }
2341
- if (!isValidU16(discount2.count) || discount2.count > MAX_DISCOUNT_COUNT_ONCE) {
2342
- W_ERROR(
2343
- WErrors.InvalidParam,
2344
- `Discount count ${discount2.count} is exceed max ${MAX_DISCOUNT_COUNT_ONCE}`
2345
- );
2346
- }
2347
- if (recipient.length * discount2.count > MAX_DISCOUNT_TOTAL_COUNT) {
2348
- W_ERROR(
2349
- WErrors.InvalidParam,
2350
- `Discount total count ${recipient.length * discount2.count} is exceed max ${MAX_DISCOUNT_TOTAL_COUNT}`
2351
- );
2352
- }
2353
- if (discount2.benchmark != null && !isValidU64(discount2.benchmark)) {
2354
- W_ERROR(
2355
- WErrors.InvalidParam,
2356
- `Discount benchmark ${discount2.benchmark} is not valid`
2357
- );
2358
- }
2359
- const start = discount2.time_ms_start ?? Date.now();
2360
- if (discount2.time_ms_end < start) {
2361
- W_ERROR(
2362
- WErrors.InvalidParam,
2363
- `Discount time_ms_end ${discount2.time_ms_end} is not valid`
2364
- );
2365
- }
2366
- if (discount2.discount_value != null && !isValidU64(discount2.discount_value)) {
2367
- W_ERROR(
2368
- WErrors.InvalidParam,
2369
- `Discount discount_value ${discount2.discount_value} is not valid`
2370
- );
2371
- }
2372
- validObjects([service, permission, passport, ...recipient]);
2373
- if (!IsValidArgType(service_type)) {
2374
- W_ERROR(
2375
- WErrors.InvalidParam,
2376
- `Discount service type ${service_type} is not valid`
2377
- );
2378
- }
2379
- if (passport) {
2380
- tx.moveCall({
2381
- target: serviceFn("discount_with_passport"),
2382
- arguments: [
2383
- toTxObject(tx, service),
2384
- toTxObject(tx, permission),
2385
- toTxObject(tx, passport),
2386
- tx.pure.string(discount2.name),
2387
- tx.pure.u8(discount2.discount_type),
2388
- tx.pure.u64(discount2.discount_value),
2389
- tx.pure.option("u64", discount2.benchmark ?? null),
2390
- tx.pure.bool(discount2.transferable),
2391
- tx.pure.option("u64", discount2.time_ms_start ?? null),
2392
- tx.pure.u64(discount2.time_ms_end),
2393
- tx.pure.u16(discount2.count),
2394
- tx.pure.vector("address", recipient),
2395
- tx.object.clock()
2396
- ],
2397
- typeArguments: [service_type]
2398
- });
2399
- } else {
2400
- tx.moveCall({
2401
- target: serviceFn("discount"),
2402
- arguments: [
2403
- toTxObject(tx, service),
2404
- toTxObject(tx, permission),
2405
- tx.pure.string(discount2.name),
2406
- tx.pure.u8(discount2.discount_type),
2407
- tx.pure.u64(discount2.discount_value),
2408
- tx.pure.option("u64", discount2.benchmark ?? null),
2409
- tx.pure.bool(discount2.transferable),
2410
- tx.pure.option("u64", discount2.time_ms_start ?? null),
2411
- tx.pure.u64(discount2.time_ms_end),
2412
- tx.pure.u16(discount2.count),
2413
- tx.pure.vector("address", recipient),
2414
- tx.object.clock()
2415
- ],
2416
- typeArguments: [service_type]
2417
- });
2418
- }
1769
+ export function compensation_fund_receive(tx, service, service_type, permission, received_object, payment, passport) {
1770
+ if (!payment) {
1771
+ W_ERROR(WErrors.InvalidParam, `Compensation fund receive payment is required`);
1772
+ }
1773
+ validObjects([service, permission, received_object, payment, passport]);
1774
+ if (!IsValidArgType(service_type)) {
1775
+ W_ERROR(WErrors.InvalidParam, `Compensation fund receive service type ${service_type} is not valid`);
1776
+ }
1777
+ if (passport) {
1778
+ tx.moveCall({
1779
+ target: serviceFn("compensation_fund_receive_with_passport"),
1780
+ arguments: [
1781
+ toTxObject(tx, service),
1782
+ toTxObject(tx, permission),
1783
+ toTxObject(tx, passport),
1784
+ toTxObject(tx, received_object),
1785
+ toTxObject(tx, payment),
1786
+ ],
1787
+ typeArguments: [service_type],
1788
+ });
1789
+ }
1790
+ else {
1791
+ tx.moveCall({
1792
+ target: serviceFn("compensation_fund_receive"),
1793
+ arguments: [
1794
+ toTxObject(tx, service),
1795
+ toTxObject(tx, permission),
1796
+ toTxObject(tx, received_object),
1797
+ toTxObject(tx, payment),
1798
+ ],
1799
+ typeArguments: [service_type],
1800
+ });
1801
+ }
2419
1802
  }
2420
- export {
2421
- CallService,
2422
- DEFAULT_COMPENSATION_LOCK_DURATION,
2423
- DISCOUNT_TYPE_MINUS,
2424
- DISCOUNT_TYPE_RATES,
2425
- MAX_ARBITRATION_COUNT,
2426
- MAX_CUSTOMER_REQUIRED_INFO_COUNT,
2427
- MAX_DISCOUNT_COUNT_ONCE,
2428
- MAX_DISCOUNT_RECEIVER_ONCE,
2429
- MAX_DISCOUNT_TOTAL_COUNT,
2430
- MAX_PUBKEY_LENGTH,
2431
- MAX_REPOSITORY_COUNT,
2432
- MAX_REQUIRED_INFO_SIZE,
2433
- MAX_REWARD_COUNT,
2434
- MAX_SALE_COUNT,
2435
- arbitration_clear,
2436
- arbitrations_add,
2437
- arbitrations_remove,
2438
- buy,
2439
- buy_guard_set,
2440
- compensation_fund_add,
2441
- compensation_fund_receive,
2442
- compensation_fund_withdraw,
2443
- compensation_lock_duration_set,
2444
- create,
2445
- customer_required_set,
2446
- description_set,
2447
- discount,
2448
- discount_destroy,
2449
- discount_send,
2450
- location_set,
2451
- machine_set,
2452
- newService,
2453
- order_allocators_set,
2454
- pause,
2455
- price_add,
2456
- price_reduce,
2457
- publish,
2458
- repository_add,
2459
- repository_clear,
2460
- repository_remove,
2461
- reward_add,
2462
- reward_clear,
2463
- reward_remove,
2464
- sale_suspension,
2465
- sales_add,
2466
- sales_clear,
2467
- sales_remove,
2468
- sales_set,
2469
- stock_add,
2470
- stock_reduce,
2471
- um_set
2472
- };
1803
+ export function compensation_fund_withdraw(tx, service, service_type, payment_info, receipt, permission, passport) {
1804
+ validObjects([service, permission, receipt, payment_info, passport]);
1805
+ if (!IsValidArgType(service_type)) {
1806
+ W_ERROR(WErrors.InvalidParam, `Compensation fund withdraw service type ${service_type} is not valid`);
1807
+ }
1808
+ if (passport) {
1809
+ tx.moveCall({
1810
+ target: serviceFn("compensation_fund_withdraw_with_passport"),
1811
+ arguments: [
1812
+ toTxObject(tx, service),
1813
+ toTxObject(tx, permission),
1814
+ toTxObject(tx, passport),
1815
+ tx.pure.address(receipt),
1816
+ toTxObject(tx, payment_info),
1817
+ tx.object.mutRegistrar(),
1818
+ tx.object.clock(),
1819
+ ],
1820
+ typeArguments: [service_type],
1821
+ });
1822
+ }
1823
+ else {
1824
+ tx.moveCall({
1825
+ target: serviceFn("compensation_fund_withdraw"),
1826
+ arguments: [
1827
+ toTxObject(tx, service),
1828
+ toTxObject(tx, permission),
1829
+ tx.pure.address(receipt),
1830
+ toTxObject(tx, payment_info),
1831
+ tx.object.mutRegistrar(),
1832
+ tx.object.clock(),
1833
+ ],
1834
+ typeArguments: [service_type],
1835
+ });
1836
+ }
1837
+ }
1838
+ export async function discount(tx, service, service_type, permission, discount, passport) {
1839
+ let recipient = [];
1840
+ if (Array.isArray(discount.recipient)) {
1841
+ // 如果 recipient 是 string[] 类型,直接使用
1842
+ recipient = discount.recipient;
1843
+ }
1844
+ else {
1845
+ // 如果 recipient 是 ManyAccountOrMark_Address 类型,调用 GetManyAccountOrMark_Address
1846
+ recipient = await GetManyAccountOrMark_Address(discount.recipient);
1847
+ }
1848
+ if (recipient.length === 0 || discount.count === 0) {
1849
+ return;
1850
+ }
1851
+ if (recipient.length > MAX_DISCOUNT_RECEIVER_ONCE) {
1852
+ W_ERROR(WErrors.InvalidParam, `Discount recipient length ${recipient.length} is exceed max ${MAX_DISCOUNT_RECEIVER_ONCE}`);
1853
+ }
1854
+ if (!isValidName(discount.name)) {
1855
+ W_ERROR(WErrors.InvalidParam, `Discount name ${discount.name} is not valid`);
1856
+ }
1857
+ if (!isValidU16(discount.count) ||
1858
+ discount.count > MAX_DISCOUNT_COUNT_ONCE) {
1859
+ W_ERROR(WErrors.InvalidParam, `Discount count ${discount.count} is exceed max ${MAX_DISCOUNT_COUNT_ONCE}`);
1860
+ }
1861
+ if (recipient.length * discount.count > MAX_DISCOUNT_TOTAL_COUNT) {
1862
+ W_ERROR(WErrors.InvalidParam, `Discount total count ${recipient.length * discount.count} is exceed max ${MAX_DISCOUNT_TOTAL_COUNT}`);
1863
+ }
1864
+ if (discount.benchmark != null && !isValidU64(discount.benchmark)) {
1865
+ W_ERROR(WErrors.InvalidParam, `Discount benchmark ${discount.benchmark} is not valid`);
1866
+ }
1867
+ const start = discount.time_ms_start ?? Date.now();
1868
+ if (discount.time_ms_end < start) {
1869
+ W_ERROR(WErrors.InvalidParam, `Discount time_ms_end ${discount.time_ms_end} is not valid`);
1870
+ }
1871
+ if (discount.discount_value != null &&
1872
+ !isValidU64(discount.discount_value)) {
1873
+ W_ERROR(WErrors.InvalidParam, `Discount discount_value ${discount.discount_value} is not valid`);
1874
+ }
1875
+ validObjects([service, permission, passport, ...recipient]);
1876
+ if (!IsValidArgType(service_type)) {
1877
+ W_ERROR(WErrors.InvalidParam, `Discount service type ${service_type} is not valid`);
1878
+ }
1879
+ if (passport) {
1880
+ tx.moveCall({
1881
+ target: serviceFn("discount_with_passport"),
1882
+ arguments: [
1883
+ toTxObject(tx, service),
1884
+ toTxObject(tx, permission),
1885
+ toTxObject(tx, passport),
1886
+ tx.pure.string(discount.name),
1887
+ tx.pure.u8(discount.discount_type),
1888
+ tx.pure.u64(discount.discount_value),
1889
+ tx.pure.option("u64", discount.benchmark ?? null),
1890
+ tx.pure.bool(discount.transferable),
1891
+ tx.pure.option("u64", discount.time_ms_start ?? null),
1892
+ tx.pure.u64(discount.time_ms_end),
1893
+ tx.pure.u16(discount.count),
1894
+ tx.pure.vector("address", recipient),
1895
+ tx.object.clock(),
1896
+ ],
1897
+ typeArguments: [service_type],
1898
+ });
1899
+ }
1900
+ else {
1901
+ tx.moveCall({
1902
+ target: serviceFn("discount"),
1903
+ arguments: [
1904
+ toTxObject(tx, service),
1905
+ toTxObject(tx, permission),
1906
+ tx.pure.string(discount.name),
1907
+ tx.pure.u8(discount.discount_type),
1908
+ tx.pure.u64(discount.discount_value),
1909
+ tx.pure.option("u64", discount.benchmark ?? null),
1910
+ tx.pure.bool(discount.transferable),
1911
+ tx.pure.option("u64", discount.time_ms_start ?? null),
1912
+ tx.pure.u64(discount.time_ms_end),
1913
+ tx.pure.u16(discount.count),
1914
+ tx.pure.vector("address", recipient),
1915
+ tx.object.clock(),
1916
+ ],
1917
+ typeArguments: [service_type],
1918
+ });
1919
+ }
1920
+ }
1921
+ //# sourceMappingURL=service.js.map