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§
Sourcefn 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_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
Sourcefn validate_stake(
&self,
__runtime_api_at_param__: <Block as BlockT>::Hash,
stake: Option<StakeDelegation>,
) -> Result<Option<StakeError>, ApiError>
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.
Sourcefn validate_permissioned_candidate_data(
&self,
__runtime_api_at_param__: <Block as BlockT>::Hash,
candidate: PermissionedCandidateData,
) -> Result<Option<PermissionedCandidateDataError>, ApiError>
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