{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Config", "type": "object", "required": [ "chain_name", "croncat_agents_key", "croncat_factory_addr", "croncat_manager_key", "gas_action_fee", "gas_base_fee", "gas_limit", "gas_query_fee", "owner_addr", "pause_admin", "slot_granularity_time", "version" ], "properties": { "chain_name": { "description": "Chain name to add prefix to the task_hash", "type": "string" }, "croncat_agents_key": { "description": "Name of the key for raw querying Agents address from the factory", "type": "array", "items": [ { "type": "string" }, { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } ], "maxItems": 2, "minItems": 2 }, "croncat_factory_addr": { "description": "Address of the factory contract", "allOf": [ { "$ref": "#/definitions/Addr" } ] }, "croncat_manager_key": { "description": "Name of the key for raw querying Manager address from the factory", "type": "array", "items": [ { "type": "string" }, { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } ], "maxItems": 2, "minItems": 2 }, "gas_action_fee": { "description": "Gas needed to cover single non-wasm task's Action", "type": "integer", "format": "uint64", "minimum": 0.0 }, "gas_base_fee": { "description": "Gas needed to cover proxy call without any action", "type": "integer", "format": "uint64", "minimum": 0.0 }, "gas_limit": { "description": "Gas limit, to make sure task won't lock contract", "type": "integer", "format": "uint64", "minimum": 0.0 }, "gas_query_fee": { "description": "Gas needed to cover single query", "type": "integer", "format": "uint64", "minimum": 0.0 }, "owner_addr": { "description": "Address of the contract owner", "allOf": [ { "$ref": "#/definitions/Addr" } ] }, "pause_admin": { "description": "A multisig admin whose sole responsibility is to pause the contract in event of emergency. Must be a different contract address than DAO, cannot be a regular keypair Does not have the ability to unpause, must rely on the DAO to assess the situation and act accordingly", "allOf": [ { "$ref": "#/definitions/Addr" } ] }, "slot_granularity_time": { "description": "Time in nanos for each bucket of tasks", "type": "integer", "format": "uint64", "minimum": 0.0 }, "version": { "description": "Assigned by Factory, denotes the version of this contract (CW2 spec) & used as the task verion as well.", "type": "string" } }, "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" } } }