From 0aacec3519832fbb9ee19194b9bec4d2798368f1 Mon Sep 17 00:00:00 2001 From: Tiago Carvalho Date: Fri, 16 Aug 2024 09:50:43 +0100 Subject: [PATCH 1/2] Optimize building chain ctx --- crates/apps_lib/src/cli/context.rs | 5 ++--- crates/apps_lib/src/config/genesis/chain.rs | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/crates/apps_lib/src/cli/context.rs b/crates/apps_lib/src/cli/context.rs index aa0e6c6141..8483cc60ec 100644 --- a/crates/apps_lib/src/cli/context.rs +++ b/crates/apps_lib/src/cli/context.rs @@ -162,10 +162,9 @@ impl Context { let mut config = Config::load(&global_args.base_dir, chain_id, None); let chain_dir = global_args.base_dir.join(chain_id.as_str()); - let genesis = - genesis::chain::Finalized::read_toml_files(&chain_dir) + let native_token = + genesis::chain::Finalized::read_native_token(&chain_dir) .expect("Missing genesis files"); - let native_token = genesis.get_native_token().clone(); let wallet = if wallet::exists(&chain_dir) { wallet::load(&chain_dir).unwrap() } else { diff --git a/crates/apps_lib/src/config/genesis/chain.rs b/crates/apps_lib/src/config/genesis/chain.rs index fac84c20d0..df50cb07b5 100644 --- a/crates/apps_lib/src/config/genesis/chain.rs +++ b/crates/apps_lib/src/config/genesis/chain.rs @@ -86,6 +86,24 @@ impl Finalized { Ok(()) } + /// Attempt to read the address of the native token. + pub fn read_native_token(input_dir: &Path) -> eyre::Result
{ + let tokens_file = input_dir.join(templates::TOKENS_FILE_NAME); + let parameters_file = input_dir.join(templates::PARAMETERS_FILE_NAME); + + let mut tokens: FinalizedTokens = read_toml(&tokens_file, "Tokens")?; + let parameters: FinalizedParameters = + read_toml(¶meters_file, "Parameters")?; + + let alias = ¶meters.parameters.native_token; + + Ok(tokens + .token + .remove(alias) + .expect("The native token must exist") + .address) + } + /// Try to read all genesis and the chain metadata TOML files from the given /// directory. pub fn read_toml_files(input_dir: &Path) -> eyre::Result { From eaf704f4c39691d239b6f88013f0942eb5c61793 Mon Sep 17 00:00:00 2001 From: Tiago Carvalho Date: Fri, 16 Aug 2024 09:55:39 +0100 Subject: [PATCH 2/2] Changelog for #3655 Co-authored-by: Tomas Zemanovic --- .../unreleased/improvements/3655-speed-up-ctx-build.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changelog/unreleased/improvements/3655-speed-up-ctx-build.md diff --git a/.changelog/unreleased/improvements/3655-speed-up-ctx-build.md b/.changelog/unreleased/improvements/3655-speed-up-ctx-build.md new file mode 100644 index 0000000000..0b9c199567 --- /dev/null +++ b/.changelog/unreleased/improvements/3655-speed-up-ctx-build.md @@ -0,0 +1,5 @@ +- Speeds up client commands on networks with massive balances.toml + files. Previously, to retrieve the native token of some network, + we had to parse these giant files. Now, we only parse the + necessary genesis toml files required to retrieve the native token. + ([\#3655](https://github.com/anoma/namada/pull/3655)) \ No newline at end of file