{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "ExecuteMsg", "oneOf": [ { "description": "Change the admin", "type": "object", "required": [ "update_admin" ], "properties": { "update_admin": { "type": "object", "required": [ "admin" ], "properties": { "admin": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_rewarding_validator_address" ], "properties": { "update_rewarding_validator_address": { "type": "object", "required": [ "address" ], "properties": { "address": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_contract_state_params" ], "properties": { "update_contract_state_params": { "type": "object", "required": [ "update" ], "properties": { "update": { "$ref": "#/definitions/ContractStateParamsUpdate" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_current_nym_node_semver" ], "properties": { "update_current_nym_node_semver": { "type": "object", "required": [ "current_version" ], "properties": { "current_version": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_active_set_distribution" ], "properties": { "update_active_set_distribution": { "type": "object", "required": [ "force_immediately", "update" ], "properties": { "force_immediately": { "type": "boolean" }, "update": { "$ref": "#/definitions/ActiveSetUpdate" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_rewarding_params" ], "properties": { "update_rewarding_params": { "type": "object", "required": [ "force_immediately", "updated_params" ], "properties": { "force_immediately": { "type": "boolean" }, "updated_params": { "$ref": "#/definitions/IntervalRewardingParamsUpdate" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_interval_config" ], "properties": { "update_interval_config": { "type": "object", "required": [ "epoch_duration_secs", "epochs_in_interval", "force_immediately" ], "properties": { "epoch_duration_secs": { "type": "integer", "format": "uint64", "minimum": 0.0 }, "epochs_in_interval": { "type": "integer", "format": "uint32", "minimum": 0.0 }, "force_immediately": { "type": "boolean" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "begin_epoch_transition" ], "properties": { "begin_epoch_transition": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "reconcile_epoch_events" ], "properties": { "reconcile_epoch_events": { "type": "object", "properties": { "limit": { "type": [ "integer", "null" ], "format": "uint32", "minimum": 0.0 } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "assign_roles" ], "properties": { "assign_roles": { "type": "object", "required": [ "assignment" ], "properties": { "assignment": { "$ref": "#/definitions/RoleAssignment" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "bond_mixnode" ], "properties": { "bond_mixnode": { "type": "object", "required": [ "cost_params", "mix_node", "owner_signature" ], "properties": { "cost_params": { "$ref": "#/definitions/NodeCostParams" }, "mix_node": { "$ref": "#/definitions/MixNode" }, "owner_signature": { "$ref": "#/definitions/MessageSignature" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "bond_mixnode_on_behalf" ], "properties": { "bond_mixnode_on_behalf": { "type": "object", "required": [ "cost_params", "mix_node", "owner", "owner_signature" ], "properties": { "cost_params": { "$ref": "#/definitions/NodeCostParams" }, "mix_node": { "$ref": "#/definitions/MixNode" }, "owner": { "type": "string" }, "owner_signature": { "$ref": "#/definitions/MessageSignature" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "pledge_more" ], "properties": { "pledge_more": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "pledge_more_on_behalf" ], "properties": { "pledge_more_on_behalf": { "type": "object", "required": [ "owner" ], "properties": { "owner": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "decrease_pledge" ], "properties": { "decrease_pledge": { "type": "object", "required": [ "decrease_by" ], "properties": { "decrease_by": { "$ref": "#/definitions/Coin" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "decrease_pledge_on_behalf" ], "properties": { "decrease_pledge_on_behalf": { "type": "object", "required": [ "decrease_by", "owner" ], "properties": { "decrease_by": { "$ref": "#/definitions/Coin" }, "owner": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "unbond_mixnode" ], "properties": { "unbond_mixnode": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "unbond_mixnode_on_behalf" ], "properties": { "unbond_mixnode_on_behalf": { "type": "object", "required": [ "owner" ], "properties": { "owner": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_cost_params" ], "properties": { "update_cost_params": { "type": "object", "required": [ "new_costs" ], "properties": { "new_costs": { "$ref": "#/definitions/NodeCostParams" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_mixnode_cost_params_on_behalf" ], "properties": { "update_mixnode_cost_params_on_behalf": { "type": "object", "required": [ "new_costs", "owner" ], "properties": { "new_costs": { "$ref": "#/definitions/NodeCostParams" }, "owner": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_mixnode_config" ], "properties": { "update_mixnode_config": { "type": "object", "required": [ "new_config" ], "properties": { "new_config": { "$ref": "#/definitions/MixNodeConfigUpdate" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_mixnode_config_on_behalf" ], "properties": { "update_mixnode_config_on_behalf": { "type": "object", "required": [ "new_config", "owner" ], "properties": { "new_config": { "$ref": "#/definitions/MixNodeConfigUpdate" }, "owner": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "migrate_mixnode" ], "properties": { "migrate_mixnode": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "bond_gateway" ], "properties": { "bond_gateway": { "type": "object", "required": [ "gateway", "owner_signature" ], "properties": { "gateway": { "$ref": "#/definitions/Gateway" }, "owner_signature": { "$ref": "#/definitions/MessageSignature" } }, "additionalProperties": false } }, "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": { "$ref": "#/definitions/MessageSignature" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "unbond_gateway" ], "properties": { "unbond_gateway": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "unbond_gateway_on_behalf" ], "properties": { "unbond_gateway_on_behalf": { "type": "object", "required": [ "owner" ], "properties": { "owner": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_gateway_config" ], "properties": { "update_gateway_config": { "type": "object", "required": [ "new_config" ], "properties": { "new_config": { "$ref": "#/definitions/GatewayConfigUpdate" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_gateway_config_on_behalf" ], "properties": { "update_gateway_config_on_behalf": { "type": "object", "required": [ "new_config", "owner" ], "properties": { "new_config": { "$ref": "#/definitions/GatewayConfigUpdate" }, "owner": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "migrate_gateway" ], "properties": { "migrate_gateway": { "type": "object", "properties": { "cost_params": { "anyOf": [ { "$ref": "#/definitions/NodeCostParams" }, { "type": "null" } ] } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "bond_nym_node" ], "properties": { "bond_nym_node": { "type": "object", "required": [ "cost_params", "node", "owner_signature" ], "properties": { "cost_params": { "$ref": "#/definitions/NodeCostParams" }, "node": { "$ref": "#/definitions/NymNode" }, "owner_signature": { "$ref": "#/definitions/MessageSignature" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "unbond_nym_node" ], "properties": { "unbond_nym_node": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "update_node_config" ], "properties": { "update_node_config": { "type": "object", "required": [ "update" ], "properties": { "update": { "$ref": "#/definitions/NodeConfigUpdate" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "delegate" ], "properties": { "delegate": { "type": "object", "required": [ "node_id" ], "properties": { "node_id": { "type": "integer", "format": "uint32", "minimum": 0.0 } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "delegate_to_mixnode_on_behalf" ], "properties": { "delegate_to_mixnode_on_behalf": { "type": "object", "required": [ "delegate", "mix_id" ], "properties": { "delegate": { "type": "string" }, "mix_id": { "type": "integer", "format": "uint32", "minimum": 0.0 } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "undelegate" ], "properties": { "undelegate": { "type": "object", "required": [ "node_id" ], "properties": { "node_id": { "type": "integer", "format": "uint32", "minimum": 0.0 } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "undelegate_from_mixnode_on_behalf" ], "properties": { "undelegate_from_mixnode_on_behalf": { "type": "object", "required": [ "delegate", "mix_id" ], "properties": { "delegate": { "type": "string" }, "mix_id": { "type": "integer", "format": "uint32", "minimum": 0.0 } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "reward_node" ], "properties": { "reward_node": { "type": "object", "required": [ "node_id", "params" ], "properties": { "node_id": { "type": "integer", "format": "uint32", "minimum": 0.0 }, "params": { "$ref": "#/definitions/NodeRewardingParameters" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "withdraw_operator_reward" ], "properties": { "withdraw_operator_reward": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "withdraw_operator_reward_on_behalf" ], "properties": { "withdraw_operator_reward_on_behalf": { "type": "object", "required": [ "owner" ], "properties": { "owner": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "withdraw_delegator_reward" ], "properties": { "withdraw_delegator_reward": { "type": "object", "required": [ "node_id" ], "properties": { "node_id": { "type": "integer", "format": "uint32", "minimum": 0.0 } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "withdraw_delegator_reward_on_behalf" ], "properties": { "withdraw_delegator_reward_on_behalf": { "type": "object", "required": [ "mix_id", "owner" ], "properties": { "mix_id": { "type": "integer", "format": "uint32", "minimum": 0.0 }, "owner": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "migrate_vested_mix_node" ], "properties": { "migrate_vested_mix_node": { "type": "object", "additionalProperties": false } }, "additionalProperties": false }, { "type": "object", "required": [ "migrate_vested_delegation" ], "properties": { "migrate_vested_delegation": { "type": "object", "required": [ "mix_id" ], "properties": { "mix_id": { "type": "integer", "format": "uint32", "minimum": 0.0 } }, "additionalProperties": false } }, "additionalProperties": false } ], "definitions": { "ActiveSetUpdate": { "description": "Specification on how the active set should be updated.", "type": "object", "required": [ "entry_gateways", "exit_gateways", "mixnodes" ], "properties": { "entry_gateways": { "description": "The expected number of nodes assigned entry gateway role (i.e. [`Role::EntryGateway`])", "type": "integer", "format": "uint32", "minimum": 0.0 }, "exit_gateways": { "description": "The expected number of nodes assigned exit gateway role (i.e. [`Role::ExitGateway`])", "type": "integer", "format": "uint32", "minimum": 0.0 }, "mixnodes": { "description": "The expected number of nodes assigned the 'mixnode' role, i.e. total of [`Role::Layer1`], [`Role::Layer2`] and [`Role::Layer3`].", "type": "integer", "format": "uint32", "minimum": 0.0 } }, "additionalProperties": false }, "Coin": { "type": "object", "required": [ "amount", "denom" ], "properties": { "amount": { "$ref": "#/definitions/Uint128" }, "denom": { "type": "string" } }, "additionalProperties": false }, "ConfigScoreParamsUpdate": { "type": "object", "properties": { "version_score_formula_params": { "anyOf": [ { "$ref": "#/definitions/VersionScoreFormulaParams" }, { "type": "null" } ] }, "version_weights": { "anyOf": [ { "$ref": "#/definitions/OutdatedVersionWeights" }, { "type": "null" } ] } }, "additionalProperties": false }, "ContractStateParamsUpdate": { "type": "object", "properties": { "config_score_params": { "anyOf": [ { "$ref": "#/definitions/ConfigScoreParamsUpdate" }, { "type": "null" } ] }, "delegations_params": { "anyOf": [ { "$ref": "#/definitions/DelegationsParams" }, { "type": "null" } ] }, "operators_params": { "anyOf": [ { "$ref": "#/definitions/OperatorsParamsUpdate" }, { "type": "null" } ] } }, "additionalProperties": false }, "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" }, "DelegationsParams": { "type": "object", "properties": { "minimum_delegation": { "description": "Minimum amount a delegator must stake in orders for his delegation to get accepted.", "anyOf": [ { "$ref": "#/definitions/Coin" }, { "type": "null" } ] } }, "additionalProperties": false }, "Gateway": { "description": "Information provided by the node operator during bonding that are used to allow other entities to use the services of this node.", "type": "object", "required": [ "clients_port", "host", "identity_key", "location", "mix_port", "sphinx_key", "version" ], "properties": { "clients_port": { "description": "Port used by this gateway for listening for client requests.", "type": "integer", "format": "uint16", "minimum": 0.0 }, "host": { "description": "Network address of this gateway, for example 1.1.1.1 or foo.gateway.com", "type": "string" }, "identity_key": { "description": "Base58 encoded ed25519 EdDSA public key of the gateway used to derive shared keys with clients", "type": "string" }, "location": { "description": "The physical, self-reported, location of this gateway.", "type": "string" }, "mix_port": { "description": "Port used by this gateway for listening for mix packets.", "type": "integer", "format": "uint16", "minimum": 0.0 }, "sphinx_key": { "description": "Base58-encoded x25519 public key used for sphinx key derivation.", "type": "string" }, "version": { "description": "The self-reported semver version of this gateway.", "type": "string" } }, "additionalProperties": false }, "GatewayConfigUpdate": { "type": "object", "required": [ "clients_port", "host", "location", "mix_port", "version" ], "properties": { "clients_port": { "type": "integer", "format": "uint16", "minimum": 0.0 }, "host": { "type": "string" }, "location": { "type": "string" }, "mix_port": { "type": "integer", "format": "uint16", "minimum": 0.0 }, "version": { "type": "string" } }, "additionalProperties": false }, "IntervalRewardingParamsUpdate": { "description": "Specification on how the rewarding params should be updated.", "type": "object", "properties": { "active_set_work_factor": { "description": "Defines the new value of the active set work factor.", "anyOf": [ { "$ref": "#/definitions/Decimal" }, { "type": "null" } ] }, "interval_pool_emission": { "description": "Defines the new value of the interval pool emission rate.", "anyOf": [ { "$ref": "#/definitions/Percent" }, { "type": "null" } ] }, "reward_pool": { "description": "Defines the new value of the reward pool.", "anyOf": [ { "$ref": "#/definitions/Decimal" }, { "type": "null" } ] }, "rewarded_set_params": { "description": "Defines the parameters of the rewarded set.", "anyOf": [ { "$ref": "#/definitions/RewardedSetParams" }, { "type": "null" } ] }, "staking_supply": { "description": "Defines the new value of the staking supply.", "anyOf": [ { "$ref": "#/definitions/Decimal" }, { "type": "null" } ] }, "staking_supply_scale_factor": { "description": "Defines the new value of the staking supply scale factor.", "anyOf": [ { "$ref": "#/definitions/Percent" }, { "type": "null" } ] }, "sybil_resistance_percent": { "description": "Defines the new value of the sybil resistance percent.", "anyOf": [ { "$ref": "#/definitions/Percent" }, { "type": "null" } ] } }, "additionalProperties": false }, "MessageSignature": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 } }, "MixNode": { "description": "Information provided by the node operator during bonding that are used to allow other entities to use the services of this node.", "type": "object", "required": [ "host", "http_api_port", "identity_key", "mix_port", "sphinx_key", "verloc_port", "version" ], "properties": { "host": { "description": "Network address of this mixnode, for example 1.1.1.1 or foo.mixnode.com", "type": "string" }, "http_api_port": { "description": "Port used by this mixnode for its http(s) API", "type": "integer", "format": "uint16", "minimum": 0.0 }, "identity_key": { "description": "Base58-encoded ed25519 EdDSA public key.", "type": "string" }, "mix_port": { "description": "Port used by this mixnode for listening for mix packets.", "type": "integer", "format": "uint16", "minimum": 0.0 }, "sphinx_key": { "description": "Base58-encoded x25519 public key used for sphinx key derivation.", "type": "string" }, "verloc_port": { "description": "Port used by this mixnode for listening for verloc requests.", "type": "integer", "format": "uint16", "minimum": 0.0 }, "version": { "description": "The self-reported semver version of this mixnode.", "type": "string" } }, "additionalProperties": false }, "MixNodeConfigUpdate": { "type": "object", "required": [ "host", "http_api_port", "mix_port", "verloc_port", "version" ], "properties": { "host": { "type": "string" }, "http_api_port": { "type": "integer", "format": "uint16", "minimum": 0.0 }, "mix_port": { "type": "integer", "format": "uint16", "minimum": 0.0 }, "verloc_port": { "type": "integer", "format": "uint16", "minimum": 0.0 }, "version": { "type": "string" } }, "additionalProperties": false }, "NodeConfigUpdate": { "type": "object", "properties": { "custom_http_port": { "type": [ "integer", "null" ], "format": "uint16", "minimum": 0.0 }, "host": { "type": [ "string", "null" ] }, "restore_default_http_port": { "default": false, "type": "boolean" } }, "additionalProperties": false }, "NodeCostParams": { "description": "The cost parameters, or the cost function, defined for the particular mixnode that influences how the rewards should be split between the node operator and its delegators.", "type": "object", "required": [ "interval_operating_cost", "profit_margin_percent" ], "properties": { "interval_operating_cost": { "description": "Operating cost of the associated node per the entire interval.", "allOf": [ { "$ref": "#/definitions/Coin" } ] }, "profit_margin_percent": { "description": "The profit margin of the associated node, i.e. the desired percent of the reward to be distributed to the operator.", "allOf": [ { "$ref": "#/definitions/Percent" } ] } }, "additionalProperties": false }, "NodeRewardingParameters": { "description": "Parameters used for rewarding particular node.", "type": "object", "required": [ "performance", "work_factor" ], "properties": { "performance": { "description": "Performance of the particular node in the current epoch.", "allOf": [ { "$ref": "#/definitions/Percent" } ] }, "work_factor": { "description": "Amount of work performed by this node in the current epoch also known as 'omega' in the paper", "allOf": [ { "$ref": "#/definitions/Decimal" } ] } }, "additionalProperties": false }, "NymNode": { "description": "Information provided by the node operator during bonding that are used to allow other entities to use the services of this node.", "type": "object", "required": [ "host", "identity_key" ], "properties": { "custom_http_port": { "description": "Allow specifying custom port for accessing the http, and thus self-described, api of this node for the capabilities discovery.", "type": [ "integer", "null" ], "format": "uint16", "minimum": 0.0 }, "host": { "description": "Network address of this nym-node, for example 1.1.1.1 or foo.mixnode.com that is used to discover other capabilities of this node.", "type": "string" }, "identity_key": { "description": "Base58-encoded ed25519 EdDSA public key.", "type": "string" } }, "additionalProperties": false }, "OperatorsParamsUpdate": { "type": "object", "properties": { "interval_operating_cost": { "anyOf": [ { "$ref": "#/definitions/RangedValue_for_Uint128" }, { "type": "null" } ] }, "minimum_pledge": { "anyOf": [ { "$ref": "#/definitions/Coin" }, { "type": "null" } ] }, "profit_margin": { "anyOf": [ { "$ref": "#/definitions/RangedValue_for_Percent" }, { "type": "null" } ] } }, "additionalProperties": false }, "OutdatedVersionWeights": { "description": "Defines weights for calculating numbers of versions behind the current release.", "type": "object", "required": [ "major", "minor", "patch", "prerelease" ], "properties": { "major": { "type": "integer", "format": "uint32", "minimum": 0.0 }, "minor": { "type": "integer", "format": "uint32", "minimum": 0.0 }, "patch": { "type": "integer", "format": "uint32", "minimum": 0.0 }, "prerelease": { "type": "integer", "format": "uint32", "minimum": 0.0 } }, "additionalProperties": false }, "Percent": { "description": "Percent represents a value between 0 and 100% (i.e. between 0.0 and 1.0)", "allOf": [ { "$ref": "#/definitions/Decimal" } ] }, "RangedValue_for_Percent": { "type": "object", "required": [ "maximum", "minimum" ], "properties": { "maximum": { "$ref": "#/definitions/Percent" }, "minimum": { "$ref": "#/definitions/Percent" } }, "additionalProperties": false }, "RangedValue_for_Uint128": { "type": "object", "required": [ "maximum", "minimum" ], "properties": { "maximum": { "$ref": "#/definitions/Uint128" }, "minimum": { "$ref": "#/definitions/Uint128" } }, "additionalProperties": false }, "RewardedSetParams": { "type": "object", "required": [ "entry_gateways", "exit_gateways", "mixnodes", "standby" ], "properties": { "entry_gateways": { "description": "The expected number of nodes assigned entry gateway role (i.e. [`Role::EntryGateway`])", "type": "integer", "format": "uint32", "minimum": 0.0 }, "exit_gateways": { "description": "The expected number of nodes assigned exit gateway role (i.e. [`Role::ExitGateway`])", "type": "integer", "format": "uint32", "minimum": 0.0 }, "mixnodes": { "description": "The expected number of nodes assigned the 'mixnode' role, i.e. total of [`Role::Layer1`], [`Role::Layer2`] and [`Role::Layer3`].", "type": "integer", "format": "uint32", "minimum": 0.0 }, "standby": { "description": "Number of nodes in the 'standby' set. (i.e. [`Role::Standby`])", "type": "integer", "format": "uint32", "minimum": 0.0 } }, "additionalProperties": false }, "Role": { "type": "string", "enum": [ "eg", "l1", "l2", "l3", "xg", "stb" ] }, "RoleAssignment": { "type": "object", "required": [ "nodes", "role" ], "properties": { "nodes": { "type": "array", "items": { "type": "integer", "format": "uint32", "minimum": 0.0 } }, "role": { "$ref": "#/definitions/Role" } }, "additionalProperties": false }, "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" }, "VersionScoreFormulaParams": { "description": "Given the formula of version_score = penalty ^ (versions_behind_factor ^ penalty_scaling) define the relevant parameters", "type": "object", "required": [ "penalty", "penalty_scaling" ], "properties": { "penalty": { "$ref": "#/definitions/Decimal" }, "penalty_scaling": { "$ref": "#/definitions/Decimal" } }, "additionalProperties": false } } }