@wowok/agent-mcp 2.6.0 → 2.6.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.
- package/README.md +5 -3
- package/dist/extensions/capability-manifest.d.ts +125 -0
- package/dist/extensions/capability-manifest.js +594 -0
- package/dist/extensions/constraint-registry.d.ts +24 -0
- package/dist/extensions/constraint-registry.js +196 -0
- package/dist/extensions/index.d.ts +12 -0
- package/dist/extensions/index.js +6 -0
- package/dist/extensions/metric-registry.d.ts +26 -0
- package/dist/extensions/metric-registry.js +257 -0
- package/dist/extensions/mode-evaluator.d.ts +15 -0
- package/dist/extensions/mode-evaluator.js +170 -0
- package/dist/extensions/modes.d.ts +2 -0
- package/dist/extensions/modes.js +407 -0
- package/dist/extensions/registry.d.ts +48 -0
- package/dist/extensions/registry.js +629 -0
- package/dist/extensions/types.d.ts +218 -0
- package/dist/extensions/types.js +1 -0
- package/dist/knowledge/deployment-scanner.d.ts +3 -0
- package/dist/knowledge/deployment-scanner.js +64 -3
- package/dist/knowledge/guard-risk.d.ts +13 -0
- package/dist/knowledge/guard-risk.js +57 -0
- package/dist/knowledge/guard-templates.js +278 -0
- package/dist/knowledge/machine-templates.js +20 -1
- package/dist/knowledge/service-confirm.d.ts +14 -5
- package/dist/knowledge/service-confirm.js +116 -8
- package/dist/knowledge/tool-constraints.js +6 -2
- package/dist/project/deployment-bridge.d.ts +1 -1
- package/dist/project/deployment-bridge.js +27 -4
- package/dist/project/deployment-doc.d.ts +3 -0
- package/dist/project/deployment-doc.js +72 -10
- package/dist/project/evaluation.d.ts +2 -0
- package/dist/project/evaluation.js +569 -84
- package/dist/project/graph-builder.d.ts +4 -1
- package/dist/project/graph-builder.js +126 -61
- package/dist/project/graph.d.ts +1 -0
- package/dist/project/handlers.d.ts +219 -5
- package/dist/project/handlers.js +819 -9
- package/dist/project/stage-gate.d.ts +4 -0
- package/dist/project/stage-gate.js +64 -5
- package/dist/project/task-tracker.d.ts +26 -0
- package/dist/project/task-tracker.js +78 -0
- package/dist/safety/preview.js +16 -0
- package/dist/schema/call/allocation.d.ts +16 -16
- package/dist/schema/call/base.d.ts +21 -13
- package/dist/schema/call/base.js +27 -6
- package/dist/schema/call/bridge.d.ts +5 -5
- package/dist/schema/call/bridge.js +3 -1
- package/dist/schema/call/demand.d.ts +23 -31
- package/dist/schema/call/guard.js +1 -1
- package/dist/schema/call/machine.d.ts +402 -376
- package/dist/schema/call/order.d.ts +149 -228
- package/dist/schema/call/order.js +7 -3
- package/dist/schema/call/payment.d.ts +183 -3
- package/dist/schema/call/payment.js +21 -3
- package/dist/schema/call/personal.d.ts +241 -52
- package/dist/schema/call/progress.d.ts +53 -61
- package/dist/schema/call/progress.js +18 -4
- package/dist/schema/call/repository.d.ts +23 -31
- package/dist/schema/call/semantic.d.ts +1 -1
- package/dist/schema/call/semantic.js +30 -1
- package/dist/schema/call/service.d.ts +95 -119
- package/dist/schema/call/service.js +22 -1
- package/dist/schema/common/index.d.ts +11 -2
- package/dist/schema/common/index.js +43 -14
- package/dist/schema/local/index.d.ts +32 -35
- package/dist/schema/local/index.js +23 -5
- package/dist/schema/messenger/index.d.ts +274 -46
- package/dist/schema/operations.d.ts +680 -539
- package/dist/schema/operations.js +22 -0
- package/dist/schema/project/index.d.ts +1796 -80
- package/dist/schema/project/index.js +304 -14
- package/dist/schema/query/index.d.ts +705 -349
- package/dist/schema/query/index.js +164 -31
- package/dist/schema/schema-query/index.d.ts +15 -3
- package/dist/schema/schema-query/index.js +23 -5
- package/dist/schema/utils/node-parser.js +7 -4
- package/dist/schema-query/index.d.ts +7 -1
- package/dist/schema-query/index.js +204 -4
- package/dist/schemas/account_operation.output.json +7 -1
- package/dist/schemas/account_operation.schema.json +2 -2
- package/dist/schemas/bridge_operation.output.json +6 -0
- package/dist/schemas/bridge_operation.schema.json +1 -1
- package/dist/schemas/guard-templates.json +379 -0
- package/dist/schemas/guard2file.schema.json +1 -1
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/local_info_operation.output.json +6 -0
- package/dist/schemas/local_mark_operation.output.json +7 -1
- package/dist/schemas/local_mark_operation.schema.json +1 -1
- package/dist/schemas/machineNode2file.schema.json +1 -1
- package/dist/schemas/messenger_operation.schema.json +4 -4
- package/dist/schemas/onchain_events.output.json +1 -1
- package/dist/schemas/onchain_operations.schema.json +348 -296
- package/dist/schemas/onchain_operations_allocation.schema.json +34 -25
- package/dist/schemas/onchain_operations_arbitration.schema.json +8 -8
- package/dist/schemas/onchain_operations_contact.schema.json +8 -8
- package/dist/schemas/onchain_operations_demand.schema.json +8 -8
- package/dist/schemas/onchain_operations_gen_passport.schema.json +14 -14
- package/dist/schemas/onchain_operations_gen_proof.schema.json +2 -2
- package/dist/schemas/onchain_operations_guard.schema.json +1 -1
- package/dist/schemas/onchain_operations_machine.schema.json +41 -33
- package/dist/schemas/onchain_operations_order.schema.json +71 -77
- package/dist/schemas/onchain_operations_payment.schema.json +141 -111
- package/dist/schemas/onchain_operations_permission.schema.json +2 -2
- package/dist/schemas/onchain_operations_personal.schema.json +7 -7
- package/dist/schemas/onchain_operations_progress.schema.json +8 -8
- package/dist/schemas/onchain_operations_proof.schema.json +7 -7
- package/dist/schemas/onchain_operations_repository.schema.json +8 -8
- package/dist/schemas/onchain_operations_reward.schema.json +10 -10
- package/dist/schemas/onchain_operations_service.schema.json +46 -35
- package/dist/schemas/onchain_operations_treasury.schema.json +8 -8
- package/dist/schemas/onchain_table_data.output.json +33 -25
- package/dist/schemas/onchain_table_data.schema.json +12 -12
- package/dist/schemas/project_operation.output.json +1175 -23
- package/dist/schemas/project_operation.schema.json +40 -4
- package/dist/schemas/query_toolkit.output.json +104 -76
- package/dist/schemas/query_toolkit.schema.json +9 -9
- package/dist/schemas/schema_query.output.json +7 -3
- package/dist/schemas/schema_query.schema.json +17 -3
- package/dist/tools/handlers/local.js +20 -5
- package/dist/tools/handlers/onchain.js +23 -0
- package/dist/tools/handlers/project.js +52 -3
- package/dist/tools/handlers/query.js +27 -0
- package/dist/tools/handlers/schema-query.js +19 -0
- package/dist/tools/handlers/task-status.d.ts +170 -0
- package/dist/tools/handlers/task-status.js +55 -0
- package/dist/tools/handlers/wip.js +47 -1
- package/dist/tools/index.js +211 -7
- package/dist/tools/retry.d.ts +8 -0
- package/dist/tools/retry.js +85 -0
- package/dist/tools/wip-deploy-assist.d.ts +28 -0
- package/dist/tools/wip-deploy-assist.js +278 -0
- package/package.json +2 -2
- package/dist/schemas/guard-node-examples.md +0 -199
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"number",
|
|
75
75
|
"string"
|
|
76
76
|
],
|
|
77
|
-
"description": "
|
|
77
|
+
"description": "Minimum balance required for allocation to fire. When the Allocation object's balance < threshold, allocation aborts with EINSUFFICIENT_BALANCE=7. Also: when an Allocator has only Amount items (no Rate, no Surplus), the sum of Amount items must be >= threshold (EAMOUNT_BELOW_THRESHOLD=12). Set to 0 (default) to allow any balance.",
|
|
78
78
|
"default": 0
|
|
79
79
|
},
|
|
80
80
|
"allocators": {
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"properties": {
|
|
85
85
|
"guard": {
|
|
86
86
|
"type": "string",
|
|
87
|
-
"description": "Guard object ID. If Guard verification passes, fund allocation
|
|
87
|
+
"description": "Guard object ID or name. If Guard verification passes (via Passport), fund allocation for THIS Allocator fires. Each Allocator in an Allocators list can have a different Guard — the first Allocator whose Guard returns true wins. This enables mutually exclusive allocation paths (e.g., refund Guard on 'return_approved' node vs damage Guard on 'damage_confirmed' node)."
|
|
88
88
|
},
|
|
89
89
|
"sharing": {
|
|
90
90
|
"type": "array",
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
"Entity"
|
|
133
133
|
],
|
|
134
134
|
"additionalProperties": false,
|
|
135
|
-
"description": "
|
|
135
|
+
"description": "Static address resolved via LocalMark. Format: {Entity: {name_or_address: 'mark_name'}} — NOTE: Entity is an OBJECT with name_or_address field, NOT a bare string."
|
|
136
136
|
},
|
|
137
137
|
{
|
|
138
138
|
"type": "object",
|
|
@@ -149,23 +149,32 @@
|
|
|
149
149
|
"description": "Current transaction signer ID"
|
|
150
150
|
}
|
|
151
151
|
],
|
|
152
|
-
"description": "Recipient
|
|
152
|
+
"description": "Recipient of this allocation. Three forms:\n• { GuardIdentifier: u8 } — resolved from Passport at allocation time. Use 0 for Order owner in Service-integrated mode (Customer who created the Order). The identifier must match a Guard table entry with b_submission=true. If Passport has no matching submission, contract aborts with E_VERIFY_FAILED.\n• { Entity: { name_or_address: '...' } } — static address resolved via LocalMark. Use for known recipients (e.g., 'turo_host', or a Treasury object address).\n• 'Signer' — the transaction sender (tx_context::sender). Use when the recipient is the current signer (e.g., self-refund scenarios)."
|
|
153
153
|
},
|
|
154
154
|
"sharing": {
|
|
155
155
|
"type": [
|
|
156
156
|
"number",
|
|
157
157
|
"string"
|
|
158
158
|
],
|
|
159
|
-
"description": "
|
|
159
|
+
"description": "Allocation value. SEMANTICS DEPEND ON `mode`:\n• mode='Amount': absolute amount in smallest unit (e.g., '750000000' for 0.75 WOW, '250000000' for 0.25 WOW). Allocated first; sum of Amount items cached as `fix`.\n• mode='Rate': basis-points rate, 10000 = 100% (e.g., '7500' for 75%, '2500' for 25%). When no Surplus in same Allocator, sum MUST == 10000; when Surplus present, sum MUST <= 10000.\n• mode='Surplus': IGNORED (contract forces to 0). Set to '0' for clarity. Receives remaining balance after Amount + Rate allocations."
|
|
160
160
|
},
|
|
161
161
|
"mode": {
|
|
162
|
-
"
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
162
|
+
"anyOf": [
|
|
163
|
+
{
|
|
164
|
+
"type": "string",
|
|
165
|
+
"enum": [
|
|
166
|
+
"Amount",
|
|
167
|
+
"Rate",
|
|
168
|
+
"Surplus"
|
|
169
|
+
]
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"type": "integer",
|
|
173
|
+
"minimum": 0,
|
|
174
|
+
"maximum": 2
|
|
175
|
+
}
|
|
167
176
|
],
|
|
168
|
-
"description": "
|
|
177
|
+
"description": "Allocation mode — determines how the `sharing` field is interpreted. Three modes can be used individually OR combined within a single Allocator; when combined, allocation order is strictly: Amount first, then Rate, then Surplus. Understanding these modes allows modeling almost any fund distribution pattern.\n• Amount (0): `sharing` is a FIXED amount in smallest unit (e.g., '750000000' = 0.75 WOW). Allocated FIRST; sum of all Amount items is cached as `fix` by the contract. Validation: when no Rate and no Surplus items exist, sum of Amount items must be >= allocators.threshold (EAMOUNT_BELOW_THRESHOLD=12); when `max` is set, sum of Amount items must be <= max (EAMOUNT_EXCEEDS_MAX=13).\n• Rate (1): `sharing` is a basis-points rate (10000 = 100%). Allocated AFTER Amount; formula: allocated = (sharing × total_rates) / 10000, where total_rates = balance - fix (or max - fix if `max` is set). Validation: when no Surplus items exist, sum of all Rate items must be EXACTLY 10000 (ERATE_NOT_10000=4); when Surplus items exist, sum of all Rate items must be <= 10000 (ERATE_EXCEEDS_10000=6).\n• Surplus (2): `sharing` is IGNORED (contract forces it to 0). Allocated LAST; receives the remaining balance after Amount + Rate allocations. Validation: MAX ONE Surplus item per Allocator (EMULTIPLE_SURPLUS=5). When Surplus exists, Rate sum constraint relaxes from == 10000 to <= 10000.\nALLOCATION ORDER (strict): Amount items (fixed, cached as fix) → Rate items (proportional to balance-fix) → Surplus item (remaining).\nRECOMMENDATION: Use Amount mode for known fixed amounts (clearer, no sum constraint). Use Rate mode for proportional splits (requires sum == 10000 unless Surplus present). Use Surplus to capture remainder (e.g., platform fee + host gets rest). Accepts string ('Amount'/'Rate'/'Surplus', recommended) or number (0/1/2)."
|
|
169
178
|
}
|
|
170
179
|
},
|
|
171
180
|
"required": [
|
|
@@ -174,13 +183,13 @@
|
|
|
174
183
|
"mode"
|
|
175
184
|
],
|
|
176
185
|
"additionalProperties": false,
|
|
177
|
-
"description": "Fund allocation item"
|
|
186
|
+
"description": "Fund allocation item — one recipient's share of the Allocation balance. The `sharing` value's meaning depends on `mode` (see AllocationModeSchema). Multiple items in the same Allocator are evaluated together: Amount items first, Rate items second, Surplus last."
|
|
178
187
|
},
|
|
179
|
-
"description": "Fund allocation item list. Each item
|
|
188
|
+
"description": "Fund allocation item list. Each item specifies a recipient (who), a value (sharing), and a mode. Items can mix modes (Amount + Rate + Surplus) within the same Allocator. ALLOCATION ORDER: Amount items first (cached as fix) → Rate items (proportional to balance - fix) → Surplus item (remaining). CONSTRAINTS: max ONE Surplus item per Allocator; Rate sum must == 10000 (no Surplus) or <= 10000 (with Surplus); Amount sum must >= threshold (no Rate and no Surplus) and <= max (if max set)."
|
|
180
189
|
},
|
|
181
190
|
"fix": {
|
|
182
191
|
"$ref": "#/definitions/data/anyOf/0/properties/allocators/properties/threshold",
|
|
183
|
-
"description": "
|
|
192
|
+
"description": "OUTPUT-ONLY (query result). Cached sum of all Amount-mode `sharing` values in this Allocator. Computed by the contract during `allocator_add` — DO NOT set this field at creation. Used internally to compute `total_rates = balance - fix` for Rate allocation."
|
|
184
193
|
},
|
|
185
194
|
"max": {
|
|
186
195
|
"anyOf": [
|
|
@@ -191,7 +200,7 @@
|
|
|
191
200
|
"type": "null"
|
|
192
201
|
}
|
|
193
202
|
],
|
|
194
|
-
"description": "Maximum allocation
|
|
203
|
+
"description": "Maximum allocation cap (optional). Has THREE effects:\n1. Construction: sum of Amount items must be <= max (EAMOUNT_EXCEEDS_MAX=13)\n2. Rate execution: total_rates = max - fix (instead of balance - fix)\n3. Surplus execution: surplus_amount = max - alloced_amount (instead of balance - alloced_amount)\nUse when you want to cap total allocation regardless of Order balance (e.g., cap payout to declared amount)."
|
|
195
204
|
}
|
|
196
205
|
},
|
|
197
206
|
"required": [
|
|
@@ -199,9 +208,9 @@
|
|
|
199
208
|
"sharing"
|
|
200
209
|
],
|
|
201
210
|
"additionalProperties": false,
|
|
202
|
-
"description": "Fund allocator"
|
|
211
|
+
"description": "Fund allocator — a complete allocation strategy triggered by a Guard. Contains a sharing[] array where items can mix Amount/Rate/Surplus modes. When the Guard passes, the contract allocates funds in strict order: Amount → Rate → Surplus."
|
|
203
212
|
},
|
|
204
|
-
"description": "Fund allocator list. Each
|
|
213
|
+
"description": "Fund allocator list. Each allocator is evaluated in order; the FIRST allocator whose Guard passes wins. This enables mutually exclusive allocation paths (e.g., 3 allocators for 3 forward paths: refund / damage-deduct / arbitrate)."
|
|
205
214
|
}
|
|
206
215
|
},
|
|
207
216
|
"required": [
|
|
@@ -209,7 +218,7 @@
|
|
|
209
218
|
"allocators"
|
|
210
219
|
],
|
|
211
220
|
"additionalProperties": false,
|
|
212
|
-
"description": "Fund allocator list"
|
|
221
|
+
"description": "Fund allocator list — the top-level allocation configuration attached to an Order. Contains a threshold and a list of Allocators. When funds arrive at the Order, the first Allocator whose Guard passes executes its sharing[] in strict order: Amount → Rate → Surplus. MULTI-TIER ALLOCATION (DOC-04): Each Order binds ONE Allocators template (set on Service.order_allocators before publish). For multi-tier distribution (e.g., customer→agency→suppliers), use a two-phase approach: (1) Tier-1 Allocators on the customer's Order (allocates to agency + refund fund); (2) Tier-2 Allocators on a NEW Order created by the agency (allocates agency's received funds to suppliers). Each tier's Rate-mode sharing[] must independently sum to 10000 (or <= 10000 with Surplus)."
|
|
213
222
|
},
|
|
214
223
|
"coin": {
|
|
215
224
|
"anyOf": [
|
|
@@ -390,7 +399,7 @@
|
|
|
390
399
|
"testnet",
|
|
391
400
|
"mainnet"
|
|
392
401
|
],
|
|
393
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
402
|
+
"description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
|
|
394
403
|
},
|
|
395
404
|
"referrer": {
|
|
396
405
|
"$ref": "#/definitions/env/properties/account",
|
|
@@ -770,7 +779,7 @@
|
|
|
770
779
|
"description": "vecvecu8"
|
|
771
780
|
}
|
|
772
781
|
],
|
|
773
|
-
"description": "Type of the value"
|
|
782
|
+
"description": "Type of the value stored in `value`. One of: Bool(0), Address(1), String(2), U8(3), U16(4), U32(5), U64(6), U128(7), U256(8), VecBool(9), VecAddress(10), VecString(11), VecU8(12), VecU16(13), VecU32(14), VecU64(15), VecU128(16), VecU256(17), VecVecU8(18). When value_type=Address (1), the `value` field accepts a hex address string, a LocalMark name, or an AccountOrMark_Address object — see `value` field description for details."
|
|
774
783
|
},
|
|
775
784
|
"value": {
|
|
776
785
|
"anyOf": [
|
|
@@ -863,12 +872,12 @@
|
|
|
863
872
|
}
|
|
864
873
|
}
|
|
865
874
|
],
|
|
866
|
-
"description": "The actual value data"
|
|
875
|
+
"description": "The actual value data. Format depends on `value_type`:\n• Bool: true/false (boolean)\n• Address (CRITICAL — string 'Address' is NOT a placeholder): a hex address (e.g. '0x1234...'), a LocalMark name (e.g. 'my-service' — resolved to address at evaluation time), an AccountOrMark_Address object (e.g. {name_or_address:'my-service'}), or system shorthand ('0xaaa' = EntityLinker, '0xaab' = EntityRegistrar). The literal string 'Address' itself is INVALID — it would be treated as a non-existent LocalMark name and fail. Example: value='0x2::wow::WOW<address>' or value='my-permission'.\n• String: any string\n• U8/U16/U32/U64/U128/U256: number or numeric string (e.g. 42 or '42')\n• Vec* types: arrays of the corresponding element type\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission)."
|
|
867
876
|
},
|
|
868
877
|
"name": {
|
|
869
878
|
"type": "string",
|
|
870
879
|
"default": "",
|
|
871
|
-
"description": "
|
|
880
|
+
"description": "Data name identifier. MAX 64 BCS characters (Chinese chars count as 3-4 BCS bytes each). Use short identifiers like 'order_id', 'delivery_node'. Put longer descriptions in the Guard's 'description' field, NOT here."
|
|
872
881
|
},
|
|
873
882
|
"object_type": {
|
|
874
883
|
"type": "string",
|
|
@@ -906,7 +915,7 @@
|
|
|
906
915
|
"TableItem_AddressMark",
|
|
907
916
|
"TableItem_EntityRegistrar"
|
|
908
917
|
],
|
|
909
|
-
"description": "Object type when value_type is Address and represents a specific object"
|
|
918
|
+
"description": "OUTPUT-ONLY (query side): Object type when value_type is Address and represents a specific object. Auto-derived by the system — DO NOT set this field at Guard creation."
|
|
910
919
|
}
|
|
911
920
|
},
|
|
912
921
|
"required": [
|
|
@@ -915,7 +924,7 @@
|
|
|
915
924
|
"value_type"
|
|
916
925
|
],
|
|
917
926
|
"additionalProperties": false,
|
|
918
|
-
"description": "Guard table item"
|
|
927
|
+
"description": "Guard table item (QUERY/OUTPUT form — includes auto-derived object_type field)"
|
|
919
928
|
},
|
|
920
929
|
"description": "User-submitted data matching the Guard's required fields. Relation: structure must match the Guard table's column definitions. Example: [{field:'delivery_proof', value:'Qm...'}]"
|
|
921
930
|
}
|
|
@@ -927,7 +936,7 @@
|
|
|
927
936
|
"additionalProperties": false,
|
|
928
937
|
"description": "One Guard's submission data: the Guard to verify plus the user-provided data that satisfies its requirements."
|
|
929
938
|
},
|
|
930
|
-
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission."
|
|
939
|
+
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission. PLACEMENT: this `submission` field is at the SAME level as `data` and `env` in the operation input — NOT inside `data.data`. Example structure: {tool:'onchain_operations', data:{operation_type:'order', data:{object:'my_order', progress:{...}}}, submission:{type:'submission', guard:[...], submission:[...]}}"
|
|
931
940
|
}
|
|
932
941
|
},
|
|
933
942
|
"required": [
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
"number",
|
|
130
130
|
"string"
|
|
131
131
|
],
|
|
132
|
-
"description": "
|
|
132
|
+
"description": "A coin/balance amount in the smallest on-chain unit (u64). Accepts a JS number OR a numeric string. PRECISION RULE: for values exceeding 2^53 (e.g. token amounts with 18 decimals), ALWAYS pass a numeric STRING (e.g. \"1000000000000000000\") to preserve precision — JS numbers lose precision above 2^53. UNIT: this is the smallest unit, NOT the display unit. For SUI: 1 SUI = 10^9 MIST, so 10 SUI = 10000000000. For custom tokens: use the token's native smallest unit (decimals from coin metadata). Examples: 10000000000 (10 SUI), \"1000000000000000000\" (1 token with 18 decimals), 500 (500 units of a token with 0 decimals). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
133
133
|
}
|
|
134
134
|
},
|
|
135
135
|
"required": [
|
|
@@ -645,7 +645,7 @@
|
|
|
645
645
|
"testnet",
|
|
646
646
|
"mainnet"
|
|
647
647
|
],
|
|
648
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
648
|
+
"description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
|
|
649
649
|
},
|
|
650
650
|
"referrer": {
|
|
651
651
|
"$ref": "#/definitions/env/properties/account",
|
|
@@ -1025,7 +1025,7 @@
|
|
|
1025
1025
|
"description": "vecvecu8"
|
|
1026
1026
|
}
|
|
1027
1027
|
],
|
|
1028
|
-
"description": "Type of the value"
|
|
1028
|
+
"description": "Type of the value stored in `value`. One of: Bool(0), Address(1), String(2), U8(3), U16(4), U32(5), U64(6), U128(7), U256(8), VecBool(9), VecAddress(10), VecString(11), VecU8(12), VecU16(13), VecU32(14), VecU64(15), VecU128(16), VecU256(17), VecVecU8(18). When value_type=Address (1), the `value` field accepts a hex address string, a LocalMark name, or an AccountOrMark_Address object — see `value` field description for details."
|
|
1029
1029
|
},
|
|
1030
1030
|
"value": {
|
|
1031
1031
|
"anyOf": [
|
|
@@ -1118,12 +1118,12 @@
|
|
|
1118
1118
|
}
|
|
1119
1119
|
}
|
|
1120
1120
|
],
|
|
1121
|
-
"description": "The actual value data"
|
|
1121
|
+
"description": "The actual value data. Format depends on `value_type`:\n• Bool: true/false (boolean)\n• Address (CRITICAL — string 'Address' is NOT a placeholder): a hex address (e.g. '0x1234...'), a LocalMark name (e.g. 'my-service' — resolved to address at evaluation time), an AccountOrMark_Address object (e.g. {name_or_address:'my-service'}), or system shorthand ('0xaaa' = EntityLinker, '0xaab' = EntityRegistrar). The literal string 'Address' itself is INVALID — it would be treated as a non-existent LocalMark name and fail. Example: value='0x2::wow::WOW<address>' or value='my-permission'.\n• String: any string\n• U8/U16/U32/U64/U128/U256: number or numeric string (e.g. 42 or '42')\n• Vec* types: arrays of the corresponding element type\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission)."
|
|
1122
1122
|
},
|
|
1123
1123
|
"name": {
|
|
1124
1124
|
"type": "string",
|
|
1125
1125
|
"default": "",
|
|
1126
|
-
"description": "
|
|
1126
|
+
"description": "Data name identifier. MAX 64 BCS characters (Chinese chars count as 3-4 BCS bytes each). Use short identifiers like 'order_id', 'delivery_node'. Put longer descriptions in the Guard's 'description' field, NOT here."
|
|
1127
1127
|
},
|
|
1128
1128
|
"object_type": {
|
|
1129
1129
|
"type": "string",
|
|
@@ -1161,7 +1161,7 @@
|
|
|
1161
1161
|
"TableItem_AddressMark",
|
|
1162
1162
|
"TableItem_EntityRegistrar"
|
|
1163
1163
|
],
|
|
1164
|
-
"description": "Object type when value_type is Address and represents a specific object"
|
|
1164
|
+
"description": "OUTPUT-ONLY (query side): Object type when value_type is Address and represents a specific object. Auto-derived by the system — DO NOT set this field at Guard creation."
|
|
1165
1165
|
}
|
|
1166
1166
|
},
|
|
1167
1167
|
"required": [
|
|
@@ -1170,7 +1170,7 @@
|
|
|
1170
1170
|
"value_type"
|
|
1171
1171
|
],
|
|
1172
1172
|
"additionalProperties": false,
|
|
1173
|
-
"description": "Guard table item"
|
|
1173
|
+
"description": "Guard table item (QUERY/OUTPUT form — includes auto-derived object_type field)"
|
|
1174
1174
|
},
|
|
1175
1175
|
"description": "User-submitted data matching the Guard's required fields. Relation: structure must match the Guard table's column definitions. Example: [{field:'delivery_proof', value:'Qm...'}]"
|
|
1176
1176
|
}
|
|
@@ -1182,7 +1182,7 @@
|
|
|
1182
1182
|
"additionalProperties": false,
|
|
1183
1183
|
"description": "One Guard's submission data: the Guard to verify plus the user-provided data that satisfies its requirements."
|
|
1184
1184
|
},
|
|
1185
|
-
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission."
|
|
1185
|
+
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission. PLACEMENT: this `submission` field is at the SAME level as `data` and `env` in the operation input — NOT inside `data.data`. Example structure: {tool:'onchain_operations', data:{operation_type:'order', data:{object:'my_order', progress:{...}}}, submission:{type:'submission', guard:[...], submission:[...]}}"
|
|
1186
1186
|
}
|
|
1187
1187
|
},
|
|
1188
1188
|
"required": [
|
|
@@ -250,7 +250,7 @@
|
|
|
250
250
|
"number",
|
|
251
251
|
"string"
|
|
252
252
|
],
|
|
253
|
-
"description": "
|
|
253
|
+
"description": "A coin/balance amount in the smallest on-chain unit (u64). Accepts a JS number OR a numeric string. PRECISION RULE: for values exceeding 2^53 (e.g. token amounts with 18 decimals), ALWAYS pass a numeric STRING (e.g. \"1000000000000000000\") to preserve precision — JS numbers lose precision above 2^53. UNIT: this is the smallest unit, NOT the display unit. For SUI: 1 SUI = 10^9 MIST, so 10 SUI = 10000000000. For custom tokens: use the token's native smallest unit (decimals from coin metadata). Examples: 10000000000 (10 SUI), \"1000000000000000000\" (1 token with 18 decimals), 500 (500 units of a token with 0 decimals). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
254
254
|
},
|
|
255
255
|
"token_type": {
|
|
256
256
|
"type": "string",
|
|
@@ -332,7 +332,7 @@
|
|
|
332
332
|
"testnet",
|
|
333
333
|
"mainnet"
|
|
334
334
|
],
|
|
335
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
335
|
+
"description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
|
|
336
336
|
},
|
|
337
337
|
"referrer": {
|
|
338
338
|
"$ref": "#/definitions/env/properties/account",
|
|
@@ -712,7 +712,7 @@
|
|
|
712
712
|
"description": "vecvecu8"
|
|
713
713
|
}
|
|
714
714
|
],
|
|
715
|
-
"description": "Type of the value"
|
|
715
|
+
"description": "Type of the value stored in `value`. One of: Bool(0), Address(1), String(2), U8(3), U16(4), U32(5), U64(6), U128(7), U256(8), VecBool(9), VecAddress(10), VecString(11), VecU8(12), VecU16(13), VecU32(14), VecU64(15), VecU128(16), VecU256(17), VecVecU8(18). When value_type=Address (1), the `value` field accepts a hex address string, a LocalMark name, or an AccountOrMark_Address object — see `value` field description for details."
|
|
716
716
|
},
|
|
717
717
|
"value": {
|
|
718
718
|
"anyOf": [
|
|
@@ -805,12 +805,12 @@
|
|
|
805
805
|
}
|
|
806
806
|
}
|
|
807
807
|
],
|
|
808
|
-
"description": "The actual value data"
|
|
808
|
+
"description": "The actual value data. Format depends on `value_type`:\n• Bool: true/false (boolean)\n• Address (CRITICAL — string 'Address' is NOT a placeholder): a hex address (e.g. '0x1234...'), a LocalMark name (e.g. 'my-service' — resolved to address at evaluation time), an AccountOrMark_Address object (e.g. {name_or_address:'my-service'}), or system shorthand ('0xaaa' = EntityLinker, '0xaab' = EntityRegistrar). The literal string 'Address' itself is INVALID — it would be treated as a non-existent LocalMark name and fail. Example: value='0x2::wow::WOW<address>' or value='my-permission'.\n• String: any string\n• U8/U16/U32/U64/U128/U256: number or numeric string (e.g. 42 or '42')\n• Vec* types: arrays of the corresponding element type\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission)."
|
|
809
809
|
},
|
|
810
810
|
"name": {
|
|
811
811
|
"type": "string",
|
|
812
812
|
"default": "",
|
|
813
|
-
"description": "
|
|
813
|
+
"description": "Data name identifier. MAX 64 BCS characters (Chinese chars count as 3-4 BCS bytes each). Use short identifiers like 'order_id', 'delivery_node'. Put longer descriptions in the Guard's 'description' field, NOT here."
|
|
814
814
|
},
|
|
815
815
|
"object_type": {
|
|
816
816
|
"type": "string",
|
|
@@ -848,7 +848,7 @@
|
|
|
848
848
|
"TableItem_AddressMark",
|
|
849
849
|
"TableItem_EntityRegistrar"
|
|
850
850
|
],
|
|
851
|
-
"description": "Object type when value_type is Address and represents a specific object"
|
|
851
|
+
"description": "OUTPUT-ONLY (query side): Object type when value_type is Address and represents a specific object. Auto-derived by the system — DO NOT set this field at Guard creation."
|
|
852
852
|
}
|
|
853
853
|
},
|
|
854
854
|
"required": [
|
|
@@ -857,7 +857,7 @@
|
|
|
857
857
|
"value_type"
|
|
858
858
|
],
|
|
859
859
|
"additionalProperties": false,
|
|
860
|
-
"description": "Guard table item"
|
|
860
|
+
"description": "Guard table item (QUERY/OUTPUT form — includes auto-derived object_type field)"
|
|
861
861
|
},
|
|
862
862
|
"description": "User-submitted data matching the Guard's required fields. Relation: structure must match the Guard table's column definitions. Example: [{field:'delivery_proof', value:'Qm...'}]"
|
|
863
863
|
}
|
|
@@ -869,7 +869,7 @@
|
|
|
869
869
|
"additionalProperties": false,
|
|
870
870
|
"description": "One Guard's submission data: the Guard to verify plus the user-provided data that satisfies its requirements."
|
|
871
871
|
},
|
|
872
|
-
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission."
|
|
872
|
+
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission. PLACEMENT: this `submission` field is at the SAME level as `data` and `env` in the operation input — NOT inside `data.data`. Example structure: {tool:'onchain_operations', data:{operation_type:'order', data:{object:'my_order', progress:{...}}}, submission:{type:'submission', guard:[...], submission:[...]}}"
|
|
873
873
|
}
|
|
874
874
|
},
|
|
875
875
|
"required": [
|
|
@@ -370,7 +370,7 @@
|
|
|
370
370
|
"number",
|
|
371
371
|
"string"
|
|
372
372
|
],
|
|
373
|
-
"description": "
|
|
373
|
+
"description": "A coin/balance amount in the smallest on-chain unit (u64). Accepts a JS number OR a numeric string. PRECISION RULE: for values exceeding 2^53 (e.g. token amounts with 18 decimals), ALWAYS pass a numeric STRING (e.g. \"1000000000000000000\") to preserve precision — JS numbers lose precision above 2^53. UNIT: this is the smallest unit, NOT the display unit. For SUI: 1 SUI = 10^9 MIST, so 10 SUI = 10000000000. For custom tokens: use the token's native smallest unit (decimals from coin metadata). Examples: 10000000000 (10 SUI), \"1000000000000000000\" (1 token with 18 decimals), 500 (500 units of a token with 0 decimals). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
374
374
|
},
|
|
375
375
|
"token_type": {
|
|
376
376
|
"type": "string",
|
|
@@ -463,7 +463,7 @@
|
|
|
463
463
|
"testnet",
|
|
464
464
|
"mainnet"
|
|
465
465
|
],
|
|
466
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
466
|
+
"description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
|
|
467
467
|
},
|
|
468
468
|
"referrer": {
|
|
469
469
|
"$ref": "#/definitions/env/properties/account",
|
|
@@ -843,7 +843,7 @@
|
|
|
843
843
|
"description": "vecvecu8"
|
|
844
844
|
}
|
|
845
845
|
],
|
|
846
|
-
"description": "Type of the value"
|
|
846
|
+
"description": "Type of the value stored in `value`. One of: Bool(0), Address(1), String(2), U8(3), U16(4), U32(5), U64(6), U128(7), U256(8), VecBool(9), VecAddress(10), VecString(11), VecU8(12), VecU16(13), VecU32(14), VecU64(15), VecU128(16), VecU256(17), VecVecU8(18). When value_type=Address (1), the `value` field accepts a hex address string, a LocalMark name, or an AccountOrMark_Address object — see `value` field description for details."
|
|
847
847
|
},
|
|
848
848
|
"value": {
|
|
849
849
|
"anyOf": [
|
|
@@ -936,12 +936,12 @@
|
|
|
936
936
|
}
|
|
937
937
|
}
|
|
938
938
|
],
|
|
939
|
-
"description": "The actual value data"
|
|
939
|
+
"description": "The actual value data. Format depends on `value_type`:\n• Bool: true/false (boolean)\n• Address (CRITICAL — string 'Address' is NOT a placeholder): a hex address (e.g. '0x1234...'), a LocalMark name (e.g. 'my-service' — resolved to address at evaluation time), an AccountOrMark_Address object (e.g. {name_or_address:'my-service'}), or system shorthand ('0xaaa' = EntityLinker, '0xaab' = EntityRegistrar). The literal string 'Address' itself is INVALID — it would be treated as a non-existent LocalMark name and fail. Example: value='0x2::wow::WOW<address>' or value='my-permission'.\n• String: any string\n• U8/U16/U32/U64/U128/U256: number or numeric string (e.g. 42 or '42')\n• Vec* types: arrays of the corresponding element type\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission)."
|
|
940
940
|
},
|
|
941
941
|
"name": {
|
|
942
942
|
"type": "string",
|
|
943
943
|
"default": "",
|
|
944
|
-
"description": "
|
|
944
|
+
"description": "Data name identifier. MAX 64 BCS characters (Chinese chars count as 3-4 BCS bytes each). Use short identifiers like 'order_id', 'delivery_node'. Put longer descriptions in the Guard's 'description' field, NOT here."
|
|
945
945
|
},
|
|
946
946
|
"object_type": {
|
|
947
947
|
"type": "string",
|
|
@@ -979,7 +979,7 @@
|
|
|
979
979
|
"TableItem_AddressMark",
|
|
980
980
|
"TableItem_EntityRegistrar"
|
|
981
981
|
],
|
|
982
|
-
"description": "Object type when value_type is Address and represents a specific object"
|
|
982
|
+
"description": "OUTPUT-ONLY (query side): Object type when value_type is Address and represents a specific object. Auto-derived by the system — DO NOT set this field at Guard creation."
|
|
983
983
|
}
|
|
984
984
|
},
|
|
985
985
|
"required": [
|
|
@@ -988,7 +988,7 @@
|
|
|
988
988
|
"value_type"
|
|
989
989
|
],
|
|
990
990
|
"additionalProperties": false,
|
|
991
|
-
"description": "Guard table item"
|
|
991
|
+
"description": "Guard table item (QUERY/OUTPUT form — includes auto-derived object_type field)"
|
|
992
992
|
},
|
|
993
993
|
"description": "User-submitted data matching the Guard's required fields. Relation: structure must match the Guard table's column definitions. Example: [{field:'delivery_proof', value:'Qm...'}]"
|
|
994
994
|
}
|
|
@@ -1000,7 +1000,7 @@
|
|
|
1000
1000
|
"additionalProperties": false,
|
|
1001
1001
|
"description": "One Guard's submission data: the Guard to verify plus the user-provided data that satisfies its requirements."
|
|
1002
1002
|
},
|
|
1003
|
-
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission."
|
|
1003
|
+
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission. PLACEMENT: this `submission` field is at the SAME level as `data` and `env` in the operation input — NOT inside `data.data`. Example structure: {tool:'onchain_operations', data:{operation_type:'order', data:{object:'my_order', progress:{...}}}, submission:{type:'submission', guard:[...], submission:[...]}}"
|
|
1004
1004
|
}
|
|
1005
1005
|
},
|
|
1006
1006
|
"required": [
|
|
@@ -366,7 +366,7 @@
|
|
|
366
366
|
"description": "vecvecu8"
|
|
367
367
|
}
|
|
368
368
|
],
|
|
369
|
-
"description": "Type of the value"
|
|
369
|
+
"description": "Type of the value stored in `value`. One of: Bool(0), Address(1), String(2), U8(3), U16(4), U32(5), U64(6), U128(7), U256(8), VecBool(9), VecAddress(10), VecString(11), VecU8(12), VecU16(13), VecU32(14), VecU64(15), VecU128(16), VecU256(17), VecVecU8(18). When value_type=Address (1), the `value` field accepts a hex address string, a LocalMark name, or an AccountOrMark_Address object — see `value` field description for details."
|
|
370
370
|
},
|
|
371
371
|
"value": {
|
|
372
372
|
"anyOf": [
|
|
@@ -459,12 +459,12 @@
|
|
|
459
459
|
}
|
|
460
460
|
}
|
|
461
461
|
],
|
|
462
|
-
"description": "The actual value data"
|
|
462
|
+
"description": "The actual value data. Format depends on `value_type`:\n• Bool: true/false (boolean)\n• Address (CRITICAL — string 'Address' is NOT a placeholder): a hex address (e.g. '0x1234...'), a LocalMark name (e.g. 'my-service' — resolved to address at evaluation time), an AccountOrMark_Address object (e.g. {name_or_address:'my-service'}), or system shorthand ('0xaaa' = EntityLinker, '0xaab' = EntityRegistrar). The literal string 'Address' itself is INVALID — it would be treated as a non-existent LocalMark name and fail. Example: value='0x2::wow::WOW<address>' or value='my-permission'.\n• String: any string\n• U8/U16/U32/U64/U128/U256: number or numeric string (e.g. 42 or '42')\n• Vec* types: arrays of the corresponding element type\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission)."
|
|
463
463
|
},
|
|
464
464
|
"name": {
|
|
465
465
|
"type": "string",
|
|
466
466
|
"default": "",
|
|
467
|
-
"description": "
|
|
467
|
+
"description": "Data name identifier. MAX 64 BCS characters (Chinese chars count as 3-4 BCS bytes each). Use short identifiers like 'order_id', 'delivery_node'. Put longer descriptions in the Guard's 'description' field, NOT here."
|
|
468
468
|
},
|
|
469
469
|
"object_type": {
|
|
470
470
|
"type": "string",
|
|
@@ -502,7 +502,7 @@
|
|
|
502
502
|
"TableItem_AddressMark",
|
|
503
503
|
"TableItem_EntityRegistrar"
|
|
504
504
|
],
|
|
505
|
-
"description": "Object type when value_type is Address and represents a specific object"
|
|
505
|
+
"description": "OUTPUT-ONLY (query side): Object type when value_type is Address and represents a specific object. Auto-derived by the system — DO NOT set this field at Guard creation."
|
|
506
506
|
}
|
|
507
507
|
},
|
|
508
508
|
"required": [
|
|
@@ -511,7 +511,7 @@
|
|
|
511
511
|
"value_type"
|
|
512
512
|
],
|
|
513
513
|
"additionalProperties": false,
|
|
514
|
-
"description": "Guard table item"
|
|
514
|
+
"description": "Guard table item (QUERY/OUTPUT form — includes auto-derived object_type field)"
|
|
515
515
|
},
|
|
516
516
|
"description": "User-submitted data matching the Guard's required fields. Relation: structure must match the Guard table's column definitions. Example: [{field:'delivery_proof', value:'Qm...'}]"
|
|
517
517
|
}
|
|
@@ -523,7 +523,7 @@
|
|
|
523
523
|
"additionalProperties": false,
|
|
524
524
|
"description": "One Guard's submission data: the Guard to verify plus the user-provided data that satisfies its requirements."
|
|
525
525
|
},
|
|
526
|
-
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission."
|
|
526
|
+
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission. PLACEMENT: this `submission` field is at the SAME level as `data` and `env` in the operation input — NOT inside `data.data`. Example structure: {tool:'onchain_operations', data:{operation_type:'order', data:{object:'my_order', progress:{...}}}, submission:{type:'submission', guard:[...], submission:[...]}}"
|
|
527
527
|
}
|
|
528
528
|
},
|
|
529
529
|
"required": [
|
|
@@ -560,7 +560,7 @@
|
|
|
560
560
|
"testnet",
|
|
561
561
|
"mainnet"
|
|
562
562
|
],
|
|
563
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
563
|
+
"description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
|
|
564
564
|
},
|
|
565
565
|
"referrer": {
|
|
566
566
|
"$ref": "#/definitions/data/properties/guard/anyOf/0",
|
|
@@ -965,7 +965,7 @@
|
|
|
965
965
|
"description": "vecvecu8"
|
|
966
966
|
}
|
|
967
967
|
],
|
|
968
|
-
"description": "Type of the value"
|
|
968
|
+
"description": "Type of the value stored in `value`. One of: Bool(0), Address(1), String(2), U8(3), U16(4), U32(5), U64(6), U128(7), U256(8), VecBool(9), VecAddress(10), VecString(11), VecU8(12), VecU16(13), VecU32(14), VecU64(15), VecU128(16), VecU256(17), VecVecU8(18). When value_type=Address (1), the `value` field accepts a hex address string, a LocalMark name, or an AccountOrMark_Address object — see `value` field description for details."
|
|
969
969
|
},
|
|
970
970
|
"value": {
|
|
971
971
|
"anyOf": [
|
|
@@ -1058,12 +1058,12 @@
|
|
|
1058
1058
|
}
|
|
1059
1059
|
}
|
|
1060
1060
|
],
|
|
1061
|
-
"description": "The actual value data"
|
|
1061
|
+
"description": "The actual value data. Format depends on `value_type`:\n• Bool: true/false (boolean)\n• Address (CRITICAL — string 'Address' is NOT a placeholder): a hex address (e.g. '0x1234...'), a LocalMark name (e.g. 'my-service' — resolved to address at evaluation time), an AccountOrMark_Address object (e.g. {name_or_address:'my-service'}), or system shorthand ('0xaaa' = EntityLinker, '0xaab' = EntityRegistrar). The literal string 'Address' itself is INVALID — it would be treated as a non-existent LocalMark name and fail. Example: value='0x2::wow::WOW<address>' or value='my-permission'.\n• String: any string\n• U8/U16/U32/U64/U128/U256: number or numeric string (e.g. 42 or '42')\n• Vec* types: arrays of the corresponding element type\nREQUIRED when b_submission=false. OPTIONAL when b_submission=true (value is supplied at evaluation time by user submission)."
|
|
1062
1062
|
},
|
|
1063
1063
|
"name": {
|
|
1064
1064
|
"type": "string",
|
|
1065
1065
|
"default": "",
|
|
1066
|
-
"description": "
|
|
1066
|
+
"description": "Data name identifier. MAX 64 BCS characters (Chinese chars count as 3-4 BCS bytes each). Use short identifiers like 'order_id', 'delivery_node'. Put longer descriptions in the Guard's 'description' field, NOT here."
|
|
1067
1067
|
},
|
|
1068
1068
|
"object_type": {
|
|
1069
1069
|
"type": "string",
|
|
@@ -1101,7 +1101,7 @@
|
|
|
1101
1101
|
"TableItem_AddressMark",
|
|
1102
1102
|
"TableItem_EntityRegistrar"
|
|
1103
1103
|
],
|
|
1104
|
-
"description": "Object type when value_type is Address and represents a specific object"
|
|
1104
|
+
"description": "OUTPUT-ONLY (query side): Object type when value_type is Address and represents a specific object. Auto-derived by the system — DO NOT set this field at Guard creation."
|
|
1105
1105
|
}
|
|
1106
1106
|
},
|
|
1107
1107
|
"required": [
|
|
@@ -1110,7 +1110,7 @@
|
|
|
1110
1110
|
"value_type"
|
|
1111
1111
|
],
|
|
1112
1112
|
"additionalProperties": false,
|
|
1113
|
-
"description": "Guard table item"
|
|
1113
|
+
"description": "Guard table item (QUERY/OUTPUT form — includes auto-derived object_type field)"
|
|
1114
1114
|
},
|
|
1115
1115
|
"description": "User-submitted data matching the Guard's required fields. Relation: structure must match the Guard table's column definitions. Example: [{field:'delivery_proof', value:'Qm...'}]"
|
|
1116
1116
|
}
|
|
@@ -1122,7 +1122,7 @@
|
|
|
1122
1122
|
"additionalProperties": false,
|
|
1123
1123
|
"description": "One Guard's submission data: the Guard to verify plus the user-provided data that satisfies its requirements."
|
|
1124
1124
|
},
|
|
1125
|
-
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission."
|
|
1125
|
+
"description": "User-submitted data for each Guard. Relation: one entry per Guard in the guard array; fill submission fields and resubmit via call_with_submission. PLACEMENT: this `submission` field is at the SAME level as `data` and `env` in the operation input — NOT inside `data.data`. Example structure: {tool:'onchain_operations', data:{operation_type:'order', data:{object:'my_order', progress:{...}}}, submission:{type:'submission', guard:[...], submission:[...]}}"
|
|
1126
1126
|
}
|
|
1127
1127
|
},
|
|
1128
1128
|
"required": [
|
|
@@ -1159,7 +1159,7 @@
|
|
|
1159
1159
|
"testnet",
|
|
1160
1160
|
"mainnet"
|
|
1161
1161
|
],
|
|
1162
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
1162
|
+
"description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
|
|
1163
1163
|
},
|
|
1164
1164
|
"referrer": {
|
|
1165
1165
|
"$ref": "#/definitions/data/properties/guard/anyOf/0",
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"testnet",
|
|
94
94
|
"mainnet"
|
|
95
95
|
],
|
|
96
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
96
|
+
"description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
|
|
97
97
|
},
|
|
98
98
|
"referrer": {
|
|
99
99
|
"$ref": "#/definitions/data/properties/env/properties/account",
|
|
@@ -229,7 +229,7 @@
|
|
|
229
229
|
"testnet",
|
|
230
230
|
"mainnet"
|
|
231
231
|
],
|
|
232
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
232
|
+
"description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
|
|
233
233
|
},
|
|
234
234
|
"referrer": {
|
|
235
235
|
"$ref": "#/definitions/data/properties/env/properties/account",
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
"testnet",
|
|
110
110
|
"mainnet"
|
|
111
111
|
],
|
|
112
|
-
"description": "Network entrypoint: Specifies which network the operation occurs on"
|
|
112
|
+
"description": "Network entrypoint: Specifies which network the operation occurs on. FIX-010 cross-network note: LocalMark names are scoped per network (testnet marks are invisible on mainnet and vice versa). When migrating from testnet to mainnet, recreate all objects on mainnet and re-register LocalMark names with the SAME names to keep name-based references working across networks. Use project_operation action='clone_project_to_network' to clone the project blueprint to the target network, then re-run onchain_operations with env.network=target_network to deploy."
|
|
113
113
|
},
|
|
114
114
|
"referrer": {
|
|
115
115
|
"$ref": "#/definitions/env/properties/account",
|