Function diem_transaction_builder::stdlib::encode_remove_validator_and_reconfigure_script_function
source · pub fn encode_remove_validator_and_reconfigure_script_function(
sliding_nonce: u64,
validator_name: Vec<u8>,
validator_address: AccountAddress
) -> TransactionPayload
Expand description
Summary
This script removes a validator account from the validator set, and triggers a reconfiguration of the system to remove the validator from the system. This transaction can only be successfully called by the Diem Root account.
Technical Description
This script removes the account at validator_address
from the validator set. This transaction
emits a DiemConfig::NewEpochEvent
event. Once the reconfiguration triggered by this event
has been performed, the account at validator_address
is no longer considered to be a
validator in the network. This transaction will fail if the validator at validator_address
is not in the validator set.
Parameters
Name | Type | Description |
---|---|---|
dr_account | signer | The signer of the sending account of this transaction. Must be the Diem Root signer. |
sliding_nonce | u64 | The sliding_nonce (see: SlidingNonce ) to be used for this transaction. |
validator_name | vector<u8> | ASCII-encoded human name for the validator. Must match the human name in the ValidatorConfig::ValidatorConfig for the validator. |
validator_address | address | The validator account address to be removed from the validator set. |
Common Abort Conditions
Error Category | Error Reason | Description |
---|---|---|
Errors::NOT_PUBLISHED | SlidingNonce::ESLIDING_NONCE | A SlidingNonce resource is not published under dr_account . |
Errors::INVALID_ARGUMENT | SlidingNonce::ENONCE_TOO_OLD | The sliding_nonce is too old and it’s impossible to determine if it’s duplicated or not. |
Errors::INVALID_ARGUMENT | SlidingNonce::ENONCE_TOO_NEW | The sliding_nonce is too far in the future. |
Errors::INVALID_ARGUMENT | SlidingNonce::ENONCE_ALREADY_RECORDED | The sliding_nonce has been previously recorded. |
Errors::NOT_PUBLISHED | SlidingNonce::ESLIDING_NONCE | The sending account is not the Diem Root account or Treasury Compliance account |
0 | 0 | The provided validator_name does not match the already-recorded human name for the validator. |
Errors::INVALID_ARGUMENT | DiemSystem::ENOT_AN_ACTIVE_VALIDATOR | The validator to be removed is not in the validator set. |
Errors::REQUIRES_ADDRESS | CoreAddresses::EDIEM_ROOT | The sending account is not the Diem Root account. |
Errors::REQUIRES_ROLE | Roles::EDIEM_ROOT | The sending account is not the Diem Root account. |
Errors::INVALID_STATE | DiemConfig::EINVALID_BLOCK_TIME | An invalid time value was encountered in reconfiguration. Unlikely to occur. |
Related Scripts
AccountCreationScripts::create_validator_account
AccountCreationScripts::create_validator_operator_account
ValidatorAdministrationScripts::register_validator_config
ValidatorAdministrationScripts::add_validator_and_reconfigure
ValidatorAdministrationScripts::set_validator_operator
ValidatorAdministrationScripts::set_validator_operator_with_nonce_admin
ValidatorAdministrationScripts::set_validator_config_and_reconfigure