Type Definitions

This section of the guide provides type definitions of various categories.

V1 Overview

Diagrams are rendered in high resolution; open them in a separate tab to see full scale.

These data types are defined in polkadot/primitives/src/v1.rs:

%3CandidateDescriptorCandidateDescriptor<H = Hash>para_idIdrelay_parentHcollatorCollatorIdpersisted_validation_data_hashHashpov_hashHasherasure_rootHashsignatureCollatorSignatureIdpolkadot_parachain::primitives::IdCandidateDescriptor:para_id->Id:wPoVHashHashCandidateDescriptor:pov_hash->PoVHashCollatorIdpolkadot_primitives::v0::CollatorIdCandidateDescriptor:collator->CollatorId:wPersistedValidationDataHashHashCandidateDescriptor:persisted_validation_data_hash->PersistedValidationDataHashPoVPoVblock_dataBlockDataPoVHash->PoV:namePersistedValidationDataPersistedValidationData<N = BlockNumber>parent_headHeadDatablock_numberNrelay_parent_storage_rootHashmax_pov_sizeu32PersistedValidationDataHash->PersistedValidationData:namepolkadot_parachain::primitives::BlockDatapolkadot_parachain::primitives::BlockDataPoV:block_data->polkadot_parachain::primitives::BlockData:wCandidateReceiptCandidateReceipt<H = Hash>descriptorCandidateDescriptor<H>commitments_hashHashCandidateReceipt:descriptor->CandidateDescriptor:nameCandidateCommitmentsHashHashCandidateReceipt:commitments_hash->CandidateCommitmentsHashCandidateCommitmentsCandidateCommitments<N = BlockNumber>upward_messagesVec<UpwardMessage>horizontal_messagesVec<OutboundHrmpMessage<Id>>new_validation_codeOption<ValidationCode>head_dataHeadDataprocessed_downward_messagesu32hrmp_watermarkNCandidateCommitmentsHash->CandidateCommitments:nameCandidateHashHashCandidateHash->CandidateReceipt:nameHeadDatapolkadot_parachain::primitives::HeadDataCandidateCommitments:head_data->HeadData:wpolkadot_parachain::primitives::UpwardMessagepolkadot_parachain::primitives::UpwardMessageCandidateCommitments:upward_messages->polkadot_parachain::primitives::UpwardMessage:wpolkadot_core_primitives::v1::OutboundHrmpMessagepolkadot_core_primitives::v1::OutboundHrmpMessageCandidateCommitments:horizontal_messages->polkadot_core_primitives::v1::OutboundHrmpMessage:wpolkadot_parachain::primitives::Idpolkadot_parachain::primitives::IdCandidateCommitments:horizontal_messages->polkadot_parachain::primitives::Id:wpolkadot_parachain::primitives::ValidationCodepolkadot_parachain::primitives::ValidationCodeCandidateCommitments:new_validation_code->polkadot_parachain::primitives::ValidationCode:wFullCandidateReceiptFullCandidateReceipt<H = Hash, N = BlockNumber>innerCandidateReceipt<H>validation_dataValidationData<N>FullCandidateReceipt:inner->CandidateReceipt:nameValidationDataValidationData<N = BlockNumber>persistedPersistedValidationData<N>transientTransientValidationData<N>FullCandidateReceipt:validation_data->ValidationData:nameValidationData:persisted->PersistedValidationData:nameTransientValidationDataTransientValidationData<N = BlockNumber>max_code_sizeu32max_head_data_sizeu32balanceBalancecode_upgrade_allowedOption<N>dmq_lengthu32ValidationData:transient->TransientValidationData:nameCommittedCandidateReceiptCommittedCandidateReceipt<H = Hash>descriptorCandidateDescriptor<H>commitmentsCandidateCommitmentsCommittedCandidateReceipt:descriptor->CandidateDescriptor:nameCommittedCandidateReceipt:commitments->CandidateCommitments:namePersistedValidationData:parent_head->HeadData:wpolkadot_core_primitives::v1::Balancepolkadot_core_primitives::v1::BalanceTransientValidationData:balance->polkadot_core_primitives::v1::Balance:wBackedCandidateBackedCandidate<H = Hash>candidateCommittedCandidateReceipt<H>validity_votesVec<ValidityAttestation>validator_indicesBitVecBackedCandidate:candidate->CommittedCandidateReceipt:namepolkadot_primitives:v0:ValidityAttestationpolkadot_primitives:v0:ValidityAttestationBackedCandidate:validity_votes->polkadot_primitives:v0:ValidityAttestation:wCoreIndexCoreIndex0u32GroupIndexGroupIndex0u32ParathreadClaimParathreadClaim0Id1CollatorIdParathreadClaim:0->Id:wParathreadClaim:1->CollatorId:wMessageQueueChainLink(prev_head, B, H(M))See doc of AbridgedHrmpChannel::mqc_headMQCHashHashMQCHash->MessageQueueChainLinkParathreadEntryParathreadEntryclaimParathreadClaimretriesu32ParathreadEntry:claim->ParathreadClaim:nameCoreOccupiedenum CoreOccupiedParathread(ParathreadEntry)ParachainCoreOccupied:parathread->ParathreadEntry:nameAvailableDataAvailableDatapovArc<PoV>validation_dataPersistedValidationDataAvailableData:pov->PoV:nameAvailableData:validation_data->PersistedValidationData:nameGroupRotationInfoGroupRotationInfo<N = BlockNumber>session_start_blockNgroup_rotation_frequencyNnowNOccupiedCoreOccupiedCore<H = Hash, N = BlockNumber>next_up_on_availableOption<ScheduledCore>occupied_sinceNtime_out_atNnext_up_on_time_outOption<ScheduledCore>availabilityBitVecgroup_responsibleGroupIndexcandidate_hashCandidateHashcandidate_descriptorCandidateDescriptorOccupiedCore:candidate_descriptor->CandidateDescriptor:nameOccupiedCore:candidate_hash->CandidateHashOccupiedCore:group_responsible->GroupIndexScheduledCoreScheduledCorepara_idIdcollatorOption<CollatorId>OccupiedCore:next_up_on_available->ScheduledCore:nameOccupiedCore:next_up_on_time_out->ScheduledCore:nameScheduledCore:para_id->Id:wScheduledCore:collator->CollatorId:wCoreStateenum CoreState<H = Hash, N = BlockNumber>Occupied(OccupiedCore<H, N>)Scheduled(ScheduledCore)FreeCoreState:occupied->OccupiedCore:nameCoreState:scheduled->ScheduledCore:nameCandidateEventenum CandidateEvent<H = Hash>CandidateBacked(CandidateReceipt<H>, HeadData)CandidateIncluded(CandidateReceipt<H>, HeadData)CandidateTimedOut(CandidateReceipt<H>, HeadData)CandidateEvent:e->CandidateReceipt:nameCandidateEvent:e->HeadData:wSessionInfoSessionInfovalidatorsVec<ValidatorId>discovery_keysVec<AuthorityDiscoveryId>assignment_keysVec<AssignmentId>validator_groupsVec<Vec<ValidatorIndex>>n_coresu32zeroth_delay_tranche_widthu32relay_vrf_modulo_samplesu32n_delay_tranchesu32no_show_slotsu32needed_approvalsu32ValidatorIdpolkadot_primitives::v0::ValidatorIdSessionInfo:validators->ValidatorId:wAuthorityDiscoveryIdsp_authority_discovery::AuthorityIdSessionInfo:discovery_keys->AuthorityDiscoveryId:wValidatorIndexpolkadot_primitives::v0::ValidatorIndexSessionInfo:validator_groups->ValidatorIndex:wAbridgedHostConfigurationAbridgedHostConfigurationmax_code_sizeu32max_head_data_sizeu32max_upward_queue_countu32max_upward_queue_sizeu32max_upward_message_sizeu32max_upward_messages_num_per_candidateu32hrmp_max_message_num_per_candidateu32validation_upgrade_frequencyBlockNumbervalidation_upgrade_delayBlockNumberAbridgedHrmpChannelAbridgedHrmpChannelmax_capacityu32max_total_sizeu32max_message_sizeu32msg_countu32total_sizeu32mqc_headOption<Hash>AbridgedHrmpChannel:mqc_head->MQCHash

These data types are defined in polkadot/parachain/src/primitives.rs:

%3HeadDataHeadData0Vec<u8>ValidationCodeValidationCode0Vec<u8>BlockDataBlockData0Vec<u8>IdId0u32SiblingSibling0IdSibling:0->Id:nameHrmpChannelIdHrmpChannelIdsenderIdrecipientIdHrmpChannelId:e->Id:nameValidationParamsValidationParamsparent_headHeadDatablock_dataBlockDatarelay_parent_numberRelayChainBlockNumberrelay_parent_storage_rootHashValidationParams:parent_head->HeadData:nameValidationParams:block_data->BlockData:nameRelayChainBlockNumberpolkadot_core_primitives::BlockNumberValidationParams:relay_parent_number->RelayChainBlockNumber:wValidationResultValidationResulthead_dataHeadDatanew_validation_codeOption<ValidationCode>upward_messagesVec<UpwardMessage>horizontal_messagesVec<OutboundHrmpMessage<Id>>processed_downward_messagesu32hrmp_watermarkRelayChainBlockNumberValidationResult:head_data->HeadData:nameValidationResult:new_validation_code->ValidationCode:nameValidationResult:horizontal_messages->Id:nameValidationResult:hrmp_watermark->RelayChainBlockNumber:wUpwardMessageVec<u8>ValidationResult:upward_messages->UpwardMessage:wOutboundHrmpMessagepolkadot_core_primitives::OutboundHrmpMessageValidationResult:horizontal_messages->OutboundHrmpMessage:w