@wowok/agent-mcp 2.6.1 → 2.6.4
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/dist/customer/customer-advice.d.ts +31 -0
- package/dist/customer/customer-advice.js +129 -0
- package/dist/customer/index.d.ts +2 -0
- package/dist/customer/index.js +2 -0
- package/dist/customer/info-puzzle.d.ts +9 -2
- package/dist/customer/info-puzzle.js +34 -7
- package/dist/customer/order-monitor.d.ts +2 -0
- package/dist/customer/order-monitor.js +3 -2
- package/dist/customer/post-purchase.d.ts +2 -0
- package/dist/customer/post-purchase.js +6 -5
- package/dist/customer/preorder-compare.d.ts +24 -0
- package/dist/customer/preorder-compare.js +34 -0
- package/dist/customer/reminder-system.d.ts +2 -0
- package/dist/customer/reminder-system.js +2 -1
- package/dist/customer/risk-assessment.js +30 -7
- package/dist/customer/types.d.ts +7 -0
- package/dist/examples/arbitration-dispute-create.json +41 -0
- package/dist/examples/arbitration-vote-weighted.json +35 -0
- package/dist/examples/arbitration-voting-guard-add.json +38 -0
- package/dist/examples/demand-present-service.json +33 -0
- package/dist/examples/gen-passport-verify-guard.json +48 -0
- package/dist/examples/guard-template-balance-check.json +59 -0
- package/dist/examples/guard-template-time-lock.json +60 -0
- package/dist/examples/insurance-guard-claim-timelock.json +75 -0
- package/dist/examples/insurance-guard-withdraw-allocation.json +96 -0
- package/dist/examples/insurance-machine-create-publish.json +75 -0
- package/dist/examples/insurance-service-allocators-publish.json +56 -0
- package/dist/examples/machine-multisig-threshold.json +86 -0
- package/dist/examples/machine-template-7node-rental.json +119 -0
- package/dist/examples/payment-scenario-bound.json +45 -0
- package/dist/examples/rental-ziroom-machine-create.json +149 -0
- package/dist/examples/rental-ziroom-permission-create.json +42 -0
- package/dist/examples/rental-ziroom-service-create.json +89 -0
- package/dist/examples/retail-adv-guard-customer-win-create.json +80 -0
- package/dist/examples/retail-adv-guard-messenger-proof-create.json +65 -0
- package/dist/examples/retail-adv-guard-reward-timeout-create.json +92 -0
- package/dist/examples/retail-adv-reward-guard-add.json +51 -0
- package/dist/examples/retail-myshop-allocation-activate.json +55 -0
- package/dist/examples/retail-myshop-arbitration-create.json +40 -0
- package/dist/examples/retail-myshop-contact-create.json +43 -0
- package/dist/examples/retail-myshop-order-create.json +56 -0
- package/dist/examples/retail-myshop-progress-operate.json +38 -0
- package/dist/examples/retail-myshop-reward-create.json +35 -0
- package/dist/examples/retail-myshop-service-create.json +88 -0
- package/dist/examples/service-discount-issue.json +46 -0
- package/dist/examples/threebody-guard-create.json +56 -0
- package/dist/examples/threebody-machine-create.json +72 -0
- package/dist/examples/threebody-permission-create.json +38 -0
- package/dist/examples/threebody-service-allocators.json +49 -0
- package/dist/examples/travel-guard-time-lock.json +69 -0
- package/dist/examples/travel-guard-weather-oracle.json +70 -0
- package/dist/examples/travel-machine-create.json +136 -0
- package/dist/examples/travel-repository-create.json +47 -0
- package/dist/examples/travel-service-create.json +102 -0
- package/dist/examples/travel-treasury-create.json +34 -0
- package/dist/examples/treasury-deposit.json +37 -0
- package/dist/examples/treasury-withdraw.json +38 -0
- package/dist/extensions/business-modules.d.ts +49 -0
- package/dist/extensions/business-modules.js +287 -0
- package/dist/extensions/capability-manifest.js +216 -29
- package/dist/extensions/constraint-registry.js +21 -19
- package/dist/extensions/metric-registry.js +14 -14
- package/dist/extensions/mode-evaluator.js +16 -16
- package/dist/extensions/modes.js +141 -49
- package/dist/extensions/registry.d.ts +16 -9
- package/dist/extensions/registry.js +132 -44
- package/dist/extensions/types.d.ts +2 -0
- package/dist/index.js +50 -0
- package/dist/knowledge/deployment-scanner.js +1 -1
- package/dist/knowledge/fund-layer.d.ts +138 -0
- package/dist/knowledge/fund-layer.js +969 -0
- package/dist/knowledge/guard-render.d.ts +57 -0
- package/dist/knowledge/guard-render.js +700 -0
- package/dist/knowledge/guard-submission-prompt.d.ts +31 -0
- package/dist/knowledge/guard-submission-prompt.js +171 -0
- package/dist/knowledge/guard-templates.d.ts +10 -0
- package/dist/knowledge/guard-templates.js +50 -0
- package/dist/knowledge/index.d.ts +2 -2
- package/dist/knowledge/index.js +2 -2
- package/dist/knowledge/machine-ledger.js +1 -1
- package/dist/knowledge/machine-render.d.ts +41 -0
- package/dist/knowledge/machine-render.js +565 -0
- package/dist/knowledge/machine-risk.js +4 -1
- package/dist/knowledge/machine-templates.js +4 -4
- package/dist/knowledge/progress-context.js +1 -1
- package/dist/knowledge/progress-ledger.js +3 -3
- package/dist/knowledge/progress-templates.js +1 -1
- package/dist/knowledge/progress-translation.js +1 -1
- package/dist/knowledge/reward-confirm.js +2 -2
- package/dist/knowledge/reward-puzzle.js +1 -1
- package/dist/knowledge/reward-risk.js +9 -9
- package/dist/knowledge/reward-templates.js +2 -2
- package/dist/knowledge/safety-rules.d.ts +83 -1
- package/dist/knowledge/safety-rules.js +166 -2
- package/dist/knowledge/scenario-modes.d.ts +1 -1
- package/dist/knowledge/scenario-modes.js +13 -11
- package/dist/knowledge/service-confirm.d.ts +1 -1
- package/dist/knowledge/service-confirm.js +3 -3
- package/dist/knowledge/service-context.js +1 -1
- package/dist/knowledge/service-ledger.js +1 -1
- package/dist/knowledge/service-risk.d.ts +1 -1
- package/dist/knowledge/service-risk.js +3 -3
- package/dist/knowledge/service-templates.js +2 -2
- package/dist/knowledge/service-translation.d.ts +1 -1
- package/dist/knowledge/service-translation.js +7 -7
- package/dist/knowledge/template-registry.d.ts +48 -0
- package/dist/knowledge/template-registry.js +341 -0
- package/dist/knowledge/tool-constraints.js +6 -6
- package/dist/knowledge/tools-reference.js +11 -8
- package/dist/participation/merchant-interest.d.ts +32 -0
- package/dist/participation/merchant-interest.js +100 -0
- package/dist/participation/radar-core.d.ts +104 -0
- package/dist/participation/radar-core.js +269 -0
- package/dist/project/context-assembly.js +8 -0
- package/dist/project/deployment-bridge.js +6 -5
- package/dist/project/deployment-doc.js +5 -5
- package/dist/project/edit-planner.d.ts +123 -0
- package/dist/project/edit-planner.js +1342 -0
- package/dist/project/evaluation.d.ts +36 -0
- package/dist/project/evaluation.js +734 -68
- package/dist/project/game-theory.d.ts +43 -0
- package/dist/project/game-theory.js +177 -0
- package/dist/project/graph-builder.js +7 -1
- package/dist/project/handlers.d.ts +137 -2
- package/dist/project/handlers.js +423 -51
- package/dist/project/intent-analyzer.d.ts +71 -0
- package/dist/project/intent-analyzer.js +149 -0
- package/dist/project/machine-nodes.d.ts +2 -0
- package/dist/project/machine-nodes.js +36 -0
- package/dist/project/merchant-guide.d.ts +165 -0
- package/dist/project/merchant-guide.js +264 -0
- package/dist/project/mode-actions.d.ts +199 -0
- package/dist/project/mode-actions.js +309 -0
- package/dist/project/participation-radar.d.ts +18 -0
- package/dist/project/participation-radar.js +428 -0
- package/dist/project/pipeline-actions.d.ts +101 -0
- package/dist/project/pipeline-actions.js +109 -0
- package/dist/project/semantic-graph.d.ts +95 -0
- package/dist/project/semantic-graph.js +245 -0
- package/dist/project/stage-gate.js +4 -4
- package/dist/schema/call/allocation.d.ts +11 -11
- package/dist/schema/call/allocation.js +13 -3
- package/dist/schema/call/arbitration.d.ts +21 -21
- package/dist/schema/call/arbitration.js +30 -9
- package/dist/schema/call/base.d.ts +2 -2
- package/dist/schema/call/base.js +1 -1
- package/dist/schema/call/bridge.d.ts +127 -127
- package/dist/schema/call/bridge.js +12 -12
- package/dist/schema/call/contact.d.ts +3 -3
- package/dist/schema/call/contact.js +2 -2
- package/dist/schema/call/demand.d.ts +3 -3
- package/dist/schema/call/demand.js +2 -2
- package/dist/schema/call/guard.d.ts +11 -11
- package/dist/schema/call/guard.js +2 -2
- package/dist/schema/call/machine.d.ts +2072 -679
- package/dist/schema/call/machine.js +51 -5
- package/dist/schema/call/order.d.ts +7 -7
- package/dist/schema/call/order.js +3 -6
- package/dist/schema/call/payment.d.ts +3 -3
- package/dist/schema/call/permission.d.ts +3 -3
- package/dist/schema/call/permission.js +2 -2
- package/dist/schema/call/personal.d.ts +337 -3
- package/dist/schema/call/personal.js +10 -0
- package/dist/schema/call/progress.d.ts +177 -9
- package/dist/schema/call/progress.js +7 -3
- package/dist/schema/call/proof.d.ts +6 -6
- package/dist/schema/call/repository.d.ts +3 -3
- package/dist/schema/call/repository.js +2 -2
- package/dist/schema/call/reward.d.ts +57 -57
- package/dist/schema/call/reward.js +3 -3
- package/dist/schema/call/semantic.js +48 -2
- package/dist/schema/call/service.d.ts +285 -113
- package/dist/schema/call/service.js +92 -28
- package/dist/schema/call/treasury.d.ts +57 -57
- package/dist/schema/call/treasury.js +3 -3
- package/dist/schema/common/index.d.ts +2 -0
- package/dist/schema/common/index.js +46 -10
- package/dist/schema/local/index.js +5 -1
- package/dist/schema/messenger/index.js +4 -1
- package/dist/schema/operations.d.ts +1318 -317
- package/dist/schema/operations.js +76 -7
- package/dist/schema/project/index.d.ts +5662 -164
- package/dist/schema/project/index.js +1136 -5
- package/dist/schema/query/index.d.ts +580 -19
- package/dist/schema/query/index.js +88 -36
- package/dist/schema/schema-query/index.d.ts +59 -3
- package/dist/schema/schema-query/index.js +45 -6
- package/dist/schema/trust/index.d.ts +1012 -6
- package/dist/schema/trust/index.js +212 -11
- package/dist/schema/utils/node-parser.js +13 -0
- package/dist/schema/utils/object-type-utils.d.ts +12 -0
- package/dist/schema/utils/object-type-utils.js +35 -0
- package/dist/schema/utils/permission-machine-check.d.ts +49 -0
- package/dist/schema/utils/permission-machine-check.js +121 -0
- package/dist/schema/utils/skills-recommendation.d.ts +2 -0
- package/dist/schema/utils/skills-recommendation.js +77 -0
- package/dist/schema-query/index.d.ts +17 -1
- package/dist/schema-query/index.js +359 -3
- package/dist/schemas/account_operation.schema.json +1 -1
- package/dist/schemas/bridge_operation.schema.json +14 -7
- package/dist/schemas/guard2file.schema.json +2 -0
- package/dist/schemas/index.json +1 -1
- package/dist/schemas/machineNode2file.schema.json +2 -0
- package/dist/schemas/messenger_operation.schema.json +1 -1
- package/dist/schemas/onchain_events.output.json +1 -1
- package/dist/schemas/onchain_operations.output.json +2820 -0
- package/dist/schemas/onchain_operations.schema.json +255 -65
- package/dist/schemas/onchain_operations_allocation.schema.json +7 -6
- package/dist/schemas/onchain_operations_arbitration.schema.json +14 -10
- package/dist/schemas/onchain_operations_contact.schema.json +4 -3
- package/dist/schemas/onchain_operations_demand.schema.json +4 -3
- package/dist/schemas/onchain_operations_gen_passport.schema.json +4 -2
- package/dist/schemas/onchain_operations_gen_proof.schema.json +2 -0
- package/dist/schemas/onchain_operations_guard.schema.json +579 -1
- package/dist/schemas/onchain_operations_machine.schema.json +5 -4
- package/dist/schemas/onchain_operations_order.schema.json +7 -6
- package/dist/schemas/onchain_operations_payment.schema.json +2 -1
- package/dist/schemas/onchain_operations_permission.schema.json +3 -2
- package/dist/schemas/onchain_operations_personal.schema.json +37 -0
- package/dist/schemas/onchain_operations_progress.schema.json +91 -4
- package/dist/schemas/onchain_operations_proof.schema.json +2 -1
- package/dist/schemas/onchain_operations_repository.schema.json +4 -3
- package/dist/schemas/onchain_operations_reward.schema.json +7 -6
- package/dist/schemas/onchain_operations_service.schema.json +80 -19
- package/dist/schemas/onchain_operations_treasury.schema.json +5 -4
- package/dist/schemas/onchain_table_data.output.json +1 -1
- package/dist/schemas/onchain_table_data.schema.json +10 -9
- package/dist/schemas/project_operation.output.json +3318 -57
- package/dist/schemas/project_operation.schema.json +728 -4
- package/dist/schemas/query_toolkit.output.json +16 -16
- package/dist/schemas/query_toolkit.schema.json +40 -3
- package/dist/schemas/schema_query.output.json +65 -2
- package/dist/schemas/schema_query.schema.json +31 -5
- package/dist/schemas/trust_score.output.json +392 -1
- package/dist/schemas/trust_score.schema.json +275 -1
- package/dist/schemas/wowok_buildin_info.output.json +81 -8
- package/dist/schemas/wowok_buildin_info.schema.json +46 -2
- package/dist/tools/handlers/onchain.js +636 -6
- package/dist/tools/handlers/project.js +71 -2
- package/dist/tools/handlers/query.js +117 -2
- package/dist/tools/handlers/schema-query.js +65 -1
- package/dist/tools/handlers/trust.js +192 -6
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.js +229 -15
- package/dist/tools/wrap.js +194 -15
- package/package.json +2 -2
|
@@ -270,7 +270,7 @@
|
|
|
270
270
|
},
|
|
271
271
|
"data": {
|
|
272
272
|
"type": "object",
|
|
273
|
-
"description": "On-chain Guard creation. IMPORTANT: All defined data (include all submitted data) must be defined in the 'table' field. USAGE: Set 'namedNew' field with {name, tags?, onChain?} to name the new Guard. The Guard is immutable once created. Define the validation logic in 'root' field. When root.type='file', the file can contain all Guard fields, and any fields defined in the schema will OVERRIDE the file content.",
|
|
273
|
+
"description": "On-chain Guard creation. IMPORTANT: All defined data (include all submitted data) must be defined in the 'table' field. USAGE: Set 'namedNew' field with {name, tags?, onChain?} to name the new Guard (you may also use 'object' as an alias for 'namedNew' — the MCP preprocess will convert it automatically). The Guard is immutable once created. Define the validation logic in 'root' field. When root.type='file', the file can contain all Guard fields, and any fields defined in the schema will OVERRIDE the file content.",
|
|
274
274
|
"properties": {
|
|
275
275
|
"namedNew": {
|
|
276
276
|
"$ref": "#/definitions/guard_namedNew",
|
|
@@ -515,7 +515,7 @@
|
|
|
515
515
|
},
|
|
516
516
|
"b_submission": {
|
|
517
517
|
"type": "boolean",
|
|
518
|
-
"description": "Whether user
|
|
518
|
+
"description": "Whether this table item's value is submitted dynamically at Guard trigger time (alloc_by_guard call). \n\ntrue = value is submitted by the caller when triggering the Guard. Use for runtime-context-dependent values like order address, user address. The 'value' field is ignored when b_submission=true; the caller must provide it via submissions[]. \n\nfalse = value is static, set at Guard creation time. Use for values known when the Guard is created: expected node names, expected merchant address, expected service address. The 'value' field must be populated and will be stored on-chain permanently. \n\nRule of thumb: if the value is the SAME for all future Guard triggers, use false. If the value DIFFERS per trigger (e.g., which order to release funds for), use true."
|
|
519
519
|
},
|
|
520
520
|
"value_type": {
|
|
521
521
|
"anyOf": [
|
|
@@ -1026,6 +1026,7 @@
|
|
|
1026
1026
|
},
|
|
1027
1027
|
"schema_strict_mode": {
|
|
1028
1028
|
"type": "boolean",
|
|
1029
|
+
"default": false,
|
|
1029
1030
|
"description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
|
|
1030
1031
|
},
|
|
1031
1032
|
"dry_run": {
|
|
@@ -1189,6 +1190,7 @@
|
|
|
1189
1190
|
},
|
|
1190
1191
|
"schema_strict_mode": {
|
|
1191
1192
|
"type": "boolean",
|
|
1193
|
+
"default": false,
|
|
1192
1194
|
"description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
|
|
1193
1195
|
},
|
|
1194
1196
|
"dry_run": {
|
|
@@ -1265,6 +1267,7 @@
|
|
|
1265
1267
|
},
|
|
1266
1268
|
"schema_strict_mode": {
|
|
1267
1269
|
"type": "boolean",
|
|
1270
|
+
"default": false,
|
|
1268
1271
|
"description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
|
|
1269
1272
|
},
|
|
1270
1273
|
"dry_run": {
|
|
@@ -1328,7 +1331,7 @@
|
|
|
1328
1331
|
},
|
|
1329
1332
|
"b_submission": {
|
|
1330
1333
|
"type": "boolean",
|
|
1331
|
-
"description": "Whether user
|
|
1334
|
+
"description": "Whether this table item's value is submitted dynamically at Guard trigger time (alloc_by_guard call). \n\ntrue = value is submitted by the caller when triggering the Guard. Use for runtime-context-dependent values like order address, user address. The 'value' field is ignored when b_submission=true; the caller must provide it via submissions[]. \n\nfalse = value is static, set at Guard creation time. Use for values known when the Guard is created: expected node names, expected merchant address, expected service address. The 'value' field must be populated and will be stored on-chain permanently. \n\nRule of thumb: if the value is the SAME for all future Guard triggers, use false. If the value DIFFERS per trigger (e.g., which order to release funds for), use true."
|
|
1332
1335
|
},
|
|
1333
1336
|
"value_type": {
|
|
1334
1337
|
"anyOf": [
|
|
@@ -1907,7 +1910,7 @@
|
|
|
1907
1910
|
"number",
|
|
1908
1911
|
"string"
|
|
1909
1912
|
],
|
|
1910
|
-
"description": "A coin/balance amount
|
|
1913
|
+
"description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
1911
1914
|
}
|
|
1912
1915
|
},
|
|
1913
1916
|
"required": [
|
|
@@ -1930,7 +1933,7 @@
|
|
|
1930
1933
|
"additionalProperties": false
|
|
1931
1934
|
}
|
|
1932
1935
|
],
|
|
1933
|
-
"description": "Actual payment amount"
|
|
1936
|
+
"description": "Actual payment amount. FORMAT: {balance: <amount_in_smallest_unit>} or {coin: <coin_object_id>}. The token type and precision are determined by the Service object's type_parameter (the generic type set when the Service was created). For WOW (9 decimals): {balance: 1000000000} = 1 WOW. For SUI (9 decimals): {balance: 1000000000} = 1 SUI."
|
|
1934
1937
|
},
|
|
1935
1938
|
"discount": {
|
|
1936
1939
|
"type": "string",
|
|
@@ -2008,15 +2011,15 @@
|
|
|
2008
2011
|
}
|
|
2009
2012
|
},
|
|
2010
2013
|
"additionalProperties": false,
|
|
2011
|
-
"description": "Set
|
|
2014
|
+
"description": "RECOMMENDED: Set a local name for the newly created Order object. Without this, the Order is only referenceable by its on-chain address. Example: {name: 'my_order_v1'} allows subsequent operations to use 'my_order_v1' instead of the address."
|
|
2012
2015
|
},
|
|
2013
2016
|
"namedNewAllocation": {
|
|
2014
2017
|
"$ref": "#/definitions/data_service/properties/order_new/properties/namedNewOrder",
|
|
2015
|
-
"description": "Set
|
|
2018
|
+
"description": "RECOMMENDED: Set a local name for the order's Allocation object. Without this, the Allocation is only referenceable by its address. Example: {name: 'my_allocation_v1'} allows alloc_by_guard to reference 'my_allocation_v1'."
|
|
2016
2019
|
},
|
|
2017
2020
|
"namedNewProgress": {
|
|
2018
2021
|
"$ref": "#/definitions/data_service/properties/order_new/properties/namedNewOrder",
|
|
2019
|
-
"description": "Set
|
|
2022
|
+
"description": "RECOMMENDED: Set a local name for the order's Progress object. Without this, the Progress is only referenceable by its address. Example: {name: 'my_progress_v1'} allows progress operations to use 'my_progress_v1'."
|
|
2020
2023
|
}
|
|
2021
2024
|
},
|
|
2022
2025
|
"required": [
|
|
@@ -2075,7 +2078,7 @@
|
|
|
2075
2078
|
},
|
|
2076
2079
|
"wip_hash": {
|
|
2077
2080
|
"type": "string",
|
|
2078
|
-
"description": "
|
|
2081
|
+
"description": "SHA-256 hash (hex string) of the sale's WIP file, committed on-chain by the merchant. BUY RULE: if this is NON-EMPTY, the buyer MUST pass this exact value as wip_hash when creating an order (ServiceBuyItem.wip_hash) — NEVER use \"\". Pinning the on-chain hash prevents the merchant from replacing the WIP file (a legitimate update) between the buyer's view and order placement, ensuring 'what you see is what you get'. EMPTY means no hash was committed (TESTING ONLY, no delivery-integrity guarantee)."
|
|
2079
2082
|
}
|
|
2080
2083
|
},
|
|
2081
2084
|
"required": [
|
|
@@ -2223,11 +2226,11 @@
|
|
|
2223
2226
|
},
|
|
2224
2227
|
"rewards": {
|
|
2225
2228
|
"$ref": "#/definitions/data_service/properties/repositories",
|
|
2226
|
-
"description": "Service Reward object list."
|
|
2229
|
+
"description": "Service Reward object list. May share the Service's Permission (no conflict check — intentional: rewards are the provider's own incentive tool; only Arbitration requires a different Permission for neutrality)."
|
|
2227
2230
|
},
|
|
2228
2231
|
"arbitrations": {
|
|
2229
2232
|
"$ref": "#/definitions/data_service/properties/repositories",
|
|
2230
|
-
"description": "Service Arbitration object list."
|
|
2233
|
+
"description": "Service Arbitration object list. FORMAT: same as repositories — use the `objects` field name inside the operation data. Example: {arbitrations: [{name: 'my_arb_1'}, {name: 'my_arb_2'}]}. Each item is a NameOrAddress (object ID or local mark name). ⚠️ PERMISSION RULE (contract-enforced, service.move arbitration_add_imp): every Arbitration bound here MUST use a Permission object DIFFERENT from THIS Service's permission — binding an Arbitration that shares the Service's Permission aborts with E_ARBITRATION_PERMISSION_CONFLICT (error 33). Create a dedicated Permission for each Arbitration BEFORE binding. DESIGN RATIONALE (confirmed intentional): dispute resolution requires NEUTRALITY — an Arbitration controlled by the same Permission admins as the Service it judges would be a conflict of interest. ONLY Arbitration has this check: Reward and Treasury objects MAY share the Service's Permission (they are the provider's own tools)."
|
|
2231
2234
|
},
|
|
2232
2235
|
"machine": {
|
|
2233
2236
|
"anyOf": [
|
|
@@ -2409,10 +2412,10 @@
|
|
|
2409
2412
|
"Signer"
|
|
2410
2413
|
],
|
|
2411
2414
|
"additionalProperties": false,
|
|
2412
|
-
"description": "Current transaction signer
|
|
2415
|
+
"description": "Current transaction signer (tx_context::sender) at the time of the alloc() call. For refunds, the Order owner must call alloc_by_guard themselves to receive the funds."
|
|
2413
2416
|
}
|
|
2414
2417
|
],
|
|
2415
|
-
"description": "Recipient of this allocation. Three forms:\n• { GuardIdentifier: u8 } — resolved from Passport at
|
|
2418
|
+
"description": "Recipient of this allocation. Three forms — each resolves the address at a DIFFERENT time:\n• { GuardIdentifier: u8 } — DYNAMIC address resolved from Passport at alloc() time (contract calls passport::submission_get). 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. Use when the recipient address is not known at config time and must be supplied via Guard submission data.\n• { Entity: { name_or_address: '...' } } — FIXED address resolved via LocalMark at SDK build time (passed to contract as a literal address). Use for known recipients (e.g., 'turo_host', or a Treasury object address). Use when the recipient is a stable, known address (e.g., operator receives rent, platform fee to treasury).\n• 'Signer' — the transaction sender at the time of the alloc() call (tx_context::sender). RESOLVED AT EXECUTION TIME, not at config time. For refunds: the customer (Order owner) must call alloc_by_guard THEMSELVES so that tx_context::sender resolves to THEIR address — if the operator calls alloc_by_guard, the operator becomes the recipient (Signer = operator), NOT the customer. Use when the recipient is whoever submits the allocation transaction (e.g., customer receives refund)."
|
|
2416
2419
|
},
|
|
2417
2420
|
"sharing": {
|
|
2418
2421
|
"type": [
|
|
@@ -2463,7 +2466,7 @@
|
|
|
2463
2466
|
"type": "null"
|
|
2464
2467
|
}
|
|
2465
2468
|
],
|
|
2466
|
-
"description": "Maximum allocation cap (
|
|
2469
|
+
"description": "Maximum allocation cap (OPTIONAL — omit the field or set to null to disable the cap; do NOT set to 0 as that means a cap of zero). Passed through to the contract as Option<u64> via allocator_add(): when null/omitted the contract treats it as `none` (no cap); when set, the contract enforces it. Has THREE effects when set:\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). SDK pre-validates Amount sum <= max at build time to give actionable error messages before on-chain abort."
|
|
2467
2470
|
}
|
|
2468
2471
|
},
|
|
2469
2472
|
"required": [
|
|
@@ -2487,7 +2490,7 @@
|
|
|
2487
2490
|
"type": "null"
|
|
2488
2491
|
}
|
|
2489
2492
|
],
|
|
2490
|
-
"description": "Order fund allocator."
|
|
2493
|
+
"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 (Move service.move:503: assert!(!self.bPublished, 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 Guard table submission at allocation time (e.g., refund to customer). MULTI-CALL ALLOCATION: Allocation.alloc() can be called 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."
|
|
2491
2494
|
},
|
|
2492
2495
|
"buy_guard": {
|
|
2493
2496
|
"anyOf": [
|
|
@@ -2509,11 +2512,71 @@
|
|
|
2509
2512
|
"$ref": "#/definitions/data_service/properties/order_new/properties/buy/properties/total_pay/anyOf/1"
|
|
2510
2513
|
}
|
|
2511
2514
|
],
|
|
2512
|
-
"description": "
|
|
2515
|
+
"description": "Deposit funds into the Service compensation_fund. Used to pay indemnity when arbitration resolves in customer's favor. FORMAT: {balance: <amount_in_smallest_unit>} — the field name is 'balance' (NOT 'amount'). The token type and precision are determined by the Service object's type_parameter (the generic type set when the Service was created). For WOW (9 decimals): {balance: 1000000000} = 1 WOW. For SUI (9 decimals): {balance: 1000000000} = 1 SUI. For tokens with different decimals, adjust accordingly (e.g. USDC has 6 decimals, so {balance: 1000000} = 1 USDC). REQUIRES: Permission index 315 (SERVICE_COMPENSATION_FUND_DEPOSIT) must be granted to the calling account first. COMMON MISTAKE: using {amount: ...} or {amount: ..., type: 'WOW'} — these will fail. The correct field is 'balance'."
|
|
2513
2516
|
},
|
|
2514
|
-
"
|
|
2517
|
+
"compensation_fund_withdraw": {
|
|
2518
|
+
"type": "object",
|
|
2519
|
+
"properties": {
|
|
2520
|
+
"receipt": {
|
|
2521
|
+
"type": "object",
|
|
2522
|
+
"properties": {
|
|
2523
|
+
"name_or_address": {
|
|
2524
|
+
"$ref": "#/definitions/data_service/properties/order_new/properties/agents/properties/entities/items/properties/name_or_address"
|
|
2525
|
+
},
|
|
2526
|
+
"local_mark_first": {
|
|
2527
|
+
"$ref": "#/definitions/data_service/properties/order_new/properties/agents/properties/entities/items/properties/local_mark_first"
|
|
2528
|
+
}
|
|
2529
|
+
},
|
|
2530
|
+
"additionalProperties": false,
|
|
2531
|
+
"description": "Receipt address that will receive the withdrawn funds (as a new Payment object)"
|
|
2532
|
+
},
|
|
2533
|
+
"payment_info": {
|
|
2534
|
+
"type": "object",
|
|
2535
|
+
"properties": {
|
|
2536
|
+
"for_object": {
|
|
2537
|
+
"type": [
|
|
2538
|
+
"string",
|
|
2539
|
+
"null"
|
|
2540
|
+
],
|
|
2541
|
+
"description": "Payment for a specific object ID"
|
|
2542
|
+
},
|
|
2543
|
+
"for_guard": {
|
|
2544
|
+
"type": [
|
|
2545
|
+
"string",
|
|
2546
|
+
"null"
|
|
2547
|
+
],
|
|
2548
|
+
"description": "Payment to satisfy verification of a Guard object"
|
|
2549
|
+
},
|
|
2550
|
+
"remark": {
|
|
2551
|
+
"type": "string",
|
|
2552
|
+
"description": "Payment record remark"
|
|
2553
|
+
},
|
|
2554
|
+
"index": {
|
|
2555
|
+
"type": [
|
|
2556
|
+
"number",
|
|
2557
|
+
"string"
|
|
2558
|
+
],
|
|
2559
|
+
"description": "Payment record index"
|
|
2560
|
+
}
|
|
2561
|
+
},
|
|
2562
|
+
"required": [
|
|
2563
|
+
"remark",
|
|
2564
|
+
"index"
|
|
2565
|
+
],
|
|
2566
|
+
"additionalProperties": false,
|
|
2567
|
+
"description": "Payment info for the new Payment object created to hold the withdrawn funds"
|
|
2568
|
+
}
|
|
2569
|
+
},
|
|
2570
|
+
"required": [
|
|
2571
|
+
"receipt",
|
|
2572
|
+
"payment_info"
|
|
2573
|
+
],
|
|
2574
|
+
"additionalProperties": false,
|
|
2575
|
+
"description": "Withdraw ALL funds from the compensation_fund to a new Payment object owned by `receipt`. Move layer: service::compensation_fund_withdraw (service.move L383-390). REQUIRES: Service must be paused AND setting_lock_duration must have elapsed since pause (assert_not_published at L384-385). Withdraws the ENTIRE compensation_fund balance via balance::withdraw_all. DIFFERENT from compensation_claim (order-side, for arbitration-winning users, no pause+lock required)."
|
|
2576
|
+
},
|
|
2577
|
+
"setting_lock_duration_add": {
|
|
2515
2578
|
"type": "number",
|
|
2516
|
-
"description": "Additional lock duration
|
|
2579
|
+
"description": "Additional lock duration to ADD to 'setting_lock_duration' (Move field name). UNIT: milliseconds (ms). Example: 2592000000 = 30 days, 7776000000 = 90 days, 86400000 = 1 day. DEFAULT: 2592000000 (30 days, DEFAULT_LOCK_DURATION). This is the initial value when a Service is created. Behavior: additive (safe_add) — only increases, never decreases. Move entry: service::setting_lock_duration_add / setting_lock_duration_add_with_passport. Can be called BEFORE or AFTER publish (no publish check). Affects the waiting time required by: compensation_fund_withdraw, arbitrations remove/clear, rewards remove/clear (all require pause + setting_lock_duration elapsed since pause)."
|
|
2517
2580
|
},
|
|
2518
2581
|
"compensation_fund_receive": {
|
|
2519
2582
|
"anyOf": [
|
|
@@ -2568,7 +2631,7 @@
|
|
|
2568
2631
|
"const": "recently"
|
|
2569
2632
|
}
|
|
2570
2633
|
],
|
|
2571
|
-
"description": "Receive order compensation funds."
|
|
2634
|
+
"description": "Receive order compensation funds from this Service object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received balance.\n Use this for the common case: \"deposit all recently received coins into pending balance.\"\n Example: receive: 'recently'\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a specific balance record from a Payment/payer.\n Use this when targeting a specific received balance (advanced).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
2572
2635
|
},
|
|
2573
2636
|
"owner_receive": {
|
|
2574
2637
|
"anyOf": [
|
|
@@ -2607,7 +2670,7 @@
|
|
|
2607
2670
|
"const": "recently"
|
|
2608
2671
|
}
|
|
2609
2672
|
],
|
|
2610
|
-
"description": "Unwrap CoinWrapper objects and other objects received by this object and send them to the owner of its Permission object."
|
|
2673
|
+
"description": "Unwrap CoinWrapper objects and other objects received by this Service object and send them to the owner of its Permission object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received.\"\n Example: receive: 'recently'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::sui::SUI>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
2611
2674
|
},
|
|
2612
2675
|
"um": {
|
|
2613
2676
|
"anyOf": [
|
|
@@ -2626,7 +2689,7 @@
|
|
|
2626
2689
|
},
|
|
2627
2690
|
"publish": {
|
|
2628
2691
|
"type": "boolean",
|
|
2629
|
-
"description": "Whether to publish the Service. After publishing, customers can place orders.
|
|
2692
|
+
"description": "Whether to publish the Service. After publishing, customers can place orders. VERIFIED against Move source service.move + SDK service.ts (4-level immutability matrix):\n L1 — PERMANENTLY LOCKED after publish (assert!(!bPublished), no pause+lock exception):\n • machine (service.move L633/L653 — workflow template)\n • order_allocators (service.move L503 — fund distribution rules)\n L2 — TIME-LOCKED after publish (assert_not_published — requires pause + setting_lock_duration elapsed):\n • arbitrations remove/clear (service.move L433/L445 — dispute resolution objects)\n • rewards remove/clear (service.move L402/L414 — reward objects)\n • compensation_fund_withdraw (service.move L384-385 — withdraw ALL funds)\n L3 — REMAIN MUTABLE after publish (no SDK check, no Move check):\n • arbitrations add, rewards add (no assert — can add after publish)\n • buy_guard, sales, discount, description, location, pause, repositories,\n • compensation_fund_add, setting_lock_duration_add, customer_required, um (Contact)\nThese 2 L1-LOCKED fields (machine/order_allocators) MUST be set BEFORE publish=true.\narbitrations/rewards can be ADDED after publish but remove/clear requires pause+lock.\n\n⚠️ COMPENSATION_FUND + ARBITRATION LINKAGE (service.move:494-499):\n At publish time, if compensation_fund > 0, Arbitration MUST be bound:\n if (balance::value(&self.compensation_fund) > 0) {\n assert!(arbitration_count > 0, E_ARBITRATION_NOT_SET_WITH_COMPENSATION_FUND);\n }\n The MCP handler enforces this as a HARD PRE-CHECK: if publish=true AND compensation_fund_add is set in the same call AND arbitrations is empty, the call is REJECTED before submission. If compensation_fund was deposited in a prior call, a SOFT WARNING is issued.\n\nSCHEMA-03 / P0-01 fix — DEPLOYMENT WORKFLOW (two-phase, avoids circular dependency):\n Phase 1 — CREATE (no publish): object={name:'my-service', type_parameter, permission} + machine + order_allocators + arbitrations.\n NOTE: buy_guard can use a LocalMark NAME (not address) to break the Guard→Service circular dependency.\n The name is resolved to an address at transaction build time.\n Phase 2 — PUBLISH: object='my-service' (string ref) + publish=true.\n All L1-LOCKED fields must be set in Phase 1; Phase 2 only flips the publish flag.\n Post-publish updates: buy_guard, sales, description, repositories (add), rewards (add), arbitrations (add), etc."
|
|
2630
2693
|
}
|
|
2631
2694
|
},
|
|
2632
2695
|
"required": [
|
|
@@ -3006,7 +3069,7 @@
|
|
|
3006
3069
|
"additionalProperties": false,
|
|
3007
3070
|
"description": "Forward in Machine object"
|
|
3008
3071
|
},
|
|
3009
|
-
"description": "Forward list — operations to ENTER THIS NODE from prev_node. Example: pair {prev_node:'A', forwards:[{name:'Go'}]} means 'use Go to advance FROM A TO THIS NODE'. For initial node (prev_node=''), forwards are operations to enter this node from the start state. WARNING: forwards belong to the DESTINATION node's pair, NOT the source node. Placing a forward on the wrong pair will cause Progress to get stuck."
|
|
3072
|
+
"description": "Forward list — operations to ENTER THIS NODE from prev_node. SEMANTIC CLARIFICATION: forwards describe INCOMING transitions (how to ARRIVE at this node), NOT outgoing transitions. Think of each forward as an 'entry door' to this node. Example: pair {prev_node:'A', forwards:[{name:'Go'}]} means 'use Go to advance FROM A TO THIS NODE'. For initial node (prev_node=''), forwards are operations to enter this node from the start state. DIAGRAM: A --[Go]--> B means the pair belongs to node B (destination), with prev_node='A'. WARNING: forwards belong to the DESTINATION node's pair, NOT the source node. Placing a forward on the wrong pair will cause Progress to get stuck."
|
|
3010
3073
|
}
|
|
3011
3074
|
},
|
|
3012
3075
|
"required": [
|
|
@@ -3355,7 +3418,7 @@
|
|
|
3355
3418
|
"number",
|
|
3356
3419
|
"string"
|
|
3357
3420
|
],
|
|
3358
|
-
"description": "A coin/balance amount
|
|
3421
|
+
"description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
3359
3422
|
},
|
|
3360
3423
|
"token_type": {
|
|
3361
3424
|
"type": "string",
|
|
@@ -3402,7 +3465,7 @@
|
|
|
3402
3465
|
"const": "recently"
|
|
3403
3466
|
}
|
|
3404
3467
|
],
|
|
3405
|
-
"description": "Unwrap CoinWrapper objects and other objects received by this object and send them to the owner of its Permission object."
|
|
3468
|
+
"description": "Unwrap CoinWrapper objects and other objects received by this Machine object and send them to the owner of its Permission object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received.\"\n Example: receive: 'recently'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::sui::SUI>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
3406
3469
|
},
|
|
3407
3470
|
"um": {
|
|
3408
3471
|
"anyOf": [
|
|
@@ -3582,7 +3645,8 @@
|
|
|
3582
3645
|
"unhold",
|
|
3583
3646
|
"adminUnhold"
|
|
3584
3647
|
],
|
|
3585
|
-
"
|
|
3648
|
+
"default": "next",
|
|
3649
|
+
"description": "Operation type on the forward (CANONICAL form — prefer this). DEFAULT: 'next' when omitted. 'next' = advance the forward (accomplish); 'hold' = set hold to block the forward; 'unhold' = self-unhold, release own hold (no 224 permission needed); 'adminUnhold' = force-release hold via 224 permission (PROGRESS_UNHOLD). LEGACY ALIAS: `hold: boolean` is auto-converted to `op` — `hold:true`→`op:'hold'`, `hold:false`→`op:'next'`. New code should use `op` directly."
|
|
3586
3650
|
},
|
|
3587
3651
|
"message": {
|
|
3588
3652
|
"type": "string",
|
|
@@ -3590,11 +3654,96 @@
|
|
|
3590
3654
|
}
|
|
3591
3655
|
},
|
|
3592
3656
|
"required": [
|
|
3593
|
-
"operation"
|
|
3594
|
-
"op"
|
|
3657
|
+
"operation"
|
|
3595
3658
|
],
|
|
3596
3659
|
"additionalProperties": false,
|
|
3597
3660
|
"description": "Advance Progress object. op field selects the operation: next/hold/unhold/adminUnhold."
|
|
3661
|
+
},
|
|
3662
|
+
"owner_receive": {
|
|
3663
|
+
"anyOf": [
|
|
3664
|
+
{
|
|
3665
|
+
"type": "array",
|
|
3666
|
+
"items": {
|
|
3667
|
+
"type": "object",
|
|
3668
|
+
"properties": {
|
|
3669
|
+
"id": {
|
|
3670
|
+
"type": "string",
|
|
3671
|
+
"minLength": 1,
|
|
3672
|
+
"description": "Received object ID"
|
|
3673
|
+
},
|
|
3674
|
+
"type": {
|
|
3675
|
+
"type": "string",
|
|
3676
|
+
"minLength": 1,
|
|
3677
|
+
"description": "Object type"
|
|
3678
|
+
},
|
|
3679
|
+
"content_raw": {
|
|
3680
|
+
"description": "Raw content data"
|
|
3681
|
+
}
|
|
3682
|
+
},
|
|
3683
|
+
"required": [
|
|
3684
|
+
"id",
|
|
3685
|
+
"type"
|
|
3686
|
+
],
|
|
3687
|
+
"additionalProperties": false,
|
|
3688
|
+
"description": "Received normal object record"
|
|
3689
|
+
}
|
|
3690
|
+
},
|
|
3691
|
+
{
|
|
3692
|
+
"type": "object",
|
|
3693
|
+
"properties": {
|
|
3694
|
+
"balance": {
|
|
3695
|
+
"type": [
|
|
3696
|
+
"number",
|
|
3697
|
+
"string"
|
|
3698
|
+
],
|
|
3699
|
+
"description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
3700
|
+
},
|
|
3701
|
+
"token_type": {
|
|
3702
|
+
"type": "string",
|
|
3703
|
+
"description": "Asset type of Coin objects. Supports CoinWrapper<...> format for order receive operations."
|
|
3704
|
+
},
|
|
3705
|
+
"received": {
|
|
3706
|
+
"type": "array",
|
|
3707
|
+
"items": {
|
|
3708
|
+
"type": "object",
|
|
3709
|
+
"properties": {
|
|
3710
|
+
"id": {
|
|
3711
|
+
"type": "string",
|
|
3712
|
+
"description": "Received CoinWrapper object ID"
|
|
3713
|
+
},
|
|
3714
|
+
"balance": {
|
|
3715
|
+
"$ref": "#/definitions/data_progress/properties/owner_receive/anyOf/1/properties/balance"
|
|
3716
|
+
},
|
|
3717
|
+
"payment": {
|
|
3718
|
+
"type": "string",
|
|
3719
|
+
"description": "Payment object ID"
|
|
3720
|
+
}
|
|
3721
|
+
},
|
|
3722
|
+
"required": [
|
|
3723
|
+
"id",
|
|
3724
|
+
"balance",
|
|
3725
|
+
"payment"
|
|
3726
|
+
],
|
|
3727
|
+
"additionalProperties": false,
|
|
3728
|
+
"description": "Received CoinWrapper object record"
|
|
3729
|
+
},
|
|
3730
|
+
"description": "Received records of Coin objects"
|
|
3731
|
+
}
|
|
3732
|
+
},
|
|
3733
|
+
"required": [
|
|
3734
|
+
"balance",
|
|
3735
|
+
"token_type",
|
|
3736
|
+
"received"
|
|
3737
|
+
],
|
|
3738
|
+
"additionalProperties": false,
|
|
3739
|
+
"description": "Received record of Coin objects"
|
|
3740
|
+
},
|
|
3741
|
+
{
|
|
3742
|
+
"type": "string",
|
|
3743
|
+
"const": "recently"
|
|
3744
|
+
}
|
|
3745
|
+
],
|
|
3746
|
+
"description": "Unwrap CoinWrapper objects and other objects received by this Progress object and send them to the owner of the bound Machine's Permission object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received.\"\n Example: receive: 'recently'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::sui::SUI>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
3598
3747
|
}
|
|
3599
3748
|
},
|
|
3600
3749
|
"required": [
|
|
@@ -4538,7 +4687,7 @@
|
|
|
4538
4687
|
"number",
|
|
4539
4688
|
"string"
|
|
4540
4689
|
],
|
|
4541
|
-
"description": "A coin/balance amount
|
|
4690
|
+
"description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
4542
4691
|
},
|
|
4543
4692
|
"token_type": {
|
|
4544
4693
|
"type": "string",
|
|
@@ -4585,7 +4734,7 @@
|
|
|
4585
4734
|
"const": "recently"
|
|
4586
4735
|
}
|
|
4587
4736
|
],
|
|
4588
|
-
"description": "Unwrap CoinWrapper objects and other objects received by this object and send them to the owner of its Permission object."
|
|
4737
|
+
"description": "Unwrap CoinWrapper objects and other objects received by this Repository object and send them to the owner of its Permission object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received.\"\n Example: receive: 'recently'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::sui::SUI>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
4589
4738
|
},
|
|
4590
4739
|
"um": {
|
|
4591
4740
|
"anyOf": [
|
|
@@ -4708,7 +4857,7 @@
|
|
|
4708
4857
|
"number",
|
|
4709
4858
|
"string"
|
|
4710
4859
|
],
|
|
4711
|
-
"description": "A coin/balance amount
|
|
4860
|
+
"description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
4712
4861
|
}
|
|
4713
4862
|
},
|
|
4714
4863
|
"required": [
|
|
@@ -4731,7 +4880,7 @@
|
|
|
4731
4880
|
"additionalProperties": false
|
|
4732
4881
|
}
|
|
4733
4882
|
],
|
|
4734
|
-
"description": "Dispute processing fee."
|
|
4883
|
+
"description": "Dispute processing fee. FORMAT: {balance: <amount_in_smallest_unit>} — field name is 'balance' (NOT 'amount'). The token type and precision are determined by the Arbitration object's type_parameter (the generic type set when the Arbitration was created). For WOW (9 decimals): {balance: 50000000} = 0.05 WOW. For SUI (9 decimals): {balance: 50000000} = 0.05 SUI. For tokens with different decimals, adjust accordingly (e.g. USDC has 6 decimals, so {balance: 50000} = 0.05 USDC)."
|
|
4735
4884
|
},
|
|
4736
4885
|
"namedArb": {
|
|
4737
4886
|
"type": "object",
|
|
@@ -4750,7 +4899,7 @@
|
|
|
4750
4899
|
}
|
|
4751
4900
|
},
|
|
4752
4901
|
"additionalProperties": false,
|
|
4753
|
-
"description": "
|
|
4902
|
+
"description": "RECOMMENDED: Set a local name for the newly created Arb (arbitration case) object. Without this, the Arb is only referenceable by its on-chain address. Example: {name: 'my_dispute_v1'} allows subsequent vote/feedback operations to use 'my_dispute_v1'."
|
|
4754
4903
|
}
|
|
4755
4904
|
},
|
|
4756
4905
|
"required": [
|
|
@@ -4793,7 +4942,8 @@
|
|
|
4793
4942
|
{
|
|
4794
4943
|
"type": "null"
|
|
4795
4944
|
}
|
|
4796
|
-
]
|
|
4945
|
+
],
|
|
4946
|
+
"description": "Voting deadline as Unix timestamp in MILLISECONDS (ms). SEMANTICS OF SPECIAL VALUES: 0 = 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."
|
|
4797
4947
|
}
|
|
4798
4948
|
},
|
|
4799
4949
|
"required": [
|
|
@@ -4813,7 +4963,8 @@
|
|
|
4813
4963
|
"type": [
|
|
4814
4964
|
"number",
|
|
4815
4965
|
"null"
|
|
4816
|
-
]
|
|
4966
|
+
],
|
|
4967
|
+
"description": "New voting deadline as Unix timestamp in MILLISECONDS (ms). SEMANTICS OF SPECIAL VALUES: 0 = deadline already passed → voting is IMPOSSIBLE and the arbitrator may deliver the verdict immediately; 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."
|
|
4817
4968
|
}
|
|
4818
4969
|
},
|
|
4819
4970
|
"required": [
|
|
@@ -4835,11 +4986,12 @@
|
|
|
4835
4986
|
"type": "integer",
|
|
4836
4987
|
"minimum": 0,
|
|
4837
4988
|
"maximum": 255
|
|
4838
|
-
}
|
|
4989
|
+
},
|
|
4990
|
+
"description": "Proposition INDICES (0-based, u8) the voter agrees with — e.g. [0] votes for the first proposition. Re-voting REPLACES the voter's previous vote (old weight removed, new applied). Out-of-range index aborts with E_PROPOSITION_NOT_FOUND."
|
|
4839
4991
|
},
|
|
4840
4992
|
"voting_guard": {
|
|
4841
4993
|
"$ref": "#/definitions/data_arbitration/properties/confirm/properties/arb",
|
|
4842
|
-
"description": "
|
|
4994
|
+
"description": "Optional Voting Guard for weighted voting. THREE PATHS are supported by the SDK and Move contract: (1) voting_guard PROVIDED → vote_with_voting_guard (Guard verifies voter + determines vote weight via VoteWeight config); (2) voting_guard OMITTED but other guards trigger passport creation (e.g. env.permission_guard or usage_guard) → vote_with_passport (permission-only via passport); (3) voting_guard OMITTED and no passport context → vote (plain permission-only vote, no Guard). The Guard (when provided) must be in the Arbitration's voting_guard list."
|
|
4843
4995
|
}
|
|
4844
4996
|
},
|
|
4845
4997
|
"required": [
|
|
@@ -5178,7 +5330,7 @@
|
|
|
5178
5330
|
"const": "recently"
|
|
5179
5331
|
}
|
|
5180
5332
|
],
|
|
5181
|
-
"description": "Unwrap CoinWrapper objects and other objects received by this object and send them to the owner of its Permission object."
|
|
5333
|
+
"description": "Unwrap CoinWrapper objects and other objects received by this Arbitration object and send them to the owner of its Permission object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received.\"\n Example: receive: 'recently'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::sui::SUI>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
5182
5334
|
},
|
|
5183
5335
|
"um": {
|
|
5184
5336
|
"anyOf": [
|
|
@@ -5196,7 +5348,7 @@
|
|
|
5196
5348
|
"object"
|
|
5197
5349
|
],
|
|
5198
5350
|
"additionalProperties": false,
|
|
5199
|
-
"description": "On-chain Arbitration operations. USAGE: (1) CREATE NEW: Set 'object' field with OBJECT format {name, type_parameter, permission, ...} to create an Arbitration. NOTE:'name' goes INSIDE 'object', NOT at the data root level. 'permission' can be a new Permission object or reference an existing one - check 'object' field description for details. (2) OPERATE EXISTING: Set 'object' field with STRING format (object ID or name). The 'object' field is CRITICAL and REQUIRED in both cases. STRING for existing, OBJECT for new creation."
|
|
5351
|
+
"description": "On-chain Arbitration operations. USAGE: (1) CREATE NEW: Set 'object' field with OBJECT format {name, type_parameter, permission, ...} to create an Arbitration. NOTE:'name' goes INSIDE 'object', NOT at the data root level. 'permission' can be a new Permission object or reference an existing one - check 'object' field description for details. ⚠️ PERMISSION RULE (contract-enforced, service.move arbitration_add_imp): the Arbitration's permission MUST be DIFFERENT from the permission of any Service it will be bound to — binding an Arbitration that SHARES the Service's Permission aborts with E_ARBITRATION_PERMISSION_CONFLICT (error 33). Always create a DEDICATED Permission object for each Arbitration. (2) OPERATE EXISTING: Set 'object' field with STRING format (object ID or name). The 'object' field is CRITICAL and REQUIRED in both cases. STRING for existing, OBJECT for new creation."
|
|
5200
5352
|
},
|
|
5201
5353
|
"data_contact": {
|
|
5202
5354
|
"type": "object",
|
|
@@ -5422,7 +5574,7 @@
|
|
|
5422
5574
|
"number",
|
|
5423
5575
|
"string"
|
|
5424
5576
|
],
|
|
5425
|
-
"description": "A coin/balance amount
|
|
5577
|
+
"description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
5426
5578
|
},
|
|
5427
5579
|
"token_type": {
|
|
5428
5580
|
"type": "string",
|
|
@@ -5469,7 +5621,7 @@
|
|
|
5469
5621
|
"const": "recently"
|
|
5470
5622
|
}
|
|
5471
5623
|
],
|
|
5472
|
-
"description": "Receive objects sent to this
|
|
5624
|
+
"description": "Receive objects sent to this Contact object and unwrap them to the permission owner.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received.\"\n Example: receive: 'recently'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::sui::SUI>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
5473
5625
|
}
|
|
5474
5626
|
},
|
|
5475
5627
|
"required": [
|
|
@@ -5567,7 +5719,7 @@
|
|
|
5567
5719
|
"number",
|
|
5568
5720
|
"string"
|
|
5569
5721
|
],
|
|
5570
|
-
"description": "A coin/balance amount
|
|
5722
|
+
"description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
5571
5723
|
},
|
|
5572
5724
|
"token_type": {
|
|
5573
5725
|
"type": "string",
|
|
@@ -5614,7 +5766,7 @@
|
|
|
5614
5766
|
"const": "recently"
|
|
5615
5767
|
}
|
|
5616
5768
|
],
|
|
5617
|
-
"description": "Receive CoinWrapper objects received by
|
|
5769
|
+
"description": "Receive CoinWrapper objects received by this Treasury object and deposit them into its balance.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received balance.\n Use this for the common case: \"deposit all recently received coins into pending balance.\"\n Example: receive: 'recently'\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a specific balance record from a Payment/payer.\n Use this when targeting a specific received balance (advanced).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
5618
5770
|
},
|
|
5619
5771
|
"deposit": {
|
|
5620
5772
|
"type": "object",
|
|
@@ -6040,7 +6192,7 @@
|
|
|
6040
6192
|
"const": "recently"
|
|
6041
6193
|
}
|
|
6042
6194
|
],
|
|
6043
|
-
"description": "Unwrap CoinWrapper objects and other objects received by this object and send them to the owner of its Permission object."
|
|
6195
|
+
"description": "Unwrap CoinWrapper objects and other objects received by this Treasury object and send them to the owner of its Permission object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received.\"\n Example: receive: 'recently'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::sui::SUI>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
6044
6196
|
},
|
|
6045
6197
|
"um": {
|
|
6046
6198
|
"anyOf": [
|
|
@@ -6153,7 +6305,7 @@
|
|
|
6153
6305
|
"number",
|
|
6154
6306
|
"string"
|
|
6155
6307
|
],
|
|
6156
|
-
"description": "A coin/balance amount
|
|
6308
|
+
"description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
6157
6309
|
}
|
|
6158
6310
|
},
|
|
6159
6311
|
"required": [
|
|
@@ -6231,7 +6383,7 @@
|
|
|
6231
6383
|
"const": "recently"
|
|
6232
6384
|
}
|
|
6233
6385
|
],
|
|
6234
|
-
"description": "Unwrap CoinWrapper objects received by Reward object and store them in pending balance."
|
|
6386
|
+
"description": "Unwrap CoinWrapper objects received by Reward object and store them in pending balance.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received balance.\n Use this for the common case: \"deposit all recently received coins into pending balance.\"\n Example: receive: 'recently'\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a specific balance record from a Payment/payer.\n Use this when targeting a specific received balance (advanced).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
6235
6387
|
},
|
|
6236
6388
|
"guard_add": {
|
|
6237
6389
|
"type": "array",
|
|
@@ -6297,10 +6449,10 @@
|
|
|
6297
6449
|
"Signer"
|
|
6298
6450
|
],
|
|
6299
6451
|
"additionalProperties": false,
|
|
6300
|
-
"description": "Current transaction signer
|
|
6452
|
+
"description": "Current transaction signer (tx_context::sender) at the time of the alloc() call. For refunds, the Order owner must call alloc_by_guard themselves to receive the funds."
|
|
6301
6453
|
}
|
|
6302
6454
|
],
|
|
6303
|
-
"description": "Recipient ID. Three forms:\n - {GuardIdentifier: u8} — resolved from Passport at
|
|
6455
|
+
"description": "Recipient ID. Three forms:\n - {GuardIdentifier: u8} — DYNAMIC address resolved from Passport at alloc() time\n - {Entity: {name_or_address: 'mark_name'}} — FIXED static address via LocalMark (recommended)\n - {Signer: 'signer'} — transaction sender at alloc() time (e.g. self-refund; customer must call alloc_by_guard themselves)"
|
|
6304
6456
|
},
|
|
6305
6457
|
"amount": {
|
|
6306
6458
|
"anyOf": [
|
|
@@ -6422,7 +6574,7 @@
|
|
|
6422
6574
|
"const": "recently"
|
|
6423
6575
|
}
|
|
6424
6576
|
],
|
|
6425
|
-
"description": "Unwrap CoinWrapper objects and other objects received by this object and send them to the owner of its Permission object."
|
|
6577
|
+
"description": "Unwrap CoinWrapper objects and other objects received by this Reward object and send them to the owner of its Permission object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received.\"\n Example: receive: 'recently'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::sui::SUI>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
6426
6578
|
},
|
|
6427
6579
|
"um": {
|
|
6428
6580
|
"anyOf": [
|
|
@@ -6562,10 +6714,10 @@
|
|
|
6562
6714
|
"Signer"
|
|
6563
6715
|
],
|
|
6564
6716
|
"additionalProperties": false,
|
|
6565
|
-
"description": "Current transaction signer
|
|
6717
|
+
"description": "Current transaction signer (tx_context::sender) at the time of the alloc() call. For refunds, the Order owner must call alloc_by_guard themselves to receive the funds."
|
|
6566
6718
|
}
|
|
6567
6719
|
],
|
|
6568
|
-
"description": "Recipient of this allocation. Three forms:\n• { GuardIdentifier: u8 } — resolved from Passport at
|
|
6720
|
+
"description": "Recipient of this allocation. Three forms — each resolves the address at a DIFFERENT time:\n• { GuardIdentifier: u8 } — DYNAMIC address resolved from Passport at alloc() time (contract calls passport::submission_get). 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. Use when the recipient address is not known at config time and must be supplied via Guard submission data.\n• { Entity: { name_or_address: '...' } } — FIXED address resolved via LocalMark at SDK build time (passed to contract as a literal address). Use for known recipients (e.g., 'turo_host', or a Treasury object address). Use when the recipient is a stable, known address (e.g., operator receives rent, platform fee to treasury).\n• 'Signer' — the transaction sender at the time of the alloc() call (tx_context::sender). RESOLVED AT EXECUTION TIME, not at config time. For refunds: the customer (Order owner) must call alloc_by_guard THEMSELVES so that tx_context::sender resolves to THEIR address — if the operator calls alloc_by_guard, the operator becomes the recipient (Signer = operator), NOT the customer. Use when the recipient is whoever submits the allocation transaction (e.g., customer receives refund)."
|
|
6569
6721
|
},
|
|
6570
6722
|
"sharing": {
|
|
6571
6723
|
"type": [
|
|
@@ -6616,7 +6768,7 @@
|
|
|
6616
6768
|
"type": "null"
|
|
6617
6769
|
}
|
|
6618
6770
|
],
|
|
6619
|
-
"description": "Maximum allocation cap (
|
|
6771
|
+
"description": "Maximum allocation cap (OPTIONAL — omit the field or set to null to disable the cap; do NOT set to 0 as that means a cap of zero). Passed through to the contract as Option<u64> via allocator_add(): when null/omitted the contract treats it as `none` (no cap); when set, the contract enforces it. Has THREE effects when set:\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). SDK pre-validates Amount sum <= max at build time to give actionable error messages before on-chain abort."
|
|
6620
6772
|
}
|
|
6621
6773
|
},
|
|
6622
6774
|
"required": [
|
|
@@ -6773,11 +6925,11 @@
|
|
|
6773
6925
|
"const": "recently"
|
|
6774
6926
|
}
|
|
6775
6927
|
],
|
|
6776
|
-
"description": "Unwrap the CoinWrapper objects received by the Allocation object and deposit them into the pending allocation balance"
|
|
6928
|
+
"description": "Unwrap the CoinWrapper objects received by the Allocation object and deposit them into the pending allocation balance.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received balance.\n Use this for the common case: \"deposit all recently received coins into pending balance.\"\n Example: receive: 'recently'\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a specific balance record from a Payment/payer.\n Use this when targeting a specific received balance (advanced).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
6777
6929
|
},
|
|
6778
6930
|
"alloc_by_guard": {
|
|
6779
6931
|
"$ref": "#/definitions/data_allocation/anyOf/0/properties/allocators/properties/allocators/items/properties/sharing/items/properties/who/anyOf/1/properties/Entity/properties/name_or_address",
|
|
6780
|
-
"description": "Verify the specified Guard and execute the corresponding fund allocation"
|
|
6932
|
+
"description": "Verify the specified Guard and execute the corresponding fund allocation. POST-ALLOCATION CLAIM (required step): each recipient receives a CoinWrapper object (NOT spendable coins). Recipient address resolution (allocation.move): Entity recipients receive it at the Entity's address; Signer recipients receive it at the transaction sender's address; GuardIdentifier n recipients receive it at the ADDRESS SUBMITTED for identifier n in this call's submission (resolved via passport::submission_get) — conventionally the Order OBJECT address (escrow pattern), in which case the order owner claims it via operation_type='order' {object:'<order_id>', receive:'recently'}. Claim paths by holder: EOA wallet → operation_type='payment' RECEIVE mode {object:'<coinwrapper_id>', receive:true, type_parameter:'0x2::wow::WOW'}; Order object → order receive; Treasury object → treasury receive. Find pending CoinWrappers via query_toolkit query_type='onchain_received'. Verify the distribution via the immutable Payment object created by this call (allocation.payment array)."
|
|
6781
6933
|
}
|
|
6782
6934
|
},
|
|
6783
6935
|
"required": [
|
|
@@ -7240,7 +7392,7 @@
|
|
|
7240
7392
|
"number",
|
|
7241
7393
|
"string"
|
|
7242
7394
|
],
|
|
7243
|
-
"description": "A coin/balance amount
|
|
7395
|
+
"description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
7244
7396
|
},
|
|
7245
7397
|
"token_type": {
|
|
7246
7398
|
"type": "string",
|
|
@@ -7287,7 +7439,7 @@
|
|
|
7287
7439
|
"const": "recently"
|
|
7288
7440
|
}
|
|
7289
7441
|
],
|
|
7290
|
-
"description": "Unwrap CoinWrapper objects and other objects received by this object and send them to the builder(owner)."
|
|
7442
|
+
"description": "Unwrap CoinWrapper objects and other objects received by this Permission object and send them to the builder(owner).\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received.\"\n Example: receive: 'recently'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::sui::SUI>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
7291
7443
|
},
|
|
7292
7444
|
"um": {
|
|
7293
7445
|
"anyOf": [
|
|
@@ -7368,7 +7520,7 @@
|
|
|
7368
7520
|
},
|
|
7369
7521
|
"b_submission": {
|
|
7370
7522
|
"type": "boolean",
|
|
7371
|
-
"description": "Whether user
|
|
7523
|
+
"description": "Whether this table item's value is submitted dynamically at Guard trigger time (alloc_by_guard call). \n\ntrue = value is submitted by the caller when triggering the Guard. Use for runtime-context-dependent values like order address, user address. The 'value' field is ignored when b_submission=true; the caller must provide it via submissions[]. \n\nfalse = value is static, set at Guard creation time. Use for values known when the Guard is created: expected node names, expected merchant address, expected service address. The 'value' field must be populated and will be stored on-chain permanently. \n\nRule of thumb: if the value is the SAME for all future Guard triggers, use false. If the value DIFFERS per trigger (e.g., which order to release funds for), use true."
|
|
7372
7524
|
},
|
|
7373
7525
|
"value_type": {
|
|
7374
7526
|
"anyOf": [
|
|
@@ -8533,6 +8685,42 @@
|
|
|
8533
8685
|
"additionalProperties": false,
|
|
8534
8686
|
"description": "PUBLIC: Clear ALL tags from specified on-chain identity marks."
|
|
8535
8687
|
},
|
|
8688
|
+
{
|
|
8689
|
+
"type": "object",
|
|
8690
|
+
"properties": {
|
|
8691
|
+
"op": {
|
|
8692
|
+
"type": "string",
|
|
8693
|
+
"const": "like"
|
|
8694
|
+
},
|
|
8695
|
+
"address": {
|
|
8696
|
+
"$ref": "#/definitions/data_personal/properties/mark/anyOf/0/properties/data/items/properties/address"
|
|
8697
|
+
}
|
|
8698
|
+
},
|
|
8699
|
+
"required": [
|
|
8700
|
+
"op",
|
|
8701
|
+
"address"
|
|
8702
|
+
],
|
|
8703
|
+
"additionalProperties": false,
|
|
8704
|
+
"description": "PUBLIC REPUTATION VOTE: Like an address (0x...) or LocalMark name. Goes through registrar::like — toggles off if already liked, auto-flips an existing dislike, and increments the target's PUBLIC aggregate like count (queryable via query personal / Guard entity_voted_record). Do NOT emulate with mark.add tags:['like'] — manual tags stay private in your Resource and never affect the aggregate count."
|
|
8705
|
+
},
|
|
8706
|
+
{
|
|
8707
|
+
"type": "object",
|
|
8708
|
+
"properties": {
|
|
8709
|
+
"op": {
|
|
8710
|
+
"type": "string",
|
|
8711
|
+
"const": "dislike"
|
|
8712
|
+
},
|
|
8713
|
+
"address": {
|
|
8714
|
+
"$ref": "#/definitions/data_personal/properties/mark/anyOf/0/properties/data/items/properties/address"
|
|
8715
|
+
}
|
|
8716
|
+
},
|
|
8717
|
+
"required": [
|
|
8718
|
+
"op",
|
|
8719
|
+
"address"
|
|
8720
|
+
],
|
|
8721
|
+
"additionalProperties": false,
|
|
8722
|
+
"description": "PUBLIC REPUTATION VOTE: Dislike an address (0x...) or LocalMark name. Goes through registrar::dislike — toggles off if already disliked, auto-flips an existing like, and increments the target's PUBLIC aggregate dislike count. Same manual-tag caveat as 'like'."
|
|
8723
|
+
},
|
|
8536
8724
|
{
|
|
8537
8725
|
"type": "object",
|
|
8538
8726
|
"properties": {
|
|
@@ -8656,7 +8844,7 @@
|
|
|
8656
8844
|
"number",
|
|
8657
8845
|
"string"
|
|
8658
8846
|
],
|
|
8659
|
-
"description": "A coin/balance amount
|
|
8847
|
+
"description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
8660
8848
|
}
|
|
8661
8849
|
},
|
|
8662
8850
|
"required": [
|
|
@@ -9108,7 +9296,7 @@
|
|
|
9108
9296
|
"number",
|
|
9109
9297
|
"string"
|
|
9110
9298
|
],
|
|
9111
|
-
"description": "A coin/balance amount
|
|
9299
|
+
"description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
9112
9300
|
},
|
|
9113
9301
|
"token_type": {
|
|
9114
9302
|
"type": "string",
|
|
@@ -9155,7 +9343,7 @@
|
|
|
9155
9343
|
"const": "recently"
|
|
9156
9344
|
}
|
|
9157
9345
|
],
|
|
9158
|
-
"description": "Unwrap CoinWrapper objects and other objects received by this object and send them to the owner of its Permission object."
|
|
9346
|
+
"description": "Unwrap CoinWrapper objects and other objects received by this Demand object and send them to the owner of its Permission object.\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received.\"\n Example: receive: 'recently'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::sui::SUI>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
9159
9347
|
},
|
|
9160
9348
|
"um": {
|
|
9161
9349
|
"anyOf": [
|
|
@@ -9255,7 +9443,8 @@
|
|
|
9255
9443
|
"unhold",
|
|
9256
9444
|
"adminUnhold"
|
|
9257
9445
|
],
|
|
9258
|
-
"
|
|
9446
|
+
"default": "next",
|
|
9447
|
+
"description": "Operation type on the forward (CANONICAL form — prefer this). DEFAULT: 'next' when omitted. 'next' = advance the forward (accomplish); 'hold' = set hold to block the forward; 'unhold' = self-unhold, release own hold (no 224 permission needed); 'adminUnhold' = force-release hold via 224 permission (PROGRESS_UNHOLD). LEGACY ALIAS: `hold: boolean` is auto-converted to `op` — `hold:true`→`op:'hold'`, `hold:false`→`op:'next'`. New code should use `op` directly."
|
|
9259
9448
|
},
|
|
9260
9449
|
"message": {
|
|
9261
9450
|
"type": "string",
|
|
@@ -9263,8 +9452,7 @@
|
|
|
9263
9452
|
}
|
|
9264
9453
|
},
|
|
9265
9454
|
"required": [
|
|
9266
|
-
"operation"
|
|
9267
|
-
"op"
|
|
9455
|
+
"operation"
|
|
9268
9456
|
],
|
|
9269
9457
|
"additionalProperties": false,
|
|
9270
9458
|
"description": "Advance order process"
|
|
@@ -9369,7 +9557,7 @@
|
|
|
9369
9557
|
"number",
|
|
9370
9558
|
"string"
|
|
9371
9559
|
],
|
|
9372
|
-
"description": "A coin/balance amount
|
|
9560
|
+
"description": "A coin/balance amount. Accepts three formats: (1) DISPLAY FORMAT with token symbol: \"2.5WOW\", \"10USDC\", \"0.05SUI\" — auto-converted to smallest units via the Fund Processing Layer (token precision resolved from official registry → cache → on-chain). The symbol MUST match the token's type_parameter. (2) SMALLEST UNIT (numeric string): \"10000000000\" — used as-is, no conversion. (3) SMALLEST UNIT (number): 10000000000 — used as-is (loses precision above 2^53). PRECISION RULE: for values exceeding 2^53, ALWAYS use format (1) or (2) — JS numbers lose precision. Default token: WOW (9 decimals, 1 WOW = 10^9 MIST). For custom tokens: use display format with the token's symbol, or pass smallest units directly. MONEY CONFIRMATION: all monetary fields trigger user confirmation via the Fund Processing Layer. If multiple tokens share a symbol (ambiguity), specify the full type string in type_parameter. Examples: \"2.5WOW\" (display → 2500000000), 10000000000 (number, smallest unit), \"50000000000\" (string, smallest unit). Used for: Service.sale.price, Service.compensation_fund_add balance, Treasury.deposit, Arbitration.fee, Reward.amount, stock quantities."
|
|
9373
9561
|
},
|
|
9374
9562
|
"token_type": {
|
|
9375
9563
|
"type": "string",
|
|
@@ -9416,7 +9604,7 @@
|
|
|
9416
9604
|
"const": "recently"
|
|
9417
9605
|
}
|
|
9418
9606
|
],
|
|
9419
|
-
"description": "Unwrap CoinWrapper objects or other objects received by the order and transfer them to the order owner.
|
|
9607
|
+
"description": "Unwrap CoinWrapper objects or other objects received by the order and transfer them to the order owner. Consistent with `owner_receive` on other objects (arbitration/contact/demand/machine/permission/repository/reward/service/treasury).\n\nACCEPTED FORMATS (F-06 unified receive operation block):\n• 'recently' (string literal) — auto-query and receive ALL recently received objects.\n Use this for the common case: \"withdraw everything the object has received.\"\n Example: receive: 'recently'\n• ReceivedNormal[] (array) — explicit list of received objects to unwrap.\n Use this when you want to receive specific objects only (not all).\n Example: receive: [{id: '0xobj1', type: '0x2::coin::Coin<0x2::sui::SUI>'}]\n• ReceivedBalance ({token_type, balance, received: [{id, balance, payment}]}) —\n receive a balance record from a specific Payment/payer.\n Use this for precise balance targeting (advanced — usually after querying\n the object's received history via query_received).\n Example: receive: {token_type: '0x2::sui::SUI', balance: 1000000, received: [{id: '0xrec1', balance: 1000000, payment: '0xpay1'}]}\nANTI-PATTERN: do NOT wrap in {result: ...} — pass the value directly."
|
|
9420
9608
|
},
|
|
9421
9609
|
"transfer_to": {
|
|
9422
9610
|
"$ref": "#/definitions/data_order/properties/agent/properties/entities/items",
|
|
@@ -9500,7 +9688,7 @@
|
|
|
9500
9688
|
},
|
|
9501
9689
|
"b_submission": {
|
|
9502
9690
|
"type": "boolean",
|
|
9503
|
-
"description": "Whether user
|
|
9691
|
+
"description": "Whether this table item's value is submitted dynamically at Guard trigger time (alloc_by_guard call). \n\ntrue = value is submitted by the caller when triggering the Guard. Use for runtime-context-dependent values like order address, user address. The 'value' field is ignored when b_submission=true; the caller must provide it via submissions[]. \n\nfalse = value is static, set at Guard creation time. Use for values known when the Guard is created: expected node names, expected merchant address, expected service address. The 'value' field must be populated and will be stored on-chain permanently. \n\nRule of thumb: if the value is the SAME for all future Guard triggers, use false. If the value DIFFERS per trigger (e.g., which order to release funds for), use true."
|
|
9504
9692
|
},
|
|
9505
9693
|
"value_type": {
|
|
9506
9694
|
"anyOf": [
|
|
@@ -10011,6 +10199,7 @@
|
|
|
10011
10199
|
},
|
|
10012
10200
|
"schema_strict_mode": {
|
|
10013
10201
|
"type": "boolean",
|
|
10202
|
+
"default": false,
|
|
10014
10203
|
"description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
|
|
10015
10204
|
},
|
|
10016
10205
|
"dry_run": {
|
|
@@ -10242,6 +10431,7 @@
|
|
|
10242
10431
|
},
|
|
10243
10432
|
"schema_strict_mode": {
|
|
10244
10433
|
"type": "boolean",
|
|
10434
|
+
"default": false,
|
|
10245
10435
|
"description": "When true, schema incompatibility returns an error instead of a warning. Default: false (warn mode)."
|
|
10246
10436
|
},
|
|
10247
10437
|
"dry_run": {
|