monero/docs/schema/pub_txpool_full.json
2024-09-10 16:29:48 -04:00

349 lines
13 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema",
"definitions": {
"binary": {
"type": "string",
"description": "0+ bytes binary data as hex",
"pattern": "^([0-9A-Fa-f]{2})*$"
},
"binary1": {
"type": "string",
"description": "1-byte binary data as hex",
"minLength": 2,
"maxLength": 2,
"pattern": "^[0-9A-Fa-f]{2}$"
},
"binary32": {
"type": "string",
"description": "32-bytes binary data as hex",
"minLength": 64,
"maxLength": 64,
"pattern": "^[0-9A-Fa-f]{64}$"
},
"binary32_array": {
"type": "array",
"minItems": 1,
"items": { "$ref": "#/definitions/binary32" }
},
"binary32_array64": {
"type": "array",
"minItems": 64,
"maxItems": 64,
"items": { "$ref": "#/definitions/binary32" }
},
"ringct_bulletproof": {
"properties": {
"A": { "$ref": "#/definitions/binary32" },
"a": { "$ref": "#/definitions/binary32" },
"b": { "$ref": "#/definitions/binary32" },
"L": { "$ref": "#/definitions/binary32_array" },
"mu": { "$ref": "#/definitions/binary32" },
"R": { "$ref": "#/definitions/binary32_array" },
"S": { "$ref": "#/definitions/binary32" },
"t": { "$ref": "#/definitions/binary32" },
"T1": { "$ref": "#/definitions/binary32" },
"T2": { "$ref": "#/definitions/binary32" },
"taux": { "$ref": "#/definitions/binary32" },
"V": { "$ref": "#/definitions/binary32_array" }
},
"required": [
"A", "a", "b", "L", "mu", "R", "S", "t", "T1", "T2", "taux", "V"
]
},
"ringct_bulletproof_plus": {
"properties": {
"A": { "$ref": "#/definitions/binary32" },
"A1": { "$ref": "#/definitions/binary32" },
"B": { "$ref": "#/definitions/binary32" },
"d1": { "$ref": "#/definitions/binary32" },
"L": { "$ref": "#/definitions/binary32_array" },
"R": { "$ref": "#/definitions/binary32_array" },
"r1": { "$ref": "#/definitions/binary32" },
"s1": { "$ref": "#/definitions/binary32" },
"V": { "$ref": "#/definitions/binary32_array" }
},
"required": ["A", "A1", "B", "d1", "L", "R", "r1", "s1", "V"]
},
"ringct_clsags": {
"properties": {
"c1": { "$ref": "#/definitions/binary32" },
"D": { "$ref": "#/definitions/binary32" },
"s": { "$ref": "#/definitions/binary32_array" }
},
"required": ["c1", "D", "s"]
},
"ringct_ecdh_tuple": {
"type": "object",
"properties": {
"amount": { "$ref": "#/definitions/binary32" },
"mask": { "$ref": "#/definitions/binary32" }
},
"required": ["amount", "mask"]
},
"ringct_mlsags": {
"properties": {
"cc": { "$ref": "#/definitions/binary32" },
"ss": {
"type": "array",
"minItems": 1,
"items": { "$ref": "#/definitions/binary32_array" }
}
},
"required": ["cc", "ss"]
},
"ringct_prunable": {
"type": "object",
"properties": {
"bulletproofs": {
"type": "array",
"items": { "$ref": "#/definitions/ringct_bulletproof" }
},
"bulletproofs_plus": {
"type": "array",
"items": { "$ref": "#/definitions/ringct_bulletproof_plus" }
},
"clsags": {
"type": "array",
"items": { "$ref": "#/definitions/ringct_clsags" }
},
"mlsags": {
"type": "array",
"items": { "$ref": "#/definitions/ringct_mlsags" }
},
"pseudo_outs": { "$ref": "#/definitions/binary32_array" },
"range_proofs": {
"type": "array",
"items": { "$ref": "#/definitions/ringct_range_proofs" }
}
}
},
"ringct_range_proofs": {
"properties": {
"ee": { "$ref": "#/definitions/binary32" },
"s0": { "$ref": "#/definitions/binary32_array64" },
"s1": { "$ref": "#/definitions/binary32_array64" }
},
"required": ["ee", "s0", "s1"]
},
"tx": {
"type": "object",
"properties": {
"extra": { "$ref": "#/definitions/binary" },
"inputs": {
"type": "array",
"items": { "$ref": "#/definitions/tx_input" }
},
"outputs": {
"type": "array",
"items": { "$ref": "#/definitions/tx_output" }
},
"ringct": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "integer",
"minimum": 0,
"maximum": 0
}
},
"required": ["type"]
},
{
"type": "object",
"properties": {
"commitments": {
"type": "array",
"items": { "$ref": "#/definitions/binary32" }
},
"encrypted": {
"type": "array",
"items": { "$ref": "#/definitions/ringct_ecdh_tuple" }
},
"fee": { "$ref": "#/definitions/uint64" },
"prunable": { "$ref": "#/definitions/ringct_prunable" },
"type": {
"type": "integer",
"minimum": 1,
"maximum": 6
}
},
"required": [
"commitments",
"encrypted",
"fee",
"prunable",
"type"
]
}
]
},
"signatures": {
"type": "array",
"items": {
"type": "array",
"items": { "$ref": "#/definitions/binary32" }
}
},
"unlock_time": { "$ref": "#/definitions/uint64" },
"version": { "$ref": "#/definitions/uint64" }
},
"required": [
"extra",
"inputs",
"outputs",
"ringct",
"unlock_time",
"version"
]
},
"tx_input": {
"oneOf": [
{
"type": "object",
"properties": { "gen": { "$ref": "#/definitions/tx_input_gen" } },
"required": ["gen"]
},
{
"type": "object",
"properties": { "to_key": { "$ref": "#/definitions/tx_input_to_key" } },
"required": ["to_key"]
},
{
"type": "object",
"properties": { "to_script": { "$ref": "#/definitions/tx_input_to_script" } },
"required": ["to_script"]
},
{
"type": "object",
"properties": { "to_scripthash": { "$ref": "#/definitions/tx_input_to_scripthash" } },
"required": ["to_scripthash"]
}
]
},
"tx_input_gen": {
"type": "object",
"properties": { "height": { "$ref": "#/definitions/uint64" } },
"required": ["height"]
},
"tx_input_to_key": {
"type": "object",
"properties": {
"amount": { "$ref": "#/definitions/uint64" },
"key_image": { "$ref": "#/definitions/binary32" },
"key_offsets": {
"type": "array",
"minItems": 1,
"items": { "$ref": "#/definitions/uint64" }
}
},
"required": ["amount", "key_image", "key_offsets"]
},
"tx_input_to_script": {
"type": "object",
"properties": {
"prev": { "$ref": "#/definitions/binary32" },
"prevout": { "$ref": "#/definitions/uint64" },
"sigset": { "$ref": "#/definitions/binary" }
},
"required": ["prev", "prevout", "sigset"]
},
"tx_input_to_scripthash": {
"type": "object",
"properties": {
"prev": { "$ref": "#/definitions/binary32" },
"prevout": { "$ref": "#/definitions/uint64" },
"script": { "$ref": "#/definitions/tx_output_to_script" },
"sigset": { "$ref": "#/definitions/binary" }
},
"required": ["prev", "prevout", "script", "sigset"]
},
"tx_output": {
"oneOf": [
{
"type": "object",
"properties": {
"amount": { "$ref": "#/definitions/uint64" },
"to_key": { "$ref": "#/definitions/tx_output_to_key"}
},
"required": ["amount", "to_key"]
},
{
"type": "object",
"properties": {
"amount": { "$ref": "#/definitions/uint64" },
"to_key": { "$ref": "#/definitions/tx_output_to_script"}
},
"required": ["amount", "to_script"]
},
{
"type": "object",
"properties": {
"amount": { "$ref": "#/definitions/uint64" },
"to_scripthash": { "$ref": "#/definitions/tx_output_to_scripthash"}
},
"required": ["amount", "to_scripthash"]
},
{
"type": "object",
"properties": {
"amount": { "$ref": "#/definitions/uint64" },
"to_tagged_key": { "$ref": "#/definitions/tx_output_to_tagged_key"}
},
"required": ["amount", "to_tagged_key"]
}
]
},
"tx_output_to_key": {
"type": "object",
"properties": { "key": { "$ref": "#/definitions/binary32" } },
"required": ["key"]
},
"tx_output_to_script": {
"type": "object",
"properties": {
"keys": {
"type": "array",
"items": { "$ref": "#/definitions/binary32" }
},
"script": { "$ref": "#/definitions/binary" }
},
"required": ["keys", "script"]
},
"tx_output_to_scripthash": {
"type": "object",
"properties": { "hash": { "$ref": "#/definitions/binary32" } },
"required": ["hash"]
},
"tx_output_to_tagged_key": {
"type": "object",
"properties": {
"key": { "$ref": "#/definitions/binary32" },
"view_tag": { "$ref": "#/definitions/binary1" }
},
"required": ["key", "view_tag"]
},
"uint8": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"uint32": {
"type": "integer",
"minimum": 0,
"maximum": 4294967295
},
"uint64": {
"type": "integer",
"minimum": 0,
"maximum": 18446744073709551615
}
},
"title": "json-full-txpool_add",
"description": "List of newly observed transactions",
"type": "array",
"description": "New transactions",
"items": { "$ref": "#/definitions/tx" }
}