{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "ExecuteMsg", "oneOf": [ { "description": "Transfer is a base message to move a token to another account without triggering actions", "type": "object", "required": [ "transfer_nft" ], "properties": { "transfer_nft": { "type": "object", "required": [ "recipient", "token_id" ], "properties": { "recipient": { "type": "string" }, "token_id": { "type": "integer", "format": "uint64", "minimum": 0.0 } } } }, "additionalProperties": false }, { "description": "Send is a base message to transfer a token to a contract and trigger an action on the receiving contract.", "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": "integer", "format": "uint64", "minimum": 0.0 } } } }, "additionalProperties": false }, { "description": "Allows operator to transfer / send the token from the owner's account. If expiration is set, then this allowance has a time/height limit", "type": "object", "required": [ "approve" ], "properties": { "approve": { "type": "object", "required": [ "operator", "token_id" ], "properties": { "expires": { "anyOf": [ { "$ref": "#/definitions/Expiration" }, { "type": "null" } ] }, "operator": { "type": "string" }, "token_id": { "type": "integer", "format": "uint64", "minimum": 0.0 } } } }, "additionalProperties": false }, { "description": "Remove previously granted Approval", "type": "object", "required": [ "revoke" ], "properties": { "revoke": { "type": "object", "required": [ "operator", "token_id" ], "properties": { "operator": { "type": "string" }, "token_id": { "type": "integer", "format": "uint64", "minimum": 0.0 } } } }, "additionalProperties": false }, { "description": "Allows operator to transfer / send any token from the owner's account. If expiration is set, then this allowance has a time/height limit", "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 }, { "description": "Remove previously granted ApproveAll permission", "type": "object", "required": [ "revoke_all" ], "properties": { "revoke_all": { "type": "object", "required": [ "operator" ], "properties": { "operator": { "type": "string" } } } }, "additionalProperties": false }, { "description": "Mint a new token with the details as in MintMsg.", "type": "object", "required": [ "mint" ], "properties": { "mint": { "$ref": "#/definitions/MintMsg" } }, "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" } } }, "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 } ] }, "MintMsg": { "type": "object", "required": [ "owner", "price" ], "properties": { "owner": { "description": "The owner of the newly minter NFT", "type": "string" }, "price": { "description": "Price of the token", "type": "array", "items": { "$ref": "#/definitions/Coin" } }, "token_uri": { "description": "Universal resource identifier for this NFT Should point to a JSON file that conforms to the ERC721 Metadata JSON Schema", "type": [ "string", "null" ] } } }, "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" } } }