From 4da45c454bf0e67381ccbf215e4605545da9dbfb Mon Sep 17 00:00:00 2001 From: Karan Dhareshwar Date: Tue, 17 Mar 2026 10:36:53 -0500 Subject: [PATCH 1/5] Update CHANGELOGs --- execution_engine/CHANGELOG.md | 306 ++++++++++++------ .../test_support/CHANGELOG.md | 97 +++--- storage/CHANGELOG.md | 48 ++- types/CHANGELOG.md | 88 +++-- 4 files changed, 359 insertions(+), 180 deletions(-) diff --git a/execution_engine/CHANGELOG.md b/execution_engine/CHANGELOG.md index d7d941a268..1c72a5bf8d 100644 --- a/execution_engine/CHANGELOG.md +++ b/execution_engine/CHANGELOG.md @@ -1,15 +1,25 @@ # Changelog -All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog]. +All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog]. [comment]: <> (Added: new features) + [comment]: <> (Changed: changes in existing functionality) + [comment]: <> (Deprecated: soon-to-be removed features) + [comment]: <> (Removed: now removed features) + [comment]: <> (Fixed: any bug fixes) + [comment]: <> (Security: in case of vulnerabilities) +## 9.0.0 +### Added + +* Added `RewardsHandling` support to the execution engine +* Added `RewardsHandling` field to the struct `EngineConfig` ## [Unreleased] (node 2.0) @@ -22,7 +32,8 @@ All notable changes to this project will be documented in this file. The format - struct casper_execution_engine::engine_state::engine_config::EngineConfigBuilder - const casper_execution_engine::engine_state::engine_config::DEFAULT_ALLOW_AUCTION_BIDS: bool - const casper_execution_engine::engine_state::engine_config::DEFAULT_ALLOW_UNRESTRICTED_TRANSFERS: bool -- const casper_execution_engine::engine_state::engine_config::DEFAULT_BALANCE_HOLD_INTERVAL: casper_types::timestamp::TimeDiff +- const casper_execution_engine::engine_state::engine_config::DEFAULT_BALANCE_HOLD_INTERVAL: casper_types::timestamp:: + TimeDiff - const casper_execution_engine::engine_state::engine_config::DEFAULT_COMPUTE_REWARDS: bool - const casper_execution_engine::engine_state::engine_config::DEFAULT_ENABLE_ENTITY: bool - const casper_execution_engine::engine_state::engine_config::DEFAULT_MAXIMUM_DELEGATION_AMOUNT: u64 @@ -32,7 +43,8 @@ All notable changes to this project will be documented in this file. The format - const casper_execution_engine::engine_state::engine_config::DEFAULT_MAX_RUNTIME_CALL_STACK_HEIGHT: u32 - const casper_execution_engine::engine_state::engine_config::DEFAULT_MAX_STORED_VALUE_SIZE: u32 - const casper_execution_engine::engine_state::engine_config::DEFAULT_MINIMUM_DELEGATION_AMOUNT: u64 -- const casper_execution_engine::engine_state::engine_config::DEFAULT_PROTOCOL_VERSION: casper_types::protocol_version::ProtocolVersion +- const casper_execution_engine::engine_state::engine_config::DEFAULT_PROTOCOL_VERSION: casper_types::protocol_version:: + ProtocolVersion - const casper_execution_engine::engine_state::engine_config::DEFAULT_STRICT_ARGUMENT_CHECKING: bool - const casper_execution_engine::engine_state::engine_config::DEFAULT_VESTING_SCHEDULE_LENGTH_MILLIS: u64 - enum casper_execution_engine::engine_state::Error @@ -71,8 +83,11 @@ All notable changes to this project will be documented in this file. The format - const casper_execution_engine::runtime::DEFAULT_MAX_GLOBALS: u32 - const casper_execution_engine::runtime::DEFAULT_MAX_PARAMETER_COUNT: u32 - const casper_execution_engine::runtime::DEFAULT_MAX_TABLE_SIZE: u32 -- fn casper_execution_engine::runtime::cycles_for_instruction(instruction: &casper_wasm::elements::ops::Instruction) -> u32 -- fn casper_execution_engine::runtime::preprocess(wasm_config: casper_types::chainspec::vm_config::wasm_config::WasmConfig, module_bytes: &[u8]) -> core::result::Result +- fn casper_execution_engine::runtime::cycles_for_instruction(instruction: &casper_wasm::elements::ops::Instruction) -> + u32 +- fn casper_execution_engine::runtime::preprocess(wasm_config: casper_types::chainspec::vm_config::wasm_config:: + WasmConfig, module_bytes: &[u8]) -> core::result::Result - type casper_execution_engine::runtime::RuntimeStackFrame = casper_types::system::caller::Caller - enum casper_execution_engine::runtime_context::AllowInstallUpgrade - struct casper_execution_engine::runtime_context::RuntimeContext<'a, R> @@ -115,7 +130,8 @@ All notable changes to this project will be documented in this file. The format - enum casper_execution_engine::core::engine_state::execution_result::ExecutionResult - enum casper_execution_engine::core::engine_state::execution_result::ForcedTransferResult - struct casper_execution_engine::core::engine_state::execution_result::ExecutionResultBuilder -- type casper_execution_engine::core::engine_state::execution_result::ExecutionResults = alloc::collections::vec_deque::VecDeque +- type casper_execution_engine::core::engine_state::execution_result::ExecutionResults = alloc::collections::vec_deque:: + VecDeque - enum casper_execution_engine::core::engine_state::genesis::GenesisAccount - enum casper_execution_engine::core::engine_state::genesis::GenesisError - struct casper_execution_engine::core::engine_state::genesis::AdministratorAccount @@ -188,29 +204,46 @@ All notable changes to this project will be documented in this file. The format - const casper_execution_engine::core::engine_state::DEFAULT_MAX_RUNTIME_CALL_STACK_HEIGHT: u32 - const casper_execution_engine::core::engine_state::MAX_PAYMENT_AMOUNT: u64 - const casper_execution_engine::core::engine_state::WASMLESS_TRANSFER_FIXED_GAS_PRICE: u64 -- static casper_execution_engine::core::engine_state::MAX_PAYMENT: once_cell::sync::Lazy +- static casper_execution_engine::core::engine_state::MAX_PAYMENT: once_cell::sync::Lazy - enum casper_execution_engine::core::execution::Error - enum casper_execution_engine::core::resolvers::error::ResolverError - trait casper_execution_engine::core::resolvers::memory_resolver::MemoryResolver - struct casper_execution_engine::core::runtime::stack::RuntimeStack - struct casper_execution_engine::core::runtime::stack::RuntimeStackOverflow -- type casper_execution_engine::core::runtime::stack::RuntimeStackFrame = casper_types::system::call_stack_element::CallStackElement +- type casper_execution_engine::core::runtime::stack::RuntimeStackFrame = casper_types::system::call_stack_element:: + CallStackElement - struct casper_execution_engine::core::runtime::Runtime<'a, R> - struct casper_execution_engine::core::runtime_context::RuntimeContext<'a, R> - const casper_execution_engine::core::runtime_context::RANDOM_BYTES_COUNT: usize -- fn casper_execution_engine::core::runtime_context::validate_group_membership(contract_package: &casper_types::contracts::ContractPackage, access: &casper_types::contracts::EntryPointAccess, validator: impl core::ops::function::Fn(&casper_types::uref::URef) -> bool) -> core::result::Result<(), casper_execution_engine::core::engine_state::ExecError> +- fn casper_execution_engine::core::runtime_context::validate_group_membership(contract_package: &casper_types:: + contracts::ContractPackage, access: &casper_types::contracts::EntryPointAccess, validator: impl core::ops::function:: + Fn(&casper_types::uref::URef) -> bool) -> core::result::Result<(), casper_execution_engine::core::engine_state:: + ExecError> - enum casper_execution_engine::core::tracking_copy::AddResult - enum casper_execution_engine::core::tracking_copy::TrackingCopyQueryResult - enum casper_execution_engine::core::tracking_copy::ValidationError - struct casper_execution_engine::core::tracking_copy::TrackingCopy - struct casper_execution_engine::core::tracking_copy::TrackingCopyCache - trait casper_execution_engine::core::tracking_copy::TrackingCopyExt -- fn casper_execution_engine::core::tracking_copy::validate_balance_proof(hash: &casper_hashing::Digest, balance_proof: &casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof, expected_purse_key: casper_types::key::Key, expected_motes: &casper_types::uint::macro_code::U512) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> -- fn casper_execution_engine::core::tracking_copy::validate_query_proof(hash: &casper_hashing::Digest, proofs: &[casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof], expected_first_key: &casper_types::key::Key, path: &[alloc::string::String], expected_value: &casper_types::stored_value::StoredValue) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> +- fn casper_execution_engine::core::tracking_copy::validate_balance_proof(hash: &casper_hashing::Digest, balance_proof: + &casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof, expected_purse_key: casper_types::key::Key, expected_motes: &casper_types::uint:: + macro_code::U512) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> +- fn casper_execution_engine::core::tracking_copy::validate_query_proof(hash: &casper_hashing::Digest, + proofs: &[casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof], + expected_first_key: &casper_types::key::Key, path: &[alloc::string::String], expected_value: &casper_types:: + stored_value::StoredValue) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> - enum casper_execution_engine::core::ValidationError - const casper_execution_engine::core::ADDRESS_LENGTH: usize -- fn casper_execution_engine::core::validate_balance_proof(hash: &casper_hashing::Digest, balance_proof: &casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof, expected_purse_key: casper_types::key::Key, expected_motes: &casper_types::uint::macro_code::U512) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> -- fn casper_execution_engine::core::validate_query_proof(hash: &casper_hashing::Digest, proofs: &[casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof], expected_first_key: &casper_types::key::Key, path: &[alloc::string::String], expected_value: &casper_types::stored_value::StoredValue) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> +- fn casper_execution_engine::core::validate_balance_proof(hash: &casper_hashing::Digest, balance_proof: + &casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof, expected_purse_key: casper_types::key::Key, expected_motes: &casper_types::uint:: + macro_code::U512) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> +- fn casper_execution_engine::core::validate_query_proof(hash: &casper_hashing::Digest, + proofs: &[casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof], + expected_first_key: &casper_types::key::Key, path: &[alloc::string::String], expected_value: &casper_types:: + stored_value::StoredValue) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> - type casper_execution_engine::core::Address = [u8; 32] - struct casper_execution_engine::shared::additive_map::AdditiveMap - struct casper_execution_engine::shared::execution_journal::ExecutionJournal @@ -219,9 +252,12 @@ All notable changes to this project will be documented in this file. The format - type casper_execution_engine::shared::host_function_costs::Cost = u32 - enum casper_execution_engine::shared::logging::Style - struct casper_execution_engine::shared::logging::Settings -- fn casper_execution_engine::shared::logging::initialize(settings: casper_execution_engine::shared::logging::Settings) -> core::result::Result<(), log::SetLoggerError> -- fn casper_execution_engine::shared::logging::log_details(\_log_level: log::Level, \_message_format: alloc::string::String, \_properties: alloc::collections::btree::map::BTreeMap<&str, alloc::string::String>) -- fn casper_execution_engine::shared::logging::log_host_function_metrics(\_host_function: &str, \_properties: alloc::collections::btree::map::BTreeMap<&str, alloc::string::String>) +- fn casper_execution_engine::shared::logging::initialize(settings: casper_execution_engine::shared::logging:: + Settings) -> core::result::Result<(), log::SetLoggerError> +- fn casper_execution_engine::shared::logging::log_details(\_log_level: log::Level, \_message_format: alloc::string:: + String, \_properties: alloc::collections::btree::map::BTreeMap<&str, alloc::string::String>) +- fn casper_execution_engine::shared::logging::log_host_function_metrics(\_host_function: &str, \_properties: alloc:: + collections::btree::map::BTreeMap<&str, alloc::string::String>) - struct casper_execution_engine::shared::newtypes::CorrelationId - struct casper_execution_engine::shared::opcode_costs::BrTableCost - struct casper_execution_engine::shared::opcode_costs::ControlFlowCosts @@ -288,12 +324,14 @@ All notable changes to this project will be documented in this file. The format - struct casper_execution_engine::shared::system_config::standard_payment_costs::StandardPaymentCosts - struct casper_execution_engine::shared::system_config::SystemConfig - const casper_execution_engine::shared::system_config::DEFAULT_WASMLESS_TRANSFER_COST: u32 -- fn casper_execution_engine::shared::test_utils::mocked_account(account_hash: casper_types::account::account_hash::AccountHash) -> alloc::vec::Vec<(casper_types::key::Key, casper_types::stored_value::StoredValue)> +- fn casper_execution_engine::shared::test_utils::mocked_account(account_hash: casper_types::account::account_hash:: + AccountHash) -> alloc::vec::Vec<(casper_types::key::Key, casper_types::stored_value::StoredValue)> - enum casper_execution_engine::shared::transform::Error - enum casper_execution_engine::shared::transform::Transform - static casper_execution_engine::shared::utils::OS_PAGE_SIZE: once_cell::sync::Lazy - fn casper_execution_engine::shared::utils::check_multiple_of_page_size(value: usize) -- fn casper_execution_engine::shared::utils::jsonify(value: T, pretty_print: bool) -> alloc::string::String where T: serde::ser::Serialize +- fn casper_execution_engine::shared::utils::jsonify(value: T, pretty_print: bool) -> alloc::string::String where T: + serde::ser::Serialize - struct casper_execution_engine::shared::wasm_config::WasmConfig - const casper_execution_engine::shared::wasm_config::DEFAULT_MAX_STACK_HEIGHT: u32 - const casper_execution_engine::shared::wasm_config::DEFAULT_WASM_MAX_MEMORY: u32 @@ -303,9 +341,14 @@ All notable changes to this project will be documented in this file. The format - const casper_execution_engine::shared::wasm_prep::DEFAULT_MAX_GLOBALS: u32 - const casper_execution_engine::shared::wasm_prep::DEFAULT_MAX_PARAMETER_COUNT: u32 - const casper_execution_engine::shared::wasm_prep::DEFAULT_MAX_TABLE_SIZE: u32 -- fn casper_execution_engine::shared::wasm_prep::deserialize(module_bytes: &[u8]) -> core::result::Result -- fn casper_execution_engine::shared::wasm_prep::get_module_from_entry_points(entry_point_names: alloc::vec::Vec<&str>, module: casper_wasm::elements::module::Module) -> core::result::Result, casper_execution_engine::core::engine_state::ExecError> -- fn casper_execution_engine::shared::wasm_prep::preprocess(wasm_config: casper_execution_engine::shared::wasm_config::WasmConfig, module_bytes: &[u8]) -> core::result::Result +- fn casper_execution_engine::shared::wasm_prep::deserialize(module_bytes: &[u8]) -> core::result::Result +- fn casper_execution_engine::shared::wasm_prep::get_module_from_entry_points(entry_point_names: alloc::vec::Vec<&str>, + module: casper_wasm::elements::module::Module) -> core::result::Result, casper_execution_engine:: + core::engine_state::ExecError> +- fn casper_execution_engine::shared::wasm_prep::preprocess(wasm_config: casper_execution_engine::shared::wasm_config:: + WasmConfig, module_bytes: &[u8]) -> core::result::Result - enum casper_execution_engine::storage::error::in_memory::Error - enum casper_execution_engine::storage::error::lmdb::Error - enum casper_execution_engine::storage::error::Error @@ -313,24 +356,50 @@ All notable changes to this project will be documented in this file. The format - struct casper_execution_engine::storage::global_state::lmdb::LmdbGlobalState - struct casper_execution_engine::storage::global_state::scratch::ScratchGlobalState - enum casper_execution_engine::storage::global_state::CommitError -- trait casper_execution_engine::storage::global_state::CommitProvider: casper_execution_engine::storage::global_state::StateProvider +- trait casper_execution_engine::storage::global_state::CommitProvider: casper_execution_engine::storage::global_state:: + StateProvider - trait casper_execution_engine::storage::global_state::StateProvider - trait casper_execution_engine::storage::global_state::StateReader -- fn casper_execution_engine::storage::global_state::commit<'a, R, S, H, E>(environment: &'a R, store: &S, correlation_id: casper_execution_engine::shared::newtypes::CorrelationId, prestate_hash: casper_hashing::Digest, effects: casper_execution_engine::shared::additive_map::AdditiveMap) -> core::result::Result where R: casper_execution_engine::storage::transaction_source::TransactionSource<'a, Handle = ::Handle>, S: casper_execution_engine::storage::trie_store::TrieStore, ::Error: core::convert::From<::Error>, E: core::convert::From<::Error> + core::convert::From<::Error> + core::convert::From + core::convert::From, H: core::hash::BuildHasher -- fn casper_execution_engine::storage::global_state::put_stored_values<'a, R, S, E>(environment: &'a R, store: &S, correlation_id: casper_execution_engine::shared::newtypes::CorrelationId, prestate_hash: casper_hashing::Digest, stored_values: std::collections::hash::map::HashMap) -> core::result::Result where R: casper_execution_engine::storage::transaction_source::TransactionSource<'a, Handle = ::Handle>, S: casper_execution_engine::storage::trie_store::TrieStore, ::Error: core::convert::From<::Error>, E: core::convert::From<::Error> + core::convert::From<::Error> + core::convert::From + core::convert::From +- fn casper_execution_engine::storage::global_state::commit<'a, R, S, H, E>(environment: &'a R, store: &S, + correlation_id: casper_execution_engine::shared::newtypes::CorrelationId, prestate_hash: casper_hashing::Digest, + effects: casper_execution_engine::shared::additive_map::AdditiveMap) -> core::result::Result where R: + casper_execution_engine::storage::transaction_source::TransactionSource<'a, + Handle = ::Handle>, S: casper_execution_engine::storage:: + trie_store::TrieStore, ::Error: core::convert:: + From<::Error>, E: core::convert:: + From<::Error> + core::convert:: + From<::Error> + core::convert::From + core::convert::From, H: core::hash::BuildHasher +- fn casper_execution_engine::storage::global_state::put_stored_values<'a, R, S, E>(environment: &'a R, store: &S, + correlation_id: casper_execution_engine::shared::newtypes::CorrelationId, prestate_hash: casper_hashing::Digest, + stored_values: std::collections::hash::map::HashMap) -> core::result::Result where R: casper_execution_engine::storage:: + transaction_source::TransactionSource<'a, Handle = ::Handle>, S: + casper_execution_engine::storage::trie_store::TrieStore, ::Error: core::convert:: + From<::Error>, E: core::convert:: + From<::Error> + core::convert:: + From<::Error> + core::convert::From + core::convert::From - trait casper_execution_engine::storage::store::Store - trait casper_execution_engine::storage::store::StoreExt: casper_execution_engine::storage::store::Store - struct casper_execution_engine::storage::transaction_source::in_memory::InMemoryEnvironment - struct casper_execution_engine::storage::transaction_source::in_memory::InMemoryReadTransaction - struct casper_execution_engine::storage::transaction_source::in_memory::InMemoryReadWriteTransaction<'a> - struct casper_execution_engine::storage::transaction_source::lmdb::LmdbEnvironment -- trait casper_execution_engine::storage::transaction_source::Readable: casper_execution_engine::storage::transaction_source::Transaction +- trait casper_execution_engine::storage::transaction_source::Readable: casper_execution_engine::storage:: + transaction_source::Transaction - trait casper_execution_engine::storage::transaction_source::Transaction: core::marker::Sized - trait casper_execution_engine::storage::transaction_source::TransactionSource<'a> -- trait casper_execution_engine::storage::transaction_source::Writable: casper_execution_engine::storage::transaction_source::Transaction -- fn casper_execution_engine::storage::transaction_source::Writable::write(&mut self, handle: Self::Handle, key: &[u8], value: &[u8]) -> core::result::Result<(), Self::Error> +- trait casper_execution_engine::storage::transaction_source::Writable: casper_execution_engine::storage:: + transaction_source::Transaction +- fn casper_execution_engine::storage::transaction_source::Writable::write(&mut self, handle: Self::Handle, key: &[u8], + value: &[u8]) -> core::result::Result<(), Self::Error> - impl<'a> casper_execution_engine::storage::transaction_source::Writable for lmdb::transaction::RwTransaction<'a> -- fn lmdb::transaction::RwTransaction<'a>::write(&mut self, handle: Self::Handle, key: &[u8], value: &[u8]) -> core::result::Result<(), Self::Error> +- fn lmdb::transaction::RwTransaction<'a>::write(&mut self, handle: Self::Handle, key: &[u8], value: &[u8]) -> core:: + result::Result<(), Self::Error> - enum casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProofStep - struct casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof - enum casper_execution_engine::storage::trie::DescendantsIterator<'a> @@ -338,192 +407,220 @@ All notable changes to this project will be documented in this file. The format - enum casper_execution_engine::storage::trie::Trie - struct casper_execution_engine::storage::trie::PointerBlock - struct casper_execution_engine::storage::trie::TrieRaw -- type casper_execution_engine::storage::trie::Parents = alloc::vec::Vec<(u8, casper_execution_engine::storage::trie::Trie)> -- type casper_execution_engine::storage::trie::PointerBlockArray = [casper_execution_engine::storage::trie::PointerBlockValue; 256] -- type casper_execution_engine::storage::trie::PointerBlockValue = core::option::Option +- type casper_execution_engine::storage::trie::Parents = alloc::vec::Vec<(u8, casper_execution_engine::storage:: + trie::Trie)> +- type casper_execution_engine::storage::trie:: + PointerBlockArray = [casper_execution_engine::storage::trie::PointerBlockValue; 256] +- type casper_execution_engine::storage::trie::PointerBlockValue = core::option::Option - struct casper_execution_engine::storage::trie_store::in_memory::InMemoryTrieStore - struct casper_execution_engine::storage::trie_store::lmdb::LmdbTrieStore -- trait casper_execution_engine::storage::trie_store::TrieStore: casper_execution_engine::storage::store::Store> +- trait casper_execution_engine::storage::trie_store::TrieStore: casper_execution_engine::storage::store::Store< + casper_hashing::Digest, casper_execution_engine::storage::trie::Trie> - macro casper_execution_engine::make_array_newtype! - ## 7.0.1 ### Changed -* Change the cost of `wasm.storage_costs.gas_per_byte` and `shared::storage_costs::DEFAULT_GAS_PER_BYTE_COST` from `630_000` to `1_117_587`. + +* Change the cost of `wasm.storage_costs.gas_per_byte` and `shared::storage_costs::DEFAULT_GAS_PER_BYTE_COST` + from `630_000` to `1_117_587`. * Change the cost of the host function `casper_add_associated_key` from `9_000` to `1_200_000`. -* Change the cost of the argument `entry_points_size` of host function `casper_add_contract_version` from `0` to `120_000`. -* Change the cost of the host function `casper_blake2b`and its argument `in_size` from `200` and `0` respectively to `1_200_000` to `120_000`. -* Change the cost of the host function `casper_call_contract` and its arguments `entry_point_name_size` and `runtime_args_size` from `4_500`, `0` and `420` respectively to `300_000_000`, `120_000` and `120_000`. -* Change the cost of the host function `casper_call_versioned_contract` and the arguments `entry_point_name_size` and `runtime_args_size` from `4_500`, `0` and `420` respectively to `300_000_000`, `120_000` and `120_000`. +* Change the cost of the argument `entry_points_size` of host function `casper_add_contract_version` from `0` + to `120_000`. +* Change the cost of the host function `casper_blake2b`and its argument `in_size` from `200` and `0` respectively + to `1_200_000` to `120_000`. +* Change the cost of the host function `casper_call_contract` and its arguments `entry_point_name_size` + and `runtime_args_size` from `4_500`, `0` and `420` respectively to `300_000_000`, `120_000` and `120_000`. +* Change the cost of the host function `casper_call_versioned_contract` and the arguments `entry_point_name_size` + and `runtime_args_size` from `4_500`, `0` and `420` respectively to `300_000_000`, `120_000` and `120_000`. * Change the cost of the host function `casper_get_balance` from `3_800` to `3_000_000`. -* Change the cost of arguments `name_size` and `dest_size` of host function `casper_get_named_arg` from `0` to `120_000`. -* Change the cost of the host function `casper_put_key` and its arguments `name_size` and `key_size` from `38_000`, `1_100` and `0` respectively to `100_000_000`, `120_000` and `120_000`. -* Change the cost of the host function `casper_read_value` and its argument `key_size` from `6_000` and `0` respectively to `60_000` and `120_000`. -* Change the cost of the argument `urefs_size` of host function `casper_remove_contract_user_group_urefs` from `0` to `120_000`. +* Change the cost of arguments `name_size` and `dest_size` of host function `casper_get_named_arg` from `0` + to `120_000`. +* Change the cost of the host function `casper_put_key` and its arguments `name_size` and `key_size` + from `38_000`, `1_100` and `0` respectively to `100_000_000`, `120_000` and `120_000`. +* Change the cost of the host function `casper_read_value` and its argument `key_size` from `6_000` and `0` respectively + to `60_000` and `120_000`. +* Change the cost of the argument `urefs_size` of host function `casper_remove_contract_user_group_urefs` from `0` + to `120_000`. * Change the cost of the host function `casper_transfer_from_purse_to_purse` from `82_000` to `82_000_000`. - - ## [Unreleased] (node 1.5.4) + ## 7.0.0 ### Added -* Add chainspec option `core.allow_unrestricted_transfers` that, if enabled, allows token transfers between any two peers. Disabling this option makes sense only for private chains. -* Add chainspec option `core.allow_auction_bids` that, if enabled, allows auction entrypoints `delegate` and `add_bid` to operate. Disabling this option makes sense only for private chains. -* Add chainspec option `core.compute_rewards` that, if enabled, computes rewards for each era. Disabling this option makes sense only for private chains. + +* Add chainspec option `core.allow_unrestricted_transfers` that, if enabled, allows token transfers between any two + peers. Disabling this option makes sense only for private chains. +* Add chainspec option `core.allow_auction_bids` that, if enabled, allows auction entrypoints `delegate` and `add_bid` + to operate. Disabling this option makes sense only for private chains. +* Add chainspec option `core.compute_rewards` that, if enabled, computes rewards for each era. Disabling this option + makes sense only for private chains. * Add chainspec option `core.refund_handling` that specifies how payment refunds are handled. * Add chainspec option `core.fee_handling` that specifies how transaction fees are handled. -* Add chainspec option `core.administrators` that, if set, contains list of administrator accounts. This option makes sense only for private chains. +* Add chainspec option `core.administrators` that, if set, contains list of administrator accounts. This option makes + sense only for private chains. * Add support for a new FFI function `enable_contract_version` for enabling a specific version of a contract. ### Changed + * `current stack height` is written to `stderr` in case `Trap(Unreachable)` error is encountered during Wasm execution. * Tweak upgrade logic transforming withdraw purses to early exit if possible. * Lower the default gas costs of opcodes. - - Set the cost for branching opcodes to 35,000 (`br`, `br_if`, `br_table`). - - Set the cost for call opcodes to 68,000 (`call`, `call_indirect`). -* Default value for round seigniorage rate is halved to `7/175070816` due to reduction in block times, to maintain current seigniorage rate (per unit of time). + - Set the cost for branching opcodes to 35,000 (`br`, `br_if`, `br_table`). + - Set the cost for call opcodes to 68,000 (`call`, `call_indirect`). +* Default value for round seigniorage rate is halved to `7/175070816` due to reduction in block times, to maintain + current seigniorage rate (per unit of time). * Refund ratio is changed from 0% to 99%. - - ## 6.0.0 ### Changed + * Default value for `max_stack_height` is increased to 500. * Replace usage of `parity-wasm` and `wasmi` with Casper forks `casper-wasm` and `casper-wasmi` respectively. ### Fixed + * Fix incorrect handling of unbonding purses for validators that were also evicted in that era. * Fix issue with one-time code used for migrating data to support redelegations. ### Security -* Fix unbounded memory allocation issue while parsing Wasm. - +* Fix unbounded memory allocation issue while parsing Wasm. ## 5.0.0 ### Added -* Add a new entry point `redelegate` to the Auction system contract which allows users to redelegate to another validator without having to unbond. The function signature for the entrypoint is: `redelegate(delegator: PublicKey, validator: PublicKey, amount: U512, new_validator: PublicKey)` -* Add a new type `ChainspecRegistry` which contains the hashes of the `chainspec.toml` and will optionally contain the hashes for `accounts.toml` and `global_state.toml`. -* Add ability to enable strict args checking when executing a contract; i.e. that all non-optional args are provided and of the correct `CLType`. + +* Add a new entry point `redelegate` to the Auction system contract which allows users to redelegate to another + validator without having to unbond. The function signature for the entrypoint + is: `redelegate(delegator: PublicKey, validator: PublicKey, amount: U512, new_validator: PublicKey)` +* Add a new type `ChainspecRegistry` which contains the hashes of the `chainspec.toml` and will optionally contain the + hashes for `accounts.toml` and `global_state.toml`. +* Add ability to enable strict args checking when executing a contract; i.e. that all non-optional args are provided and + of the correct `CLType`. ### Changed + * Fix some integer casts. * Change both genesis and upgrade functions to write `ChainspecRegistry` under the fixed `Key::ChainspecRegistry`. * Lift the temporary limit of the size of individual values stored in global state. * Providing incorrect Wasm for execution will cause the default 2.5CSPR to be charged. * Update the default `control_flow` opcode cost from `440` to `440_000`. - - ## 4.0.0 ### Changed -* Update dependencies (in particular `casper-types` to v2.0.0 due to additional `Key` variant, requiring a major version bump here). - +* Update dependencies (in particular `casper-types` to v2.0.0 due to additional `Key` variant, requiring a major version + bump here). ## 3.1.1 ### Changed -* Update the following constant values to match settings in production chainspec: - * `DEFAULT_RET_VALUE_SIZE_WEIGHT` - * `DEFAULT_CONTROL_FLOW_CALL_OPCODE` - * `DEFAULT_CONTROL_FLOW_CALL_INDIRECT_OPCODE` - * `DEFAULT_GAS_PER_BYTE_COST` - * `DEFAULT_ADD_BID_COST` - * `DEFAULT_WITHDRAW_BID_COST` - * `DEFAULT_DELEGATE_COST` - * `DEFAULT_UNDELEGATE_COST` - * `DEFAULT_MAX_STACK_HEIGHT` - +* Update the following constant values to match settings in production chainspec: + * `DEFAULT_RET_VALUE_SIZE_WEIGHT` + * `DEFAULT_CONTROL_FLOW_CALL_OPCODE` + * `DEFAULT_CONTROL_FLOW_CALL_INDIRECT_OPCODE` + * `DEFAULT_GAS_PER_BYTE_COST` + * `DEFAULT_ADD_BID_COST` + * `DEFAULT_WITHDRAW_BID_COST` + * `DEFAULT_DELEGATE_COST` + * `DEFAULT_UNDELEGATE_COST` + * `DEFAULT_MAX_STACK_HEIGHT` ## 3.1.0 ### Added + * Add `commit_prune` functionality to support pruning of entries in global storage. ### Changed -* Update to use `casper-wasm-utils`; a patched fork of the archived `wasm-utils`. - +* Update to use `casper-wasm-utils`; a patched fork of the archived `wasm-utils`. ## 3.0.0 ### Changed + * Implement more precise control over opcode costs that lowers the gas cost. * Increase cost of `withdraw_bid` and `undelegate` auction entry points to 2.5CSPR. - - ## 2.0.1 ### Security + * Implement checks before preprocessing Wasm to avoid potential OOM when initializing table section. * Implement checks before preprocessing Wasm to avoid references to undeclared functions or globals. * Implement checks before preprocessing Wasm to avoid possibility to import internal host functions. - ## 2.0.0 - 2022-05-11 ### Changed -* Change contract runtime to allow caching global state changes during execution of a single block, also avoiding writing interstitial data to global state. - +* Change contract runtime to allow caching global state changes during execution of a single block, also avoiding + writing interstitial data to global state. ## 1.5.0 - 2022-04-05 ### Changed + * Temporarily limit the size of individual values stored in global state. ### Security -* `amount` argument is now required for transactions wanting to send tokens using account's main purse. It is now an upper limit on all tokens being transferred within the transaction. -* Significant rework around the responsibilities of the executor, runtime and runtime context objects, with a focus on removing alternate execution paths where unintended escalation of privilege was possible. -* Attenuate the main purse URef to remove WRITE permissions by default when returned via `ret` or passed as a runtime argument. + +* `amount` argument is now required for transactions wanting to send tokens using account's main purse. It is now an + upper limit on all tokens being transferred within the transaction. +* Significant rework around the responsibilities of the executor, runtime and runtime context objects, with a focus on + removing alternate execution paths where unintended escalation of privilege was possible. +* Attenuate the main purse URef to remove WRITE permissions by default when returned via `ret` or passed as a runtime + argument. * Fix a potential panic during Wasm preprocessing. * `get_era_validators` performs a query rather than execution. - - ## 1.4.4 - 2021-12-29 ### Changed -* No longer checksum-hex encode hash digest and address types. - +* No longer checksum-hex encode hash digest and address types. ## 1.4.3 - 2021-12-06 ### Changed + * Auction contract now handles minting into an existing purse. * Default maximum stack size in `WasmConfig` changed to 188. -* Default behavior of LMDB changed to use [`NO_READAHEAD`](https://docs.rs/lmdb/0.8.0/lmdb/struct.EnvironmentFlags.html#associatedconstant.NO_READAHEAD) +* Default behavior of LMDB changed to + use [`NO_READAHEAD`](https://docs.rs/lmdb/0.8.0/lmdb/struct.EnvironmentFlags.html#associatedconstant.NO_READAHEAD) ### Fixed -* Fix a case where an unlocked and partially unbonded genesis validator with smaller stake incorrectly occupies slot for a non-genesis validator with higher stake. - +* Fix a case where an unlocked and partially unbonded genesis validator with smaller stake incorrectly occupies slot for + a non-genesis validator with higher stake. ## [1.4.2] - 2021-11-11 ### Changed + * Execution transforms are returned in their insertion order. ### Removed + * Removed `SystemContractCache` as it was not being used anymore ## [1.4.0] - 2021-10-04 ### Added + * Added genesis validation step to ensure there are more genesis validators than validator slots. * Added a support for passing a public key as a `target` argument in native transfers. * Added a `max_associated_keys` configuration option for a hard limit of associated keys under accounts. ### Changed + * Documented `storage` module and children. * Reduced visibility to `pub(crate)` in several areas, allowing some dead code to be noticed and pruned. * Support building and testing using stable Rust. @@ -534,65 +631,66 @@ All notable changes to this project will be documented in this file. The format * Change parameters to `LmdbEnvironment`'s constructor enabling manual flushing to disk. ### Fixed -* Fix a case where user could potentially supply a refund purse as a payment purse. - +* Fix a case where user could potentially supply a refund purse as a payment purse. ## [1.3.0] - 2021-07-19 ### Changed -* Update pinned version of Rust to `nightly-2021-06-17`. - +* Update pinned version of Rust to `nightly-2021-06-17`. ## [1.2.0] - 2021-05-27 ### Added + * Add validation that the delegated amount of each genesis account is non-zero. * Add `activate-bid` client contract. * Add a check in `Mint::transfer` that the source has `Read` permissions. ### Changed + * Change to Apache 2.0 license. * Remove the strict expectation that minor and patch protocol versions must always increase by 1. ### Removed -* Remove `RootNotFound` error struct. - +* Remove `RootNotFound` error struct. ## [1.1.1] - 2021-04-19 No changes. - - ## [1.1.0] - 2021-04-13 [YANKED] No changes. - - ## [1.0.1] - 2021-04-08 No changes. - - ## [1.0.0] - 2021-03-30 ### Added -* Initial release of execution engine for Casper mainnet. - +* Initial release of execution engine for Casper mainnet. [Keep a Changelog]: https://keepachangelog.com/en/1.0.0 + [unreleased]: https://github.com/casper-network/casper-node/compare/37d561634adf73dab40fffa7f1f1ee47e80bf8a1...dev + [1.4.2]: https://github.com/casper-network/casper-node/compare/v1.4.0...37d561634adf73dab40fffa7f1f1ee47e80bf8a1 + [1.4.0]: https://github.com/casper-network/casper-node/compare/v1.3.0...v1.4.0 + [1.3.0]: https://github.com/casper-network/casper-node/compare/v1.2.0...v1.3.0 + [1.2.0]: https://github.com/casper-network/casper-node/compare/v1.1.1...v1.2.0 + [1.1.1]: https://github.com/casper-network/casper-node/compare/v1.0.1...v1.1.1 + [1.1.0]: https://github.com/casper-network/casper-node/compare/v1.0.1...v1.1.1 + [1.0.1]: https://github.com/casper-network/casper-node/compare/v1.0.0...v1.0.1 + [1.0.0]: https://github.com/casper-network/casper-node/releases/tag/v1.0.0 diff --git a/execution_engine_testing/test_support/CHANGELOG.md b/execution_engine_testing/test_support/CHANGELOG.md index a02cecbc57..7df56b7dc1 100644 --- a/execution_engine_testing/test_support/CHANGELOG.md +++ b/execution_engine_testing/test_support/CHANGELOG.md @@ -1,135 +1,139 @@ # Changelog -All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog]. +All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog]. [comment]: <> (Added: new features) + [comment]: <> (Changed: changes in existing functionality) + [comment]: <> (Deprecated: soon-to-be removed features) + [comment]: <> (Removed: now removed features) + [comment]: <> (Fixed: any bug fixes) + [comment]: <> (Security: in case of vulnerabilities) +## 9.0.0 +### Added + +* Added support for `RewardsHandling` to the execution engine testing crate +* Added support for `minimum_delegation_rate` to the execution engine testing crate ## 7.0.1 ### Added + * Provide `from_chainspec_path` and `max_associated_keys` helper methods on `ChainspecConfig`. * Provide functions for converting from `ChainspecConfig` to `EngineConfig`. * Provide `try_exec` method on `WasmTestBuilder` for fallible contract execution. * Provide `PRODUCTION_CHAINSPEC_PATH`: a lazy static defining the path to the production chainspec.toml file. - - ## 7.0.0 ### Added + * Provide `calculate_refund_amount` on `WasmTestBuilder`. * Provide `upgrade_with_upgrade_request_and_config` on `WasmTestBuilder`. - - ## 6.0.0 ### Changed + * Update `casper-execution-engine` dependency. * Handle evict items in the `WasmTestBuilder` when advancing eras or calling `step`. - - ## 5.0.0 ### Added + * Add `WasmTestBuilder::get_execution_journals` method for returning execution journals for all test runs. * Add support to load values from a given Chainspec. -* Add static and constants that represent Casper-mainnet chainspec values. These values will change as new ProtocolVersions are added. The current values reflect ones used in the 1.5.0 ProtocolVersion. -* Add `WasmTestBuilder::advance_era`, `WasmTestBuilder::advance_eras_by`, and `WasmTestBuilder::advance_eras_by_default_auction_delay` to advance chain and run auction contract in test environment. +* Add static and constants that represent Casper-mainnet chainspec values. These values will change as new + ProtocolVersions are added. The current values reflect ones used in the 1.5.0 ProtocolVersion. +* Add `WasmTestBuilder::advance_era`, `WasmTestBuilder::advance_eras_by`, + and `WasmTestBuilder::advance_eras_by_default_auction_delay` to advance chain and run auction contract in test + environment. ### Changed + * `WasmTestBuilder::get_transforms` is deprecated in favor of `WasmTestBuilder::get_execution_journals`. * `deploy_hash` field is now defaulted to a random value rather than zeros in `DeployItemBuilder`. - - ## 4.0.0 ### Changed -* Update dependencies (in particular `casper-types` to v2.0.0 due to additional `Key` variant, requiring a major version bump here). - +* Update dependencies (in particular `casper-types` to v2.0.0 due to additional `Key` variant, requiring a major version + bump here). ## 3.1.1 ### Changed -* Update chainspec values used in `PRODUCTION_RUN_GENESIS_REQUEST` to match those of Mainnet protocol version 1.4.15. - +* Update chainspec values used in `PRODUCTION_RUN_GENESIS_REQUEST` to match those of Mainnet protocol version 1.4.15. ## 3.1.0 ### Added -* Add support for `commit_prune` of `casper-execution-engine`. - +* Add support for `commit_prune` of `casper-execution-engine`. ## 3.0.0 ### Changed -* Version bump only to match major version bump of `casper-execution-engine` dependency. - +* Version bump only to match major version bump of `casper-execution-engine` dependency. ## 2.3.0 [YANKED] ### Added -* Add `ChainspecConfig` to support parsing a chainspec. - +* Add `ChainspecConfig` to support parsing a chainspec. ## 2.2.0 ### Added + * Add some auction and transfer test support functions for reuse among benchmarks and unit tests. ### Deprecated -* Deprecated the `DEFAULT_RUN_GENESIS_REQUEST` in favor of `PRODUCTION_RUN_GENESIS_REQUEST`. - +* Deprecated the `DEFAULT_RUN_GENESIS_REQUEST` in favor of `PRODUCTION_RUN_GENESIS_REQUEST`. ## 2.1.0 ### Added -* Add further helper methods to `WasmTestBuilder`. - +* Add further helper methods to `WasmTestBuilder`. ## 2.0.3 - 2021-12-06 ### Added -* Added `WasmTestBuilder::get_balance_keys` function. - +* Added `WasmTestBuilder::get_balance_keys` function. ## 2.0.2 - 2021-11-24 ### Changed -* Revert the change to the path detection logic applied in v2.0.1. - +* Revert the change to the path detection logic applied in v2.0.1. ## [2.0.1] - 2021-11-4 ### Changed + * Change the path detection logic for compiled Wasm as used by the casper-node monorepo. ### Deprecated -* Deprecate the `test-support` feature. It had and continues to have no effect when enabled. - +* Deprecate the `test-support` feature. It had and continues to have no effect when enabled. ## [2.0.0] - 2021-11-01 ### Added + * Provide fine-grained support for testing all aspects of smart contract execution, including: * `WasmTestBuilder` for building and running a test to exercise a smart contract * `DeployItemBuilder` for building a `DeployItem` from a smart contract @@ -142,6 +146,7 @@ All notable changes to this project will be documented in this file. The format * Provide several default consts and statics useful across many test scenarios ### Removed + * Remove coarse-grained support and newtypes for testing smart contracts, including removal of: * `Account` * `AccountHash` @@ -154,62 +159,60 @@ All notable changes to this project will be documented in this file. The format * `Value` * Remove `InMemoryWasmTestBuilder`. - - ## [1.4.0] - 2021-10-04 ### Changed -* Support building and testing using stable Rust. - +* Support building and testing using stable Rust. ## [1.3.0] - 2021-07-19 ### Changed -* Update pinned version of Rust to `nightly-2021-06-17`. - +* Update pinned version of Rust to `nightly-2021-06-17`. ## [1.2.0] - 2021-05-28 ### Changed -* Change to Apache 2.0 license. - +* Change to Apache 2.0 license. ## [1.1.1] - 2021-04-19 No changes. - - ## [1.1.0] - 2021-04-13 [YANKED] No changes. - - ## [1.0.1] - 2021-04-08 No changes. - - ## [1.0.0] - 2021-03-30 ### Added -* Initial release of execution-engine test support framework compatible with Casper mainnet. - +* Initial release of execution-engine test support framework compatible with Casper mainnet. [Keep a Changelog]: https://keepachangelog.com/en/1.0.0 + [unreleased]: https://github.com/casper-network/casper-node/compare/04f48a467...dev + [2.0.1]: https://github.com/casper-network/casper-node/compare/13585abcf...04f48a467 + [2.0.0]: https://github.com/casper-network/casper-node/compare/v1.4.0...13585abcf + [1.4.0]: https://github.com/casper-network/casper-node/compare/v1.3.0...v1.4.0 + [1.3.0]: https://github.com/casper-network/casper-node/compare/v1.2.0...v1.3.0 + [1.2.0]: https://github.com/casper-network/casper-node/compare/v1.1.1...v1.2.0 + [1.1.1]: https://github.com/casper-network/casper-node/compare/v1.0.1...v1.1.1 + [1.1.0]: https://github.com/casper-network/casper-node/compare/v1.0.1...v1.1.1 + [1.0.1]: https://github.com/casper-network/casper-node/compare/v1.0.0...v1.0.1 + [1.0.0]: https://github.com/casper-network/casper-node/releases/tag/v1.0.0 diff --git a/storage/CHANGELOG.md b/storage/CHANGELOG.md index b22e15f73a..1ea6df6890 100644 --- a/storage/CHANGELOG.md +++ b/storage/CHANGELOG.md @@ -1,59 +1,85 @@ # Changelog -All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog]. +All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog]. [comment]: <> (Added: new features) + [comment]: <> (Changed: changes in existing functionality) + [comment]: <> (Deprecated: soon-to-be removed features) + [comment]: <> (Removed: now removed features) + [comment]: <> (Fixed: any bug fixes) + [comment]: <> (Security: in case of vulnerabilities) +## 5.0.0 + +### Added + +* Added a field `rewards` handling to Config in the `runtime_native` module + +### Changed +* Modified the behavior of the protocol upgrade logic to add a sustain purse to the mints named keys if the rewards + handling to sustain +* Modified the behavior of the protocol upgrade logic to recalculate the total supply at the point of protocol upgrade +* Modified the Genesis flow to support the rewards handling mode sustain in the Account/Contract model +* Modified the auction logic to keep track of a minimum delegation rate for validators + +### Fixed + +* Fixed a bug introduced during protocol version 2.0 in the genesis logic that did not include delegator stakes towards + the total supply ## 4.0.1 ### Changed -* Changed the withdraw bid behavior to return an UnbondingAmountTooLarge error instead of forcing a unbonding of the valdiator's bid + +* Changed the withdraw bid behavior to return an UnbondingAmountTooLarge error instead of forcing a unbonding of the + valdiator's bid ### Fixed -* Fixed an issue in the storage create which allowed delegators to exceed the maximum limit set by the validator for the validator's bid + +* Fixed an issue in the storage create which allowed delegators to exceed the maximum limit set by the validator for the + validator's bid ## 4.0.0 ### Added + * Added `maximum_delegation_amount` field to the runtime native config struct. ### Fixed + * Fixed an issue regarding incorrect setting of delegator min max limits on validator bids ## 3.0.0 ### Changed -* Update `casper-types` to v4.0.1, requiring a major version bump here. - +* Update `casper-types` to v4.0.1, requiring a major version bump here. ## 2.0.0 ### Added -* Add `ChunkWithProof` to support chunking of large values, and associated Merkle-proofs of these. - +* Add `ChunkWithProof` to support chunking of large values, and associated Merkle-proofs of these. ## 1.4.4 ### Changed -* Update dependencies. - +* Update dependencies. ## 1.4.0 ### Added -* Initial release of crate providing `Digest` type and hashing methods, including the structs to handle proofs for chunks of data. - +* Initial release of crate providing `Digest` type and hashing methods, including the structs to handle proofs for + chunks of data. [Keep a Changelog]: https://keepachangelog.com/en/1.0.0 + [unreleased]: https://github.com/casper-network/casper-node/tree/dev diff --git a/types/CHANGELOG.md b/types/CHANGELOG.md index b0b469bb7a..f6b7505902 100644 --- a/types/CHANGELOG.md +++ b/types/CHANGELOG.md @@ -3,15 +3,35 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog]. [comment]: <> (Added: new features) + [comment]: <> (Changed: changes in existing functionality) + [comment]: <> (Deprecated: soon-to-be removed features) + [comment]: <> (Removed: now removed features) + [comment]: <> (Fixed: any bug fixes) + [comment]: <> (Security: in case of vulnerabilities) -## [UNRELEASED] casper-types 6.0.0 +## casper-types 7.0.0 + +### Added + +- Added new enum `RewardsHandling` with two variants `Standard` and `Sustain` +- Added `RewardsHandling` to the `CoreConfig` as the field `rewards_handling` +- Added `RewardsHandling` to the `ProtocolUpgradeConfig` as the field `rewards_handling` +- Added new field `minimum_delegation_rate` to the `CoreConfig` struct +- Added new variant `Key::RewardsHandling` to the `Key` enum +- Added new variant `GenesisAccount::Sustain` to the `GenesisAccount` enum +- Added new constant `MINT_SUSTAIN_PURSE_KEY` + +## casper-types 6.1.0 + +## casper-types 6.0.0 + +### Added -### Added - TransactionInvocationTarget::ByPackageHash::protocol_version_major field - TransactionInvocationTarget::ByPackageName::protocol_version_major field - New variant PackageIdentifier::HashWithVersion @@ -200,7 +220,8 @@ All notable changes to this project will be documented in this file. The format - enum system::auction::ValidatorCredits - enum system::auction::Staking - trait system::auction::BidsExt -- enum system::auction::Error has new variants: ForgedReference, MissingPurse, ValidatorBidExistsAlready,BridgeRecordChainTooLong,UnexpectedBidVariant, DelegationAmountTooLarge +- enum system::auction::Error has new variants: ForgedReference, MissingPurse, + ValidatorBidExistsAlready,BridgeRecordChainTooLong,UnexpectedBidVariant, DelegationAmountTooLarge - enum system::CallerTag - enum system::Caller - enum system::handle_payment::Error @@ -217,26 +238,34 @@ All notable changes to this project will be documented in this file. The format ### Changed -- pub enum ApiError has new variants: MessageTopicAlreadyRegistered, MaxTopicsNumberExceeded, MaxTopicNameSizeExceeded, MessageTopicNotRegistered, MessageTopicFull, MessageTooLarge, MaxMessagesPerBlockExceeded,NotAllowedToAddContractVersion,InvalidDelegationAmountLimits,InvalidCallerInfoRequest -- struct AuctionState#bids is now a BTreeMap instead of Vec. This field is still serialized as an array. Due to this change the elements of the array will have more fields than before (added `validator_public_key`, `vesting_schedule`). +- pub enum ApiError has new variants: MessageTopicAlreadyRegistered, MaxTopicsNumberExceeded, MaxTopicNameSizeExceeded, + MessageTopicNotRegistered, MessageTopicFull, MessageTooLarge, + MaxMessagesPerBlockExceeded,NotAllowedToAddContractVersion,InvalidDelegationAmountLimits,InvalidCallerInfoRequest +- struct AuctionState#bids is now a BTreeMap instead of Vec. This field is still serialized as + an array. Due to this change the elements of the array will have more fields than before ( + added `validator_public_key`, `vesting_schedule`). - Variants of enum EntryPointType changed - Struct Parameter moved from contracts to addressable_entity::entry_points - struct EraId has new methods `iter_range_inclusive`, `increment` - struct ExecutionEffect moved to module execution::execution_result_v1 - enum OpKind moved to module execution::execution_result_v1 - struct Operation moved to module execution::execution_result_v1 -- enum Transform changed name to TransformKindV1, moved to module execution::execution_result_v1 and has new variants (WriteAddressableEntity, Prune, WriteBidKind) +- enum Transform changed name to TransformKindV1, moved to module execution::execution_result_v1 and has new variants ( + WriteAddressableEntity, Prune, WriteBidKind) - enum ExecutionResult changed name to ExecutionResultV1, moved to module execution::execution_result_v1 - struct TransformEntry changed name to TransformV1 and moved to module execution::execution_result_v1 - moved NamedKey to module execution::execution_result_v1 - KeyTag::SystemContractRegistry variant changed name to KeyTag::SystemEntityRegistry -- variants for KeyTag enum: BidAddr = 15, Package = 16, AddressableEntity = 17, ByteCode = 18, Message = 19, NamedKey = 20, BlockGlobal = 21, BalanceHold = 22, EntryPoint = 23, +- variants for KeyTag enum: BidAddr = 15, Package = 16, AddressableEntity = 17, ByteCode = 18, Message = 19, NamedKey = + 20, BlockGlobal = 21, BalanceHold = 22, EntryPoint = 23, - enum Key::SystemContractRegistry changed name to Key::SystemEntityRegistry -- variants for enum Key: BidAddr, Package, AddressableEntity, ByteCode, Message, NamedKey, BlockGlobal, BalanceHold, EntryPoint, +- variants for enum Key: BidAddr, Package, AddressableEntity, ByteCode, Message, NamedKey, BlockGlobal, BalanceHold, + EntryPoint, - struct ExcessiveSizeError changed name to DeployExcessiveSizeError - struct Transfer changed name to TransferV1 - enum GlobalStateIdentifier -- enum StoredValue has new variants: Transfer, AddressableEntity, BidKind, Package, ByteCode, MessageTopic, Message, NamedKey,Reservation,EntryPoint, +- enum StoredValue has new variants: Transfer, AddressableEntity, BidKind, Package, ByteCode, MessageTopic, Message, + NamedKey,Reservation,EntryPoint, - enum system::SystemContractType changed name to system::SystemEntityType - enum system::handle_payment::Error variant SystemFunctionCalledByUserAccount changed to InvalidCaller - struct EntryPoint has a new field `entry_point_payment` @@ -249,13 +278,17 @@ All notable changes to this project will be documented in this file. The format - type Groups (there is now a struct with that name) - type EntryPointsMap - type NamedKeys -- methods `groups_mut`, `add_group`, `lookup_contract_hash`, `is_version_enabled`, `is_contract_enabled`, `insert_contract_version`, `disable_contract_version`, `enable_contract_version`, `enabled_versions`, `remove_group`, `next_contract_version_for`, `current_contract_version`, `current_contract_hash` in struct ContractPackage +- + +methods `groups_mut`, `add_group`, `lookup_contract_hash`, `is_version_enabled`, `is_contract_enabled`, `insert_contract_version`, `disable_contract_version`, `enable_contract_version`, `enabled_versions`, `remove_group`, `next_contract_version_for`, `current_contract_version`, `current_contract_hash` +in struct ContractPackage ## [Unreleased] (node 1.5.4) ### Changed -- Remove filesystem I/O functionality from the `std` feature, and gated this behind a new feature `std-fs-io` which depends upon `std`. +- Remove filesystem I/O functionality from the `std` feature, and gated this behind a new feature `std-fs-io` which + depends upon `std`. ## 4.0.1 @@ -273,24 +306,30 @@ All notable changes to this project will be documented in this file. The format ### Security -- Update `ed25519-dalek` to version 2.0.0 as mitigation for [RUSTSEC-2022-0093](https://rustsec.org/advisories/RUSTSEC-2022-0093) +- Update `ed25519-dalek` to version 2.0.0 as mitigation + for [RUSTSEC-2022-0093](https://rustsec.org/advisories/RUSTSEC-2022-0093) ## 3.0.0 ### Added -- Add new `bytesrepr::Error::NotRepresentable` error variant that represents values that are not representable by the serialization format. +- Add new `bytesrepr::Error::NotRepresentable` error variant that represents values that are not representable by the + serialization format. - Add new `Key::Unbond` key variant under which the new unbonding information (to support redelegation) is written. - Add new `Key::ChainspecRegistry` key variant under which the `ChainspecRegistry` is written. -- Add new `Key::ChecksumRegistry` key variant under which a registry of checksums for a given block is written. There are two checksums in the registry, one for the execution results and the other for the approvals of all deploys in the block. +- Add new `Key::ChecksumRegistry` key variant under which a registry of checksums for a given block is written. There + are two checksums in the registry, one for the execution results and the other for the approvals of all deploys in the + block. - Add new `StoredValue::Unbonding` variant to support redelegating. - Add a new type `WithdrawPurses` which is meant to represent `UnbondingPurses` as they exist in current live networks. ### Changed -- Extend `UnbondingPurse` to take a new field `new_validator` which represents the validator to whom tokens will be re-delegated. +- Extend `UnbondingPurse` to take a new field `new_validator` which represents the validator to whom tokens will be + re-delegated. - Increase `DICTIONARY_ITEM_KEY_MAX_LENGTH` to 128. -- Change prefix of formatted string representation of `ContractPackageHash` from "contract-package-wasm" to "contract-package-". Parsing from the old format is still supported. +- Change prefix of formatted string representation of `ContractPackageHash` from "contract-package-wasm" to " + contract-package-". Parsing from the old format is still supported. - Apply `#[non_exhaustive]` to error enums. - Change Debug output of `DeployHash` to hex-encoded string rather than a list of integers. @@ -309,8 +348,10 @@ All notable changes to this project will be documented in this file. The format ### Added - Extend asymmetric key functionality, available via feature `std` (moved from `casper-nodes` crate). -- Provide `Timestamp` and `TimeDiff` types for time operations, with extended functionality available via feature `std` (moved from `casper-nodes` crate). -- Provide test-only functionality, in particular a seedable RNG `TestRng` which outputs its seed on test failure. Available via a new feature `testing`. +- Provide `Timestamp` and `TimeDiff` types for time operations, with extended functionality available via + feature `std` (moved from `casper-nodes` crate). +- Provide test-only functionality, in particular a seedable RNG `TestRng` which outputs its seed on test failure. + Available via a new feature `testing`. - Add new `Key::EraSummary` key variant under which the era summary info is written on each switch block execution. ### Deprecated @@ -422,14 +463,25 @@ No changes. - Initial release of types for use by software compatible with Casper mainnet. [Keep a Changelog]: https://keepachangelog.com/en/1.0.0 + [unreleased]: https://github.com/casper-network/casper-node/compare/24fc4027a...dev + [1.4.3]: https://github.com/casper-network/casper-node/compare/2be27b3f5...24fc4027a + [1.4.2]: https://github.com/casper-network/casper-node/compare/v1.4.1...2be27b3f5 + [1.4.1]: https://github.com/casper-network/casper-node/compare/v1.4.0...v1.4.1 + [1.4.0]: https://github.com/casper-network/casper-node/compare/v1.3.0...v1.4.0 + [1.3.0]: https://github.com/casper-network/casper-node/compare/v1.2.0...v1.3.0 + [1.2.0]: https://github.com/casper-network/casper-node/compare/v1.1.1...v1.2.0 + [1.1.1]: https://github.com/casper-network/casper-node/compare/v1.0.1...v1.1.1 + [1.1.0]: https://github.com/casper-network/casper-node/compare/v1.0.1...v1.1.1 + [1.0.1]: https://github.com/casper-network/casper-node/compare/v1.0.0...v1.0.1 + [1.0.0]: https://github.com/casper-network/casper-node/releases/tag/v1.0.0 From e56ed28c848d5c244214577af9b753d9b4b28091 Mon Sep 17 00:00:00 2001 From: Karan Dhareshwar Date: Fri, 10 Apr 2026 08:03:05 -0500 Subject: [PATCH 2/5] Undo formatting changes --- execution_engine/CHANGELOG.md | 2 -- types/CHANGELOG.md | 1 - 2 files changed, 3 deletions(-) diff --git a/execution_engine/CHANGELOG.md b/execution_engine/CHANGELOG.md index 1c72a5bf8d..1860f7b678 100644 --- a/execution_engine/CHANGELOG.md +++ b/execution_engine/CHANGELOG.md @@ -14,8 +14,6 @@ All notable changes to this project will be documented in this file. The format [comment]: <> (Security: in case of vulnerabilities) -## 9.0.0 - ### Added * Added `RewardsHandling` support to the execution engine diff --git a/types/CHANGELOG.md b/types/CHANGELOG.md index f6b7505902..79b3f410fe 100644 --- a/types/CHANGELOG.md +++ b/types/CHANGELOG.md @@ -279,7 +279,6 @@ All notable changes to this project will be documented in this file. The format - type EntryPointsMap - type NamedKeys - - methods `groups_mut`, `add_group`, `lookup_contract_hash`, `is_version_enabled`, `is_contract_enabled`, `insert_contract_version`, `disable_contract_version`, `enable_contract_version`, `enabled_versions`, `remove_group`, `next_contract_version_for`, `current_contract_version`, `current_contract_hash` in struct ContractPackage From 57b583f9adffcdb1d6a3451608bcf573cd1254bd Mon Sep 17 00:00:00 2001 From: Karan Dhareshwar Date: Fri, 10 Apr 2026 08:05:08 -0500 Subject: [PATCH 3/5] Revert "Undo formatting changes" This reverts commit e56ed28c848d5c244214577af9b753d9b4b28091. --- execution_engine/CHANGELOG.md | 2 ++ types/CHANGELOG.md | 1 + 2 files changed, 3 insertions(+) diff --git a/execution_engine/CHANGELOG.md b/execution_engine/CHANGELOG.md index 1860f7b678..1c72a5bf8d 100644 --- a/execution_engine/CHANGELOG.md +++ b/execution_engine/CHANGELOG.md @@ -14,6 +14,8 @@ All notable changes to this project will be documented in this file. The format [comment]: <> (Security: in case of vulnerabilities) +## 9.0.0 + ### Added * Added `RewardsHandling` support to the execution engine diff --git a/types/CHANGELOG.md b/types/CHANGELOG.md index 79b3f410fe..f6b7505902 100644 --- a/types/CHANGELOG.md +++ b/types/CHANGELOG.md @@ -279,6 +279,7 @@ All notable changes to this project will be documented in this file. The format - type EntryPointsMap - type NamedKeys - + methods `groups_mut`, `add_group`, `lookup_contract_hash`, `is_version_enabled`, `is_contract_enabled`, `insert_contract_version`, `disable_contract_version`, `enable_contract_version`, `enabled_versions`, `remove_group`, `next_contract_version_for`, `current_contract_version`, `current_contract_hash` in struct ContractPackage From 045e07e62c819d784e1a132f1e9e08af0e87583d Mon Sep 17 00:00:00 2001 From: Karan Dhareshwar Date: Fri, 10 Apr 2026 08:06:15 -0500 Subject: [PATCH 4/5] Revert "Update CHANGELOGs" This reverts commit 4da45c454bf0e67381ccbf215e4605545da9dbfb. --- execution_engine/CHANGELOG.md | 306 ++++++------------ .../test_support/CHANGELOG.md | 97 +++--- storage/CHANGELOG.md | 48 +-- types/CHANGELOG.md | 88 ++--- 4 files changed, 180 insertions(+), 359 deletions(-) diff --git a/execution_engine/CHANGELOG.md b/execution_engine/CHANGELOG.md index 1c72a5bf8d..d7d941a268 100644 --- a/execution_engine/CHANGELOG.md +++ b/execution_engine/CHANGELOG.md @@ -1,25 +1,15 @@ # Changelog -All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog]. +All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog]. [comment]: <> (Added: new features) - [comment]: <> (Changed: changes in existing functionality) - [comment]: <> (Deprecated: soon-to-be removed features) - [comment]: <> (Removed: now removed features) - [comment]: <> (Fixed: any bug fixes) - [comment]: <> (Security: in case of vulnerabilities) -## 9.0.0 -### Added - -* Added `RewardsHandling` support to the execution engine -* Added `RewardsHandling` field to the struct `EngineConfig` ## [Unreleased] (node 2.0) @@ -32,8 +22,7 @@ All notable changes to this project will be documented in this file. The format - struct casper_execution_engine::engine_state::engine_config::EngineConfigBuilder - const casper_execution_engine::engine_state::engine_config::DEFAULT_ALLOW_AUCTION_BIDS: bool - const casper_execution_engine::engine_state::engine_config::DEFAULT_ALLOW_UNRESTRICTED_TRANSFERS: bool -- const casper_execution_engine::engine_state::engine_config::DEFAULT_BALANCE_HOLD_INTERVAL: casper_types::timestamp:: - TimeDiff +- const casper_execution_engine::engine_state::engine_config::DEFAULT_BALANCE_HOLD_INTERVAL: casper_types::timestamp::TimeDiff - const casper_execution_engine::engine_state::engine_config::DEFAULT_COMPUTE_REWARDS: bool - const casper_execution_engine::engine_state::engine_config::DEFAULT_ENABLE_ENTITY: bool - const casper_execution_engine::engine_state::engine_config::DEFAULT_MAXIMUM_DELEGATION_AMOUNT: u64 @@ -43,8 +32,7 @@ All notable changes to this project will be documented in this file. The format - const casper_execution_engine::engine_state::engine_config::DEFAULT_MAX_RUNTIME_CALL_STACK_HEIGHT: u32 - const casper_execution_engine::engine_state::engine_config::DEFAULT_MAX_STORED_VALUE_SIZE: u32 - const casper_execution_engine::engine_state::engine_config::DEFAULT_MINIMUM_DELEGATION_AMOUNT: u64 -- const casper_execution_engine::engine_state::engine_config::DEFAULT_PROTOCOL_VERSION: casper_types::protocol_version:: - ProtocolVersion +- const casper_execution_engine::engine_state::engine_config::DEFAULT_PROTOCOL_VERSION: casper_types::protocol_version::ProtocolVersion - const casper_execution_engine::engine_state::engine_config::DEFAULT_STRICT_ARGUMENT_CHECKING: bool - const casper_execution_engine::engine_state::engine_config::DEFAULT_VESTING_SCHEDULE_LENGTH_MILLIS: u64 - enum casper_execution_engine::engine_state::Error @@ -83,11 +71,8 @@ All notable changes to this project will be documented in this file. The format - const casper_execution_engine::runtime::DEFAULT_MAX_GLOBALS: u32 - const casper_execution_engine::runtime::DEFAULT_MAX_PARAMETER_COUNT: u32 - const casper_execution_engine::runtime::DEFAULT_MAX_TABLE_SIZE: u32 -- fn casper_execution_engine::runtime::cycles_for_instruction(instruction: &casper_wasm::elements::ops::Instruction) -> - u32 -- fn casper_execution_engine::runtime::preprocess(wasm_config: casper_types::chainspec::vm_config::wasm_config:: - WasmConfig, module_bytes: &[u8]) -> core::result::Result +- fn casper_execution_engine::runtime::cycles_for_instruction(instruction: &casper_wasm::elements::ops::Instruction) -> u32 +- fn casper_execution_engine::runtime::preprocess(wasm_config: casper_types::chainspec::vm_config::wasm_config::WasmConfig, module_bytes: &[u8]) -> core::result::Result - type casper_execution_engine::runtime::RuntimeStackFrame = casper_types::system::caller::Caller - enum casper_execution_engine::runtime_context::AllowInstallUpgrade - struct casper_execution_engine::runtime_context::RuntimeContext<'a, R> @@ -130,8 +115,7 @@ All notable changes to this project will be documented in this file. The format - enum casper_execution_engine::core::engine_state::execution_result::ExecutionResult - enum casper_execution_engine::core::engine_state::execution_result::ForcedTransferResult - struct casper_execution_engine::core::engine_state::execution_result::ExecutionResultBuilder -- type casper_execution_engine::core::engine_state::execution_result::ExecutionResults = alloc::collections::vec_deque:: - VecDeque +- type casper_execution_engine::core::engine_state::execution_result::ExecutionResults = alloc::collections::vec_deque::VecDeque - enum casper_execution_engine::core::engine_state::genesis::GenesisAccount - enum casper_execution_engine::core::engine_state::genesis::GenesisError - struct casper_execution_engine::core::engine_state::genesis::AdministratorAccount @@ -204,46 +188,29 @@ All notable changes to this project will be documented in this file. The format - const casper_execution_engine::core::engine_state::DEFAULT_MAX_RUNTIME_CALL_STACK_HEIGHT: u32 - const casper_execution_engine::core::engine_state::MAX_PAYMENT_AMOUNT: u64 - const casper_execution_engine::core::engine_state::WASMLESS_TRANSFER_FIXED_GAS_PRICE: u64 -- static casper_execution_engine::core::engine_state::MAX_PAYMENT: once_cell::sync::Lazy +- static casper_execution_engine::core::engine_state::MAX_PAYMENT: once_cell::sync::Lazy - enum casper_execution_engine::core::execution::Error - enum casper_execution_engine::core::resolvers::error::ResolverError - trait casper_execution_engine::core::resolvers::memory_resolver::MemoryResolver - struct casper_execution_engine::core::runtime::stack::RuntimeStack - struct casper_execution_engine::core::runtime::stack::RuntimeStackOverflow -- type casper_execution_engine::core::runtime::stack::RuntimeStackFrame = casper_types::system::call_stack_element:: - CallStackElement +- type casper_execution_engine::core::runtime::stack::RuntimeStackFrame = casper_types::system::call_stack_element::CallStackElement - struct casper_execution_engine::core::runtime::Runtime<'a, R> - struct casper_execution_engine::core::runtime_context::RuntimeContext<'a, R> - const casper_execution_engine::core::runtime_context::RANDOM_BYTES_COUNT: usize -- fn casper_execution_engine::core::runtime_context::validate_group_membership(contract_package: &casper_types:: - contracts::ContractPackage, access: &casper_types::contracts::EntryPointAccess, validator: impl core::ops::function:: - Fn(&casper_types::uref::URef) -> bool) -> core::result::Result<(), casper_execution_engine::core::engine_state:: - ExecError> +- fn casper_execution_engine::core::runtime_context::validate_group_membership(contract_package: &casper_types::contracts::ContractPackage, access: &casper_types::contracts::EntryPointAccess, validator: impl core::ops::function::Fn(&casper_types::uref::URef) -> bool) -> core::result::Result<(), casper_execution_engine::core::engine_state::ExecError> - enum casper_execution_engine::core::tracking_copy::AddResult - enum casper_execution_engine::core::tracking_copy::TrackingCopyQueryResult - enum casper_execution_engine::core::tracking_copy::ValidationError - struct casper_execution_engine::core::tracking_copy::TrackingCopy - struct casper_execution_engine::core::tracking_copy::TrackingCopyCache - trait casper_execution_engine::core::tracking_copy::TrackingCopyExt -- fn casper_execution_engine::core::tracking_copy::validate_balance_proof(hash: &casper_hashing::Digest, balance_proof: - &casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof, expected_purse_key: casper_types::key::Key, expected_motes: &casper_types::uint:: - macro_code::U512) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> -- fn casper_execution_engine::core::tracking_copy::validate_query_proof(hash: &casper_hashing::Digest, - proofs: &[casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof], - expected_first_key: &casper_types::key::Key, path: &[alloc::string::String], expected_value: &casper_types:: - stored_value::StoredValue) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> +- fn casper_execution_engine::core::tracking_copy::validate_balance_proof(hash: &casper_hashing::Digest, balance_proof: &casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof, expected_purse_key: casper_types::key::Key, expected_motes: &casper_types::uint::macro_code::U512) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> +- fn casper_execution_engine::core::tracking_copy::validate_query_proof(hash: &casper_hashing::Digest, proofs: &[casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof], expected_first_key: &casper_types::key::Key, path: &[alloc::string::String], expected_value: &casper_types::stored_value::StoredValue) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> - enum casper_execution_engine::core::ValidationError - const casper_execution_engine::core::ADDRESS_LENGTH: usize -- fn casper_execution_engine::core::validate_balance_proof(hash: &casper_hashing::Digest, balance_proof: - &casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof, expected_purse_key: casper_types::key::Key, expected_motes: &casper_types::uint:: - macro_code::U512) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> -- fn casper_execution_engine::core::validate_query_proof(hash: &casper_hashing::Digest, - proofs: &[casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof], - expected_first_key: &casper_types::key::Key, path: &[alloc::string::String], expected_value: &casper_types:: - stored_value::StoredValue) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> +- fn casper_execution_engine::core::validate_balance_proof(hash: &casper_hashing::Digest, balance_proof: &casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof, expected_purse_key: casper_types::key::Key, expected_motes: &casper_types::uint::macro_code::U512) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> +- fn casper_execution_engine::core::validate_query_proof(hash: &casper_hashing::Digest, proofs: &[casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof], expected_first_key: &casper_types::key::Key, path: &[alloc::string::String], expected_value: &casper_types::stored_value::StoredValue) -> core::result::Result<(), casper_execution_engine::core::tracking_copy::ValidationError> - type casper_execution_engine::core::Address = [u8; 32] - struct casper_execution_engine::shared::additive_map::AdditiveMap - struct casper_execution_engine::shared::execution_journal::ExecutionJournal @@ -252,12 +219,9 @@ All notable changes to this project will be documented in this file. The format - type casper_execution_engine::shared::host_function_costs::Cost = u32 - enum casper_execution_engine::shared::logging::Style - struct casper_execution_engine::shared::logging::Settings -- fn casper_execution_engine::shared::logging::initialize(settings: casper_execution_engine::shared::logging:: - Settings) -> core::result::Result<(), log::SetLoggerError> -- fn casper_execution_engine::shared::logging::log_details(\_log_level: log::Level, \_message_format: alloc::string:: - String, \_properties: alloc::collections::btree::map::BTreeMap<&str, alloc::string::String>) -- fn casper_execution_engine::shared::logging::log_host_function_metrics(\_host_function: &str, \_properties: alloc:: - collections::btree::map::BTreeMap<&str, alloc::string::String>) +- fn casper_execution_engine::shared::logging::initialize(settings: casper_execution_engine::shared::logging::Settings) -> core::result::Result<(), log::SetLoggerError> +- fn casper_execution_engine::shared::logging::log_details(\_log_level: log::Level, \_message_format: alloc::string::String, \_properties: alloc::collections::btree::map::BTreeMap<&str, alloc::string::String>) +- fn casper_execution_engine::shared::logging::log_host_function_metrics(\_host_function: &str, \_properties: alloc::collections::btree::map::BTreeMap<&str, alloc::string::String>) - struct casper_execution_engine::shared::newtypes::CorrelationId - struct casper_execution_engine::shared::opcode_costs::BrTableCost - struct casper_execution_engine::shared::opcode_costs::ControlFlowCosts @@ -324,14 +288,12 @@ All notable changes to this project will be documented in this file. The format - struct casper_execution_engine::shared::system_config::standard_payment_costs::StandardPaymentCosts - struct casper_execution_engine::shared::system_config::SystemConfig - const casper_execution_engine::shared::system_config::DEFAULT_WASMLESS_TRANSFER_COST: u32 -- fn casper_execution_engine::shared::test_utils::mocked_account(account_hash: casper_types::account::account_hash:: - AccountHash) -> alloc::vec::Vec<(casper_types::key::Key, casper_types::stored_value::StoredValue)> +- fn casper_execution_engine::shared::test_utils::mocked_account(account_hash: casper_types::account::account_hash::AccountHash) -> alloc::vec::Vec<(casper_types::key::Key, casper_types::stored_value::StoredValue)> - enum casper_execution_engine::shared::transform::Error - enum casper_execution_engine::shared::transform::Transform - static casper_execution_engine::shared::utils::OS_PAGE_SIZE: once_cell::sync::Lazy - fn casper_execution_engine::shared::utils::check_multiple_of_page_size(value: usize) -- fn casper_execution_engine::shared::utils::jsonify(value: T, pretty_print: bool) -> alloc::string::String where T: - serde::ser::Serialize +- fn casper_execution_engine::shared::utils::jsonify(value: T, pretty_print: bool) -> alloc::string::String where T: serde::ser::Serialize - struct casper_execution_engine::shared::wasm_config::WasmConfig - const casper_execution_engine::shared::wasm_config::DEFAULT_MAX_STACK_HEIGHT: u32 - const casper_execution_engine::shared::wasm_config::DEFAULT_WASM_MAX_MEMORY: u32 @@ -341,14 +303,9 @@ All notable changes to this project will be documented in this file. The format - const casper_execution_engine::shared::wasm_prep::DEFAULT_MAX_GLOBALS: u32 - const casper_execution_engine::shared::wasm_prep::DEFAULT_MAX_PARAMETER_COUNT: u32 - const casper_execution_engine::shared::wasm_prep::DEFAULT_MAX_TABLE_SIZE: u32 -- fn casper_execution_engine::shared::wasm_prep::deserialize(module_bytes: &[u8]) -> core::result::Result -- fn casper_execution_engine::shared::wasm_prep::get_module_from_entry_points(entry_point_names: alloc::vec::Vec<&str>, - module: casper_wasm::elements::module::Module) -> core::result::Result, casper_execution_engine:: - core::engine_state::ExecError> -- fn casper_execution_engine::shared::wasm_prep::preprocess(wasm_config: casper_execution_engine::shared::wasm_config:: - WasmConfig, module_bytes: &[u8]) -> core::result::Result +- fn casper_execution_engine::shared::wasm_prep::deserialize(module_bytes: &[u8]) -> core::result::Result +- fn casper_execution_engine::shared::wasm_prep::get_module_from_entry_points(entry_point_names: alloc::vec::Vec<&str>, module: casper_wasm::elements::module::Module) -> core::result::Result, casper_execution_engine::core::engine_state::ExecError> +- fn casper_execution_engine::shared::wasm_prep::preprocess(wasm_config: casper_execution_engine::shared::wasm_config::WasmConfig, module_bytes: &[u8]) -> core::result::Result - enum casper_execution_engine::storage::error::in_memory::Error - enum casper_execution_engine::storage::error::lmdb::Error - enum casper_execution_engine::storage::error::Error @@ -356,50 +313,24 @@ All notable changes to this project will be documented in this file. The format - struct casper_execution_engine::storage::global_state::lmdb::LmdbGlobalState - struct casper_execution_engine::storage::global_state::scratch::ScratchGlobalState - enum casper_execution_engine::storage::global_state::CommitError -- trait casper_execution_engine::storage::global_state::CommitProvider: casper_execution_engine::storage::global_state:: - StateProvider +- trait casper_execution_engine::storage::global_state::CommitProvider: casper_execution_engine::storage::global_state::StateProvider - trait casper_execution_engine::storage::global_state::StateProvider - trait casper_execution_engine::storage::global_state::StateReader -- fn casper_execution_engine::storage::global_state::commit<'a, R, S, H, E>(environment: &'a R, store: &S, - correlation_id: casper_execution_engine::shared::newtypes::CorrelationId, prestate_hash: casper_hashing::Digest, - effects: casper_execution_engine::shared::additive_map::AdditiveMap) -> core::result::Result where R: - casper_execution_engine::storage::transaction_source::TransactionSource<'a, - Handle = ::Handle>, S: casper_execution_engine::storage:: - trie_store::TrieStore, ::Error: core::convert:: - From<::Error>, E: core::convert:: - From<::Error> + core::convert:: - From<::Error> + core::convert::From + core::convert::From, H: core::hash::BuildHasher -- fn casper_execution_engine::storage::global_state::put_stored_values<'a, R, S, E>(environment: &'a R, store: &S, - correlation_id: casper_execution_engine::shared::newtypes::CorrelationId, prestate_hash: casper_hashing::Digest, - stored_values: std::collections::hash::map::HashMap) -> core::result::Result where R: casper_execution_engine::storage:: - transaction_source::TransactionSource<'a, Handle = ::Handle>, S: - casper_execution_engine::storage::trie_store::TrieStore, ::Error: core::convert:: - From<::Error>, E: core::convert:: - From<::Error> + core::convert:: - From<::Error> + core::convert::From + core::convert::From +- fn casper_execution_engine::storage::global_state::commit<'a, R, S, H, E>(environment: &'a R, store: &S, correlation_id: casper_execution_engine::shared::newtypes::CorrelationId, prestate_hash: casper_hashing::Digest, effects: casper_execution_engine::shared::additive_map::AdditiveMap) -> core::result::Result where R: casper_execution_engine::storage::transaction_source::TransactionSource<'a, Handle = ::Handle>, S: casper_execution_engine::storage::trie_store::TrieStore, ::Error: core::convert::From<::Error>, E: core::convert::From<::Error> + core::convert::From<::Error> + core::convert::From + core::convert::From, H: core::hash::BuildHasher +- fn casper_execution_engine::storage::global_state::put_stored_values<'a, R, S, E>(environment: &'a R, store: &S, correlation_id: casper_execution_engine::shared::newtypes::CorrelationId, prestate_hash: casper_hashing::Digest, stored_values: std::collections::hash::map::HashMap) -> core::result::Result where R: casper_execution_engine::storage::transaction_source::TransactionSource<'a, Handle = ::Handle>, S: casper_execution_engine::storage::trie_store::TrieStore, ::Error: core::convert::From<::Error>, E: core::convert::From<::Error> + core::convert::From<::Error> + core::convert::From + core::convert::From - trait casper_execution_engine::storage::store::Store - trait casper_execution_engine::storage::store::StoreExt: casper_execution_engine::storage::store::Store - struct casper_execution_engine::storage::transaction_source::in_memory::InMemoryEnvironment - struct casper_execution_engine::storage::transaction_source::in_memory::InMemoryReadTransaction - struct casper_execution_engine::storage::transaction_source::in_memory::InMemoryReadWriteTransaction<'a> - struct casper_execution_engine::storage::transaction_source::lmdb::LmdbEnvironment -- trait casper_execution_engine::storage::transaction_source::Readable: casper_execution_engine::storage:: - transaction_source::Transaction +- trait casper_execution_engine::storage::transaction_source::Readable: casper_execution_engine::storage::transaction_source::Transaction - trait casper_execution_engine::storage::transaction_source::Transaction: core::marker::Sized - trait casper_execution_engine::storage::transaction_source::TransactionSource<'a> -- trait casper_execution_engine::storage::transaction_source::Writable: casper_execution_engine::storage:: - transaction_source::Transaction -- fn casper_execution_engine::storage::transaction_source::Writable::write(&mut self, handle: Self::Handle, key: &[u8], - value: &[u8]) -> core::result::Result<(), Self::Error> +- trait casper_execution_engine::storage::transaction_source::Writable: casper_execution_engine::storage::transaction_source::Transaction +- fn casper_execution_engine::storage::transaction_source::Writable::write(&mut self, handle: Self::Handle, key: &[u8], value: &[u8]) -> core::result::Result<(), Self::Error> - impl<'a> casper_execution_engine::storage::transaction_source::Writable for lmdb::transaction::RwTransaction<'a> -- fn lmdb::transaction::RwTransaction<'a>::write(&mut self, handle: Self::Handle, key: &[u8], value: &[u8]) -> core:: - result::Result<(), Self::Error> +- fn lmdb::transaction::RwTransaction<'a>::write(&mut self, handle: Self::Handle, key: &[u8], value: &[u8]) -> core::result::Result<(), Self::Error> - enum casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProofStep - struct casper_execution_engine::storage::trie::merkle_proof::TrieMerkleProof - enum casper_execution_engine::storage::trie::DescendantsIterator<'a> @@ -407,220 +338,192 @@ All notable changes to this project will be documented in this file. The format - enum casper_execution_engine::storage::trie::Trie - struct casper_execution_engine::storage::trie::PointerBlock - struct casper_execution_engine::storage::trie::TrieRaw -- type casper_execution_engine::storage::trie::Parents = alloc::vec::Vec<(u8, casper_execution_engine::storage:: - trie::Trie)> -- type casper_execution_engine::storage::trie:: - PointerBlockArray = [casper_execution_engine::storage::trie::PointerBlockValue; 256] -- type casper_execution_engine::storage::trie::PointerBlockValue = core::option::Option +- type casper_execution_engine::storage::trie::Parents = alloc::vec::Vec<(u8, casper_execution_engine::storage::trie::Trie)> +- type casper_execution_engine::storage::trie::PointerBlockArray = [casper_execution_engine::storage::trie::PointerBlockValue; 256] +- type casper_execution_engine::storage::trie::PointerBlockValue = core::option::Option - struct casper_execution_engine::storage::trie_store::in_memory::InMemoryTrieStore - struct casper_execution_engine::storage::trie_store::lmdb::LmdbTrieStore -- trait casper_execution_engine::storage::trie_store::TrieStore: casper_execution_engine::storage::store::Store< - casper_hashing::Digest, casper_execution_engine::storage::trie::Trie> +- trait casper_execution_engine::storage::trie_store::TrieStore: casper_execution_engine::storage::store::Store> - macro casper_execution_engine::make_array_newtype! + ## 7.0.1 ### Changed - -* Change the cost of `wasm.storage_costs.gas_per_byte` and `shared::storage_costs::DEFAULT_GAS_PER_BYTE_COST` - from `630_000` to `1_117_587`. +* Change the cost of `wasm.storage_costs.gas_per_byte` and `shared::storage_costs::DEFAULT_GAS_PER_BYTE_COST` from `630_000` to `1_117_587`. * Change the cost of the host function `casper_add_associated_key` from `9_000` to `1_200_000`. -* Change the cost of the argument `entry_points_size` of host function `casper_add_contract_version` from `0` - to `120_000`. -* Change the cost of the host function `casper_blake2b`and its argument `in_size` from `200` and `0` respectively - to `1_200_000` to `120_000`. -* Change the cost of the host function `casper_call_contract` and its arguments `entry_point_name_size` - and `runtime_args_size` from `4_500`, `0` and `420` respectively to `300_000_000`, `120_000` and `120_000`. -* Change the cost of the host function `casper_call_versioned_contract` and the arguments `entry_point_name_size` - and `runtime_args_size` from `4_500`, `0` and `420` respectively to `300_000_000`, `120_000` and `120_000`. +* Change the cost of the argument `entry_points_size` of host function `casper_add_contract_version` from `0` to `120_000`. +* Change the cost of the host function `casper_blake2b`and its argument `in_size` from `200` and `0` respectively to `1_200_000` to `120_000`. +* Change the cost of the host function `casper_call_contract` and its arguments `entry_point_name_size` and `runtime_args_size` from `4_500`, `0` and `420` respectively to `300_000_000`, `120_000` and `120_000`. +* Change the cost of the host function `casper_call_versioned_contract` and the arguments `entry_point_name_size` and `runtime_args_size` from `4_500`, `0` and `420` respectively to `300_000_000`, `120_000` and `120_000`. * Change the cost of the host function `casper_get_balance` from `3_800` to `3_000_000`. -* Change the cost of arguments `name_size` and `dest_size` of host function `casper_get_named_arg` from `0` - to `120_000`. -* Change the cost of the host function `casper_put_key` and its arguments `name_size` and `key_size` - from `38_000`, `1_100` and `0` respectively to `100_000_000`, `120_000` and `120_000`. -* Change the cost of the host function `casper_read_value` and its argument `key_size` from `6_000` and `0` respectively - to `60_000` and `120_000`. -* Change the cost of the argument `urefs_size` of host function `casper_remove_contract_user_group_urefs` from `0` - to `120_000`. +* Change the cost of arguments `name_size` and `dest_size` of host function `casper_get_named_arg` from `0` to `120_000`. +* Change the cost of the host function `casper_put_key` and its arguments `name_size` and `key_size` from `38_000`, `1_100` and `0` respectively to `100_000_000`, `120_000` and `120_000`. +* Change the cost of the host function `casper_read_value` and its argument `key_size` from `6_000` and `0` respectively to `60_000` and `120_000`. +* Change the cost of the argument `urefs_size` of host function `casper_remove_contract_user_group_urefs` from `0` to `120_000`. * Change the cost of the host function `casper_transfer_from_purse_to_purse` from `82_000` to `82_000_000`. -## [Unreleased] (node 1.5.4) + +## [Unreleased] (node 1.5.4) ## 7.0.0 ### Added - -* Add chainspec option `core.allow_unrestricted_transfers` that, if enabled, allows token transfers between any two - peers. Disabling this option makes sense only for private chains. -* Add chainspec option `core.allow_auction_bids` that, if enabled, allows auction entrypoints `delegate` and `add_bid` - to operate. Disabling this option makes sense only for private chains. -* Add chainspec option `core.compute_rewards` that, if enabled, computes rewards for each era. Disabling this option - makes sense only for private chains. +* Add chainspec option `core.allow_unrestricted_transfers` that, if enabled, allows token transfers between any two peers. Disabling this option makes sense only for private chains. +* Add chainspec option `core.allow_auction_bids` that, if enabled, allows auction entrypoints `delegate` and `add_bid` to operate. Disabling this option makes sense only for private chains. +* Add chainspec option `core.compute_rewards` that, if enabled, computes rewards for each era. Disabling this option makes sense only for private chains. * Add chainspec option `core.refund_handling` that specifies how payment refunds are handled. * Add chainspec option `core.fee_handling` that specifies how transaction fees are handled. -* Add chainspec option `core.administrators` that, if set, contains list of administrator accounts. This option makes - sense only for private chains. +* Add chainspec option `core.administrators` that, if set, contains list of administrator accounts. This option makes sense only for private chains. * Add support for a new FFI function `enable_contract_version` for enabling a specific version of a contract. ### Changed - * `current stack height` is written to `stderr` in case `Trap(Unreachable)` error is encountered during Wasm execution. * Tweak upgrade logic transforming withdraw purses to early exit if possible. * Lower the default gas costs of opcodes. - - Set the cost for branching opcodes to 35,000 (`br`, `br_if`, `br_table`). - - Set the cost for call opcodes to 68,000 (`call`, `call_indirect`). -* Default value for round seigniorage rate is halved to `7/175070816` due to reduction in block times, to maintain - current seigniorage rate (per unit of time). + - Set the cost for branching opcodes to 35,000 (`br`, `br_if`, `br_table`). + - Set the cost for call opcodes to 68,000 (`call`, `call_indirect`). +* Default value for round seigniorage rate is halved to `7/175070816` due to reduction in block times, to maintain current seigniorage rate (per unit of time). * Refund ratio is changed from 0% to 99%. + + ## 6.0.0 ### Changed - * Default value for `max_stack_height` is increased to 500. * Replace usage of `parity-wasm` and `wasmi` with Casper forks `casper-wasm` and `casper-wasmi` respectively. ### Fixed - * Fix incorrect handling of unbonding purses for validators that were also evicted in that era. * Fix issue with one-time code used for migrating data to support redelegations. ### Security - * Fix unbounded memory allocation issue while parsing Wasm. + + ## 5.0.0 ### Added - -* Add a new entry point `redelegate` to the Auction system contract which allows users to redelegate to another - validator without having to unbond. The function signature for the entrypoint - is: `redelegate(delegator: PublicKey, validator: PublicKey, amount: U512, new_validator: PublicKey)` -* Add a new type `ChainspecRegistry` which contains the hashes of the `chainspec.toml` and will optionally contain the - hashes for `accounts.toml` and `global_state.toml`. -* Add ability to enable strict args checking when executing a contract; i.e. that all non-optional args are provided and - of the correct `CLType`. +* Add a new entry point `redelegate` to the Auction system contract which allows users to redelegate to another validator without having to unbond. The function signature for the entrypoint is: `redelegate(delegator: PublicKey, validator: PublicKey, amount: U512, new_validator: PublicKey)` +* Add a new type `ChainspecRegistry` which contains the hashes of the `chainspec.toml` and will optionally contain the hashes for `accounts.toml` and `global_state.toml`. +* Add ability to enable strict args checking when executing a contract; i.e. that all non-optional args are provided and of the correct `CLType`. ### Changed - * Fix some integer casts. * Change both genesis and upgrade functions to write `ChainspecRegistry` under the fixed `Key::ChainspecRegistry`. * Lift the temporary limit of the size of individual values stored in global state. * Providing incorrect Wasm for execution will cause the default 2.5CSPR to be charged. * Update the default `control_flow` opcode cost from `440` to `440_000`. + + ## 4.0.0 ### Changed +* Update dependencies (in particular `casper-types` to v2.0.0 due to additional `Key` variant, requiring a major version bump here). + -* Update dependencies (in particular `casper-types` to v2.0.0 due to additional `Key` variant, requiring a major version - bump here). ## 3.1.1 ### Changed - * Update the following constant values to match settings in production chainspec: - * `DEFAULT_RET_VALUE_SIZE_WEIGHT` - * `DEFAULT_CONTROL_FLOW_CALL_OPCODE` - * `DEFAULT_CONTROL_FLOW_CALL_INDIRECT_OPCODE` - * `DEFAULT_GAS_PER_BYTE_COST` - * `DEFAULT_ADD_BID_COST` - * `DEFAULT_WITHDRAW_BID_COST` - * `DEFAULT_DELEGATE_COST` - * `DEFAULT_UNDELEGATE_COST` - * `DEFAULT_MAX_STACK_HEIGHT` + * `DEFAULT_RET_VALUE_SIZE_WEIGHT` + * `DEFAULT_CONTROL_FLOW_CALL_OPCODE` + * `DEFAULT_CONTROL_FLOW_CALL_INDIRECT_OPCODE` + * `DEFAULT_GAS_PER_BYTE_COST` + * `DEFAULT_ADD_BID_COST` + * `DEFAULT_WITHDRAW_BID_COST` + * `DEFAULT_DELEGATE_COST` + * `DEFAULT_UNDELEGATE_COST` + * `DEFAULT_MAX_STACK_HEIGHT` + + ## 3.1.0 ### Added - * Add `commit_prune` functionality to support pruning of entries in global storage. ### Changed - * Update to use `casper-wasm-utils`; a patched fork of the archived `wasm-utils`. + + ## 3.0.0 ### Changed - * Implement more precise control over opcode costs that lowers the gas cost. * Increase cost of `withdraw_bid` and `undelegate` auction entry points to 2.5CSPR. + + ## 2.0.1 ### Security - * Implement checks before preprocessing Wasm to avoid potential OOM when initializing table section. * Implement checks before preprocessing Wasm to avoid references to undeclared functions or globals. * Implement checks before preprocessing Wasm to avoid possibility to import internal host functions. + ## 2.0.0 - 2022-05-11 ### Changed +* Change contract runtime to allow caching global state changes during execution of a single block, also avoiding writing interstitial data to global state. + -* Change contract runtime to allow caching global state changes during execution of a single block, also avoiding - writing interstitial data to global state. ## 1.5.0 - 2022-04-05 ### Changed - * Temporarily limit the size of individual values stored in global state. ### Security - -* `amount` argument is now required for transactions wanting to send tokens using account's main purse. It is now an - upper limit on all tokens being transferred within the transaction. -* Significant rework around the responsibilities of the executor, runtime and runtime context objects, with a focus on - removing alternate execution paths where unintended escalation of privilege was possible. -* Attenuate the main purse URef to remove WRITE permissions by default when returned via `ret` or passed as a runtime - argument. +* `amount` argument is now required for transactions wanting to send tokens using account's main purse. It is now an upper limit on all tokens being transferred within the transaction. +* Significant rework around the responsibilities of the executor, runtime and runtime context objects, with a focus on removing alternate execution paths where unintended escalation of privilege was possible. +* Attenuate the main purse URef to remove WRITE permissions by default when returned via `ret` or passed as a runtime argument. * Fix a potential panic during Wasm preprocessing. * `get_era_validators` performs a query rather than execution. + + ## 1.4.4 - 2021-12-29 ### Changed - * No longer checksum-hex encode hash digest and address types. + + ## 1.4.3 - 2021-12-06 ### Changed - * Auction contract now handles minting into an existing purse. * Default maximum stack size in `WasmConfig` changed to 188. -* Default behavior of LMDB changed to - use [`NO_READAHEAD`](https://docs.rs/lmdb/0.8.0/lmdb/struct.EnvironmentFlags.html#associatedconstant.NO_READAHEAD) +* Default behavior of LMDB changed to use [`NO_READAHEAD`](https://docs.rs/lmdb/0.8.0/lmdb/struct.EnvironmentFlags.html#associatedconstant.NO_READAHEAD) ### Fixed +* Fix a case where an unlocked and partially unbonded genesis validator with smaller stake incorrectly occupies slot for a non-genesis validator with higher stake. + -* Fix a case where an unlocked and partially unbonded genesis validator with smaller stake incorrectly occupies slot for - a non-genesis validator with higher stake. ## [1.4.2] - 2021-11-11 ### Changed - * Execution transforms are returned in their insertion order. ### Removed - * Removed `SystemContractCache` as it was not being used anymore ## [1.4.0] - 2021-10-04 ### Added - * Added genesis validation step to ensure there are more genesis validators than validator slots. * Added a support for passing a public key as a `target` argument in native transfers. * Added a `max_associated_keys` configuration option for a hard limit of associated keys under accounts. ### Changed - * Documented `storage` module and children. * Reduced visibility to `pub(crate)` in several areas, allowing some dead code to be noticed and pruned. * Support building and testing using stable Rust. @@ -631,66 +534,65 @@ All notable changes to this project will be documented in this file. The format * Change parameters to `LmdbEnvironment`'s constructor enabling manual flushing to disk. ### Fixed - * Fix a case where user could potentially supply a refund purse as a payment purse. + + ## [1.3.0] - 2021-07-19 ### Changed - * Update pinned version of Rust to `nightly-2021-06-17`. + + ## [1.2.0] - 2021-05-27 ### Added - * Add validation that the delegated amount of each genesis account is non-zero. * Add `activate-bid` client contract. * Add a check in `Mint::transfer` that the source has `Read` permissions. ### Changed - * Change to Apache 2.0 license. * Remove the strict expectation that minor and patch protocol versions must always increase by 1. ### Removed - * Remove `RootNotFound` error struct. + + ## [1.1.1] - 2021-04-19 No changes. + + ## [1.1.0] - 2021-04-13 [YANKED] No changes. + + ## [1.0.1] - 2021-04-08 No changes. + + ## [1.0.0] - 2021-03-30 ### Added - * Initial release of execution engine for Casper mainnet. -[Keep a Changelog]: https://keepachangelog.com/en/1.0.0 -[unreleased]: https://github.com/casper-network/casper-node/compare/37d561634adf73dab40fffa7f1f1ee47e80bf8a1...dev +[Keep a Changelog]: https://keepachangelog.com/en/1.0.0 +[unreleased]: https://github.com/casper-network/casper-node/compare/37d561634adf73dab40fffa7f1f1ee47e80bf8a1...dev [1.4.2]: https://github.com/casper-network/casper-node/compare/v1.4.0...37d561634adf73dab40fffa7f1f1ee47e80bf8a1 - [1.4.0]: https://github.com/casper-network/casper-node/compare/v1.3.0...v1.4.0 - [1.3.0]: https://github.com/casper-network/casper-node/compare/v1.2.0...v1.3.0 - [1.2.0]: https://github.com/casper-network/casper-node/compare/v1.1.1...v1.2.0 - [1.1.1]: https://github.com/casper-network/casper-node/compare/v1.0.1...v1.1.1 - [1.1.0]: https://github.com/casper-network/casper-node/compare/v1.0.1...v1.1.1 - [1.0.1]: https://github.com/casper-network/casper-node/compare/v1.0.0...v1.0.1 - [1.0.0]: https://github.com/casper-network/casper-node/releases/tag/v1.0.0 diff --git a/execution_engine_testing/test_support/CHANGELOG.md b/execution_engine_testing/test_support/CHANGELOG.md index 7df56b7dc1..a02cecbc57 100644 --- a/execution_engine_testing/test_support/CHANGELOG.md +++ b/execution_engine_testing/test_support/CHANGELOG.md @@ -1,139 +1,135 @@ # Changelog -All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog]. +All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog]. [comment]: <> (Added: new features) - [comment]: <> (Changed: changes in existing functionality) - [comment]: <> (Deprecated: soon-to-be removed features) - [comment]: <> (Removed: now removed features) - [comment]: <> (Fixed: any bug fixes) - [comment]: <> (Security: in case of vulnerabilities) -## 9.0.0 -### Added - -* Added support for `RewardsHandling` to the execution engine testing crate -* Added support for `minimum_delegation_rate` to the execution engine testing crate ## 7.0.1 ### Added - * Provide `from_chainspec_path` and `max_associated_keys` helper methods on `ChainspecConfig`. * Provide functions for converting from `ChainspecConfig` to `EngineConfig`. * Provide `try_exec` method on `WasmTestBuilder` for fallible contract execution. * Provide `PRODUCTION_CHAINSPEC_PATH`: a lazy static defining the path to the production chainspec.toml file. + + ## 7.0.0 ### Added - * Provide `calculate_refund_amount` on `WasmTestBuilder`. * Provide `upgrade_with_upgrade_request_and_config` on `WasmTestBuilder`. + + ## 6.0.0 ### Changed - * Update `casper-execution-engine` dependency. * Handle evict items in the `WasmTestBuilder` when advancing eras or calling `step`. + + ## 5.0.0 ### Added - * Add `WasmTestBuilder::get_execution_journals` method for returning execution journals for all test runs. * Add support to load values from a given Chainspec. -* Add static and constants that represent Casper-mainnet chainspec values. These values will change as new - ProtocolVersions are added. The current values reflect ones used in the 1.5.0 ProtocolVersion. -* Add `WasmTestBuilder::advance_era`, `WasmTestBuilder::advance_eras_by`, - and `WasmTestBuilder::advance_eras_by_default_auction_delay` to advance chain and run auction contract in test - environment. +* Add static and constants that represent Casper-mainnet chainspec values. These values will change as new ProtocolVersions are added. The current values reflect ones used in the 1.5.0 ProtocolVersion. +* Add `WasmTestBuilder::advance_era`, `WasmTestBuilder::advance_eras_by`, and `WasmTestBuilder::advance_eras_by_default_auction_delay` to advance chain and run auction contract in test environment. ### Changed - * `WasmTestBuilder::get_transforms` is deprecated in favor of `WasmTestBuilder::get_execution_journals`. * `deploy_hash` field is now defaulted to a random value rather than zeros in `DeployItemBuilder`. + + ## 4.0.0 ### Changed +* Update dependencies (in particular `casper-types` to v2.0.0 due to additional `Key` variant, requiring a major version bump here). + -* Update dependencies (in particular `casper-types` to v2.0.0 due to additional `Key` variant, requiring a major version - bump here). ## 3.1.1 ### Changed - * Update chainspec values used in `PRODUCTION_RUN_GENESIS_REQUEST` to match those of Mainnet protocol version 1.4.15. + + ## 3.1.0 ### Added - * Add support for `commit_prune` of `casper-execution-engine`. + + ## 3.0.0 ### Changed - * Version bump only to match major version bump of `casper-execution-engine` dependency. + + ## 2.3.0 [YANKED] ### Added - * Add `ChainspecConfig` to support parsing a chainspec. + + ## 2.2.0 ### Added - * Add some auction and transfer test support functions for reuse among benchmarks and unit tests. ### Deprecated - * Deprecated the `DEFAULT_RUN_GENESIS_REQUEST` in favor of `PRODUCTION_RUN_GENESIS_REQUEST`. + + ## 2.1.0 ### Added - * Add further helper methods to `WasmTestBuilder`. + + ## 2.0.3 - 2021-12-06 ### Added - * Added `WasmTestBuilder::get_balance_keys` function. + + ## 2.0.2 - 2021-11-24 ### Changed - * Revert the change to the path detection logic applied in v2.0.1. + + ## [2.0.1] - 2021-11-4 ### Changed - * Change the path detection logic for compiled Wasm as used by the casper-node monorepo. ### Deprecated +* Deprecate the `test-support` feature. It had and continues to have no effect when enabled. + -* Deprecate the `test-support` feature. It had and continues to have no effect when enabled. ## [2.0.0] - 2021-11-01 ### Added - * Provide fine-grained support for testing all aspects of smart contract execution, including: * `WasmTestBuilder` for building and running a test to exercise a smart contract * `DeployItemBuilder` for building a `DeployItem` from a smart contract @@ -146,7 +142,6 @@ All notable changes to this project will be documented in this file. The format * Provide several default consts and statics useful across many test scenarios ### Removed - * Remove coarse-grained support and newtypes for testing smart contracts, including removal of: * `Account` * `AccountHash` @@ -159,60 +154,62 @@ All notable changes to this project will be documented in this file. The format * `Value` * Remove `InMemoryWasmTestBuilder`. + + ## [1.4.0] - 2021-10-04 ### Changed - * Support building and testing using stable Rust. + + ## [1.3.0] - 2021-07-19 ### Changed - * Update pinned version of Rust to `nightly-2021-06-17`. + + ## [1.2.0] - 2021-05-28 ### Changed - * Change to Apache 2.0 license. + + ## [1.1.1] - 2021-04-19 No changes. + + ## [1.1.0] - 2021-04-13 [YANKED] No changes. + + ## [1.0.1] - 2021-04-08 No changes. + + ## [1.0.0] - 2021-03-30 ### Added - * Initial release of execution-engine test support framework compatible with Casper mainnet. -[Keep a Changelog]: https://keepachangelog.com/en/1.0.0 -[unreleased]: https://github.com/casper-network/casper-node/compare/04f48a467...dev +[Keep a Changelog]: https://keepachangelog.com/en/1.0.0 +[unreleased]: https://github.com/casper-network/casper-node/compare/04f48a467...dev [2.0.1]: https://github.com/casper-network/casper-node/compare/13585abcf...04f48a467 - [2.0.0]: https://github.com/casper-network/casper-node/compare/v1.4.0...13585abcf - [1.4.0]: https://github.com/casper-network/casper-node/compare/v1.3.0...v1.4.0 - [1.3.0]: https://github.com/casper-network/casper-node/compare/v1.2.0...v1.3.0 - [1.2.0]: https://github.com/casper-network/casper-node/compare/v1.1.1...v1.2.0 - [1.1.1]: https://github.com/casper-network/casper-node/compare/v1.0.1...v1.1.1 - [1.1.0]: https://github.com/casper-network/casper-node/compare/v1.0.1...v1.1.1 - [1.0.1]: https://github.com/casper-network/casper-node/compare/v1.0.0...v1.0.1 - [1.0.0]: https://github.com/casper-network/casper-node/releases/tag/v1.0.0 diff --git a/storage/CHANGELOG.md b/storage/CHANGELOG.md index 1ea6df6890..b22e15f73a 100644 --- a/storage/CHANGELOG.md +++ b/storage/CHANGELOG.md @@ -1,85 +1,59 @@ # Changelog -All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog]. +All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog]. [comment]: <> (Added: new features) - [comment]: <> (Changed: changes in existing functionality) - [comment]: <> (Deprecated: soon-to-be removed features) - [comment]: <> (Removed: now removed features) - [comment]: <> (Fixed: any bug fixes) - [comment]: <> (Security: in case of vulnerabilities) -## 5.0.0 - -### Added - -* Added a field `rewards` handling to Config in the `runtime_native` module - -### Changed -* Modified the behavior of the protocol upgrade logic to add a sustain purse to the mints named keys if the rewards - handling to sustain -* Modified the behavior of the protocol upgrade logic to recalculate the total supply at the point of protocol upgrade -* Modified the Genesis flow to support the rewards handling mode sustain in the Account/Contract model -* Modified the auction logic to keep track of a minimum delegation rate for validators - -### Fixed - -* Fixed a bug introduced during protocol version 2.0 in the genesis logic that did not include delegator stakes towards - the total supply ## 4.0.1 ### Changed - -* Changed the withdraw bid behavior to return an UnbondingAmountTooLarge error instead of forcing a unbonding of the - valdiator's bid +* Changed the withdraw bid behavior to return an UnbondingAmountTooLarge error instead of forcing a unbonding of the valdiator's bid ### Fixed - -* Fixed an issue in the storage create which allowed delegators to exceed the maximum limit set by the validator for the - validator's bid +* Fixed an issue in the storage create which allowed delegators to exceed the maximum limit set by the validator for the validator's bid ## 4.0.0 ### Added - * Added `maximum_delegation_amount` field to the runtime native config struct. ### Fixed - * Fixed an issue regarding incorrect setting of delegator min max limits on validator bids ## 3.0.0 ### Changed - * Update `casper-types` to v4.0.1, requiring a major version bump here. + + ## 2.0.0 ### Added - * Add `ChunkWithProof` to support chunking of large values, and associated Merkle-proofs of these. + + ## 1.4.4 ### Changed - * Update dependencies. + + ## 1.4.0 ### Added +* Initial release of crate providing `Digest` type and hashing methods, including the structs to handle proofs for chunks of data. -* Initial release of crate providing `Digest` type and hashing methods, including the structs to handle proofs for - chunks of data. -[Keep a Changelog]: https://keepachangelog.com/en/1.0.0 +[Keep a Changelog]: https://keepachangelog.com/en/1.0.0 [unreleased]: https://github.com/casper-network/casper-node/tree/dev diff --git a/types/CHANGELOG.md b/types/CHANGELOG.md index f6b7505902..b0b469bb7a 100644 --- a/types/CHANGELOG.md +++ b/types/CHANGELOG.md @@ -3,35 +3,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog]. [comment]: <> (Added: new features) - [comment]: <> (Changed: changes in existing functionality) - [comment]: <> (Deprecated: soon-to-be removed features) - [comment]: <> (Removed: now removed features) - [comment]: <> (Fixed: any bug fixes) - [comment]: <> (Security: in case of vulnerabilities) -## casper-types 7.0.0 - -### Added - -- Added new enum `RewardsHandling` with two variants `Standard` and `Sustain` -- Added `RewardsHandling` to the `CoreConfig` as the field `rewards_handling` -- Added `RewardsHandling` to the `ProtocolUpgradeConfig` as the field `rewards_handling` -- Added new field `minimum_delegation_rate` to the `CoreConfig` struct -- Added new variant `Key::RewardsHandling` to the `Key` enum -- Added new variant `GenesisAccount::Sustain` to the `GenesisAccount` enum -- Added new constant `MINT_SUSTAIN_PURSE_KEY` - -## casper-types 6.1.0 - -## casper-types 6.0.0 - -### Added +## [UNRELEASED] casper-types 6.0.0 +### Added - TransactionInvocationTarget::ByPackageHash::protocol_version_major field - TransactionInvocationTarget::ByPackageName::protocol_version_major field - New variant PackageIdentifier::HashWithVersion @@ -220,8 +200,7 @@ All notable changes to this project will be documented in this file. The format - enum system::auction::ValidatorCredits - enum system::auction::Staking - trait system::auction::BidsExt -- enum system::auction::Error has new variants: ForgedReference, MissingPurse, - ValidatorBidExistsAlready,BridgeRecordChainTooLong,UnexpectedBidVariant, DelegationAmountTooLarge +- enum system::auction::Error has new variants: ForgedReference, MissingPurse, ValidatorBidExistsAlready,BridgeRecordChainTooLong,UnexpectedBidVariant, DelegationAmountTooLarge - enum system::CallerTag - enum system::Caller - enum system::handle_payment::Error @@ -238,34 +217,26 @@ All notable changes to this project will be documented in this file. The format ### Changed -- pub enum ApiError has new variants: MessageTopicAlreadyRegistered, MaxTopicsNumberExceeded, MaxTopicNameSizeExceeded, - MessageTopicNotRegistered, MessageTopicFull, MessageTooLarge, - MaxMessagesPerBlockExceeded,NotAllowedToAddContractVersion,InvalidDelegationAmountLimits,InvalidCallerInfoRequest -- struct AuctionState#bids is now a BTreeMap instead of Vec. This field is still serialized as - an array. Due to this change the elements of the array will have more fields than before ( - added `validator_public_key`, `vesting_schedule`). +- pub enum ApiError has new variants: MessageTopicAlreadyRegistered, MaxTopicsNumberExceeded, MaxTopicNameSizeExceeded, MessageTopicNotRegistered, MessageTopicFull, MessageTooLarge, MaxMessagesPerBlockExceeded,NotAllowedToAddContractVersion,InvalidDelegationAmountLimits,InvalidCallerInfoRequest +- struct AuctionState#bids is now a BTreeMap instead of Vec. This field is still serialized as an array. Due to this change the elements of the array will have more fields than before (added `validator_public_key`, `vesting_schedule`). - Variants of enum EntryPointType changed - Struct Parameter moved from contracts to addressable_entity::entry_points - struct EraId has new methods `iter_range_inclusive`, `increment` - struct ExecutionEffect moved to module execution::execution_result_v1 - enum OpKind moved to module execution::execution_result_v1 - struct Operation moved to module execution::execution_result_v1 -- enum Transform changed name to TransformKindV1, moved to module execution::execution_result_v1 and has new variants ( - WriteAddressableEntity, Prune, WriteBidKind) +- enum Transform changed name to TransformKindV1, moved to module execution::execution_result_v1 and has new variants (WriteAddressableEntity, Prune, WriteBidKind) - enum ExecutionResult changed name to ExecutionResultV1, moved to module execution::execution_result_v1 - struct TransformEntry changed name to TransformV1 and moved to module execution::execution_result_v1 - moved NamedKey to module execution::execution_result_v1 - KeyTag::SystemContractRegistry variant changed name to KeyTag::SystemEntityRegistry -- variants for KeyTag enum: BidAddr = 15, Package = 16, AddressableEntity = 17, ByteCode = 18, Message = 19, NamedKey = - 20, BlockGlobal = 21, BalanceHold = 22, EntryPoint = 23, +- variants for KeyTag enum: BidAddr = 15, Package = 16, AddressableEntity = 17, ByteCode = 18, Message = 19, NamedKey = 20, BlockGlobal = 21, BalanceHold = 22, EntryPoint = 23, - enum Key::SystemContractRegistry changed name to Key::SystemEntityRegistry -- variants for enum Key: BidAddr, Package, AddressableEntity, ByteCode, Message, NamedKey, BlockGlobal, BalanceHold, - EntryPoint, +- variants for enum Key: BidAddr, Package, AddressableEntity, ByteCode, Message, NamedKey, BlockGlobal, BalanceHold, EntryPoint, - struct ExcessiveSizeError changed name to DeployExcessiveSizeError - struct Transfer changed name to TransferV1 - enum GlobalStateIdentifier -- enum StoredValue has new variants: Transfer, AddressableEntity, BidKind, Package, ByteCode, MessageTopic, Message, - NamedKey,Reservation,EntryPoint, +- enum StoredValue has new variants: Transfer, AddressableEntity, BidKind, Package, ByteCode, MessageTopic, Message, NamedKey,Reservation,EntryPoint, - enum system::SystemContractType changed name to system::SystemEntityType - enum system::handle_payment::Error variant SystemFunctionCalledByUserAccount changed to InvalidCaller - struct EntryPoint has a new field `entry_point_payment` @@ -278,17 +249,13 @@ All notable changes to this project will be documented in this file. The format - type Groups (there is now a struct with that name) - type EntryPointsMap - type NamedKeys -- - -methods `groups_mut`, `add_group`, `lookup_contract_hash`, `is_version_enabled`, `is_contract_enabled`, `insert_contract_version`, `disable_contract_version`, `enable_contract_version`, `enabled_versions`, `remove_group`, `next_contract_version_for`, `current_contract_version`, `current_contract_hash` -in struct ContractPackage +- methods `groups_mut`, `add_group`, `lookup_contract_hash`, `is_version_enabled`, `is_contract_enabled`, `insert_contract_version`, `disable_contract_version`, `enable_contract_version`, `enabled_versions`, `remove_group`, `next_contract_version_for`, `current_contract_version`, `current_contract_hash` in struct ContractPackage ## [Unreleased] (node 1.5.4) ### Changed -- Remove filesystem I/O functionality from the `std` feature, and gated this behind a new feature `std-fs-io` which - depends upon `std`. +- Remove filesystem I/O functionality from the `std` feature, and gated this behind a new feature `std-fs-io` which depends upon `std`. ## 4.0.1 @@ -306,30 +273,24 @@ in struct ContractPackage ### Security -- Update `ed25519-dalek` to version 2.0.0 as mitigation - for [RUSTSEC-2022-0093](https://rustsec.org/advisories/RUSTSEC-2022-0093) +- Update `ed25519-dalek` to version 2.0.0 as mitigation for [RUSTSEC-2022-0093](https://rustsec.org/advisories/RUSTSEC-2022-0093) ## 3.0.0 ### Added -- Add new `bytesrepr::Error::NotRepresentable` error variant that represents values that are not representable by the - serialization format. +- Add new `bytesrepr::Error::NotRepresentable` error variant that represents values that are not representable by the serialization format. - Add new `Key::Unbond` key variant under which the new unbonding information (to support redelegation) is written. - Add new `Key::ChainspecRegistry` key variant under which the `ChainspecRegistry` is written. -- Add new `Key::ChecksumRegistry` key variant under which a registry of checksums for a given block is written. There - are two checksums in the registry, one for the execution results and the other for the approvals of all deploys in the - block. +- Add new `Key::ChecksumRegistry` key variant under which a registry of checksums for a given block is written. There are two checksums in the registry, one for the execution results and the other for the approvals of all deploys in the block. - Add new `StoredValue::Unbonding` variant to support redelegating. - Add a new type `WithdrawPurses` which is meant to represent `UnbondingPurses` as they exist in current live networks. ### Changed -- Extend `UnbondingPurse` to take a new field `new_validator` which represents the validator to whom tokens will be - re-delegated. +- Extend `UnbondingPurse` to take a new field `new_validator` which represents the validator to whom tokens will be re-delegated. - Increase `DICTIONARY_ITEM_KEY_MAX_LENGTH` to 128. -- Change prefix of formatted string representation of `ContractPackageHash` from "contract-package-wasm" to " - contract-package-". Parsing from the old format is still supported. +- Change prefix of formatted string representation of `ContractPackageHash` from "contract-package-wasm" to "contract-package-". Parsing from the old format is still supported. - Apply `#[non_exhaustive]` to error enums. - Change Debug output of `DeployHash` to hex-encoded string rather than a list of integers. @@ -348,10 +309,8 @@ in struct ContractPackage ### Added - Extend asymmetric key functionality, available via feature `std` (moved from `casper-nodes` crate). -- Provide `Timestamp` and `TimeDiff` types for time operations, with extended functionality available via - feature `std` (moved from `casper-nodes` crate). -- Provide test-only functionality, in particular a seedable RNG `TestRng` which outputs its seed on test failure. - Available via a new feature `testing`. +- Provide `Timestamp` and `TimeDiff` types for time operations, with extended functionality available via feature `std` (moved from `casper-nodes` crate). +- Provide test-only functionality, in particular a seedable RNG `TestRng` which outputs its seed on test failure. Available via a new feature `testing`. - Add new `Key::EraSummary` key variant under which the era summary info is written on each switch block execution. ### Deprecated @@ -463,25 +422,14 @@ No changes. - Initial release of types for use by software compatible with Casper mainnet. [Keep a Changelog]: https://keepachangelog.com/en/1.0.0 - [unreleased]: https://github.com/casper-network/casper-node/compare/24fc4027a...dev - [1.4.3]: https://github.com/casper-network/casper-node/compare/2be27b3f5...24fc4027a - [1.4.2]: https://github.com/casper-network/casper-node/compare/v1.4.1...2be27b3f5 - [1.4.1]: https://github.com/casper-network/casper-node/compare/v1.4.0...v1.4.1 - [1.4.0]: https://github.com/casper-network/casper-node/compare/v1.3.0...v1.4.0 - [1.3.0]: https://github.com/casper-network/casper-node/compare/v1.2.0...v1.3.0 - [1.2.0]: https://github.com/casper-network/casper-node/compare/v1.1.1...v1.2.0 - [1.1.1]: https://github.com/casper-network/casper-node/compare/v1.0.1...v1.1.1 - [1.1.0]: https://github.com/casper-network/casper-node/compare/v1.0.1...v1.1.1 - [1.0.1]: https://github.com/casper-network/casper-node/compare/v1.0.0...v1.0.1 - [1.0.0]: https://github.com/casper-network/casper-node/releases/tag/v1.0.0 From 087833e505d4d7cf1be4c8e983cc94880fffcb03 Mon Sep 17 00:00:00 2001 From: Karan Dhareshwar Date: Fri, 10 Apr 2026 08:34:22 -0500 Subject: [PATCH 5/5] Undo formatting changes pt.3 --- execution_engine/CHANGELOG.md | 7 +++++-- .../test_support/CHANGELOG.md | 5 +++++ storage/CHANGELOG.md | 17 +++++++++++++++++ types/CHANGELOG.md | 17 +++++++++++++++-- 4 files changed, 42 insertions(+), 4 deletions(-) diff --git a/execution_engine/CHANGELOG.md b/execution_engine/CHANGELOG.md index d7d941a268..943b95697f 100644 --- a/execution_engine/CHANGELOG.md +++ b/execution_engine/CHANGELOG.md @@ -9,11 +9,14 @@ All notable changes to this project will be documented in this file. The format [comment]: <> (Fixed: any bug fixes) [comment]: <> (Security: in case of vulnerabilities) +## 9.0.0 +### Added -## [Unreleased] (node 2.0) +* Added `RewardsHandling` support to the execution engine +* Added `RewardsHandling` field to the struct `EngineConfig` -## [Unreleased] (node 2.0) +## 8.0.0 ### Added diff --git a/execution_engine_testing/test_support/CHANGELOG.md b/execution_engine_testing/test_support/CHANGELOG.md index a02cecbc57..6d1744fcef 100644 --- a/execution_engine_testing/test_support/CHANGELOG.md +++ b/execution_engine_testing/test_support/CHANGELOG.md @@ -9,7 +9,12 @@ All notable changes to this project will be documented in this file. The format [comment]: <> (Fixed: any bug fixes) [comment]: <> (Security: in case of vulnerabilities) +## 9.0.0 +### Added + +* Added support for `RewardsHandling` to the execution engine testing crate +* Added support for `minimum_delegation_rate` to the execution engine testing crate ## 7.0.1 diff --git a/storage/CHANGELOG.md b/storage/CHANGELOG.md index b22e15f73a..1ea8760e07 100644 --- a/storage/CHANGELOG.md +++ b/storage/CHANGELOG.md @@ -9,7 +9,24 @@ All notable changes to this project will be documented in this file. The format [comment]: <> (Fixed: any bug fixes) [comment]: <> (Security: in case of vulnerabilities) +## 5.0.0 +### Added + +* Added a field `rewards` handling to Config in the `runtime_native` module_ + +### Changed + +* Modified the behavior of the protocol upgrade logic to add a sustain purse to the mints named keys if the rewards + handling to sustain +* Modified the behavior of the protocol upgrade logic to recalculate the total supply at the point of protocol upgrade +* Modified the Genesis flow to support the rewards handling mode sustain in the Account/Contract model +* Modified the auction logic to keep track of a minimum delegation rate for validators + +### Fixed + +* Fixed a bug introduced during protocol version 2.0 in the genesis logic that did not include delegator stakes towards + the total supply ## 4.0.1 diff --git a/types/CHANGELOG.md b/types/CHANGELOG.md index b0b469bb7a..1d3b4c06aa 100644 --- a/types/CHANGELOG.md +++ b/types/CHANGELOG.md @@ -9,9 +9,22 @@ All notable changes to this project will be documented in this file. The format [comment]: <> (Fixed: any bug fixes) [comment]: <> (Security: in case of vulnerabilities) -## [UNRELEASED] casper-types 6.0.0 +## casper-types 7.0.0 + +### Added + +- Added new enum `RewardsHandling` with two variants `Standard` and `Sustain` +- Added `RewardsHandling` to the `CoreConfig` as the field `rewards_handling` +- Added `RewardsHandling` to the `ProtocolUpgradeConfig` as the field `rewards_handling` +- Added new field `minimum_delegation_rate` to the `CoreConfig` struct +- Added new variant `Key::RewardsHandling` to the `Key` enum +- Added new variant `GenesisAccount::Sustain` to the `GenesisAccount` enum +- Added new constant `MINT_SUSTAIN_PURSE_KEY` + +## casper-types 6.0.0 + +### Added -### Added - TransactionInvocationTarget::ByPackageHash::protocol_version_major field - TransactionInvocationTarget::ByPackageName::protocol_version_major field - New variant PackageIdentifier::HashWithVersion