Trait CandidateValidationApi

Source
pub trait CandidateValidationApi<Block: BlockT>: Core<Block> {
    // Provided methods
    fn validate_registered_candidate_data(
        &self,
        __runtime_api_at_param__: <Block as BlockT>::Hash,
        mainchain_pub_key: &StakePoolPublicKey,
        registration_data: &RegistrationData,
    ) -> Result<Option<RegistrationDataError>, ApiError> { ... }
    fn validate_stake(
        &self,
        __runtime_api_at_param__: <Block as BlockT>::Hash,
        stake: Option<StakeDelegation>,
    ) -> Result<Option<StakeError>, ApiError> { ... }
    fn validate_permissioned_candidate_data(
        &self,
        __runtime_api_at_param__: <Block as BlockT>::Hash,
        candidate: PermissionedCandidateData,
    ) -> Result<Option<PermissionedCandidateDataError>, ApiError> { ... }
}
Expand description

Runtime API trait for candidate validation

When implementing, make sure that the same validation is used here and in the committee selection logic!

Provided Methods§

Source

fn validate_registered_candidate_data( &self, __runtime_api_at_param__: <Block as BlockT>::Hash, mainchain_pub_key: &StakePoolPublicKey, registration_data: &RegistrationData, ) -> Result<Option<RegistrationDataError>, ApiError>

Should validate data provided by registered candidate, and return RegistrationDataError in case of validation failure.

Should validate:

  • Account keys and Partner Chain public keys of the candidate
  • stake pool signature
  • sidechain signature
  • transaction inputs contain correct registration utxo
Source

fn validate_stake( &self, __runtime_api_at_param__: <Block as BlockT>::Hash, stake: Option<StakeDelegation>, ) -> Result<Option<StakeError>, ApiError>

Should validate candidate stake and return StakeError in case of validation failure. Should validate stake exists and is positive.

Source

fn validate_permissioned_candidate_data( &self, __runtime_api_at_param__: <Block as BlockT>::Hash, candidate: PermissionedCandidateData, ) -> Result<Option<PermissionedCandidateDataError>, ApiError>

Should validate data provided by permissioned candidate, and return PermissionedCandidateDataError in case of validation failure.

Should validate:

  • Account keys and Partner Chain public keys of the candidate

Trait Implementations§

Source§

impl<Block: BlockT> RuntimeApiInfo for dyn CandidateValidationApi<Block>

Source§

const ID: [u8; 8]

The identifier of the runtime api.
Source§

const VERSION: u32 = 1u32

The version of the runtime api.

Implementors§