@wowok/agent-mcp 3.2.0 → 3.2.1

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 (164) hide show
  1. package/dist/config/exposure.d.ts +8 -8
  2. package/dist/config/judgment.d.ts +20 -20
  3. package/dist/config/rule-engine.d.ts +20 -20
  4. package/dist/extensions/industry-pack.js +1 -1
  5. package/dist/graph/onchain/facts.js +1 -1
  6. package/dist/graph/onchain/sdk-batch.d.ts +1 -0
  7. package/dist/graph/onchain/sdk-batch.js +1 -1
  8. package/dist/graph/onchain/sdk-dataplane.d.ts +1 -0
  9. package/dist/graph/onchain/sdk-dataplane.js +1 -1
  10. package/dist/knowledge/allocation-templates.d.ts +1 -1
  11. package/dist/knowledge/allocation-templates.js +1 -1
  12. package/dist/knowledge/arbitration-ledger.js +1 -1
  13. package/dist/knowledge/audit-rules.d.ts +1 -1
  14. package/dist/knowledge/audit-rules.js +1 -1
  15. package/dist/knowledge/builtin-templates.d.ts +1 -1
  16. package/dist/knowledge/builtin-templates.js +1 -1
  17. package/dist/knowledge/discount-threshold.d.ts +15 -0
  18. package/dist/knowledge/discount-threshold.js +1 -0
  19. package/dist/knowledge/getting-started.js +1 -1
  20. package/dist/knowledge/guard-design-patterns.js +1 -1
  21. package/dist/knowledge/guard-lint.js +1 -1
  22. package/dist/knowledge/guard-translation.js +1 -1
  23. package/dist/knowledge/index.d.ts +2 -2
  24. package/dist/knowledge/index.js +1 -1
  25. package/dist/knowledge/industry-generalizer.d.ts +38 -1
  26. package/dist/knowledge/industry-generalizer.js +1 -1
  27. package/dist/knowledge/industry-registry.js +1 -1
  28. package/dist/knowledge/industry-strategy.js +1 -1
  29. package/dist/knowledge/jsonrpc-enum.js +1 -1
  30. package/dist/knowledge/onchain-constants.d.ts +2 -2
  31. package/dist/knowledge/onchain-constants.js +1 -1
  32. package/dist/knowledge/scenario-modes.d.ts +10 -0
  33. package/dist/knowledge/strategy-manuals.d.ts +1 -1
  34. package/dist/knowledge/strategy-manuals.js +1 -1
  35. package/dist/knowledge/template-loader.d.ts +20 -0
  36. package/dist/knowledge/template-loader.js +1 -1
  37. package/dist/knowledge/template-registry.js +1 -1
  38. package/dist/knowledge/template-scanner.js +1 -1
  39. package/dist/knowledge/tools-reference.js +1 -1
  40. package/dist/monitor/MonitorLoop.js +1 -1
  41. package/dist/participation/arbitrator-interest.js +1 -1
  42. package/dist/participation/customer-interest.js +1 -1
  43. package/dist/participation/merchant-interest.js +1 -1
  44. package/dist/playbooks/service-build/business-puzzle.js +1 -1
  45. package/dist/playbooks/service-build/machine-panorama.js +1 -1
  46. package/dist/playbooks/service-build/merchant-guide.js +1 -1
  47. package/dist/playbooks/service-build/mode-actions.d.ts +12 -1
  48. package/dist/playbooks/service-build/mode-actions.js +1 -1
  49. package/dist/playbooks/service-build/object-panorama.js +1 -1
  50. package/dist/playbooks/service-build/participation-radar.js +1 -1
  51. package/dist/playbooks/service-build/relationship-profile.js +1 -1
  52. package/dist/playbooks/service-build/reverse-mapping-refund-p0-5.spec.d.ts +1 -0
  53. package/dist/playbooks/service-build/reverse-mapping-refund-p0-5.spec.js +1 -0
  54. package/dist/playbooks/service-build/reverse-mapping.js +1 -1
  55. package/dist/playbooks/service-build/semantic-graph.js +1 -1
  56. package/dist/playbooks/service-build/service-panorama.js +1 -1
  57. package/dist/playbooks/service-build/service-quote.js +1 -1
  58. package/dist/review/index.js +1 -1
  59. package/dist/role/profiles.js +1 -1
  60. package/dist/role/types.d.ts +2 -0
  61. package/dist/role/types.js +1 -1
  62. package/dist/safety/confirm-gate.js +1 -1
  63. package/dist/schema/call/allocation.d.ts +7 -7
  64. package/dist/schema/call/arbitration.d.ts +1 -1
  65. package/dist/schema/call/arbitration.js +1 -1
  66. package/dist/schema/call/base.d.ts +5 -5
  67. package/dist/schema/call/base.js +1 -1
  68. package/dist/schema/call/bridge.d.ts +5 -9
  69. package/dist/schema/call/bridge.js +1 -1
  70. package/dist/schema/call/contact.d.ts +1 -1
  71. package/dist/schema/call/demand.d.ts +1 -1
  72. package/dist/schema/call/guard.d.ts +11 -11
  73. package/dist/schema/call/handler.js +1 -1
  74. package/dist/schema/call/machine.d.ts +2 -2
  75. package/dist/schema/call/order.d.ts +1 -1
  76. package/dist/schema/call/payment.d.ts +1 -1
  77. package/dist/schema/call/permission.d.ts +1 -1
  78. package/dist/schema/call/personal.d.ts +1 -1
  79. package/dist/schema/call/progress.d.ts +1 -1
  80. package/dist/schema/call/proof.d.ts +2 -2
  81. package/dist/schema/call/repository.d.ts +1 -1
  82. package/dist/schema/call/reward.d.ts +1 -1
  83. package/dist/schema/call/semantic.js +1 -1
  84. package/dist/schema/call/service.d.ts +5 -5
  85. package/dist/schema/call/service.js +1 -1
  86. package/dist/schema/call/treasury.d.ts +1 -1
  87. package/dist/schema/common/index.js +1 -1
  88. package/dist/schema/evaluation/index.d.ts +6 -2
  89. package/dist/schema/evaluation/index.js +1 -1
  90. package/dist/schema/goal/index.d.ts +8 -8
  91. package/dist/schema/goal/planning.d.ts +15 -15
  92. package/dist/schema/industry-pack/index.d.ts +15 -0
  93. package/dist/schema/industry-pack/modes.d.ts +15 -0
  94. package/dist/schema/industry-pack/modes.js +1 -1
  95. package/dist/schema/intent-radar/index.d.ts +3 -0
  96. package/dist/schema/intent-radar/index.js +1 -1
  97. package/dist/schema/local/index.d.ts +577 -18
  98. package/dist/schema/local/index.js +1 -1
  99. package/dist/schema/messenger/index.d.ts +140 -20
  100. package/dist/schema/messenger/index.js +1 -1
  101. package/dist/schema/operations.d.ts +30 -28
  102. package/dist/schema/operations.js +1 -1
  103. package/dist/schema/persona/index.d.ts +708 -708
  104. package/dist/schema/persona/index.js +1 -1
  105. package/dist/schema/query/bi.d.ts +20 -6
  106. package/dist/schema/query/bi.js +1 -1
  107. package/dist/schema/query/index.d.ts +32 -32
  108. package/dist/schema/query/index.js +1 -1
  109. package/dist/schema/schema-query/index.d.ts +3 -3
  110. package/dist/schema/schema-version.js +1 -1
  111. package/dist/schema/watch/index.d.ts +2 -2
  112. package/dist/schema/workflow/index.d.ts +2 -2
  113. package/dist/schema-query-impl/index.js +1 -1
  114. package/dist/schemas/account_operation.output.json +6 -2
  115. package/dist/schemas/account_operation.schema.json +1 -1
  116. package/dist/schemas/bridge_operation.schema.json +2 -10
  117. package/dist/schemas/evaluation_operation.output.json +2 -0
  118. package/dist/schemas/evaluation_operation.schema.json +2 -0
  119. package/dist/schemas/index.json +7 -1
  120. package/dist/schemas/industry_pack_operation.output.json +87 -4
  121. package/dist/schemas/intent_radar.output.json +2 -0
  122. package/dist/schemas/intent_radar.schema.json +1 -0
  123. package/dist/schemas/local_cache_operation.output.json +1536 -0
  124. package/dist/schemas/local_cache_operation.schema.json +101 -0
  125. package/dist/schemas/local_mark_operation.output.json +51 -36
  126. package/dist/schemas/local_mark_operation.schema.json +1 -0
  127. package/dist/schemas/messenger_operation.schema.json +358 -35
  128. package/dist/schemas/onchain_operations.schema.json +10 -10
  129. package/dist/schemas/onchain_operations_allocation.schema.json +1 -1
  130. package/dist/schemas/onchain_operations_arbitration.schema.json +3 -3
  131. package/dist/schemas/onchain_operations_payment.schema.json +1 -1
  132. package/dist/schemas/onchain_operations_reward.schema.json +1 -1
  133. package/dist/schemas/onchain_operations_service.schema.json +3 -3
  134. package/dist/schemas/onchain_operations_treasury.schema.json +1 -1
  135. package/dist/schemas/onchain_table_data.output.json +11 -0
  136. package/dist/schemas/query_toolkit.output.json +11 -4
  137. package/dist/schemas/query_toolkit.schema.json +13 -2
  138. package/dist/tools/handlers/benchmark-migration.js +1 -1
  139. package/dist/tools/handlers/bridge.js +1 -1
  140. package/dist/tools/handlers/config.js +1 -1
  141. package/dist/tools/handlers/local.d.ts +1 -0
  142. package/dist/tools/handlers/local.js +1 -1
  143. package/dist/tools/handlers/messenger.d.ts +9 -2
  144. package/dist/tools/handlers/messenger.js +1 -1
  145. package/dist/tools/handlers/name-resolution.d.ts +4 -0
  146. package/dist/tools/handlers/name-resolution.js +1 -0
  147. package/dist/tools/handlers/name-resolution.spec.d.ts +1 -0
  148. package/dist/tools/handlers/name-resolution.spec.js +1 -0
  149. package/dist/tools/handlers/onchain-name-registration.d.ts +37 -0
  150. package/dist/tools/handlers/onchain-name-registration.js +1 -0
  151. package/dist/tools/handlers/onchain-name-registration.spec.d.ts +1 -0
  152. package/dist/tools/handlers/onchain-name-registration.spec.js +1 -0
  153. package/dist/tools/handlers/onchain.d.ts +1 -0
  154. package/dist/tools/handlers/onchain.js +1 -1
  155. package/dist/tools/handlers/query.d.ts +1 -0
  156. package/dist/tools/handlers/query.js +1 -1
  157. package/dist/tools/index.js +1 -1
  158. package/dist/tools/registry/local.js +1 -1
  159. package/dist/tools/sanitize-description-roundtrip.spec.d.ts +1 -0
  160. package/dist/tools/sanitize-description-roundtrip.spec.js +1 -0
  161. package/dist/tools/sanitize-output.d.ts +1 -0
  162. package/dist/tools/sanitize-output.js +1 -1
  163. package/dist/tools/wrap.js +1 -1
  164. package/package.json +2 -2
@@ -16,8 +16,27 @@
16
16
  "type": "object",
17
17
  "properties": {
18
18
  "account": {
19
- "description": "Account name or address to query conversations for. If not specified, uses default account",
20
- "type": "string"
19
+ "description": "Account to query conversations for - can be a string (name/address/mark name) or full object. If not specified, uses default account",
20
+ "anyOf": [
21
+ {
22
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
23
+ },
24
+ {
25
+ "type": "object",
26
+ "properties": {
27
+ "name_or_address": {
28
+ "type": "string",
29
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
30
+ },
31
+ "local_mark_first": {
32
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
33
+ "type": "boolean"
34
+ }
35
+ },
36
+ "additionalProperties": false,
37
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
38
+ }
39
+ ]
21
40
  },
22
41
  "unreadOnly": {
23
42
  "description": "If true, only return conversations with unread messages (unreadCount > 0). Useful for quickly finding conversations needing attention",
@@ -77,8 +96,27 @@
77
96
  "const": "send_message"
78
97
  },
79
98
  "from": {
80
- "description": "Sender account name or address. If not specified, uses default account",
81
- "type": "string"
99
+ "description": "Sender account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
100
+ "anyOf": [
101
+ {
102
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
103
+ },
104
+ {
105
+ "type": "object",
106
+ "properties": {
107
+ "name_or_address": {
108
+ "type": "string",
109
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
110
+ },
111
+ "local_mark_first": {
112
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
113
+ "type": "boolean"
114
+ }
115
+ },
116
+ "additionalProperties": false,
117
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
118
+ }
119
+ ]
82
120
  },
83
121
  "to": {
84
122
  "anyOf": [
@@ -178,8 +216,27 @@
178
216
  "const": "send_file"
179
217
  },
180
218
  "from": {
181
- "description": "Sender account name or address. If not specified, uses default account",
182
- "type": "string"
219
+ "description": "Sender account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
220
+ "anyOf": [
221
+ {
222
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
223
+ },
224
+ {
225
+ "type": "object",
226
+ "properties": {
227
+ "name_or_address": {
228
+ "type": "string",
229
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
230
+ },
231
+ "local_mark_first": {
232
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
233
+ "type": "boolean"
234
+ }
235
+ },
236
+ "additionalProperties": false,
237
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
238
+ }
239
+ ]
183
240
  },
184
241
  "to": {
185
242
  "anyOf": [
@@ -306,8 +363,27 @@
306
363
  "const": "send_required_info"
307
364
  },
308
365
  "from": {
309
- "description": "Sender account name or address. If not specified, uses default account",
310
- "type": "string"
366
+ "description": "Sender account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
367
+ "anyOf": [
368
+ {
369
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
370
+ },
371
+ {
372
+ "type": "object",
373
+ "properties": {
374
+ "name_or_address": {
375
+ "type": "string",
376
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
377
+ },
378
+ "local_mark_first": {
379
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
380
+ "type": "boolean"
381
+ }
382
+ },
383
+ "additionalProperties": false,
384
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
385
+ }
386
+ ]
311
387
  },
312
388
  "to": {
313
389
  "anyOf": [
@@ -416,8 +492,27 @@
416
492
  "type": "object",
417
493
  "properties": {
418
494
  "account": {
419
- "description": "Account to filter messages for",
420
- "type": "string"
495
+ "description": "Account to filter messages for - can be a string (name/address/mark name) or full object",
496
+ "anyOf": [
497
+ {
498
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
499
+ },
500
+ {
501
+ "type": "object",
502
+ "properties": {
503
+ "name_or_address": {
504
+ "type": "string",
505
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
506
+ },
507
+ "local_mark_first": {
508
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
509
+ "type": "boolean"
510
+ }
511
+ },
512
+ "additionalProperties": false,
513
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
514
+ }
515
+ ]
421
516
  },
422
517
  "direction": {
423
518
  "description": "Filter by message direction",
@@ -667,8 +762,27 @@
667
762
  "const": "save_attachment"
668
763
  },
669
764
  "account": {
670
- "description": "Account name or address owning the message. If not specified, uses default account",
671
- "type": "string"
765
+ "description": "Account owning the message - can be a string (name/address/mark name) or full object. If not specified, uses default account",
766
+ "anyOf": [
767
+ {
768
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
769
+ },
770
+ {
771
+ "type": "object",
772
+ "properties": {
773
+ "name_or_address": {
774
+ "type": "string",
775
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
776
+ },
777
+ "local_mark_first": {
778
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
779
+ "type": "boolean"
780
+ }
781
+ },
782
+ "additionalProperties": false,
783
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
784
+ }
785
+ ]
672
786
  },
673
787
  "messageId": {
674
788
  "type": "string",
@@ -700,8 +814,27 @@
700
814
  "type": "object",
701
815
  "properties": {
702
816
  "myAccount": {
703
- "type": "string",
704
- "description": "My account name or address (string)"
817
+ "anyOf": [
818
+ {
819
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
820
+ },
821
+ {
822
+ "type": "object",
823
+ "properties": {
824
+ "name_or_address": {
825
+ "type": "string",
826
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
827
+ },
828
+ "local_mark_first": {
829
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
830
+ "type": "boolean"
831
+ }
832
+ },
833
+ "additionalProperties": false,
834
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
835
+ }
836
+ ],
837
+ "description": "My account - can be a string (name/address/mark name) or full object"
705
838
  },
706
839
  "peerAccount": {
707
840
  "anyOf": [
@@ -847,8 +980,27 @@
847
980
  "description": "WTS file path to sign"
848
981
  },
849
982
  "account": {
850
- "description": "Account name or address to sign with. If not specified, uses default account",
851
- "type": "string"
983
+ "description": "Account to sign with - can be a string (name/address/mark name) or full object. If not specified, uses default account",
984
+ "anyOf": [
985
+ {
986
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
987
+ },
988
+ {
989
+ "type": "object",
990
+ "properties": {
991
+ "name_or_address": {
992
+ "type": "string",
993
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
994
+ },
995
+ "local_mark_first": {
996
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
997
+ "type": "boolean"
998
+ }
999
+ },
1000
+ "additionalProperties": false,
1001
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1002
+ }
1003
+ ]
852
1004
  },
853
1005
  "outputPath": {
854
1006
  "description": "Output file path. If not specified, saves to signed_*.wts",
@@ -910,8 +1062,27 @@
910
1062
  "const": "proof_message"
911
1063
  },
912
1064
  "account": {
913
- "description": "Account name or address. If not specified, uses default account",
914
- "type": "string"
1065
+ "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
1066
+ "anyOf": [
1067
+ {
1068
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
1069
+ },
1070
+ {
1071
+ "type": "object",
1072
+ "properties": {
1073
+ "name_or_address": {
1074
+ "type": "string",
1075
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1076
+ },
1077
+ "local_mark_first": {
1078
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1079
+ "type": "boolean"
1080
+ }
1081
+ },
1082
+ "additionalProperties": false,
1083
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1084
+ }
1085
+ ]
915
1086
  },
916
1087
  "messageId": {
917
1088
  "type": "string",
@@ -946,8 +1117,27 @@
946
1117
  "const": "blacklist"
947
1118
  },
948
1119
  "account": {
949
- "description": "Account name or address. If not specified, uses default account",
950
- "type": "string"
1120
+ "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
1121
+ "anyOf": [
1122
+ {
1123
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
1124
+ },
1125
+ {
1126
+ "type": "object",
1127
+ "properties": {
1128
+ "name_or_address": {
1129
+ "type": "string",
1130
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1131
+ },
1132
+ "local_mark_first": {
1133
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1134
+ "type": "boolean"
1135
+ }
1136
+ },
1137
+ "additionalProperties": false,
1138
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1139
+ }
1140
+ ]
951
1141
  },
952
1142
  "blacklist": {
953
1143
  "oneOf": [
@@ -1163,8 +1353,27 @@
1163
1353
  "const": "friendslist"
1164
1354
  },
1165
1355
  "account": {
1166
- "description": "Account name or address. If not specified, uses default account",
1167
- "type": "string"
1356
+ "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
1357
+ "anyOf": [
1358
+ {
1359
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
1360
+ },
1361
+ {
1362
+ "type": "object",
1363
+ "properties": {
1364
+ "name_or_address": {
1365
+ "type": "string",
1366
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1367
+ },
1368
+ "local_mark_first": {
1369
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1370
+ "type": "boolean"
1371
+ }
1372
+ },
1373
+ "additionalProperties": false,
1374
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1375
+ }
1376
+ ]
1168
1377
  },
1169
1378
  "friendslist": {
1170
1379
  "oneOf": [
@@ -1380,8 +1589,27 @@
1380
1589
  "const": "guardlist"
1381
1590
  },
1382
1591
  "account": {
1383
- "description": "Account name or address. If not specified, uses default account",
1384
- "type": "string"
1592
+ "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
1593
+ "anyOf": [
1594
+ {
1595
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
1596
+ },
1597
+ {
1598
+ "type": "object",
1599
+ "properties": {
1600
+ "name_or_address": {
1601
+ "type": "string",
1602
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1603
+ },
1604
+ "local_mark_first": {
1605
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1606
+ "type": "boolean"
1607
+ }
1608
+ },
1609
+ "additionalProperties": false,
1610
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1611
+ }
1612
+ ]
1385
1613
  },
1386
1614
  "guardlist": {
1387
1615
  "oneOf": [
@@ -1481,8 +1709,27 @@
1481
1709
  "const": "settings"
1482
1710
  },
1483
1711
  "account": {
1484
- "description": "Account name or address. If not specified, uses default account",
1485
- "type": "string"
1712
+ "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
1713
+ "anyOf": [
1714
+ {
1715
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
1716
+ },
1717
+ {
1718
+ "type": "object",
1719
+ "properties": {
1720
+ "name_or_address": {
1721
+ "type": "string",
1722
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1723
+ },
1724
+ "local_mark_first": {
1725
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1726
+ "type": "boolean"
1727
+ }
1728
+ },
1729
+ "additionalProperties": false,
1730
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1731
+ }
1732
+ ]
1486
1733
  },
1487
1734
  "settings": {
1488
1735
  "oneOf": [
@@ -1539,8 +1786,27 @@
1539
1786
  "const": "mark_messages_as_viewed"
1540
1787
  },
1541
1788
  "account": {
1542
- "description": "Account name or address. If not specified, uses default account",
1543
- "type": "string"
1789
+ "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
1790
+ "anyOf": [
1791
+ {
1792
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
1793
+ },
1794
+ {
1795
+ "type": "object",
1796
+ "properties": {
1797
+ "name_or_address": {
1798
+ "type": "string",
1799
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1800
+ },
1801
+ "local_mark_first": {
1802
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1803
+ "type": "boolean"
1804
+ }
1805
+ },
1806
+ "additionalProperties": false,
1807
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1808
+ }
1809
+ ]
1544
1810
  },
1545
1811
  "messageIds": {
1546
1812
  "minItems": 1,
@@ -1566,8 +1832,27 @@
1566
1832
  "const": "mark_conversation_as_viewed"
1567
1833
  },
1568
1834
  "account": {
1569
- "description": "Account name or address. If not specified, uses default account",
1570
- "type": "string"
1835
+ "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account",
1836
+ "anyOf": [
1837
+ {
1838
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
1839
+ },
1840
+ {
1841
+ "type": "object",
1842
+ "properties": {
1843
+ "name_or_address": {
1844
+ "type": "string",
1845
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1846
+ },
1847
+ "local_mark_first": {
1848
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1849
+ "type": "boolean"
1850
+ }
1851
+ },
1852
+ "additionalProperties": false,
1853
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1854
+ }
1855
+ ]
1571
1856
  },
1572
1857
  "peerAddress": {
1573
1858
  "anyOf": [
@@ -1607,8 +1892,27 @@
1607
1892
  "const": "pull_messages"
1608
1893
  },
1609
1894
  "account": {
1610
- "description": "Account name or address. If not specified, uses default account (ignored when allAccounts/accounts is set)",
1611
- "type": "string"
1895
+ "description": "Account - can be a string (name/address/mark name) or full object. If not specified, uses default account (ignored when allAccounts/accounts is set)",
1896
+ "anyOf": [
1897
+ {
1898
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
1899
+ },
1900
+ {
1901
+ "type": "object",
1902
+ "properties": {
1903
+ "name_or_address": {
1904
+ "type": "string",
1905
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1906
+ },
1907
+ "local_mark_first": {
1908
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1909
+ "type": "boolean"
1910
+ }
1911
+ },
1912
+ "additionalProperties": false,
1913
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1914
+ }
1915
+ ]
1612
1916
  },
1613
1917
  "limit": {
1614
1918
  "description": "Maximum number of messages to pull from server per account",
@@ -1619,11 +1923,30 @@
1619
1923
  "type": "boolean"
1620
1924
  },
1621
1925
  "accounts": {
1622
- "description": "Restrict the fan-out to these accounts (implies allAccounts flow). Cold accounts are initialized on demand",
1926
+ "description": "Restrict the fan-out to these accounts (implies allAccounts flow). Each entry can be a string (name/address/mark name) or full object. Cold accounts are initialized on demand",
1623
1927
  "type": "array",
1624
1928
  "items": {
1625
- "type": "string",
1626
- "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1929
+ "anyOf": [
1930
+ {
1931
+ "description": "Account name, address (0x...), or mark name. When using string format, local marks are searched first. EXAMPLE: 'alice' - searches local marks first, then global; EXAMPLE: '0x2...' (64 hex chars) - uses address directly; EXAMPLE: '' - uses the default local account"
1932
+ },
1933
+ {
1934
+ "type": "object",
1935
+ "properties": {
1936
+ "name_or_address": {
1937
+ "type": "string",
1938
+ "description": "Account/Object name or ID. If specifying an account, use empty string '' for the default account. If it starts with '0x', it will be treated as an ID. Otherwise, it will be treated as a name (max 64 bcs characters)."
1939
+ },
1940
+ "local_mark_first": {
1941
+ "description": "Whether to prioritize local marks, if true, prioritize local marks, otherwise prioritize global marks",
1942
+ "type": "boolean"
1943
+ }
1944
+ },
1945
+ "additionalProperties": false,
1946
+ "description": "Account or address lookup object. Use this to specify which account to use for an operation. EXAMPLE: { name_or_address: 'testor2' } - looks up account by name; EXAMPLE: { name_or_address: '0x1234...' } - uses address directly; If name_or_address is empty string '', uses the default local account."
1947
+ }
1948
+ ],
1949
+ "description": "Account or address lookup. Can be a simple string (recommended for AI) or full object with explicit local_mark_first control. String form auto-converts to { name_or_address: <string>, local_mark_first: true }."
1627
1950
  }
1628
1951
  },
1629
1952
  "concurrency": {
@@ -83,7 +83,7 @@
83
83
  },
84
84
  "type_parameter": {
85
85
  "default": "0x2::wow::WOW",
86
- "description": "Payment token type for this object (format: {address}::{module}::{struct}). e.g. '0x2::wow::WOW' (WOW, the default), '0x...::usdt::USDT' (USDT), '0x...::eth::ETH' (ETH). Defines which token this object accepts for payments. To discover all available tokens and their type tags, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here.",
86
+ "description": "Payment token type for this object (format: {address}::{module}::{struct}). e.g. ALWAYS the FULL type string `{address}::{module}::{struct}` e.g. '0x2::wow::WOW'. ⚠️ The bare names 'WOW' / 'USDT' / 'ETH' are REJECTED (the validator requires all three parts) — write '0x2::wow::WOW', not 'WOW'. The field may be OMITTED entirely: it then defaults to WOW ('0x2::wow::WOW'). This token is what the object accepts for payments and is fixed at creation. To discover other available tokens, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here. NOTE: testnet/localnet carry WOW only — USDT/ETH are a mainnet capability.",
87
87
  "type": "string"
88
88
  }
89
89
  },
@@ -925,7 +925,7 @@
925
925
  "description": "Discount magnitude, meaning depends on discount_type. RATES (0): per-10000 off rate — 10 = 0.1% off, 1000 = 10% off, 10000 = 100% off; values above 10000 are rejected. FIXED (1): fixed deduction from the order total in the Service token's smallest units (e.g. 1000000000 = 1 WOW at 9 decimals)."
926
926
  },
927
927
  "benchmark": {
928
- "description": "Minimum order total (in the Service token's smallest units) for the discount to apply — the discount is applied only when the order total is GREATER THAN OR EQUAL TO this value. ⚠️ OMITTING this field means the discount NEVER applies: the coupon object is still consumed (destroyed) when used, but the order total is unchanged. To make a discount that always applies, pass 0. If the order total is below the discounted price the payment aborts — pay the list price; the excess is returned as a new Coin.",
928
+ "description": "Minimum order total (in the Service token's smallest units) for the discount to apply — when set, the discount is applied only if the PRE-discount order total is GREATER THAN OR EQUAL TO this value. ✅ OMITTING this field (or passing null, or 0) means NO threshold — the discount applies UNCONDITIONALLY, and that is the common, correct case. This is the on-chain behaviour: benchmark_met = if (option::is_some(&discount.benchmark)) { total >= benchmark } else { true } (wow-framework sources/w/service.move:274-278, inside the discount-application step). ⚠️ SHARP EDGE when you DO set a threshold: a below-threshold order is NOT rejected — it completes at FULL price and the one-time coupon is still consumed and destroyed, so the buyer pays full price AND loses the coupon. Keep thresholds low enough that your typical basket clears them. If the order total is below the discounted price the payment aborts — pay the list price; the excess is returned as a new Coin.",
929
929
  "anyOf": [
930
930
  {
931
931
  "type": "number"
@@ -1014,7 +1014,7 @@
1014
1014
  }
1015
1015
  },
1016
1016
  "order_allocators": {
1017
- "description": "Order fund allocator. Max 100 allocators (MAX_ALLOCATOR_COUNT). Each allocator has a guard (first matching guard wins) and a sharing list. Set to null to clear. ⚠️ PERMANENTLY IMMUTABLE after publish: order_allocators can ONLY be set BEFORE publish=true (on-chain check rejects after publish — E_ALREADY_PUBLISHED). After publish, the ONLY way to change allocation rules is to create a NEW Service object. There is NO pause+lock exception for order_allocators (unlike arbitrations/rewards which have time-lock removal). PRE-PUBLISH CHECKLIST: verify all guard names resolve, all sharing amounts are correct, threshold is set, and recipient types (Entity/Signer/GuardIdentifier) are intended before calling publish=true. GuardIdentifier sharing mode: {who: {GuardIdentifier: <u8>}, sharing: <rate>, mode: 'Rate'} — resolves recipient from the Guard table submission at allocation time. BINDING SEMANTICS (contract-enforced, abort code 15): in a Service-created Allocation EVERY GuardIdentifier submission must equal the PAYING order — it is always 'the order', never a third party whose address is supplied at trigger time; use {who:{Entity:...}} for named parties. Canonical order pattern: the recipient slot is the single submitted Order (constrained by the Guard — service binding, qualifying node, signer==order.owner); funds land at that order object and are receivable only by its owner (object receipt = owner receipt). Safety is determined by constraint sufficiency — run the recipient constraint audit before publish. Fixed recipients should use {who:{Entity:...}}; unbound Signer recipients are a CRITICAL theft risk. MULTI-CALL ALLOCATION: an allocation can be executed MULTIPLE times (no consumed flag in contract). Use Amount mode (not Surplus) for recurring allocations — Surplus calls balance::withdraw_all which drains the balance. For monthly payment scenarios, create multiple Allocators with time-based Guards + Amount mode sharing items.",
1017
+ "description": "Order fund allocator. Max 100 allocators (MAX_ALLOCATOR_COUNT). ✅ EACH allocator has a guard, and EVERY allocator whose guard address matches the supplied guard RUNS — they are NOT mutually exclusive and NOT first-match-wins. One guard may legitimately authorize several distribution rules (different fix / rate / cap); each contributes its own Payment and consumes its own once-slot (keyed by the allocator index). Allocators are evaluated in vector order against the SHRINKING pool, so a later allocator only sees the balance left by the earlier ones — which is exactly how a waterfall (e.g. Amount fee + net Rate split) is built. On-chain truth: wow::allocation (allocation.move:291-296, `while` loop over all allocators, `if (guard address == alloc.guard)`). ⚠️ If you WANT mutual exclusion you must express it inside the Guard itself (make the conditions logically exclusive). Set to null to clear. ⚠️ PERMANENTLY IMMUTABLE after publish: order_allocators can ONLY be set BEFORE publish=true (on-chain check rejects after publish — E_ALREADY_PUBLISHED). After publish, the ONLY way to change allocation rules is to create a NEW Service object. There is NO pause+lock exception for order_allocators (unlike arbitrations/rewards which have time-lock removal). PRE-PUBLISH CHECKLIST: verify all guard names resolve, all sharing amounts are correct, threshold is set, and recipient types (Entity/Signer/GuardIdentifier) are intended before calling publish=true. GuardIdentifier sharing mode: {who: {GuardIdentifier: <u8>}, sharing: <rate>, mode: 'Rate'} — resolves recipient from the Guard table submission at allocation time. BINDING SEMANTICS (contract-enforced, abort code 15): in a Service-created Allocation EVERY GuardIdentifier submission must equal the PAYING order — it is always 'the order', never a third party whose address is supplied at trigger time; use {who:{Entity:...}} for named parties. Canonical order pattern: the recipient slot is the single submitted Order (constrained by the Guard — service binding, qualifying node, signer==order.owner); funds land at that order object and are receivable only by its owner (object receipt = owner receipt). Safety is determined by constraint sufficiency — run the recipient constraint audit before publish. Fixed recipients should use {who:{Entity:...}}; unbound Signer recipients are a CRITICAL theft risk. MULTI-CALL ALLOCATION: an allocation can be executed MULTIPLE times (no consumed flag in contract). Use Amount mode (not Surplus) for recurring allocations — Surplus calls balance::withdraw_all which drains the balance. For monthly payment scenarios, create multiple Allocators with time-based Guards + Amount mode sharing items.",
1018
1018
  "anyOf": [
1019
1019
  {
1020
1020
  "type": "object",
@@ -6632,7 +6632,7 @@
6632
6632
  },
6633
6633
  "type_parameter": {
6634
6634
  "default": "0x2::wow::WOW",
6635
- "description": "Payment token type for this object (format: {address}::{module}::{struct}). e.g. '0x2::wow::WOW' (WOW, the default), '0x...::usdt::USDT' (USDT), '0x...::eth::ETH' (ETH). Defines which token this object accepts for payments. To discover all available tokens and their type tags, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here.",
6635
+ "description": "Payment token type for this object (format: {address}::{module}::{struct}). e.g. ALWAYS the FULL type string `{address}::{module}::{struct}` e.g. '0x2::wow::WOW'. ⚠️ The bare names 'WOW' / 'USDT' / 'ETH' are REJECTED (the validator requires all three parts) — write '0x2::wow::WOW', not 'WOW'. The field may be OMITTED entirely: it then defaults to WOW ('0x2::wow::WOW'). This token is what the object accepts for payments and is fixed at creation. To discover other available tokens, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here. NOTE: testnet/localnet carry WOW only — USDT/ETH are a mainnet capability.",
6636
6636
  "type": "string"
6637
6637
  }
6638
6638
  },
@@ -6769,8 +6769,8 @@
6769
6769
  "description": "Arb CASE object — the single dispute case created by `dispute` (the object you may have named via `namedArb`). NOT the arbitrator registration object: that one goes in the ROOT `object` field, while every case-scoped operation (confirm / voting_deadline_change / vote / feedback / arbitration / reset / arb_withdraw) addresses the case through THIS field. Accepts the Arb's 0x address or its LocalMark name."
6770
6770
  },
6771
6771
  "voting_deadline": {
6772
- "default": 0,
6773
- "description": "Voting deadline as Unix timestamp in MILLISECONDS (ms). SEMANTICS OF SPECIAL VALUES: 0 (DEFAULT when omitted) = deadline already passed → voting is IMPOSSIBLE and the arbitrator may deliver the verdict immediately (direct-verdict flow); null = open-ended voting with no deadline (verdict allowed anytime); a future timestamp = normal voting window (recommended: now + at least 86400000 ms = 24 hours). COMMON MISTAKE: using seconds instead of milliseconds (multiply by 1000). Example: Date.now() + 259200000 for 3 days from now.",
6772
+ "default": null,
6773
+ "description": "Voting deadline as Unix timestamp in MILLISECONDS (ms). SEMANTICS OF SPECIAL VALUES: null (DEFAULT when omitted) = open-ended voting, no deadline; parties may vote at any time and the arbitrator may deliver the verdict immediately (arb.move skips the deadline assert when the Option is none) — this is the SAFE default; a future timestamp = normal bounded voting window (recommended: now + at least 86400000 ms = 24 hours); 0 = deadline already passed → voting is IMPOSSIBLE (every vote aborts E_VOTING_DEADLINE_PASSED) and only a direct verdict is possible. Only pass 0 deliberately when you truly want a no-vote verdict. COMMON MISTAKE: using seconds instead of milliseconds (multiply by 1000). Example: Date.now() + 259200000 for 3 days from now.",
6774
6774
  "anyOf": [
6775
6775
  {
6776
6776
  "type": "integer",
@@ -8925,7 +8925,7 @@
8925
8925
  },
8926
8926
  "type_parameter": {
8927
8927
  "default": "0x2::wow::WOW",
8928
- "description": "Payment token type for this object (format: {address}::{module}::{struct}). e.g. '0x2::wow::WOW' (WOW, the default), '0x...::usdt::USDT' (USDT), '0x...::eth::ETH' (ETH). Defines which token this object accepts for payments. To discover all available tokens and their type tags, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here.",
8928
+ "description": "Payment token type for this object (format: {address}::{module}::{struct}). e.g. ALWAYS the FULL type string `{address}::{module}::{struct}` e.g. '0x2::wow::WOW'. ⚠️ The bare names 'WOW' / 'USDT' / 'ETH' are REJECTED (the validator requires all three parts) — write '0x2::wow::WOW', not 'WOW'. The field may be OMITTED entirely: it then defaults to WOW ('0x2::wow::WOW'). This token is what the object accepts for payments and is fixed at creation. To discover other available tokens, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here. NOTE: testnet/localnet carry WOW only — USDT/ETH are a mainnet capability.",
8929
8929
  "type": "string"
8930
8930
  }
8931
8931
  },
@@ -10430,7 +10430,7 @@
10430
10430
  },
10431
10431
  "type_parameter": {
10432
10432
  "default": "0x2::wow::WOW",
10433
- "description": "Payment token type for this object (format: {address}::{module}::{struct}). e.g. '0x2::wow::WOW' (WOW, the default), '0x...::usdt::USDT' (USDT), '0x...::eth::ETH' (ETH). Defines which token this object accepts for payments. To discover all available tokens and their type tags, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here.",
10433
+ "description": "Payment token type for this object (format: {address}::{module}::{struct}). e.g. ALWAYS the FULL type string `{address}::{module}::{struct}` e.g. '0x2::wow::WOW'. ⚠️ The bare names 'WOW' / 'USDT' / 'ETH' are REJECTED (the validator requires all three parts) — write '0x2::wow::WOW', not 'WOW'. The field may be OMITTED entirely: it then defaults to WOW ('0x2::wow::WOW'). This token is what the object accepts for payments and is fixed at creation. To discover other available tokens, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here. NOTE: testnet/localnet carry WOW only — USDT/ETH are a mainnet capability.",
10434
10434
  "type": "string"
10435
10435
  }
10436
10436
  },
@@ -11536,7 +11536,7 @@
11536
11536
  },
11537
11537
  "type_parameter": {
11538
11538
  "default": "0x2::wow::WOW",
11539
- "description": "Payment token type for this object (format: {address}::{module}::{struct}). e.g. '0x2::wow::WOW' (WOW, the default), '0x...::usdt::USDT' (USDT), '0x...::eth::ETH' (ETH). Defines which token this object accepts for payments. To discover all available tokens and their type tags, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here.",
11539
+ "description": "Payment token type for this object (format: {address}::{module}::{struct}). e.g. ALWAYS the FULL type string `{address}::{module}::{struct}` e.g. '0x2::wow::WOW'. ⚠️ The bare names 'WOW' / 'USDT' / 'ETH' are REJECTED (the validator requires all three parts) — write '0x2::wow::WOW', not 'WOW'. The field may be OMITTED entirely: it then defaults to WOW ('0x2::wow::WOW'). This token is what the object accepts for payments and is fixed at creation. To discover other available tokens, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here. NOTE: testnet/localnet carry WOW only — USDT/ETH are a mainnet capability.",
11540
11540
  "type": "string"
11541
11541
  }
11542
11542
  },
@@ -17983,7 +17983,7 @@
17983
17983
  },
17984
17984
  "type_parameter": {
17985
17985
  "default": "0x2::wow::WOW",
17986
- "description": "Payment token type for this object (format: {address}::{module}::{struct}). e.g. '0x2::wow::WOW' (WOW, the default), '0x...::usdt::USDT' (USDT), '0x...::eth::ETH' (ETH). Defines which token this object accepts for payments. To discover all available tokens and their type tags, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here.",
17986
+ "description": "Payment token type for this object (format: {address}::{module}::{struct}). e.g. ALWAYS the FULL type string `{address}::{module}::{struct}` e.g. '0x2::wow::WOW'. ⚠️ The bare names 'WOW' / 'USDT' / 'ETH' are REJECTED (the validator requires all three parts) — write '0x2::wow::WOW', not 'WOW'. The field may be OMITTED entirely: it then defaults to WOW ('0x2::wow::WOW'). This token is what the object accepts for payments and is fixed at creation. To discover other available tokens, call wowok_buildin_info with info 'mainnet bridge tokens' and use the returned `wowTypeTag` value here. NOTE: testnet/localnet carry WOW only — USDT/ETH are a mainnet capability.",
17987
17987
  "type": "string"
17988
17988
  }
17989
17989
  },