Skip to content

Commit 775efeb

Browse files
committed
add native stake to d-param
1 parent fe30fc3 commit 775efeb

File tree

16 files changed

+166
-35
lines changed

16 files changed

+166
-35
lines changed

changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ This changelog is based on [Keep A Changelog](https://keepachangelog.com/en/1.1.
66

77
## Changed
88

9+
* DParam now uses new schema, which involves `native_take` validators count.
910
* Updated polkadot-sdk dependency to polkadot-stable2509.
1011
Partner Chains Aura modification follows changes regarding checking inherents that are also present in the new polkadot-sdk release.
1112
Pallet Session new parameters should be: `type KeyDeposit = ();` and `type Currency = Balances;`.

demo/runtime/src/mock.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,7 @@ pub fn create_inherent_data_struct(
384384
d_parameter: DParameter {
385385
num_permissioned_candidates: 0,
386386
num_registered_candidates: max(candidates.len() as u16, 1),
387+
num_native_stake_candidates: 0,
387388
},
388389
permissioned_candidates: vec![],
389390
registered_candidates: candidates,

toolkit/committee-selection/authority-selection-inherents/src/mock.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ impl AuthoritySelectionDataSource for MockAuthoritySelectionDataSource {
5959
d_parameter: DParameter {
6060
num_permissioned_candidates: self.num_permissioned_candidates,
6161
num_registered_candidates: 2,
62+
num_native_stake_candidates: 0,
6263
},
6364
permissioned_candidates: candidates.clone(),
6465
}),

toolkit/committee-selection/authority-selection-inherents/src/tests.rs

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,11 @@ fn ariadne_all_permissioned_test() {
188188
// Expected committee: [alice, bob]
189189
let permissioned_validators = vec![ALICE, BOB];
190190
let registered_validators = vec![CHARLIE, DAVE];
191-
let d_parameter = DParameter { num_permissioned_candidates: 8, num_registered_candidates: 0 };
191+
let d_parameter = DParameter {
192+
num_permissioned_candidates: 8,
193+
num_registered_candidates: 0,
194+
num_native_stake_candidates: 0,
195+
};
192196
let authority_selection_inputs = create_authority_selection_inputs(
193197
&permissioned_validators,
194198
&registered_validators,
@@ -220,7 +224,11 @@ fn ariadne_only_permissioned_candidates_are_present_test() {
220224
// D-param: (4, 4)
221225
let permissioned_validators = vec![ALICE, BOB];
222226
let registered_validators = vec![];
223-
let d_parameter = DParameter { num_permissioned_candidates: 4, num_registered_candidates: 4 };
227+
let d_parameter = DParameter {
228+
num_permissioned_candidates: 4,
229+
num_registered_candidates: 4,
230+
num_native_stake_candidates: 0,
231+
};
224232
let authority_selection_inputs = create_authority_selection_inputs(
225233
&permissioned_validators,
226234
&registered_validators,
@@ -252,7 +260,11 @@ fn ariadne_3_to_2_test() {
252260
// D-param: (3, 2)
253261
let permissioned_validators = vec![ALICE, BOB, CHARLIE];
254262
let registered_validators = vec![DAVE, EVE];
255-
let d_parameter = DParameter { num_permissioned_candidates: 3, num_registered_candidates: 2 };
263+
let d_parameter = DParameter {
264+
num_permissioned_candidates: 3,
265+
num_registered_candidates: 2,
266+
num_native_stake_candidates: 0,
267+
};
256268
let authority_selection_inputs = create_authority_selection_inputs(
257269
&permissioned_validators,
258270
&registered_validators,
@@ -283,7 +295,11 @@ fn ariadne_3_to_2_with_more_available_candidates_test() {
283295
// D-param: (3, 2)
284296
let permissioned_validators = vec![ALICE, BOB, CHARLIE, DAVE, EVE];
285297
let registered_validators = vec![FERDIE, GREG, HENRY, IDA];
286-
let d_parameter = DParameter { num_permissioned_candidates: 3, num_registered_candidates: 2 };
298+
let d_parameter = DParameter {
299+
num_permissioned_candidates: 3,
300+
num_registered_candidates: 2,
301+
num_native_stake_candidates: 0,
302+
};
287303
let authority_selection_inputs = create_authority_selection_inputs(
288304
&permissioned_validators,
289305
&registered_validators,
@@ -321,7 +337,11 @@ fn ariadne_4_to_7_test() {
321337
// D-param: (4, 7)
322338
let permissioned_validators = vec![ALICE, BOB, CHARLIE, DAVE];
323339
let registered_validators = vec![EVE, FERDIE, GREG, HENRY, IDA, JAMES, KIM];
324-
let d_parameter = DParameter { num_permissioned_candidates: 4, num_registered_candidates: 7 };
340+
let d_parameter = DParameter {
341+
num_permissioned_candidates: 4,
342+
num_registered_candidates: 7,
343+
num_native_stake_candidates: 0,
344+
};
325345
let authority_selection_inputs = create_authority_selection_inputs(
326346
&permissioned_validators,
327347
&registered_validators,
@@ -352,7 +372,11 @@ fn ariadne_does_not_return_empty_committee() {
352372
let authority_selection_inputs = create_authority_selection_inputs(
353373
&[],
354374
&[],
355-
DParameter { num_permissioned_candidates: 1, num_registered_candidates: 1 },
375+
DParameter {
376+
num_permissioned_candidates: 1,
377+
num_registered_candidates: 1,
378+
num_native_stake_candidates: 0,
379+
},
356380
);
357381
let calculated_committee = select_authorities::<AccountId, AccountKeys, MaxValidators>(
358382
UtxoId::default(),

toolkit/committee-selection/query/src/commands.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,11 @@ mod tests {
8787

8888
#[tokio::test]
8989
async fn ariadne_parameters_returns_correct_json_string() {
90-
let d_parameter =
91-
DParameter { num_permissioned_candidates: 1, num_registered_candidates: 2 };
90+
let d_parameter = DParameter {
91+
num_permissioned_candidates: 1,
92+
num_registered_candidates: 2,
93+
num_native_stake_candidates: 0,
94+
};
9295
let permissioned_candidates = vec![PermissionedCandidateData {
9396
sidechain_public_key: SidechainPublicKey(
9497
hex!("0389411795514af1627765eceffcbd002719f031604fadd7d188e2dc585b4e1afb").to_vec(),
@@ -130,6 +133,7 @@ mod tests {
130133
serde_json::from_str::<Value>(&cmd_output).unwrap(),
131134
serde_json::json!({
132135
"dParameter": {
136+
"numNativeStakeCandidates": 0,
133137
"numPermissionedCandidates": 1,
134138
"numRegisteredCandidates": 2
135139
},

toolkit/committee-selection/query/src/tests/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,7 @@ mod get_registration_tests {
351351
d_parameter: types::DParameter {
352352
num_permissioned_candidates: 3,
353353
num_registered_candidates: 2,
354+
num_native_stake_candidates: 0,
354355
},
355356
permissioned_candidates: Some(
356357
permissioned_candidates

toolkit/committee-selection/query/src/types/ariadne.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,19 @@ pub struct DParameter {
2424
pub num_permissioned_candidates: u16,
2525
/// The number of registered candidates
2626
pub num_registered_candidates: u16,
27+
/// The number of native stake validators
28+
pub num_native_stake_candidates: u16,
2729
}
2830

2931
impl From<sidechain_domain::DParameter> for DParameter {
3032
fn from(
3133
sidechain_domain::DParameter {
3234
num_permissioned_candidates,
3335
num_registered_candidates,
36+
num_native_stake_candidates,
3437
}: sidechain_domain::DParameter,
3538
) -> Self {
36-
Self { num_permissioned_candidates, num_registered_candidates }
39+
Self { num_permissioned_candidates, num_registered_candidates, num_native_stake_candidates }
3740
}
3841
}
3942

toolkit/data-sources/db-sync/src/candidates/tests.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ with_migration_versions! {
8787
.unwrap();
8888
assert_eq!(
8989
result.d_parameter,
90-
DParameter { num_permissioned_candidates: 1, num_registered_candidates: 3 }
90+
DParameter { num_permissioned_candidates: 1, num_registered_candidates: 3, num_native_stake_candidates: 0 }
9191
)
9292
}
9393

@@ -109,7 +109,7 @@ with_migration_versions! {
109109
assert_eq!(result.permissioned_candidates, Some(latest_permissioned_candidates()));
110110
assert_eq!(
111111
result.d_parameter,
112-
DParameter { num_permissioned_candidates: 1, num_registered_candidates: 3 }
112+
DParameter { num_permissioned_candidates: 1, num_registered_candidates: 3, num_native_stake_candidates: 0 }
113113
)
114114
}
115115

@@ -125,7 +125,7 @@ with_migration_versions! {
125125
.unwrap();
126126
assert_eq!(
127127
result.d_parameter,
128-
DParameter { num_permissioned_candidates: 1, num_registered_candidates: 2 }
128+
DParameter { num_permissioned_candidates: 1, num_registered_candidates: 2, num_native_stake_candidates: 0 }
129129
);
130130
assert_eq!(result.permissioned_candidates, None)
131131
}
@@ -236,7 +236,7 @@ mod candidate_caching {
236236
.unwrap();
237237
assert_eq!(
238238
epoch_193_ariadne_parameters.d_parameter,
239-
DParameter { num_permissioned_candidates: 1, num_registered_candidates: 3 }
239+
DParameter { num_permissioned_candidates: 1, num_registered_candidates: 3, num_native_stake_candidates: 0 }
240240
);
241241
// Remove all registrations to prove that one request was cached and the other not
242242
sqlx::raw_sql("DELETE FROM tx WHERE block_id >= 0")

toolkit/data-sources/mock/src/candidate.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ impl From<MockPermissionedCandidate> for PermissionedCandidateData {
124124
pub struct MockDParam {
125125
permissioned: u16,
126126
registered: u16,
127+
native_stake: u16,
127128
}
128129

129130
impl MockDParam {
@@ -133,8 +134,12 @@ impl MockDParam {
133134
}
134135

135136
impl From<MockDParam> for DParameter {
136-
fn from(MockDParam { permissioned, registered }: MockDParam) -> Self {
137-
Self { num_permissioned_candidates: permissioned, num_registered_candidates: registered }
137+
fn from(MockDParam { permissioned, registered, native_stake }: MockDParam) -> Self {
138+
Self {
139+
num_permissioned_candidates: permissioned,
140+
num_registered_candidates: registered,
141+
num_native_stake_candidates: native_stake,
142+
}
138143
}
139144
}
140145

toolkit/partner-chains-cli/src/setup_main_chain_state/mod.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ impl<T: PartnerChainRuntime> CmdRun for SetupMainChainStateCmd<T> {
9696
d_parameter.unwrap_or(DParameter {
9797
num_permissioned_candidates: 0,
9898
num_registered_candidates: 0,
99+
num_native_stake_candidates: 0,
99100
}),
100101
chain_config.chain_parameters.genesis_utxo,
101102
)?;
@@ -240,8 +241,11 @@ fn set_d_parameter_on_main_chain<C: IOContext>(
240241
CARDANO_PAYMENT_SIGNING_KEY_FILE.prompt_with_default_from_file_and_save(context);
241242
let payment_signing_key =
242243
cardano_key::get_mc_payment_signing_key_from_file(&payment_signing_key_path, context)?;
243-
let d_parameter =
244-
sidechain_domain::DParameter { num_permissioned_candidates, num_registered_candidates };
244+
let d_parameter = sidechain_domain::DParameter {
245+
num_permissioned_candidates,
246+
num_registered_candidates,
247+
num_native_stake_candidates: 0,
248+
};
245249
let tokio_runtime = tokio::runtime::Runtime::new().map_err(|e| anyhow::anyhow!(e))?;
246250
let result = tokio_runtime.block_on(offchain.upsert_d_param(
247251
await_tx,

0 commit comments

Comments
 (0)