{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "ExecuteMsg",
"anyOf": [
{
"description": "Transfer is a base message to move tokens to another account without triggering actions",
"type": "object",
"required": [
"transfer"
],
"properties": {
"transfer": {
"type": "object",
"required": [
"amount",
"recipient"
],
"properties": {
"amount": {
"$ref": "#/definitions/Uint128"
},
"recipient": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"description": "Burn is a base message to destroy tokens forever",
"type": "object",
"required": [
"burn"
],
"properties": {
"burn": {
"type": "object",
"required": [
"amount"
],
"properties": {
"amount": {
"$ref": "#/definitions/Uint128"
}
}
}
},
"additionalProperties": false
},
{
"description": "Send is a base message to transfer tokens to a contract and trigger an action on the receiving contract.",
"type": "object",
"required": [
"send"
],
"properties": {
"send": {
"type": "object",
"required": [
"amount",
"contract",
"msg"
],
"properties": {
"amount": {
"$ref": "#/definitions/Uint128"
},
"contract": {
"type": "string"
},
"msg": {
"$ref": "#/definitions/Binary"
}
}
}
},
"additionalProperties": false
},
{
"description": "Only with the \"mintable\" extension. If authorized, creates amount new tokens and adds to the recipient balance.",
"type": "object",
"required": [
"mint"
],
"properties": {
"mint": {
"type": "object",
"required": [
"amount",
"recipient"
],
"properties": {
"amount": {
"$ref": "#/definitions/Uint128"
},
"recipient": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"description": "Only with \"approval\" extension. Allows spender to access an additional amount tokens from the owner's (env.sender) account. If expires is Some(), overwrites current allowance expiration with this one.",
"type": "object",
"required": [
"increase_allowance"
],
"properties": {
"increase_allowance": {
"type": "object",
"required": [
"amount",
"spender"
],
"properties": {
"amount": {
"$ref": "#/definitions/Uint128"
},
"expires": {
"anyOf": [
{
"$ref": "#/definitions/Expiration"
},
{
"type": "null"
}
]
},
"spender": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"description": "Only with \"approval\" extension. Lowers the spender's access of tokens from the owner's (env.sender) account by amount. If expires is Some(), overwrites current allowance expiration with this one.",
"type": "object",
"required": [
"decrease_allowance"
],
"properties": {
"decrease_allowance": {
"type": "object",
"required": [
"amount",
"spender"
],
"properties": {
"amount": {
"$ref": "#/definitions/Uint128"
},
"expires": {
"anyOf": [
{
"$ref": "#/definitions/Expiration"
},
{
"type": "null"
}
]
},
"spender": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"description": "Only with \"approval\" extension. Transfers amount tokens from owner -> recipient if `env.sender` has sufficient pre-approval.",
"type": "object",
"required": [
"transfer_from"
],
"properties": {
"transfer_from": {
"type": "object",
"required": [
"amount",
"owner",
"recipient"
],
"properties": {
"amount": {
"$ref": "#/definitions/Uint128"
},
"owner": {
"type": "string"
},
"recipient": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"description": "Only with \"approval\" extension. Sends amount tokens from owner -> contract if `env.sender` has sufficient pre-approval.",
"type": "object",
"required": [
"send_from"
],
"properties": {
"send_from": {
"type": "object",
"required": [
"amount",
"contract",
"msg",
"owner"
],
"properties": {
"amount": {
"$ref": "#/definitions/Uint128"
},
"contract": {
"type": "string"
},
"msg": {
"$ref": "#/definitions/Binary"
},
"owner": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"description": "Only with \"approval\" extension. Destroys tokens forever",
"type": "object",
"required": [
"burn_from"
],
"properties": {
"burn_from": {
"type": "object",
"required": [
"amount",
"owner"
],
"properties": {
"amount": {
"$ref": "#/definitions/Uint128"
},
"owner": {
"type": "string"
}
}
}
},
"additionalProperties": false
}
],
"definitions": {
"Binary": {
"description": "Binary is a wrapper around Vec<u8> 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<u8>",
"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)",
"anyOf": [
{
"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"
}
}
}