{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "ExecuteMsg", "description": "Execute messages for agent contract", "oneOf": [ { "description": "Adds an agent address to the internal whitelist", "type": "object", "required": [ "add_agent_to_whitelist" ], "properties": { "add_agent_to_whitelist": { "type": "object", "required": [ "agent_address" ], "properties": { "agent_address": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "description": "Removes an agent from the whitelist Note: this does not kick the agent, but instead means they will not be able to re-register", "type": "object", "required": [ "remove_agent_from_whitelist" ], "properties": { "remove_agent_from_whitelist": { "type": "object", "required": [ "agent_address" ], "properties": { "agent_address": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "description": "Action registers new agent", "type": "object", "required": [ "register_agent" ], "properties": { "register_agent": { "type": "object", "properties": { "payable_account_id": { "type": [ "string", "null" ] } }, "additionalProperties": false } }, "additionalProperties": false }, { "description": "Action for updating agents", "type": "object", "required": [ "update_agent" ], "properties": { "update_agent": { "type": "object", "required": [ "payable_account_id" ], "properties": { "payable_account_id": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "description": "Action moves agent from pending to active list", "type": "object", "required": [ "check_in_agent" ], "properties": { "check_in_agent": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "description": "Actions for removing agent from the system", "type": "object", "required": [ "unregister_agent" ], "properties": { "unregister_agent": { "type": "object", "properties": { "from_behind": { "type": [ "boolean", "null" ] } }, "additionalProperties": false } }, "additionalProperties": false }, { "description": "Task contract will send message when task is created", "type": "object", "required": [ "on_task_created" ], "properties": { "on_task_created": { "$ref": "#/definitions/AgentOnTaskCreated" } }, "additionalProperties": false }, { "description": "Task contract will send message when task is completed", "type": "object", "required": [ "on_task_completed" ], "properties": { "on_task_completed": { "$ref": "#/definitions/AgentOnTaskCompleted" } }, "additionalProperties": false }, { "description": "Action for updating agent contract configuration", "type": "object", "required": [ "update_config" ], "properties": { "update_config": { "type": "object", "required": [ "config" ], "properties": { "config": { "$ref": "#/definitions/UpdateConfig" } }, "additionalProperties": false } }, "additionalProperties": false }, { "description": "Tick action will remove unactive agents periodically or do and any other internal cron tasks", "type": "object", "required": [ "tick" ], "properties": { "tick": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "description": "Pauses all operations for this contract, can only be done by pause_admin", "type": "object", "required": [ "pause_contract" ], "properties": { "pause_contract": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "description": "unpauses all operations for this contract, can only be unpaused by owner_addr", "type": "object", "required": [ "unpause_contract" ], "properties": { "unpause_contract": { "type": "object", "additionalProperties": false } }, "additionalProperties": false } ], "definitions": { "Addr": { "description": "A human readable address.\n\nIn Cosmos, this is typically bech32 encoded. But for multi-chain smart contracts no assumptions should be made other than being UTF-8 encoded and of reasonable length.\n\nThis type represents a validated address. It can be created in the following ways 1. Use `Addr::unchecked(input)` 2. Use `let checked: Addr = deps.api.addr_validate(input)?` 3. Use `let checked: Addr = deps.api.addr_humanize(canonical_addr)?` 4. Deserialize from JSON. This must only be done from JSON that was validated before such as a contract's state. `Addr` must not be used in messages sent by the user because this would result in unvalidated instances.\n\nThis type is immutable. If you really need to mutate it (Really? Are you sure?), create a mutable copy using `let mut mutable = Addr::to_string()` and operate on that `String` instance.", "type": "string" }, "AgentOnTaskCompleted": { "type": "object", "required": [ "agent_id", "is_block_slot_task" ], "properties": { "agent_id": { "$ref": "#/definitions/Addr" }, "is_block_slot_task": { "type": "boolean" } }, "additionalProperties": false }, "AgentOnTaskCreated": { "type": "object", "additionalProperties": false }, "UpdateConfig": { "description": "Updatable agents contract configuration", "type": "object", "properties": { "agent_nomination_duration": { "description": "Duration to be passed before next agent nomination", "type": [ "integer", "null" ], "format": "uint16", "minimum": 0.0 }, "agents_eject_threshold": { "description": "How many slots an agent can miss before being removed from the active queue", "type": [ "integer", "null" ], "format": "uint64", "minimum": 0.0 }, "croncat_manager_key": { "description": "Name of the key for raw querying Manager address from the factory", "type": [ "array", "null" ], "items": [ { "type": "string" }, { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } ], "maxItems": 2, "minItems": 2 }, "croncat_tasks_key": { "description": "Name of the key for raw querying Tasks address from the factory", "type": [ "array", "null" ], "items": [ { "type": "string" }, { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } ], "maxItems": 2, "minItems": 2 }, "min_active_agent_count": { "description": "Minimum agent count in active queue to be untouched by bad agent verifier", "type": [ "integer", "null" ], "format": "uint16", "minimum": 0.0 }, "min_coins_for_agent_registration": { "description": "Minimum funds to be attached for agent registration", "type": [ "integer", "null" ], "format": "uint64", "minimum": 0.0 }, "min_tasks_per_agent": { "description": "Minimum tasks count to be reached by agent before next agent nomination", "type": [ "integer", "null" ], "format": "uint64", "minimum": 0.0 }, "public_registration": { "description": "Determines whether agent registration is public or uses the whitelist (APPROVED_AGENTS Map)", "type": [ "boolean", "null" ] } }, "additionalProperties": false } } }