128 lines
3.4 KiB
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
|
|
}
|
|
}
|
|
}
|