{ "contract_name": "vending-minter-wl-flex", "contract_version": "3.14.0", "idl_version": "1.0.0", "instantiate": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "InstantiateMsg", "type": "object", "required": [ "create_msg", "params" ], "properties": { "create_msg": { "$ref": "#/definitions/CreateMinterMsg_for_VendingMinterInitMsgExtension" }, "params": { "$ref": "#/definitions/MinterParams_for_ParamsExtension" } }, "additionalProperties": false, "definitions": { "Coin": { "type": "object", "required": [ "amount", "denom" ], "properties": { "amount": { "$ref": "#/definitions/Uint128" }, "denom": { "type": "string" } } }, "CollectionInfo_for_RoyaltyInfoResponse": { "type": "object", "required": [ "creator", "description", "image" ], "properties": { "creator": { "type": "string" }, "description": { "type": "string" }, "explicit_content": { "type": [ "boolean", "null" ] }, "external_link": { "type": [ "string", "null" ] }, "image": { "type": "string" }, "royalty_info": { "anyOf": [ { "$ref": "#/definitions/RoyaltyInfoResponse" }, { "type": "null" } ] }, "start_trading_time": { "anyOf": [ { "$ref": "#/definitions/Timestamp" }, { "type": "null" } ] } }, "additionalProperties": false }, "CollectionParams": { "type": "object", "required": [ "code_id", "info", "name", "symbol" ], "properties": { "code_id": { "description": "The collection code id", "type": "integer", "format": "uint64", "minimum": 0.0 }, "info": { "$ref": "#/definitions/CollectionInfo_for_RoyaltyInfoResponse" }, "name": { "type": "string" }, "symbol": { "type": "string" } }, "additionalProperties": false }, "CreateMinterMsg_for_VendingMinterInitMsgExtension": { "type": "object", "required": [ "collection_params", "init_msg" ], "properties": { "collection_params": { "$ref": "#/definitions/CollectionParams" }, "init_msg": { "$ref": "#/definitions/VendingMinterInitMsgExtension" } }, "additionalProperties": false }, "Decimal": { "description": "A fixed-point decimal value with 18 fractional digits, i.e. Decimal(1_000_000_000_000_000_000) == 1.0\n\nThe greatest possible value that can be represented is 340282366920938463463.374607431768211455 (which is (2^128 - 1) / 10^18)", "type": "string" }, "MinterParams_for_ParamsExtension": { "description": "Common params for all minters used for storage", "type": "object", "required": [ "allowed_sg721_code_ids", "code_id", "creation_fee", "extension", "frozen", "max_trading_offset_secs", "min_mint_price", "mint_fee_bps" ], "properties": { "allowed_sg721_code_ids": { "type": "array", "items": { "type": "integer", "format": "uint64", "minimum": 0.0 } }, "code_id": { "description": "The minter code id", "type": "integer", "format": "uint64", "minimum": 0.0 }, "creation_fee": { "$ref": "#/definitions/Coin" }, "extension": { "$ref": "#/definitions/ParamsExtension" }, "frozen": { "type": "boolean" }, "max_trading_offset_secs": { "type": "integer", "format": "uint64", "minimum": 0.0 }, "min_mint_price": { "$ref": "#/definitions/Coin" }, "mint_fee_bps": { "type": "integer", "format": "uint64", "minimum": 0.0 } }, "additionalProperties": false }, "ParamsExtension": { "description": "Parameters common to all vending minters, as determined by governance", "type": "object", "required": [ "airdrop_mint_fee_bps", "airdrop_mint_price", "max_per_address_limit", "max_token_limit", "shuffle_fee" ], "properties": { "airdrop_mint_fee_bps": { "type": "integer", "format": "uint64", "minimum": 0.0 }, "airdrop_mint_price": { "$ref": "#/definitions/Coin" }, "max_per_address_limit": { "type": "integer", "format": "uint32", "minimum": 0.0 }, "max_token_limit": { "type": "integer", "format": "uint32", "minimum": 0.0 }, "shuffle_fee": { "$ref": "#/definitions/Coin" } }, "additionalProperties": false }, "RoyaltyInfoResponse": { "type": "object", "required": [ "payment_address", "share" ], "properties": { "payment_address": { "type": "string" }, "share": { "$ref": "#/definitions/Decimal" } }, "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" }, "VendingMinterInitMsgExtension": { "type": "object", "required": [ "base_token_uri", "mint_price", "num_tokens", "per_address_limit", "start_time" ], "properties": { "base_token_uri": { "type": "string" }, "mint_price": { "$ref": "#/definitions/Coin" }, "num_tokens": { "type": "integer", "format": "uint32", "minimum": 0.0 }, "payment_address": { "type": [ "string", "null" ] }, "per_address_limit": { "type": "integer", "format": "uint32", "minimum": 0.0 }, "start_time": { "$ref": "#/definitions/Timestamp" }, "whitelist": { "type": [ "string", "null" ] } }, "additionalProperties": false } } }, "execute": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ExecuteMsg", "oneOf": [ { "type": "object", "required": [ "mint" ], "properties": { "mint": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "set_whitelist" ], "properties": { "set_whitelist": { "type": "object", "required": [ "whitelist" ], "properties": { "whitelist": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "purge" ], "properties": { "purge": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_mint_price" ], "properties": { "update_mint_price": { "type": "object", "required": [ "price" ], "properties": { "price": { "type": "integer", "format": "uint128", "minimum": 0.0 } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_start_time" ], "properties": { "update_start_time": { "$ref": "#/definitions/Timestamp" } }, "additionalProperties": false }, { "description": "Runs custom checks against TradingStartTime on VendingMinter, then updates by calling sg721-base", "type": "object", "required": [ "update_start_trading_time" ], "properties": { "update_start_trading_time": { "anyOf": [ { "$ref": "#/definitions/Timestamp" }, { "type": "null" } ] } }, "additionalProperties": false }, { "type": "object", "required": [ "update_per_address_limit" ], "properties": { "update_per_address_limit": { "type": "object", "required": [ "per_address_limit" ], "properties": { "per_address_limit": { "type": "integer", "format": "uint32", "minimum": 0.0 } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "mint_to" ], "properties": { "mint_to": { "type": "object", "required": [ "recipient" ], "properties": { "recipient": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "mint_for" ], "properties": { "mint_for": { "type": "object", "required": [ "recipient", "token_id" ], "properties": { "recipient": { "type": "string" }, "token_id": { "type": "integer", "format": "uint32", "minimum": 0.0 } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "shuffle" ], "properties": { "shuffle": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "burn_remaining" ], "properties": { "burn_remaining": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_discount_price" ], "properties": { "update_discount_price": { "type": "object", "required": [ "price" ], "properties": { "price": { "type": "integer", "format": "uint128", "minimum": 0.0 } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "remove_discount_price" ], "properties": { "remove_discount_price": { "type": "object", "additionalProperties": false } }, "additionalProperties": false } ], "definitions": { "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" } } }, "query": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "QueryMsg", "oneOf": [ { "type": "object", "required": [ "config" ], "properties": { "config": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "mintable_num_tokens" ], "properties": { "mintable_num_tokens": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "start_time" ], "properties": { "start_time": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "mint_price" ], "properties": { "mint_price": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "mint_count" ], "properties": { "mint_count": { "type": "object", "required": [ "address" ], "properties": { "address": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "status" ], "properties": { "status": { "type": "object", "additionalProperties": false } }, "additionalProperties": false } ] }, "migrate": null, "sudo": null, "responses": { "config": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "ConfigResponse", "type": "object", "required": [ "admin", "base_token_uri", "factory", "mint_price", "num_tokens", "per_address_limit", "sg721_address", "sg721_code_id", "start_time" ], "properties": { "admin": { "type": "string" }, "base_token_uri": { "type": "string" }, "discount_price": { "anyOf": [ { "$ref": "#/definitions/Coin" }, { "type": "null" } ] }, "factory": { "type": "string" }, "mint_price": { "$ref": "#/definitions/Coin" }, "num_tokens": { "type": "integer", "format": "uint32", "minimum": 0.0 }, "per_address_limit": { "type": "integer", "format": "uint32", "minimum": 0.0 }, "sg721_address": { "type": "string" }, "sg721_code_id": { "type": "integer", "format": "uint64", "minimum": 0.0 }, "start_time": { "$ref": "#/definitions/Timestamp" }, "whitelist": { "type": [ "string", "null" ] } }, "additionalProperties": false, "definitions": { "Coin": { "type": "object", "required": [ "amount", "denom" ], "properties": { "amount": { "$ref": "#/definitions/Uint128" }, "denom": { "type": "string" } } }, "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" } } }, "mint_count": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "MintCountResponse", "type": "object", "required": [ "address", "count", "whitelist_count" ], "properties": { "address": { "type": "string" }, "count": { "type": "integer", "format": "uint32", "minimum": 0.0 }, "whitelist_count": { "type": "integer", "format": "uint32", "minimum": 0.0 } }, "additionalProperties": false }, "mint_price": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "MintPriceResponse", "type": "object", "required": [ "airdrop_price", "current_price", "public_price" ], "properties": { "airdrop_price": { "$ref": "#/definitions/Coin" }, "current_price": { "$ref": "#/definitions/Coin" }, "discount_price": { "anyOf": [ { "$ref": "#/definitions/Coin" }, { "type": "null" } ] }, "public_price": { "$ref": "#/definitions/Coin" }, "whitelist_price": { "anyOf": [ { "$ref": "#/definitions/Coin" }, { "type": "null" } ] } }, "additionalProperties": false, "definitions": { "Coin": { "type": "object", "required": [ "amount", "denom" ], "properties": { "amount": { "$ref": "#/definitions/Uint128" }, "denom": { "type": "string" } } }, "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" } } }, "mintable_num_tokens": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "MintableNumTokensResponse", "type": "object", "required": [ "count" ], "properties": { "count": { "type": "integer", "format": "uint32", "minimum": 0.0 } }, "additionalProperties": false }, "start_time": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "StartTimeResponse", "type": "object", "required": [ "start_time" ], "properties": { "start_time": { "type": "string" } }, "additionalProperties": false }, "status": { "$schema": "http://json-schema.org/draft-07/schema#", "title": "StatusResponse", "type": "object", "required": [ "status" ], "properties": { "status": { "$ref": "#/definitions/Status" } }, "additionalProperties": false, "definitions": { "Status": { "type": "object", "required": [ "is_blocked", "is_explicit", "is_verified" ], "properties": { "is_blocked": { "type": "boolean" }, "is_explicit": { "type": "boolean" }, "is_verified": { "type": "boolean" } }, "additionalProperties": false } } } } }