235 lines
6.0 KiB
JSON
235 lines
6.0 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "AllNftInfoResponse",
|
|
"type": "object",
|
|
"required": [
|
|
"access",
|
|
"info"
|
|
],
|
|
"properties": {
|
|
"access": {
|
|
"description": "Who can transfer the token",
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/OwnerOfResponse"
|
|
}
|
|
]
|
|
},
|
|
"info": {
|
|
"description": "Data on the token itself,",
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/NftInfoResponse_for_Nullable_Metadata"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"definitions": {
|
|
"Approval": {
|
|
"type": "object",
|
|
"required": [
|
|
"expires",
|
|
"spender"
|
|
],
|
|
"properties": {
|
|
"expires": {
|
|
"description": "When the Approval expires (maybe Expiration::never)",
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/definitions/Expiration"
|
|
}
|
|
]
|
|
},
|
|
"spender": {
|
|
"description": "Account that can transfer/send the token",
|
|
"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
|
|
}
|
|
]
|
|
},
|
|
"Metadata": {
|
|
"type": "object",
|
|
"properties": {
|
|
"animation_url": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"attributes": {
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
],
|
|
"items": {
|
|
"$ref": "#/definitions/Trait"
|
|
}
|
|
},
|
|
"background_color": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"description": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"external_url": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"image": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"image_data": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"name": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"youtube_url": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"NftInfoResponse_for_Nullable_Metadata": {
|
|
"type": "object",
|
|
"properties": {
|
|
"extension": {
|
|
"description": "You can add any custom metadata here when you extend cw721-base",
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/definitions/Metadata"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"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"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"OwnerOfResponse": {
|
|
"type": "object",
|
|
"required": [
|
|
"approvals",
|
|
"owner"
|
|
],
|
|
"properties": {
|
|
"approvals": {
|
|
"description": "If set this address is approved to transfer/send the token as well",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/definitions/Approval"
|
|
}
|
|
},
|
|
"owner": {
|
|
"description": "Owner of the token",
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
"Trait": {
|
|
"type": "object",
|
|
"required": [
|
|
"trait_type",
|
|
"value"
|
|
],
|
|
"properties": {
|
|
"display_type": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"trait_type": {
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"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"
|
|
}
|
|
}
|
|
}
|