wormhole/cosmwasm/packages/wormhole-bindings/schema/wormhole_query.json

128 lines
3.4 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "WormholeQuery",
"oneOf": [
{
"description": "Verifies that `data` has been signed by a quorum of guardians from `guardian_set_index`.",
"type": "object",
"required": [
"verify_quorum"
],
"properties": {
"verify_quorum": {
"type": "object",
"required": [
"data",
"guardian_set_index",
"signatures"
],
"properties": {
"data": {
"$ref": "#/definitions/Binary"
},
"guardian_set_index": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"signatures": {
"type": "array",
"items": {
"$ref": "#/definitions/Signature"
}
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "Verifies that `data` has been signed by a guardian from `guardian_set_index`.",
"type": "object",
"required": [
"verify_signature"
],
"properties": {
"verify_signature": {
"type": "object",
"required": [
"data",
"guardian_set_index",
"signature"
],
"properties": {
"data": {
"$ref": "#/definitions/Binary"
},
"guardian_set_index": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"signature": {
"$ref": "#/definitions/Signature"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"description": "Returns the number of signatures necessary for quorum for the given guardian set index.",
"type": "object",
"required": [
"calculate_quorum"
],
"properties": {
"calculate_quorum": {
"type": "object",
"required": [
"guardian_set_index"
],
"properties": {
"guardian_set_index": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
}
},
"additionalProperties": false
}
},
"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"
},
"Signature": {
"type": "object",
"required": [
"index",
"signature"
],
"properties": {
"index": {
"description": "The index of the guardian in the guardian set.",
"type": "integer",
"format": "uint8",
"minimum": 0.0
},
"signature": {
"description": "The signature, which should be exactly 65 bytes with the following layout:\n\n```markdown 0 .. 64: Signature (ECDSA) 64 .. 65: Recovery ID (ECDSA) ```",
"allOf": [
{
"$ref": "#/definitions/Binary"
}
]
}
},
"additionalProperties": false
}
}
}