Regenerate mixnet json schema

This commit is contained in:
durch
2022-03-23 20:40:24 +01:00
parent 008fc045b7
commit 5eb2249ad5
5 changed files with 750 additions and 318 deletions
+373 -93
View File
@@ -1,7 +1,107 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "ExecuteMsg",
"anyOf": [
"oneOf": [
{
"type": "object",
"required": [
"reconcile_delegations"
],
"properties": {
"reconcile_delegations": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"checkpoint_mixnodes"
],
"properties": {
"checkpoint_mixnodes": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"compound_operator_reward_on_behalf"
],
"properties": {
"compound_operator_reward_on_behalf": {
"type": "object",
"required": [
"owner"
],
"properties": {
"owner": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"compound_delegator_reward_on_behalf"
],
"properties": {
"compound_delegator_reward_on_behalf": {
"type": "object",
"required": [
"mix_identity",
"owner"
],
"properties": {
"mix_identity": {
"type": "string"
},
"owner": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"compound_operator_reward"
],
"properties": {
"compound_operator_reward": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"compound_delegator_reward"
],
"properties": {
"compound_delegator_reward": {
"type": "object",
"required": [
"mix_identity"
],
"properties": {
"mix_identity": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
@@ -11,11 +111,15 @@
"bond_mixnode": {
"type": "object",
"required": [
"mix_node"
"mix_node",
"owner_signature"
],
"properties": {
"mix_node": {
"$ref": "#/definitions/MixNode"
},
"owner_signature": {
"type": "string"
}
}
}
@@ -34,6 +138,54 @@
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"update_mixnode_config"
],
"properties": {
"update_mixnode_config": {
"type": "object",
"required": [
"profit_margin_percent"
],
"properties": {
"profit_margin_percent": {
"type": "integer",
"format": "uint8",
"minimum": 0.0
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"update_mixnode_config_on_behalf"
],
"properties": {
"update_mixnode_config_on_behalf": {
"type": "object",
"required": [
"owner",
"profit_margin_percent"
],
"properties": {
"owner": {
"type": "string"
},
"profit_margin_percent": {
"type": "integer",
"format": "uint8",
"minimum": 0.0
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
@@ -43,11 +195,15 @@
"bond_gateway": {
"type": "object",
"required": [
"gateway"
"gateway",
"owner_signature"
],
"properties": {
"gateway": {
"$ref": "#/definitions/Gateway"
},
"owner_signature": {
"type": "string"
}
}
}
@@ -69,11 +225,11 @@
{
"type": "object",
"required": [
"update_contract_settings"
"update_contract_state_params"
],
"properties": {
"update_contract_settings": {
"$ref": "#/definitions/StateParams"
"update_contract_state_params": {
"$ref": "#/definitions/ContractStateParams"
}
},
"additionalProperties": false
@@ -118,46 +274,6 @@
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"delegate_to_gateway"
],
"properties": {
"delegate_to_gateway": {
"type": "object",
"required": [
"gateway_identity"
],
"properties": {
"gateway_identity": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"undelegate_from_gateway"
],
"properties": {
"undelegate_from_gateway": {
"type": "object",
"required": [
"gateway_identity"
],
"properties": {
"gateway_identity": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
@@ -168,16 +284,14 @@
"type": "object",
"required": [
"identity",
"uptime"
"params"
],
"properties": {
"identity": {
"type": "string"
},
"uptime": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
"params": {
"$ref": "#/definitions/NodeRewardParams"
}
}
}
@@ -187,34 +301,216 @@
{
"type": "object",
"required": [
"reward_gateway"
"delegate_to_mixnode_on_behalf"
],
"properties": {
"reward_gateway": {
"delegate_to_mixnode_on_behalf": {
"type": "object",
"required": [
"identity",
"uptime"
"delegate",
"mix_identity"
],
"properties": {
"identity": {
"delegate": {
"type": "string"
},
"uptime": {
"mix_identity": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"undelegate_from_mixnode_on_behalf"
],
"properties": {
"undelegate_from_mixnode_on_behalf": {
"type": "object",
"required": [
"delegate",
"mix_identity"
],
"properties": {
"delegate": {
"type": "string"
},
"mix_identity": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"bond_mixnode_on_behalf"
],
"properties": {
"bond_mixnode_on_behalf": {
"type": "object",
"required": [
"mix_node",
"owner",
"owner_signature"
],
"properties": {
"mix_node": {
"$ref": "#/definitions/MixNode"
},
"owner": {
"type": "string"
},
"owner_signature": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"unbond_mixnode_on_behalf"
],
"properties": {
"unbond_mixnode_on_behalf": {
"type": "object",
"required": [
"owner"
],
"properties": {
"owner": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"bond_gateway_on_behalf"
],
"properties": {
"bond_gateway_on_behalf": {
"type": "object",
"required": [
"gateway",
"owner",
"owner_signature"
],
"properties": {
"gateway": {
"$ref": "#/definitions/Gateway"
},
"owner": {
"type": "string"
},
"owner_signature": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"unbond_gateway_on_behalf"
],
"properties": {
"unbond_gateway_on_behalf": {
"type": "object",
"required": [
"owner"
],
"properties": {
"owner": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"write_rewarded_set"
],
"properties": {
"write_rewarded_set": {
"type": "object",
"required": [
"expected_active_set_size",
"rewarded_set"
],
"properties": {
"expected_active_set_size": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"rewarded_set": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"advance_current_epoch"
],
"properties": {
"advance_current_epoch": {
"type": "object"
}
},
"additionalProperties": false
}
],
"definitions": {
"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"
"ContractStateParams": {
"type": "object",
"required": [
"minimum_gateway_pledge",
"minimum_mixnode_pledge",
"mixnode_active_set_size",
"mixnode_rewarded_set_size"
],
"properties": {
"minimum_gateway_pledge": {
"$ref": "#/definitions/Uint128"
},
"minimum_mixnode_pledge": {
"$ref": "#/definitions/Uint128"
},
"mixnode_active_set_size": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"mixnode_rewarded_set_size": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
}
}
},
"Gateway": {
"type": "object",
@@ -263,6 +559,7 @@
"http_api_port",
"identity_key",
"mix_port",
"profit_margin_percent",
"sphinx_key",
"verloc_port",
"version"
@@ -285,6 +582,11 @@
"format": "uint16",
"minimum": 0.0
},
"profit_margin_percent": {
"type": "integer",
"format": "uint8",
"minimum": 0.0
},
"sphinx_key": {
"type": "string"
},
@@ -298,46 +600,24 @@
}
}
},
"StateParams": {
"NodeRewardParams": {
"type": "object",
"required": [
"epoch_length",
"gateway_bond_reward_rate",
"gateway_delegation_reward_rate",
"minimum_gateway_bond",
"minimum_mixnode_bond",
"mixnode_active_set_size",
"mixnode_bond_reward_rate",
"mixnode_delegation_reward_rate"
"in_active_set",
"reward_blockstamp",
"uptime"
],
"properties": {
"epoch_length": {
"in_active_set": {
"type": "boolean"
},
"reward_blockstamp": {
"type": "integer",
"format": "uint32",
"format": "uint64",
"minimum": 0.0
},
"gateway_bond_reward_rate": {
"$ref": "#/definitions/Decimal"
},
"gateway_delegation_reward_rate": {
"$ref": "#/definitions/Decimal"
},
"minimum_gateway_bond": {
"uptime": {
"$ref": "#/definitions/Uint128"
},
"minimum_mixnode_bond": {
"$ref": "#/definitions/Uint128"
},
"mixnode_active_set_size": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"mixnode_bond_reward_rate": {
"$ref": "#/definitions/Decimal"
},
"mixnode_delegation_reward_rate": {
"$ref": "#/definitions/Decimal"
}
}
},
@@ -346,4 +626,4 @@
"type": "string"
}
}
}
}
+9 -1
View File
@@ -1,5 +1,13 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "InstantiateMsg",
"type": "object"
"type": "object",
"required": [
"rewarding_validator_address"
],
"properties": {
"rewarding_validator_address": {
"type": "string"
}
}
}
+31 -5
View File
@@ -3,22 +3,29 @@
"title": "MixNodeBond",
"type": "object",
"required": [
"bond_amount",
"block_height",
"layer",
"mix_node",
"owner",
"pledge_amount",
"total_delegation"
],
"properties": {
"accumulated_rewards": {
"anyOf": [
{
"$ref": "#/definitions/Uint128"
},
{
"type": "null"
}
]
},
"block_height": {
"default": 0,
"type": "integer",
"format": "uint64",
"minimum": 0.0
},
"bond_amount": {
"$ref": "#/definitions/Coin"
},
"layer": {
"$ref": "#/definitions/Layer"
},
@@ -28,6 +35,19 @@
"owner": {
"$ref": "#/definitions/Addr"
},
"pledge_amount": {
"$ref": "#/definitions/Coin"
},
"proxy": {
"anyOf": [
{
"$ref": "#/definitions/Addr"
},
{
"type": "null"
}
]
},
"total_delegation": {
"$ref": "#/definitions/Coin"
}
@@ -68,6 +88,7 @@
"http_api_port",
"identity_key",
"mix_port",
"profit_margin_percent",
"sphinx_key",
"verloc_port",
"version"
@@ -90,6 +111,11 @@
"format": "uint16",
"minimum": 0.0
},
"profit_margin_percent": {
"type": "integer",
"format": "uint8",
"minimum": 0.0
},
"sphinx_key": {
"type": "string"
},
+337 -125
View File
@@ -1,7 +1,19 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "QueryMsg",
"anyOf": [
"oneOf": [
{
"type": "object",
"required": [
"get_contract_version"
],
"properties": {
"get_contract_version": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
@@ -71,7 +83,7 @@
],
"properties": {
"address": {
"$ref": "#/definitions/Addr"
"type": "string"
}
}
}
@@ -91,7 +103,7 @@
],
"properties": {
"address": {
"$ref": "#/definitions/Addr"
"type": "string"
}
}
}
@@ -101,10 +113,10 @@
{
"type": "object",
"required": [
"contract_settings_params"
"state_params"
],
"properties": {
"contract_settings_params": {
"state_params": {
"type": "object"
}
},
@@ -113,10 +125,58 @@
{
"type": "object",
"required": [
"get_mix_delegations"
"get_all_network_delegations"
],
"properties": {
"get_mix_delegations": {
"get_all_network_delegations": {
"type": "object",
"properties": {
"limit": {
"type": [
"integer",
"null"
],
"format": "uint32",
"minimum": 0.0
},
"start_after": {
"type": [
"array",
"null"
],
"items": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "integer",
"format": "uint8",
"minimum": 0.0
}
},
{
"type": "integer",
"format": "uint64",
"minimum": 0.0
}
],
"maxItems": 3,
"minItems": 3
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_mixnode_delegations"
],
"properties": {
"get_mixnode_delegations": {
"type": "object",
"required": [
"mix_identity"
@@ -134,14 +194,22 @@
"type": "string"
},
"start_after": {
"anyOf": [
"type": [
"array",
"null"
],
"items": [
{
"$ref": "#/definitions/Addr"
"type": "string"
},
{
"type": "null"
"type": "integer",
"format": "uint64",
"minimum": 0.0
}
]
],
"maxItems": 2,
"minItems": 2
}
}
}
@@ -151,17 +219,17 @@
{
"type": "object",
"required": [
"get_reverse_mix_delegations"
"get_delegator_delegations"
],
"properties": {
"get_reverse_mix_delegations": {
"get_delegator_delegations": {
"type": "object",
"required": [
"delegation_owner"
"delegator"
],
"properties": {
"delegation_owner": {
"$ref": "#/definitions/Addr"
"delegator": {
"type": "string"
},
"limit": {
"type": [
@@ -185,18 +253,18 @@
{
"type": "object",
"required": [
"get_mix_delegation"
"get_delegation_details"
],
"properties": {
"get_mix_delegation": {
"get_delegation_details": {
"type": "object",
"required": [
"address",
"delegator",
"mix_identity"
],
"properties": {
"address": {
"$ref": "#/definitions/Addr"
"delegator": {
"type": "string"
},
"mix_identity": {
"type": "string"
@@ -206,102 +274,6 @@
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_gateway_delegations"
],
"properties": {
"get_gateway_delegations": {
"type": "object",
"required": [
"gateway_identity"
],
"properties": {
"gateway_identity": {
"type": "string"
},
"limit": {
"type": [
"integer",
"null"
],
"format": "uint32",
"minimum": 0.0
},
"start_after": {
"anyOf": [
{
"$ref": "#/definitions/Addr"
},
{
"type": "null"
}
]
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_reverse_gateway_delegations"
],
"properties": {
"get_reverse_gateway_delegations": {
"type": "object",
"required": [
"delegation_owner"
],
"properties": {
"delegation_owner": {
"$ref": "#/definitions/Addr"
},
"limit": {
"type": [
"integer",
"null"
],
"format": "uint32",
"minimum": 0.0
},
"start_after": {
"type": [
"string",
"null"
]
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_gateway_delegation"
],
"properties": {
"get_gateway_delegation": {
"type": "object",
"required": [
"address",
"gateway_identity"
],
"properties": {
"address": {
"$ref": "#/definitions/Addr"
},
"gateway_identity": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
@@ -313,12 +285,252 @@
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_reward_pool"
],
"properties": {
"get_reward_pool": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_circulating_supply"
],
"properties": {
"get_circulating_supply": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_interval_reward_percent"
],
"properties": {
"get_interval_reward_percent": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_sybil_resistance_percent"
],
"properties": {
"get_sybil_resistance_percent": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_active_set_work_factor"
],
"properties": {
"get_active_set_work_factor": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_rewarding_status"
],
"properties": {
"get_rewarding_status": {
"type": "object",
"required": [
"interval_id",
"mix_identity"
],
"properties": {
"interval_id": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"mix_identity": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_rewarded_set"
],
"properties": {
"get_rewarded_set": {
"type": "object",
"properties": {
"height": {
"type": [
"integer",
"null"
],
"format": "uint64",
"minimum": 0.0
},
"limit": {
"type": [
"integer",
"null"
],
"format": "uint32",
"minimum": 0.0
},
"start_after": {
"type": [
"string",
"null"
]
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_rewarded_set_update_details"
],
"properties": {
"get_rewarded_set_update_details": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_current_rewarded_set_height"
],
"properties": {
"get_current_rewarded_set_height": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_rewarded_set_refresh_blocks"
],
"properties": {
"get_rewarded_set_refresh_blocks": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_current_epoch"
],
"properties": {
"get_current_epoch": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_epochs_in_interval"
],
"properties": {
"get_epochs_in_interval": {
"type": "object"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"query_operator_reward"
],
"properties": {
"query_operator_reward": {
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"query_delegator_reward"
],
"properties": {
"query_delegator_reward": {
"type": "object",
"required": [
"address",
"mix_identity"
],
"properties": {
"address": {
"type": "string"
},
"mix_identity": {
"type": "string"
}
}
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"get_pending_delegation_events"
],
"properties": {
"get_pending_delegation_events": {
"type": "object",
"required": [
"owner_address"
],
"properties": {
"owner_address": {
"type": "string"
}
}
}
},
"additionalProperties": false
}
],
"definitions": {
"Addr": {
"description": "A human readable address.\n\nIn Cosmos, this is typically bech32 encoded. But for multi-chain smart contracts no assumptions should be made other than being UTF-8 encoded and of reasonable length.\n\nThis type represents a validated address. It can be created in the following ways 1. Use `Addr::unchecked(input)` 2. Use `let checked: Addr = deps.api.addr_validate(input)?` 3. Use `let checked: Addr = deps.api.addr_humanize(canonical_addr)?` 4. Deserialize from JSON. This must only be done from JSON that was validated before such as a contract's state. `Addr` must not be used in messages sent by the user because this would result in unvalidated instances.\n\nThis type is immutable. If you really need to mutate it (Really? Are you sure?), create a mutable copy using `let mut mutable = Addr::to_string()` and operate on that `String` instance.",
"type": "string"
}
}
}
]
}
-94
View File
@@ -1,94 +0,0 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "State",
"type": "object",
"required": [
"gateway_epoch_bond_reward",
"gateway_epoch_delegation_reward",
"mixnode_epoch_bond_reward",
"mixnode_epoch_delegation_reward",
"network_monitor_address",
"owner",
"params"
],
"properties": {
"gateway_epoch_bond_reward": {
"$ref": "#/definitions/Decimal"
},
"gateway_epoch_delegation_reward": {
"$ref": "#/definitions/Decimal"
},
"mixnode_epoch_bond_reward": {
"$ref": "#/definitions/Decimal"
},
"mixnode_epoch_delegation_reward": {
"$ref": "#/definitions/Decimal"
},
"network_monitor_address": {
"$ref": "#/definitions/Addr"
},
"owner": {
"$ref": "#/definitions/Addr"
},
"params": {
"$ref": "#/definitions/StateParams"
}
},
"definitions": {
"Addr": {
"description": "A human readable address.\n\nIn Cosmos, this is typically bech32 encoded. But for multi-chain smart contracts no assumptions should be made other than being UTF-8 encoded and of reasonable length.\n\nThis type represents a validated address. It can be created in the following ways 1. Use `Addr::unchecked(input)` 2. Use `let checked: Addr = deps.api.addr_validate(input)?` 3. Use `let checked: Addr = deps.api.addr_humanize(canonical_addr)?` 4. Deserialize from JSON. This must only be done from JSON that was validated before such as a contract's state. `Addr` must not be used in messages sent by the user because this would result in unvalidated instances.\n\nThis type is immutable. If you really need to mutate it (Really? Are you sure?), create a mutable copy using `let mut mutable = Addr::to_string()` and operate on that `String` instance.",
"type": "string"
},
"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"
},
"StateParams": {
"type": "object",
"required": [
"epoch_length",
"gateway_bond_reward_rate",
"gateway_delegation_reward_rate",
"minimum_gateway_bond",
"minimum_mixnode_bond",
"mixnode_active_set_size",
"mixnode_bond_reward_rate",
"mixnode_delegation_reward_rate"
],
"properties": {
"epoch_length": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"gateway_bond_reward_rate": {
"$ref": "#/definitions/Decimal"
},
"gateway_delegation_reward_rate": {
"$ref": "#/definitions/Decimal"
},
"minimum_gateway_bond": {
"$ref": "#/definitions/Uint128"
},
"minimum_mixnode_bond": {
"$ref": "#/definitions/Uint128"
},
"mixnode_active_set_size": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"mixnode_bond_reward_rate": {
"$ref": "#/definitions/Decimal"
},
"mixnode_delegation_reward_rate": {
"$ref": "#/definitions/Decimal"
}
}
},
"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"
}
}
}