From 6a75a6a25afb6278a89c85223e812bf1d3ac6f30 Mon Sep 17 00:00:00 2001 From: Xavier Lau Date: Fri, 10 Feb 2023 17:05:37 +0800 Subject: [PATCH] Total issuance assertions (#276) --- tool/state-processor/src/system/mod.rs | 13 ++++++++----- tool/state-processor/src/tests.rs | 9 ++++++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/tool/state-processor/src/system/mod.rs b/tool/state-processor/src/system/mod.rs index 75d44ed56..009277671 100644 --- a/tool/state-processor/src/system/mod.rs +++ b/tool/state-processor/src/system/mod.rs @@ -20,7 +20,8 @@ where pub fn process_system(&mut self) -> &mut Self { // System storage items. // https://github.dev/darwinia-network/substrate/blob/darwinia-v0.12.5/frame/system/src/lib.rs#L545 - let solo_account_infos = self.process_solo_account_infos(); + let (solo_account_infos, ring_remaining, kton_remaining) = + self.process_solo_account_infos(); let para_account_infos = self.process_para_account_infos(); let (ring_total_issuance_storage, kton_total_issuance_storage) = self.process_balances(); let mut accounts = Map::default(); @@ -77,12 +78,14 @@ where log::info!("`ring_total_issuance({ring_total_issuance})`"); log::info!("`ring_total_issuance_storage({ring_total_issuance_storage})`"); + assert_eq!(ring_total_issuance - ring_remaining, ring_total_issuance_storage); log::info!("set `Balances::TotalIssuance`"); self.shell_state.insert_value(b"Balances", b"TotalIssuance", "", ring_total_issuance); log::info!("`kton_total_issuance({kton_total_issuance})`"); log::info!("`kton_total_issuance_storage({kton_total_issuance_storage})`"); + assert_eq!(kton_total_issuance - kton_remaining, kton_total_issuance_storage); let mut kton_details = AssetDetails { owner: ROOT, @@ -228,7 +231,7 @@ where self } - fn process_solo_account_infos(&mut self) -> Map { + fn process_solo_account_infos(&mut self) -> (Map, Balance, Balance) { let mut account_infos = >::default(); let mut remaining_ring = >::default(); let mut remaining_kton = >::default(); @@ -257,6 +260,8 @@ where ); } }); + log::info!("total_remaining_ring({total_remaining_ring})"); + remaining_kton.into_iter().for_each(|(k, v)| { if let Some(a) = account_infos.get_mut(&k) { total_remaining_kton += v; @@ -268,11 +273,9 @@ where ); } }); - - log::info!("total_remaining_ring({total_remaining_ring})"); log::info!("total_remaining_kton({total_remaining_kton})"); - account_infos + (account_infos, total_remaining_ring, total_remaining_kton) } fn process_para_account_infos(&mut self) -> Map { diff --git a/tool/state-processor/src/tests.rs b/tool/state-processor/src/tests.rs index 2416d4503..eb2df3b54 100644 --- a/tool/state-processor/src/tests.rs +++ b/tool/state-processor/src/tests.rs @@ -318,8 +318,10 @@ fn ring_total_issuance() { &mut migrated_total_issuance, ); - // FIXME: https://github.com/darwinia-network/darwinia-2.0/issues/244 - // assert_eq!(migrated_total_issuance, solo_issuance * GWEI + para_issuance); + assert_eq!( + migrated_total_issuance - 155_223_151_710_u128, + solo_issuance * GWEI + para_issuance + ); }); } @@ -347,7 +349,8 @@ fn kton_total_issuance() { &blake2_128_concat_to_string(KTON_ID.encode()), &mut details, ); - assert!(details.supply - total_issuance * GWEI < 200 * GWEI); + + assert_eq!(details.supply - 4_999_999_999_u128, total_issuance * GWEI); }); }