{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "ExecuteMsg", "description": "This overrides the ExecuteMsg enum defined in cw721-base", "oneOf": [ { "description": "Mint a new NFT for the message sender with the given set of coordinates and signature from the recaptcha verifier lambda function.", "type": "object", "required": [ "mint" ], "properties": { "mint": { "type": "object", "required": [ "captcha_signature", "coordinates" ], "properties": { "captcha_signature": { "type": "string" }, "coordinates": { "$ref": "#/definitions/Coordinates" } } } }, "additionalProperties": false }, { "description": "Move an existing NFT to the given set of coordinates.", "type": "object", "required": [ "move" ], "properties": { "move": { "type": "object", "required": [ "coordinates", "token_id" ], "properties": { "coordinates": { "$ref": "#/definitions/Coordinates" }, "token_id": { "type": "string" } } } }, "additionalProperties": false }, { "description": "Update token minting and supply configuration.", "type": "object", "required": [ "update_config" ], "properties": { "update_config": { "type": "object", "required": [ "config" ], "properties": { "config": { "$ref": "#/definitions/Config" } } } }, "additionalProperties": false }, { "description": "Update public key used for captcha verification.", "type": "object", "required": [ "update_captcha_public_key" ], "properties": { "update_captcha_public_key": { "type": "object", "required": [ "public_key" ], "properties": { "public_key": { "type": "string" } } } }, "additionalProperties": false }, { "description": "Withdraw from current contract balance to owner address.", "type": "object", "required": [ "withdraw" ], "properties": { "withdraw": { "type": "object", "required": [ "amount" ], "properties": { "amount": { "type": "array", "items": { "$ref": "#/definitions/Coin" } } } } }, "additionalProperties": false }, { "description": "BELOW ARE COPIED FROM CW721-BASE", "type": "object", "required": [ "transfer_nft" ], "properties": { "transfer_nft": { "type": "object", "required": [ "recipient", "token_id" ], "properties": { "recipient": { "type": "string" }, "token_id": { "type": "string" } } } }, "additionalProperties": false }, { "type": "object", "required": [ "send_nft" ], "properties": { "send_nft": { "type": "object", "required": [ "contract", "msg", "token_id" ], "properties": { "contract": { "type": "string" }, "msg": { "$ref": "#/definitions/Binary" }, "token_id": { "type": "string" } } } }, "additionalProperties": false }, { "type": "object", "required": [ "approve" ], "properties": { "approve": { "type": "object", "required": [ "spender", "token_id" ], "properties": { "expires": { "anyOf": [ { "$ref": "#/definitions/Expiration" }, { "type": "null" } ] }, "spender": { "type": "string" }, "token_id": { "type": "string" } } } }, "additionalProperties": false }, { "type": "object", "required": [ "revoke" ], "properties": { "revoke": { "type": "object", "required": [ "spender", "token_id" ], "properties": { "spender": { "type": "string" }, "token_id": { "type": "string" } } } }, "additionalProperties": false }, { "type": "object", "required": [ "approve_all" ], "properties": { "approve_all": { "type": "object", "required": [ "operator" ], "properties": { "expires": { "anyOf": [ { "$ref": "#/definitions/Expiration" }, { "type": "null" } ] }, "operator": { "type": "string" } } } }, "additionalProperties": false }, { "type": "object", "required": [ "revoke_all" ], "properties": { "revoke_all": { "type": "object", "required": [ "operator" ], "properties": { "operator": { "type": "string" } } } }, "additionalProperties": false } ], "definitions": { "Binary": { "description": "Binary is a wrapper around Vec to add base64 de/serialization with serde. It also adds some helper methods to help encode inline.\n\nThis is only needed as serde-json-{core,wasm} has a horrible encoding for Vec", "type": "string" }, "Coin": { "type": "object", "required": [ "amount", "denom" ], "properties": { "amount": { "$ref": "#/definitions/Uint128" }, "denom": { "type": "string" } } }, "Config": { "type": "object", "required": [ "base_move_fee", "base_move_nanos", "max_coordinate_value", "mint_fee", "move_fee_per_step", "move_nanos_per_step", "public_minting_enabled", "token_supply", "wallet_limit" ], "properties": { "base_move_fee": { "description": "The base fee to initiate a move. To get overall move fee: base_move_fee.amount + move_fee_per_step * distance", "allOf": [ { "$ref": "#/definitions/Coin" } ] }, "base_move_nanos": { "description": "The time it takes to initiate a move. To get overall move time: base_move_nanos + move_nanos_per_step * distance", "type": "integer", "format": "uint64", "minimum": 0.0 }, "max_coordinate_value": { "description": "The maximum value of a coordinate in any dimension. The minimum will be set to the negation of this value.", "type": "integer", "format": "int64" }, "mint_fee": { "description": "The price to mint a new xyz (doesn't apply to the contract owner)", "allOf": [ { "$ref": "#/definitions/Coin" } ] }, "move_fee_per_step": { "description": "The increase in move fee price per marginal step taken, where a step is a one-dimensional coordinate increment or decrement. Assumed to be in the denom associated with base_move_fee.", "allOf": [ { "$ref": "#/definitions/Uint128" } ] }, "move_nanos_per_step": { "description": "The move travel time per marginal step taken, where a step is a one-dimensional coordinate increment or decrement.", "type": "integer", "format": "uint64", "minimum": 0.0 }, "public_minting_enabled": { "description": "If true, then anyone can mint an xyz token. If false, then only the contract owner is authorized to mint.", "type": "boolean" }, "token_supply": { "description": "The maximum allowed number of xyz tokens", "type": "integer", "format": "uint64", "minimum": 0.0 }, "wallet_limit": { "description": "The maximum number of tokens a particular wallet can hold", "type": "integer", "format": "uint32", "minimum": 0.0 } } }, "Coordinates": { "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "integer", "format": "int64" }, "y": { "type": "integer", "format": "int64" }, "z": { "type": "integer", "format": "int64" } } }, "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 } ] }, "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" } ] }, "Uint128": { "description": "A thin wrapper around u128 that is using strings for JSON encoding/decoding, such that the full u128 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 `u128` to get the value out:\n\n``` # use cosmwasm_std::Uint128; let a = Uint128::from(123u128); assert_eq!(a.u128(), 123);\n\nlet b = Uint128::from(42u64); assert_eq!(b.u128(), 42);\n\nlet c = Uint128::from(70u32); assert_eq!(c.u128(), 70); ```", "type": "string" }, "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" } } }