{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "DumpStateResponse", "description": "Relevant state for the governance module. Returned by the `DumpState` query.", "type": "object", "required": [ "admin", "config", "pause_info", "proposal_modules", "version", "voting_module" ], "properties": { "admin": { "description": "Optional DAO Admin", "allOf": [ { "$ref": "#/definitions/Addr" } ] }, "config": { "description": "The governance contract's config.", "allOf": [ { "$ref": "#/definitions/Config" } ] }, "pause_info": { "$ref": "#/definitions/PauseInfoResponse" }, "proposal_modules": { "description": "The governance modules associated with the governance contract.", "type": "array", "items": { "$ref": "#/definitions/Addr" } }, "version": { "description": "The governance contract's version.", "allOf": [ { "$ref": "#/definitions/ContractVersion" } ] }, "voting_module": { "description": "The voting module associated with the governance contract.", "allOf": [ { "$ref": "#/definitions/Addr" } ] } }, "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" }, "Config": { "type": "object", "required": [ "automatically_add_cw20s", "automatically_add_cw721s", "description", "name" ], "properties": { "automatically_add_cw20s": { "description": "If true the contract will automatically add received cw20 tokens to its treasury.", "type": "boolean" }, "automatically_add_cw721s": { "description": "If true the contract will automatically add received cw721 tokens to its treasury.", "type": "boolean" }, "description": { "description": "A description of the contract.", "type": "string" }, "image_url": { "description": "An optional image URL for displaying alongside the contract.", "type": [ "string", "null" ] }, "name": { "description": "The name of the contract.", "type": "string" } } }, "ContractVersion": { "type": "object", "required": [ "contract", "version" ], "properties": { "contract": { "description": "contract is the crate name of the implementing contract, eg. `crate:cw20-base` we will use other prefixes for other languages, and their standard global namespacing", "type": "string" }, "version": { "description": "version is any string that this implementation knows. It may be simple counter \"1\", \"2\". or semantic version on release tags \"v0.7.0\", or some custom feature flag list. the only code that needs to understand the version parsing is code that knows how to migrate from the given contract (and is tied to it's implementation somehow)", "type": "string" } } }, "Expiration": { "description": "Expiration represents a point in time when some event happens. It can compare with a BlockInfo and will return is_expired() == true once the condition is hit (and for every block in the future)", "oneOf": [ { "description": "AtHeight will expire when `env.block.height` >= height", "type": "object", "required": [ "at_height" ], "properties": { "at_height": { "type": "integer", "format": "uint64", "minimum": 0.0 } }, "additionalProperties": false }, { "description": "AtTime will expire when `env.block.time` >= time", "type": "object", "required": [ "at_time" ], "properties": { "at_time": { "$ref": "#/definitions/Timestamp" } }, "additionalProperties": false }, { "description": "Never will never expire. Used to express the empty variant", "type": "object", "required": [ "never" ], "properties": { "never": { "type": "object" } }, "additionalProperties": false } ] }, "PauseInfoResponse": { "description": "Information about if the contract is currently paused.", "oneOf": [ { "type": "object", "required": [ "Paused" ], "properties": { "Paused": { "type": "object", "required": [ "expiration" ], "properties": { "expiration": { "$ref": "#/definitions/Expiration" } } } }, "additionalProperties": false }, { "type": "object", "required": [ "Unpaused" ], "properties": { "Unpaused": { "type": "object" } }, "additionalProperties": false } ] }, "Timestamp": { "description": "A point in time in nanosecond precision.\n\nThis type can represent times from 1970-01-01T00:00:00Z to 2554-07-21T23:34:33Z.\n\n## Examples\n\n``` # use cosmwasm_std::Timestamp; let ts = Timestamp::from_nanos(1_000_000_202); assert_eq!(ts.nanos(), 1_000_000_202); assert_eq!(ts.seconds(), 1); assert_eq!(ts.subsec_nanos(), 202);\n\nlet ts = ts.plus_seconds(2); assert_eq!(ts.nanos(), 3_000_000_202); assert_eq!(ts.seconds(), 3); assert_eq!(ts.subsec_nanos(), 202); ```", "allOf": [ { "$ref": "#/definitions/Uint64" } ] }, "Uint64": { "description": "A thin wrapper around u64 that is using strings for JSON encoding/decoding, such that the full u64 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u64` to get the value out:\n\n``` # use cosmwasm_std::Uint64; let a = Uint64::from(42u64); assert_eq!(a.u64(), 42);\n\nlet b = Uint64::from(70u32); assert_eq!(b.u64(), 70); ```", "type": "string" } } }