platform_version/version/drive_versions/
mod.rs1use crate::version::drive_versions::drive_group_method_versions::{
2 DriveAddressFundsMethodVersions, DriveShieldedMethodVersions,
3};
4use crate::version::FeatureVersion;
5use drive_contract_method_versions::DriveContractMethodVersions;
6use drive_credit_pool_method_versions::DriveCreditPoolMethodVersions;
7use drive_document_method_versions::DriveDocumentMethodVersions;
8use drive_group_method_versions::DriveGroupMethodVersions;
9use drive_grove_method_versions::DriveGroveMethodVersions;
10use drive_identity_method_versions::DriveIdentityMethodVersions;
11use drive_state_transition_method_versions::DriveStateTransitionMethodVersions;
12use drive_structure_version::DriveStructureVersion;
13use drive_token_method_versions::DriveTokenMethodVersions;
14use drive_verify_method_versions::DriveVerifyMethodVersions;
15use drive_vote_method_versions::DriveVoteMethodVersions;
16use grovedb_version::version::GroveVersion;
17
18pub mod drive_address_funds_method_versions;
19pub mod drive_contract_method_versions;
20pub mod drive_credit_pool_method_versions;
21pub mod drive_document_method_versions;
22pub mod drive_group_method_versions;
23pub mod drive_grove_method_versions;
24pub mod drive_identity_method_versions;
25pub mod drive_state_transition_method_versions;
26pub mod drive_structure_version;
27pub mod drive_token_method_versions;
28pub mod drive_verify_method_versions;
29pub mod drive_vote_method_versions;
30pub mod v1;
31pub mod v2;
32pub mod v3;
33pub mod v4;
34pub mod v5;
35pub mod v6;
36pub mod v7;
37pub mod v8;
38
39#[derive(Clone, Debug, Default)]
40pub struct DriveVersion {
41 pub structure: DriveStructureVersion,
42 pub methods: DriveMethodVersions,
43 pub grove_methods: DriveGroveMethodVersions,
44 pub grove_version: GroveVersion,
45}
46
47#[derive(Clone, Debug, Default)]
48pub struct DriveMethodVersions {
49 pub initialization: DriveInitializationMethodVersions,
50 pub credit_pools: DriveCreditPoolMethodVersions,
51 pub protocol_upgrade: DriveProtocolUpgradeVersions,
52 pub prefunded_specialized_balances: DrivePrefundedSpecializedMethodVersions,
53 pub balances: DriveBalancesMethodVersions,
54 pub document: DriveDocumentMethodVersions,
55 pub vote: DriveVoteMethodVersions,
56 pub contract: DriveContractMethodVersions,
57 pub fees: DriveFeesMethodVersions,
58 pub estimated_costs: DriveEstimatedCostsMethodVersions,
59 pub asset_lock: DriveAssetLockMethodVersions,
60 pub verify: DriveVerifyMethodVersions,
61 pub identity: DriveIdentityMethodVersions,
62 pub token: DriveTokenMethodVersions,
63 pub platform_system: DrivePlatformSystemMethodVersions,
64 pub operations: DriveOperationsMethodVersion,
65 pub batch_operations: DriveBatchOperationsMethodVersion,
66 pub fetch: DriveFetchMethodVersions,
67 pub prove: DriveProveMethodVersions,
68 pub state_transitions: DriveStateTransitionMethodVersions,
69 pub platform_state: DrivePlatformStateMethodVersions,
70 pub group: DriveGroupMethodVersions,
71 pub address_funds: DriveAddressFundsMethodVersions,
72 pub shielded: DriveShieldedMethodVersions,
73 pub saved_block_transactions: DriveSavedBlockTransactionsMethodVersions,
74}
75
76#[derive(Clone, Debug, Default)]
77pub struct DrivePlatformStateMethodVersions {
78 pub fetch_platform_state_bytes: FeatureVersion,
79 pub store_platform_state_bytes: FeatureVersion,
80}
81
82#[derive(Clone, Debug, Default)]
83pub struct DriveSavedBlockTransactionsMethodVersions {
84 pub store_address_balances: FeatureVersion,
85 pub fetch_address_balances: FeatureVersion,
86 pub compact_address_balances: FeatureVersion,
87 pub cleanup_expired_address_balances: FeatureVersion,
88 pub max_blocks_before_compaction: u16,
90 pub max_addresses_before_compaction: u32,
92}
93
94#[derive(Clone, Debug, Default)]
95pub struct DriveDataContractOperationMethodVersions {
96 pub finalization_tasks: FeatureVersion,
97}
98
99#[derive(Clone, Debug, Default)]
100pub struct DriveFetchMethodVersions {
101 pub fetch_elements: FeatureVersion,
102}
103
104#[derive(Clone, Debug, Default)]
105pub struct DriveProveMethodVersions {
106 pub prove_elements: FeatureVersion,
107 pub prove_multiple_state_transition_results: FeatureVersion,
108 pub prove_state_transition: FeatureVersion,
109}
110
111#[derive(Clone, Debug, Default)]
112pub struct DrivePrefundedSpecializedMethodVersions {
113 pub fetch_single: FeatureVersion,
114 pub prove_single: FeatureVersion,
115 pub add_prefunded_specialized_balance: FeatureVersion,
116 pub add_prefunded_specialized_balance_operations: FeatureVersion,
117 pub deduct_from_prefunded_specialized_balance: FeatureVersion,
118 pub deduct_from_prefunded_specialized_balance_operations: FeatureVersion,
119 pub estimated_cost_for_prefunded_specialized_balance_update: FeatureVersion,
120 pub empty_prefunded_specialized_balance: FeatureVersion,
121}
122
123#[derive(Clone, Debug, Default)]
124pub struct DriveBalancesMethodVersions {
125 pub add_to_system_credits: FeatureVersion,
126 pub add_to_system_credits_operations: FeatureVersion,
127 pub remove_from_system_credits: FeatureVersion,
128 pub remove_from_system_credits_operations: FeatureVersion,
129 pub calculate_total_credits_balance: FeatureVersion,
130}
131
132#[derive(Clone, Debug, Default)]
133pub struct DriveAssetLockMethodVersions {
134 pub add_asset_lock_outpoint: FeatureVersion,
135 pub add_estimation_costs_for_adding_asset_lock: FeatureVersion,
136 pub fetch_asset_lock_outpoint_info: FeatureVersion,
137}
138
139#[derive(Clone, Debug, Default)]
140pub struct DriveFeesMethodVersions {
141 pub calculate_fee: FeatureVersion,
142}
143
144#[derive(Clone, Debug, Default)]
145pub struct DrivePlatformSystemMethodVersions {
146 pub estimation_costs: DriveSystemEstimationCostsMethodVersions,
147}
148
149#[derive(Clone, Debug, Default)]
150pub struct DriveOperationsMethodVersion {
151 pub rollback_transaction: FeatureVersion,
152 pub drop_cache: FeatureVersion,
153 pub commit_transaction: FeatureVersion,
154 pub apply_partial_batch_low_level_drive_operations: FeatureVersion,
155 pub apply_partial_batch_grovedb_operations: FeatureVersion,
156 pub apply_batch_low_level_drive_operations: FeatureVersion,
157 pub apply_batch_grovedb_operations: FeatureVersion,
158}
159
160#[derive(Clone, Debug, Default)]
161pub struct DriveBatchOperationsMethodVersion {
162 pub convert_drive_operations_to_grove_operations: FeatureVersion,
163 pub apply_drive_operations: FeatureVersion,
164}
165
166#[derive(Clone, Debug, Default)]
167pub struct DriveSystemEstimationCostsMethodVersions {
168 pub for_total_system_credits_update: FeatureVersion,
169}
170
171#[derive(Clone, Debug, Default)]
172pub struct DriveInitializationMethodVersions {
173 pub create_initial_state_structure: FeatureVersion,
174}
175
176#[derive(Clone, Debug, Default)]
177pub struct DriveProtocolUpgradeVersions {
178 pub clear_version_information: FeatureVersion,
179 pub fetch_versions_with_counter: FeatureVersion,
180 pub fetch_proved_versions_with_counter: FeatureVersion,
181 pub fetch_validator_version_votes: FeatureVersion,
182 pub fetch_proved_validator_version_votes: FeatureVersion,
183 pub remove_validators_proposed_app_versions: FeatureVersion,
184 pub update_validator_proposed_app_version: FeatureVersion,
185}
186
187#[derive(Clone, Debug, Default)]
188pub struct DriveEstimatedCostsMethodVersions {
189 pub add_estimation_costs_for_levels_up_to_contract: FeatureVersion,
190 pub add_estimation_costs_for_levels_up_to_contract_document_type_excluded: FeatureVersion,
191 pub add_estimation_costs_for_contested_document_tree_levels_up_to_contract: FeatureVersion,
192 pub add_estimation_costs_for_contested_document_tree_levels_up_to_contract_document_type_excluded:
193 FeatureVersion,
194}