diff --git a/Cargo.lock b/Cargo.lock index b624a6fb021..53290c5a424 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4228,6 +4228,7 @@ version = "0.22.0" dependencies = [ "async-trait", "borsh 1.0.0-alpha.4", + "borsh-ext", "criterion", "ferveo-common", "masp_primitives", diff --git a/apps/src/lib/config/genesis.rs b/apps/src/lib/config/genesis.rs index fa4440f33ad..d081846aad6 100644 --- a/apps/src/lib/config/genesis.rs +++ b/apps/src/lib/config/genesis.rs @@ -3,7 +3,6 @@ use std::collections::{BTreeMap, HashMap}; use borsh::{BorshDeserialize, BorshSerialize}; -use borsh_ext::BorshSerializeExt; use derivative::Derivative; use namada::core::ledger::governance::parameters::GovernanceParameters; use namada::core::ledger::pgf::parameters::PgfParameters; @@ -750,7 +749,7 @@ pub mod genesis_config { } #[derive(Debug, BorshSerialize, BorshDeserialize)] -#[borsh_init(init)] +#[borsh(init=init)] pub struct Genesis { pub genesis_time: DateTimeUtc, pub native_token: Address, @@ -1167,7 +1166,7 @@ pub fn genesis(num_validators: u64) -> Genesis { #[cfg(test)] pub mod tests { - use borsh::BorshSerialize; + use borsh_ext::BorshSerializeExt; use namada::types::address::testing::gen_established_address; use namada::types::key::*; use rand::prelude::ThreadRng; diff --git a/apps/src/lib/node/ledger/shell/init_chain.rs b/apps/src/lib/node/ledger/shell/init_chain.rs index 346104527e9..67710985ad7 100644 --- a/apps/src/lib/node/ledger/shell/init_chain.rs +++ b/apps/src/lib/node/ledger/shell/init_chain.rs @@ -2,6 +2,7 @@ use std::collections::HashMap; use std::hash::Hash; +use borsh_ext::BorshSerializeExt; #[cfg(not(feature = "mainnet"))] use namada::core::ledger::testnet_pow; use namada::ledger::eth_bridge::EthBridgeStatus; diff --git a/apps/src/lib/node/ledger/shell/mod.rs b/apps/src/lib/node/ledger/shell/mod.rs index 7a33b487628..4235796359f 100644 --- a/apps/src/lib/node/ledger/shell/mod.rs +++ b/apps/src/lib/node/ledger/shell/mod.rs @@ -26,7 +26,8 @@ use std::path::{Path, PathBuf}; #[allow(unused_imports)] use std::rc::Rc; -use borsh::{BorshDeserialize, BorshSerialize}; +use borsh::BorshDeserialize; +use borsh_ext::BorshSerializeExt; use masp_primitives::transaction::Transaction; use namada::core::ledger::eth_bridge; use namada::ledger::eth_bridge::{EthBridgeQueries, EthereumOracleConfig}; diff --git a/apps/src/lib/node/ledger/shell/prepare_proposal.rs b/apps/src/lib/node/ledger/shell/prepare_proposal.rs index d2a475e525f..207ae3816bd 100644 --- a/apps/src/lib/node/ledger/shell/prepare_proposal.rs +++ b/apps/src/lib/node/ledger/shell/prepare_proposal.rs @@ -507,7 +507,7 @@ mod test_prepare_proposal { #[cfg(feature = "abcipp")] use std::collections::{BTreeSet, HashMap}; - use borsh::BorshSerialize; + use borsh_ext::BorshSerializeExt; use namada::core::ledger::storage_api::collections::lazy_map::{ NestedSubKey, SubKey, }; diff --git a/apps/src/lib/node/ledger/shell/queries.rs b/apps/src/lib/node/ledger/shell/queries.rs index 0cd5ed41f2b..0e8bfc5f559 100644 --- a/apps/src/lib/node/ledger/shell/queries.rs +++ b/apps/src/lib/node/ledger/shell/queries.rs @@ -1,6 +1,6 @@ //! Shell methods for querying state -use borsh::BorshSerialize; +use borsh_ext::BorshSerializeExt; use ferveo_common::TendermintValidator; use namada::ledger::pos::into_tm_voting_power; use namada::ledger::queries::{RequestCtx, ResponseQuery}; diff --git a/apps/src/lib/node/ledger/shell/vote_extensions/bridge_pool_vext.rs b/apps/src/lib/node/ledger/shell/vote_extensions/bridge_pool_vext.rs index 1c7419a4e1d..00f2d8c708e 100644 --- a/apps/src/lib/node/ledger/shell/vote_extensions/bridge_pool_vext.rs +++ b/apps/src/lib/node/ledger/shell/vote_extensions/bridge_pool_vext.rs @@ -270,7 +270,7 @@ where mod test_bp_vote_extensions { #[cfg(feature = "abcipp")] use borsh::BorshDeserialize; - use borsh::BorshSerialize; + use borsh_ext::BorshSerializeExt; #[cfg(not(feature = "abcipp"))] use namada::core::ledger::eth_bridge::storage::bridge_pool::get_key_from_hash; #[cfg(not(feature = "abcipp"))] diff --git a/apps/src/lib/node/ledger/shell/vote_extensions/eth_events.rs b/apps/src/lib/node/ledger/shell/vote_extensions/eth_events.rs index 4c21494ee97..ab3d2154306 100644 --- a/apps/src/lib/node/ledger/shell/vote_extensions/eth_events.rs +++ b/apps/src/lib/node/ledger/shell/vote_extensions/eth_events.rs @@ -448,7 +448,7 @@ mod test_vote_extensions { #[cfg(feature = "abcipp")] use borsh::BorshDeserialize; - use borsh::BorshSerialize; + use borsh_ext::BorshSerializeExt; use namada::core::ledger::storage_api::collections::lazy_map::{ NestedSubKey, SubKey, }; diff --git a/apps/src/lib/node/ledger/storage/rocksdb.rs b/apps/src/lib/node/ledger/storage/rocksdb.rs index 78b95af5d29..1e2d74fbf3e 100644 --- a/apps/src/lib/node/ledger/storage/rocksdb.rs +++ b/apps/src/lib/node/ledger/storage/rocksdb.rs @@ -40,7 +40,8 @@ use std::str::FromStr; use std::sync::Mutex; use ark_serialize::Write; -use borsh::{BorshDeserialize, BorshSerialize}; +use borsh::BorshDeserialize; +use borsh_ext::BorshSerializeExt; use data_encoding::HEXLOWER; use namada::core::types::ethereum_structs; use namada::ledger::storage::types::PrefixIterator; diff --git a/apps/src/lib/node/ledger/tendermint_node.rs b/apps/src/lib/node/ledger/tendermint_node.rs index ddf195f530c..0833f7c3a73 100644 --- a/apps/src/lib/node/ledger/tendermint_node.rs +++ b/apps/src/lib/node/ledger/tendermint_node.rs @@ -3,7 +3,7 @@ use std::path::{Path, PathBuf}; use std::process::Stdio; use std::str::FromStr; -use borsh::BorshSerialize; +use borsh_ext::BorshSerializeExt; use namada::types::chain::ChainId; use namada::types::key::*; use namada::types::storage::BlockHeight; @@ -24,7 +24,6 @@ use crate::facade::tendermint::{block, Genesis}; use crate::facade::tendermint_config::{ Error as TendermintError, TendermintConfig, }; - /// Env. var to output Tendermint log to stdout pub const ENV_VAR_TM_STDOUT: &str = "NAMADA_CMT_STDOUT"; diff --git a/benches/Cargo.toml b/benches/Cargo.toml index 244363f9b72..7aedfdf5f8e 100644 --- a/benches/Cargo.toml +++ b/benches/Cargo.toml @@ -44,6 +44,7 @@ path = "host_env.rs" [dependencies] async-trait.workspace = true borsh.workspace = true +borsh-ext.workspace = true ferveo-common.workspace = true masp_primitives.workspace = true masp_proofs.workspace = true diff --git a/benches/host_env.rs b/benches/host_env.rs index e77f1b3458d..c2bc8475e56 100644 --- a/benches/host_env.rs +++ b/benches/host_env.rs @@ -1,4 +1,4 @@ -use borsh::BorshSerialize; +use borsh_ext::BorshSerializeExt; use criterion::{criterion_group, criterion_main, Criterion}; use namada::core::types::account::AccountPublicKeysMap; use namada::core::types::address; diff --git a/benches/lib.rs b/benches/lib.rs index 3a17427376c..c3538e42237 100644 --- a/benches/lib.rs +++ b/benches/lib.rs @@ -20,6 +20,7 @@ use std::ops::{Deref, DerefMut}; use std::path::PathBuf; use borsh::{BorshDeserialize, BorshSerialize}; +use borsh_ext::BorshSerializeExt; use masp_primitives::transaction::Transaction; use masp_primitives::zip32::ExtendedFullViewingKey; use masp_proofs::prover::LocalTxProver; @@ -545,7 +546,7 @@ impl Clone for WrapperTempDir { #[derive(BorshSerialize, BorshDeserialize, Debug, Clone, Default)] pub struct BenchShieldedUtils { - #[borsh_skip] + #[borsh(skip)] context_dir: WrapperTempDir, } diff --git a/encoding_spec/src/main.rs b/encoding_spec/src/main.rs index cc1082f38be..4365fd4a018 100644 --- a/encoding_spec/src/main.rs +++ b/encoding_spec/src/main.rs @@ -15,17 +15,15 @@ #![deny(rustdoc::broken_intra_doc_links)] #![deny(rustdoc::private_intra_doc_links)] -use std::collections::{BTreeMap, HashMap, HashSet}; +use std::collections::{BTreeMap, HashSet}; use std::io::Write; use std::iter::Extend; -use borsh::{schema, BorshSchema, schema_container_of}; use borsh::schema::{BorshSchemaContainer, Declaration, Definition}; +use borsh::{schema, schema_container_of}; use itertools::Itertools; use lazy_static::lazy_static; use madato::types::TableRow; -use namada::eth_bridge::ethers::core::k256::elliptic_curve::weierstrass::add; -use namada::eth_bridge::ethers::utils::rlp::decode_list; use namada::ledger::parameters::Parameters; use namada::types::address::Address; use namada::types::key::ed25519::{PublicKey, Signature}; @@ -61,11 +59,9 @@ lazy_static! { } fn btree(b: &BorshSchemaContainer) -> BTreeMap { - let mut btree = BTreeMap::new(); - for (dec, def) in b.definitions() { - btree.insert(dec.clone(), def.clone()); - } - btree + b.definitions() + .map(|(x, y)| (x.clone(), y.clone())) + .collect() } fn main() -> Result<(), Box> { @@ -105,7 +101,7 @@ fn main() -> Result<(), Box> { // Merge type definitions - let mut definitions= btree(&address_schema); + let mut definitions = btree(&address_schema); // TODO check for conflicts (same name, different declaration) definitions.extend(btree(&token_amount_schema)); @@ -360,7 +356,11 @@ fn definition_to_table(name: &Declaration, def: schema::Definition) -> Table { } } }; - Table { name: name.to_string(), desc, rows } + Table { + name: name.to_string(), + desc, + rows, + } } /// Format a type to markdown. For internal types, adds anchors. diff --git a/ethereum_bridge/src/parameters.rs b/ethereum_bridge/src/parameters.rs index 7bc0ed42f22..054cfe6e003 100644 --- a/ethereum_bridge/src/parameters.rs +++ b/ethereum_bridge/src/parameters.rs @@ -2,7 +2,6 @@ use std::num::NonZeroU64; use borsh::{BorshDeserialize, BorshSerialize}; -use borsh_ext::BorshSerializeExt; use eyre::{eyre, Result}; use namada_core::ledger::eth_bridge::storage::whitelist; use namada_core::ledger::storage; @@ -379,6 +378,7 @@ where #[cfg(test)] mod tests { + use borsh_ext::BorshSerializeExt; use eyre::Result; use namada_core::ledger::storage::testing::TestWlStorage; use namada_core::types::ethereum_events::EthAddress; diff --git a/ethereum_bridge/src/protocol/transactions/bridge_pool_roots.rs b/ethereum_bridge/src/protocol/transactions/bridge_pool_roots.rs index 3dbc2310c9b..7b475306c60 100644 --- a/ethereum_bridge/src/protocol/transactions/bridge_pool_roots.rs +++ b/ethereum_bridge/src/protocol/transactions/bridge_pool_roots.rs @@ -1,6 +1,5 @@ use std::collections::{HashMap, HashSet}; -use borsh::BorshSerialize; use borsh_ext::BorshSerializeExt; use eyre::Result; use namada_core::ledger::eth_bridge::storage::bridge_pool::get_signed_root_key; @@ -186,7 +185,7 @@ where mod test_apply_bp_roots_to_storage { use std::collections::BTreeSet; - use borsh::{BorshDeserialize, BorshSerialize}; + use borsh::BorshDeserialize; use namada_core::ledger::eth_bridge::storage::bridge_pool::{ get_key_from_hash, get_nonce_key, }; diff --git a/ethereum_bridge/src/protocol/transactions/ethereum_events/events.rs b/ethereum_bridge/src/protocol/transactions/ethereum_events/events.rs index f9b4bdbcbf4..e0a42d9c600 100644 --- a/ethereum_bridge/src/protocol/transactions/ethereum_events/events.rs +++ b/ethereum_bridge/src/protocol/transactions/ethereum_events/events.rs @@ -4,7 +4,6 @@ use std::collections::{BTreeSet, HashSet}; use std::str::FromStr; use borsh::BorshDeserialize; -use borsh_ext::BorshSerializeExt; use eyre::{Result, WrapErr}; use namada_core::hints; use namada_core::ledger::eth_bridge::storage::bridge_pool::{ @@ -613,7 +612,7 @@ mod tests { use std::collections::HashMap; use assert_matches::assert_matches; - use borsh::BorshSerialize; + use borsh_ext::BorshSerializeExt; use eyre::Result; use namada_core::ledger::eth_bridge::storage::bridge_pool::get_pending_key; use namada_core::ledger::parameters::{ diff --git a/ethereum_bridge/src/protocol/transactions/read.rs b/ethereum_bridge/src/protocol/transactions/read.rs index c065d7cba4c..257c045e333 100644 --- a/ethereum_bridge/src/protocol/transactions/read.rs +++ b/ethereum_bridge/src/protocol/transactions/read.rs @@ -1,6 +1,5 @@ //! Helpers for reading from storage use borsh::BorshDeserialize; -use borsh_ext::BorshSerializeExt; use eyre::{eyre, Result}; use namada_core::ledger::storage::traits::StorageHasher; use namada_core::ledger::storage::{DBIter, WlStorage, DB}; @@ -56,7 +55,6 @@ where #[cfg(test)] mod tests { use assert_matches::assert_matches; - use borsh::BorshSerialize; use borsh_ext::BorshSerializeExt; use namada_core::ledger::storage::testing::TestWlStorage; use namada_core::ledger::storage_api::StorageWrite; diff --git a/ethereum_bridge/src/protocol/transactions/update.rs b/ethereum_bridge/src/protocol/transactions/update.rs index 751515d88d0..69530c03153 100644 --- a/ethereum_bridge/src/protocol/transactions/update.rs +++ b/ethereum_bridge/src/protocol/transactions/update.rs @@ -1,6 +1,5 @@ //! Helpers for writing to storage use borsh::{BorshDeserialize, BorshSerialize}; -use borsh_ext::BorshSerializeExt; use eyre::Result; use namada_core::ledger::storage::{DBIter, StorageHasher, WlStorage, DB}; use namada_core::ledger::storage_api::StorageWrite; diff --git a/ethereum_bridge/src/test_utils.rs b/ethereum_bridge/src/test_utils.rs index 7a2e4cb6853..3d31cc77d1a 100644 --- a/ethereum_bridge/src/test_utils.rs +++ b/ethereum_bridge/src/test_utils.rs @@ -3,7 +3,6 @@ use std::collections::HashMap; use std::num::NonZeroU64; -use borsh::BorshSerialize; use borsh_ext::BorshSerializeExt; use namada_core::ledger::eth_bridge::storage::bridge_pool::get_key_from_hash; use namada_core::ledger::eth_bridge::storage::whitelist; diff --git a/ethereum_bridge/src/vp.rs b/ethereum_bridge/src/vp.rs index d10425602d1..ed678ff03b5 100644 --- a/ethereum_bridge/src/vp.rs +++ b/ethereum_bridge/src/vp.rs @@ -1,4 +1,3 @@ - use borsh_ext::BorshSerializeExt; use namada_core::ledger::storage::{self as ledger_storage, StorageHasher}; use namada_core::ledger::storage_api::StorageWrite; diff --git a/shared/src/ledger/eth_bridge/bridge_pool.rs b/shared/src/ledger/eth_bridge/bridge_pool.rs index 4e3f94cff4b..719c9019352 100644 --- a/shared/src/ledger/eth_bridge/bridge_pool.rs +++ b/shared/src/ledger/eth_bridge/bridge_pool.rs @@ -6,7 +6,6 @@ use std::collections::HashMap; use std::io::Write; use std::sync::Arc; -use borsh::BorshSerialize; use borsh_ext::BorshSerializeExt; use ethbridge_bridge_contract::Bridge; use ethers::providers::Middleware; diff --git a/shared/src/ledger/ibc/vp/context.rs b/shared/src/ledger/ibc/vp/context.rs index e8a82c1d2a9..519e1ae2330 100644 --- a/shared/src/ledger/ibc/vp/context.rs +++ b/shared/src/ledger/ibc/vp/context.rs @@ -2,7 +2,6 @@ use std::collections::{BTreeSet, HashMap, HashSet}; -use borsh::BorshSerialize; use borsh_ext::BorshSerializeExt; use namada_core::ledger::ibc::storage::is_ibc_key; use namada_core::ledger::ibc::{IbcCommonContext, IbcStorageContext}; diff --git a/shared/src/ledger/ibc/vp/mod.rs b/shared/src/ledger/ibc/vp/mod.rs index 2b3b93898b1..6774d28db21 100644 --- a/shared/src/ledger/ibc/vp/mod.rs +++ b/shared/src/ledger/ibc/vp/mod.rs @@ -7,7 +7,6 @@ use std::collections::{BTreeSet, HashSet}; use std::rc::Rc; use std::time::Duration; -use borsh_ext::BorshSerializeExt; use context::{PseudoExecutionContext, VpValidationContext}; use namada_core::ledger::ibc::{ Error as ActionError, IbcActions, TransferModule, ValidationParams, @@ -292,7 +291,7 @@ mod tests { use std::convert::TryFrom; use std::str::FromStr; - use borsh::BorshSerialize; + use borsh_ext::BorshSerializeExt; use namada_core::ledger::gas::TxGasMeter; use prost::Message; use sha2::Digest; diff --git a/shared/src/ledger/native_vp/ethereum_bridge/bridge_pool_vp.rs b/shared/src/ledger/native_vp/ethereum_bridge/bridge_pool_vp.rs index 4294f33b158..250bb6e6d07 100644 --- a/shared/src/ledger/native_vp/ethereum_bridge/bridge_pool_vp.rs +++ b/shared/src/ledger/native_vp/ethereum_bridge/bridge_pool_vp.rs @@ -16,7 +16,6 @@ use std::collections::BTreeSet; use std::marker::PhantomData; use borsh::BorshDeserialize; -use borsh_ext::BorshSerializeExt; use eyre::eyre; use namada_core::hints; use namada_core::ledger::eth_bridge::storage::bridge_pool::{ @@ -589,7 +588,8 @@ where mod test_bridge_pool_vp { use std::env::temp_dir; - use borsh::BorshSerialize; + use borsh::BorshDeserialize; + use borsh_ext::BorshSerializeExt; use namada_core::ledger::eth_bridge::storage::bridge_pool::get_signed_root_key; use namada_core::ledger::gas::TxGasMeter; use namada_core::types::address; diff --git a/shared/src/ledger/native_vp/ethereum_bridge/nut.rs b/shared/src/ledger/native_vp/ethereum_bridge/nut.rs index 2a1ea22bdd4..6dbb79d7883 100644 --- a/shared/src/ledger/native_vp/ethereum_bridge/nut.rs +++ b/shared/src/ledger/native_vp/ethereum_bridge/nut.rs @@ -121,6 +121,7 @@ mod test_nuts { use std::env::temp_dir; use assert_matches::assert_matches; + use borsh_ext::BorshSerializeExt; use namada_core::ledger::storage::testing::TestWlStorage; use namada_core::ledger::storage_api::StorageWrite; use namada_core::types::address::testing::arb_non_internal_address; @@ -135,7 +136,6 @@ mod test_nuts { use crate::ledger::gas::{TxGasMeter, VpGasMeter}; use crate::vm::wasm::VpCache; use crate::vm::WasmCacheRwAccess; - use borsh_ext::BorshSerializeExt; /// Run a VP check on a NUT transfer between the two provided addresses. fn check_nut_transfer(src: Address, dst: Address) -> Option { diff --git a/shared/src/ledger/native_vp/ethereum_bridge/vp.rs b/shared/src/ledger/native_vp/ethereum_bridge/vp.rs index b4a7d74715f..4e3b6fc828d 100644 --- a/shared/src/ledger/native_vp/ethereum_bridge/vp.rs +++ b/shared/src/ledger/native_vp/ethereum_bridge/vp.rs @@ -164,6 +164,7 @@ mod tests { use std::default::Default; use std::env::temp_dir; + use borsh_ext::BorshSerializeExt; use namada_core::ledger::eth_bridge; use namada_core::ledger::eth_bridge::storage::bridge_pool::BRIDGE_POOL_ADDRESS; use namada_core::ledger::eth_bridge::storage::wrapped_erc20s; @@ -190,7 +191,6 @@ mod tests { use crate::types::transaction::TxType; use crate::vm::wasm::VpCache; use crate::vm::WasmCacheRwAccess; - use borsh_ext::BorshSerializeExt; const ARBITRARY_OWNER_A_ADDRESS: &str = "atest1d9khqw36x9zyxwfhgfpygv2pgc65gse4gy6rjs34gfzr2v69gy6y23zpggurjv2yx5m52sesu6r4y4"; diff --git a/shared/src/ledger/native_vp/multitoken.rs b/shared/src/ledger/native_vp/multitoken.rs index 43fcc2c99ae..c110484a211 100644 --- a/shared/src/ledger/native_vp/multitoken.rs +++ b/shared/src/ledger/native_vp/multitoken.rs @@ -139,6 +139,7 @@ where mod tests { use std::collections::BTreeSet; + use borsh_ext::BorshSerializeExt; use namada_core::ledger::gas::TxGasMeter; use super::*; @@ -158,7 +159,6 @@ mod tests { }; use crate::types::transaction::TxType; use crate::vm::wasm::compilation_cache::common::testing::cache as wasm_cache; - use borsh_ext::BorshSerializeExt; const ADDRESS: Address = Address::Internal(InternalAddress::Multitoken); diff --git a/shared/src/ledger/protocol/mod.rs b/shared/src/ledger/protocol/mod.rs index fa2bc2eefbe..2033590bde2 100644 --- a/shared/src/ledger/protocol/mod.rs +++ b/shared/src/ledger/protocol/mod.rs @@ -2,7 +2,6 @@ use std::collections::BTreeSet; use std::panic; -use borsh::BorshSerialize; use borsh_ext::BorshSerializeExt; use eyre::{eyre, WrapErr}; use masp_primitives::transaction::Transaction; diff --git a/shared/src/ledger/queries/router.rs b/shared/src/ledger/queries/router.rs index 7f001bb49bf..4ed2ffa1610 100644 --- a/shared/src/ledger/queries/router.rs +++ b/shared/src/ledger/queries/router.rs @@ -6,7 +6,6 @@ //! all the `println!`s in this module. use thiserror::Error; -use borsh_ext::BorshSerializeExt; /// Router error. #[allow(missing_docs)] @@ -836,14 +835,15 @@ macro_rules! router { #[cfg(test)] mod test_rpc_handlers { + use borsh_ext::BorshSerializeExt; + use crate::ledger::queries::{ EncodedResponseQuery, RequestCtx, RequestQuery, ResponseQuery, }; use crate::ledger::storage::{DBIter, StorageHasher, DB}; - use crate::ledger::storage_api::{self, ResultExt}; + use crate::ledger::storage_api; use crate::types::storage::Epoch; use crate::types::token; - use borsh_ext::BorshSerializeExt; /// A little macro to generate boilerplate for RPC handler functions. /// These are implemented to return their name as a String, joined by diff --git a/shared/src/ledger/queries/shell.rs b/shared/src/ledger/queries/shell.rs index a3cf1572e41..ef5a8d73315 100644 --- a/shared/src/ledger/queries/shell.rs +++ b/shared/src/ledger/queries/shell.rs @@ -1,6 +1,6 @@ pub(super) mod eth_bridge; -use borsh::{BorshDeserialize, BorshSerialize}; +use borsh::BorshDeserialize; use borsh_ext::BorshSerializeExt; use masp_primitives::asset_type::AssetType; use masp_primitives::merkle_tree::MerklePath; @@ -574,7 +574,8 @@ where #[cfg(test)] mod test { - use borsh::{BorshDeserialize, BorshSerialize}; + use borsh::BorshDeserialize; + use borsh_ext::BorshSerializeExt; use namada_test_utils::TestWasms; use crate::ledger::queries::testing::TestClient; @@ -586,7 +587,6 @@ mod test { use crate::types::transaction::decrypted::DecryptedTx; use crate::types::transaction::TxType; use crate::types::{address, token}; - use borsh_ext::BorshSerializeExt; #[test] fn test_shell_queries_router_paths() { diff --git a/shared/src/ledger/queries/shell/eth_bridge.rs b/shared/src/ledger/queries/shell/eth_bridge.rs index e0bfd7b25bf..3f2b04df4b4 100644 --- a/shared/src/ledger/queries/shell/eth_bridge.rs +++ b/shared/src/ledger/queries/shell/eth_bridge.rs @@ -648,7 +648,6 @@ mod test_ethbridge_router { use std::collections::BTreeMap; use assert_matches::assert_matches; - use borsh::BorshSerialize; use namada_core::ledger::eth_bridge::storage::bridge_pool::{ get_pending_key, get_signed_root_key, BridgePoolTree, }; diff --git a/shared/src/ledger/wallet/keys.rs b/shared/src/ledger/wallet/keys.rs index edda27a90a6..141de245fb3 100644 --- a/shared/src/ledger/wallet/keys.rs +++ b/shared/src/ledger/wallet/keys.rs @@ -5,6 +5,7 @@ use std::marker::PhantomData; use std::str::FromStr; use borsh::{BorshDeserialize, BorshSerialize}; +use borsh_ext::BorshSerializeExt; use data_encoding::HEXLOWER; use orion::{aead, kdf}; use serde::{Deserialize, Serialize}; @@ -12,7 +13,6 @@ use thiserror::Error; use zeroize::Zeroizing; use crate::ledger::wallet::WalletUtils; -use borsh_ext::BorshSerializeExt; const ENCRYPTED_KEY_PREFIX: &str = "encrypted:"; const UNENCRYPTED_KEY_PREFIX: &str = "unencrypted:"; diff --git a/shared/src/vm/host_env.rs b/shared/src/vm/host_env.rs index 25b1f360fc0..ca4d2274522 100644 --- a/shared/src/vm/host_env.rs +++ b/shared/src/vm/host_env.rs @@ -4,7 +4,8 @@ use std::collections::BTreeSet; use std::convert::TryInto; use std::num::TryFromIntError; -use borsh::{BorshDeserialize, BorshSerialize}; +use borsh::BorshDeserialize; +use borsh_ext::BorshSerializeExt; use namada_core::ledger::gas::{GasMetering, TxGasMeter}; use namada_core::types::internal::KeyVal; use thiserror::Error; @@ -30,7 +31,6 @@ use crate::types::token::{ use crate::vm::memory::VmMemory; use crate::vm::prefix_iter::{PrefixIteratorId, PrefixIterators}; use crate::vm::{HostRef, MutHostRef}; -use borsh_ext::BorshSerializeExt; /// These runtime errors will abort tx WASM execution immediately #[allow(missing_docs)] @@ -999,8 +999,8 @@ where let write_log = unsafe { env.ctx.write_log.get() }; for event in write_log.get_ibc_events() { if event.event_type == event_type { - let value = borsh::to_vec(event) - .map_err(TxRuntimeError::EncodingError)?; + let value = + borsh::to_vec(event).map_err(TxRuntimeError::EncodingError)?; let len: i64 = value .len() .try_into() @@ -1456,8 +1456,7 @@ where let code_hash = Hash::try_from(&code_hash[..]) .map_err(|e| TxRuntimeError::InvalidVpCodeHash(e.to_string()))?; let (addr, gas) = write_log.init_account(&storage.address_gen, code_hash); - let addr_bytes = addr - .serialize_to_vec(); + let addr_bytes = addr.serialize_to_vec(); tx_charge_gas(env, gas)?; let gas = env .memory @@ -1620,8 +1619,7 @@ where .map_err(TxRuntimeError::StorageError)?; Ok(match header { Some(h) => { - let value = h - .serialize_to_vec(); + let value = h.serialize_to_vec(); let len: i64 = value .len() .try_into() @@ -1696,8 +1694,7 @@ where vp_host_fns::add_gas(gas_meter, gas)?; Ok(match header { Some(h) => { - let value = h - .serialize_to_vec(); + let value = h.serialize_to_vec(); let len: i64 = value .len() .try_into() diff --git a/shared/src/vm/wasm/memory.rs b/shared/src/vm/wasm/memory.rs index 95c9e232cf6..9b04160556e 100644 --- a/shared/src/vm/wasm/memory.rs +++ b/shared/src/vm/wasm/memory.rs @@ -5,6 +5,7 @@ use std::ptr::NonNull; use std::str::Utf8Error; use std::sync::Arc; +use borsh_ext::BorshSerializeExt; use namada_core::ledger::gas::VM_MEMORY_ACCESS_GAS_PER_BYTE; use thiserror::Error; use wasmer::{ @@ -18,7 +19,6 @@ use wasmer_vm::{ use crate::proto::Tx; use crate::vm::memory::VmMemory; use crate::vm::types::VpInput; -use borsh_ext::BorshSerializeExt; #[allow(missing_docs)] #[derive(Error, Debug)] @@ -86,8 +86,7 @@ pub fn write_tx_inputs( tx_data: &Tx, ) -> Result { let tx_data_ptr = 0; - let tx_data_bytes = - tx_data.serialize_to_vec(); + let tx_data_bytes = tx_data.serialize_to_vec(); let tx_data_len = tx_data_bytes.len() as _; write_memory_bytes(memory, tx_data_ptr, tx_data_bytes)?; @@ -137,13 +136,11 @@ pub fn write_vp_inputs( let data_ptr = addr_ptr + addr_len; let data_len = data_bytes.len() as _; - let keys_changed_bytes = keys_changed - .serialize_to_vec(); + let keys_changed_bytes = keys_changed.serialize_to_vec(); let keys_changed_ptr = data_ptr + data_len; let keys_changed_len = keys_changed_bytes.len() as _; - let verifiers_bytes = - verifiers.serialize_to_vec(); + let verifiers_bytes = verifiers.serialize_to_vec(); let verifiers_ptr = keys_changed_ptr + keys_changed_len; let verifiers_len = verifiers_bytes.len() as _; diff --git a/shared/src/vm/wasm/run.rs b/shared/src/vm/wasm/run.rs index da82904154f..7ebb3a63850 100644 --- a/shared/src/vm/wasm/run.rs +++ b/shared/src/vm/wasm/run.rs @@ -30,7 +30,6 @@ use crate::vm::wasm::{memory, Cache, CacheName, VpCache}; use crate::vm::{ validate_untrusted_wasm, WasmCacheAccess, WasmValidationError, }; -use borsh_ext::BorshSerializeExt; const TX_ENTRYPOINT: &str = "_apply_tx"; const VP_ENTRYPOINT: &str = "_validate_tx"; @@ -570,7 +569,7 @@ fn get_gas_rules() -> wasm_instrument::gas_metering::ConstantCostRules { #[cfg(test)] mod tests { - use borsh::BorshSerialize; + use borsh_ext::BorshSerializeExt; use itertools::Either; use namada_test_utils::TestWasms; use test_log::test; diff --git a/tests/src/e2e/ledger_tests.rs b/tests/src/e2e/ledger_tests.rs index 9a1e23c5275..e011049e103 100644 --- a/tests/src/e2e/ledger_tests.rs +++ b/tests/src/e2e/ledger_tests.rs @@ -16,7 +16,7 @@ use std::str::FromStr; use std::sync::Arc; use std::time::{Duration, Instant}; -use borsh::BorshSerialize; +use borsh_ext::BorshSerializeExt; use color_eyre::eyre::Result; use data_encoding::HEXLOWER; use namada::types::address::Address; diff --git a/tests/src/native_vp/eth_bridge_pool.rs b/tests/src/native_vp/eth_bridge_pool.rs index 47ffdaaecfe..bdca72323a7 100644 --- a/tests/src/native_vp/eth_bridge_pool.rs +++ b/tests/src/native_vp/eth_bridge_pool.rs @@ -2,7 +2,8 @@ mod test_bridge_pool_vp { use std::path::PathBuf; - use borsh::{BorshDeserialize, BorshSerialize}; + use borsh::BorshDeserialize; + use borsh_ext::BorshSerializeExt; use namada::core::ledger::eth_bridge::storage::bridge_pool::BRIDGE_POOL_ADDRESS; use namada::ledger::eth_bridge::{ wrapped_erc20s, Contracts, Erc20WhitelistEntry, EthereumBridgeConfig, diff --git a/tests/src/vm_host_env/ibc.rs b/tests/src/vm_host_env/ibc.rs index db890b00ec1..6e6dd09472e 100644 --- a/tests/src/vm_host_env/ibc.rs +++ b/tests/src/vm_host_env/ibc.rs @@ -85,7 +85,6 @@ use namada::types::token::{self, Amount, DenominatedAmount}; use namada::vm::{wasm, WasmCacheRwAccess}; use namada_core::ledger::gas::TxGasMeter; use namada_test_utils::TestWasms; -use namada_tx_prelude::BorshSerialize; use namada_tx_prelude::borsh_ext::BorshSerializeExt; use crate::tx::*; diff --git a/tests/src/vm_host_env/mod.rs b/tests/src/vm_host_env/mod.rs index 4d3610efec4..76f8b694a10 100644 --- a/tests/src/vm_host_env/mod.rs +++ b/tests/src/vm_host_env/mod.rs @@ -21,6 +21,7 @@ mod tests { use std::collections::BTreeSet; use std::panic; + use borsh_ext::BorshSerializeExt; use itertools::Itertools; use namada::ibc::core::Msg; use namada::ledger::ibc::storage as ibc_storage; @@ -41,9 +42,7 @@ mod tests { use namada_test_utils::TestWasms; use namada_tx_prelude::address::InternalAddress; use namada_tx_prelude::chain::ChainId; - use namada_tx_prelude::{ - Address, BorshSerialize, StorageRead, StorageWrite, - }; + use namada_tx_prelude::{Address, StorageRead, StorageWrite}; use namada_vp_prelude::account::AccountPublicKeysMap; use namada_vp_prelude::VpEnv; use prost::Message; diff --git a/tests/src/vm_host_env/tx.rs b/tests/src/vm_host_env/tx.rs index b6adad186bd..6bf46c96c18 100644 --- a/tests/src/vm_host_env/tx.rs +++ b/tests/src/vm_host_env/tx.rs @@ -18,12 +18,12 @@ use namada::vm::prefix_iter::PrefixIterators; use namada::vm::wasm::run::Error; use namada::vm::wasm::{self, TxCache, VpCache}; use namada::vm::{self, WasmCacheRwAccess}; -use namada_tx_prelude::{storage_api, BorshSerialize, Ctx}; +use namada_tx_prelude::borsh_ext::BorshSerializeExt; +use namada_tx_prelude::{storage_api, Ctx}; use namada_vp_prelude::key::common; use tempfile::TempDir; use crate::vp::TestVpEnv; -use namada_tx_prelude::borsh_ext::BorshSerializeExt; /// Tx execution context provides access to host env functions static mut CTX: Ctx = unsafe { Ctx::new() };