platform_version/version/
v3.rs

1use crate::version::consensus_versions::ConsensusVersions;
2use crate::version::dpp_versions::dpp_asset_lock_versions::v1::DPP_ASSET_LOCK_VERSIONS_V1;
3use crate::version::dpp_versions::dpp_contract_versions::v1::CONTRACT_VERSIONS_V1;
4use crate::version::dpp_versions::dpp_costs_versions::v1::DPP_COSTS_VERSIONS_V1;
5use crate::version::dpp_versions::dpp_document_versions::v1::DOCUMENT_VERSIONS_V1;
6use crate::version::dpp_versions::dpp_factory_versions::v1::DPP_FACTORY_VERSIONS_V1;
7use crate::version::dpp_versions::dpp_identity_versions::v1::IDENTITY_VERSIONS_V1;
8use crate::version::dpp_versions::dpp_method_versions::v1::DPP_METHOD_VERSIONS_V1;
9use crate::version::dpp_versions::dpp_state_transition_conversion_versions::v2::STATE_TRANSITION_CONVERSION_VERSIONS_V2;
10use crate::version::dpp_versions::dpp_state_transition_method_versions::v1::STATE_TRANSITION_METHOD_VERSIONS_V1;
11use crate::version::dpp_versions::dpp_state_transition_serialization_versions::v1::STATE_TRANSITION_SERIALIZATION_VERSIONS_V1;
12use crate::version::dpp_versions::dpp_state_transition_versions::v2::STATE_TRANSITION_VERSIONS_V2;
13use crate::version::dpp_versions::dpp_token_versions::v1::TOKEN_VERSIONS_V1;
14use crate::version::dpp_versions::dpp_validation_versions::v2::DPP_VALIDATION_VERSIONS_V2;
15use crate::version::dpp_versions::dpp_voting_versions::v2::VOTING_VERSION_V2;
16use crate::version::dpp_versions::DPPVersion;
17use crate::version::drive_abci_versions::drive_abci_checkpoint_parameters::v1::DRIVE_ABCI_CHECKPOINT_PARAMETERS_V1;
18use crate::version::drive_abci_versions::drive_abci_method_versions::v2::DRIVE_ABCI_METHOD_VERSIONS_V2;
19use crate::version::drive_abci_versions::drive_abci_query_versions::v1::DRIVE_ABCI_QUERY_VERSIONS_V1;
20use crate::version::drive_abci_versions::drive_abci_structure_versions::v1::DRIVE_ABCI_STRUCTURE_VERSIONS_V1;
21use crate::version::drive_abci_versions::drive_abci_validation_versions::v2::DRIVE_ABCI_VALIDATION_VERSIONS_V2;
22use crate::version::drive_abci_versions::drive_abci_withdrawal_constants::v1::DRIVE_ABCI_WITHDRAWAL_CONSTANTS_V1;
23use crate::version::drive_abci_versions::DriveAbciVersion;
24use crate::version::drive_versions::v2::DRIVE_VERSION_V2;
25use crate::version::fee::v1::FEE_VERSION1;
26use crate::version::protocol_version::PlatformVersion;
27use crate::version::system_data_contract_versions::v1::SYSTEM_DATA_CONTRACT_VERSIONS_V1;
28use crate::version::system_limits::v1::SYSTEM_LIMITS_V1;
29use crate::version::ProtocolVersion;
30
31pub const PROTOCOL_VERSION_3: ProtocolVersion = 3;
32
33/// This version introduces tenderdash_consensus_version as 1.
34/// We did this because of the issues in distribution for Evonodes.
35/// We are setting the requirement to 51% voting for this upgrade for it to take effect.
36/// This was done directly in ABCI.
37/// If we get between 51 and 67% we will have a chain stall
38/// However the chain will come back up as soon as enough have upgraded.
39pub const PLATFORM_V3: PlatformVersion = PlatformVersion {
40    protocol_version: 3,
41    drive: DRIVE_VERSION_V2,
42    drive_abci: DriveAbciVersion {
43        structs: DRIVE_ABCI_STRUCTURE_VERSIONS_V1,
44        methods: DRIVE_ABCI_METHOD_VERSIONS_V2,
45        validation_and_processing: DRIVE_ABCI_VALIDATION_VERSIONS_V2,
46        withdrawal_constants: DRIVE_ABCI_WITHDRAWAL_CONSTANTS_V1,
47        query: DRIVE_ABCI_QUERY_VERSIONS_V1,
48        checkpoints: DRIVE_ABCI_CHECKPOINT_PARAMETERS_V1,
49    },
50    dpp: DPPVersion {
51        costs: DPP_COSTS_VERSIONS_V1,
52        validation: DPP_VALIDATION_VERSIONS_V2,
53        state_transition_serialization_versions: STATE_TRANSITION_SERIALIZATION_VERSIONS_V1,
54        state_transition_conversion_versions: STATE_TRANSITION_CONVERSION_VERSIONS_V2,
55        state_transition_method_versions: STATE_TRANSITION_METHOD_VERSIONS_V1,
56        state_transitions: STATE_TRANSITION_VERSIONS_V2,
57        contract_versions: CONTRACT_VERSIONS_V1,
58        document_versions: DOCUMENT_VERSIONS_V1,
59        identity_versions: IDENTITY_VERSIONS_V1,
60        voting_versions: VOTING_VERSION_V2,
61        token_versions: TOKEN_VERSIONS_V1,
62        asset_lock_versions: DPP_ASSET_LOCK_VERSIONS_V1,
63        methods: DPP_METHOD_VERSIONS_V1,
64        factory_versions: DPP_FACTORY_VERSIONS_V1,
65    },
66    system_data_contracts: SYSTEM_DATA_CONTRACT_VERSIONS_V1,
67    fee_version: FEE_VERSION1,
68    system_limits: SYSTEM_LIMITS_V1,
69    consensus: ConsensusVersions {
70        tenderdash_consensus_version: 1,
71    },
72};