Releases: anoma/namada
Namada 0.46.0
Namada 0.46.0 is a minor release containing important bug-fixes and various improvements.
BUG FIXES
- Added validation of the transaction's memo in the validity predicates to catch
any possible tamperings. (#3960) - fix unshielding NFT transfer via IBC
(#4025) - Validate validator metadata from on-chain validator creation and metadata
changes. (#4036) - CLI: Allow to wrap a raw tx signed by someone else.
(#4055) - Use the base denom in the given IBC token as it is
(#4060) - fix the cli command 'namada client reveal_pk' to respect the
'--dump-tx' and '--dump-wrapper-tx' flags when present. this
allows offline accounts to reveal their public keys to the network
(#4061)
DOCS
- Fixed broken link to CometBFT installation instructions in README.md
to ensure users can properly access the installation guide.
(#4006)
FEATURES
- Adds a cli command to estimate the amount of MASP rewards that will be accumulated by the next epoch.
This is done by applying the latest set of conversions for each asset again.
(#3974)
IMPROVEMENTS
- Improve MASP insufficient balance errors.
(#4003) - Added more info to gas failure errors. (#4004)
- Improve the shielded sync's ledger client performance and user experience.
(#4016) - Avoid updating merkle paths of spent notes. This should optimize
the synchronous path of the shielded sync on the ledger client.
(#4018) - The speculative shielded context now avoids updating its
state if the transaction failed. Added a test for it.
(#4019) - Some small fixups learned from the dry-run: namadac
staking-rewards-rate, namadac query-proposal, log.
(#4021) - Improved the display of transactions' results.
(#4039) - Prune old Merkle tree snapshots which are saved every block
(#4043) - Client now prints help messages on missing arguments.
(#4047)
TESTING
Namada 0.45.1
Namada 0.45.1 is a patch releases that fixes an issue with release packaging.
Namada 0.45.0
Namada 0.45.0 is a minor release with various bug-fixes and improvements.
Note that this release is missing pre-packaged binaries, which will be shipped with v0.45.1.
BUG FIXES
- Fixed the masp indexer client not being able to fetch the notes index from the
namada-masp-indexer
. (#3860) - Fix prefix iterators for batched transactions in the write log.
(#3926) - Update
flume
tov0.11.1
. This fixes some crashes
when it is compiled to wasm and runs under a web browser.
(#3947) - Fix a variety of MASP rewards related client bugs. Moreover, add
regression tests that cover the expected behavior. The client logic
that made MASP fee payments possible was also dramatically simplified,
making this code easier to maintain in the foreseeable future.
(#3959) - Fix the prefix separator for config key-vals set from env var to a
single underscore between the "NAMADA" prefix and the rest of the path.
(#3971) - Enforce gas spending key usage with disposable gas payers.
(#3979)
FEATURES
- Added the possibility to selectively dump a wrapper
transaction and produce an offline signature for gas payment.
(#3900)
IMPROVEMENTS
- Refactored tx crate modules and slightly improved its API.
(#3835) - Improved batch construction to reduce the size of the resulting tx.
(#3882) - SDK query to get liveness information for the network and consensus validator
set. (#3899) - Improved the mesagges related to gas errors in
process_proposal
and mempool validation. Added more tests.
(#3928) - Fixes display of tx allowlist in query-protocol-parameters.
Improves some error messages. Improves two standard client queries.
(#3940) - Adjust the gfas parameters such that the price in NAM of the simplest tx is
reduced to 0.5 NAM. (#3956) - Add new useful client utilities.
(#3968) - Removed the
disposable-gas-payer
cli argument for custom transactions.
(#3969) - Streamlined the error propagation of masp fee payment. Improved the logs
provided to the user. (#3983)
MISCELLANEOUS
- The
make build
recipe now builds in release. Usemake build-debug
for a
dev build. (#3971)
TESTING
- Added more unit and integration tests for the MASP, including tests with
transaction batches. (#3840) - Added testing for batched tx events.
(#3857) - Added test for gas payment with an IBC token.
(#3866) - Added tests in crates/sdk/signing.rs
(#3924) - Increase the default masp fee payment gas limit to 65000 in genesis
localnet files. Moreover, add additional test cases for MASP fee unshields.
(#3982)
Namada 0.44.1
Namada 0.44.1 is a patch release with various fixes, improvements and refactors.
BUG FIXES
- Fixed the masp indexer client not being able to fetch the notes index from the
namada-masp-indexer
. (#3860)
IMPROVEMENTS
- Refactored tx crate modules and slightly improved its API.
(#3835) - Improved batch construction to reduce the size of the resulting tx.
(#3882) - SDK query to get liveness information for the network and consensus validator
set. (#3899)
TESTING
Namada 0.44.0
Namada 0.44.0 is a minor release containing various fixes for shielded tokens, shielded sync, IBC and its interaction with shielded tokens and various other improvements.
BUG FIXES
- Support only a transparent address as a refund target of IBC shielding
transfer (#3620) - Make transfers with same source and destion a no-op.
(#3675) - Fix path to compiled WASMs that's validated during join-network.
(#3694) - Now we propagate the error coming from
is_proposal_accepted
instead of falling back on a default.
(#3700) - Handle errors when loading wallet file and only create a new one if not found.
(#2151) - Fixed the SDK to generate MASP transactions with the correct expiration (if
provided). (#3724) - Enable the signing logic to fall back to the hardware wallet
if a secret key is not found in software wallet store.
(#3730) - The multitoken vp now checks that the involved parties
validate the transaction. Improved tests and transfer code.
(#3804) - The masp ref events are now published in a single collection
enforcing a correct ordering. Fixed the shielded sync command
to account for multiple masp transactions in a single tx.
(#3821)
IMPROVEMENTS
-
Add optional height parameter to get_token_balance
(#3530) -
Improved the consistency and safety of MASP events construction in protocol.
(#3669) -
Reorganized some types and modules and refactored crates re-
exports, error handling features and removed unused depdendencies.
(#3670) -
Removed the dev dependencies of wasm-for-tests.
(#3676) -
Improved the user experience of the secret key decryption process.
(#3681) -
Addresses the remaining points of Issue #3307
- Implements the
OfferSnapshot
ABCI call - Implements the
ApplySnapshotChunk
ABCI call - Adds integration tests
(#3687)
- Implements the
-
Improved some governance messages and cli commands arguments.
(#3689) -
Updated toolchain to Rust 1.81.0.
(#3690) -
Include some CLI commands for querying the total supply of any token
and the effective total circulating supply of the native token.
(#3691) -
Only re-exporting tendermint-rs v0.37 modules.
(#3697) -
Made the
disposable-gas-payer
cli arg specific to some transactions.
(#3699) -
Optimize the format of snapshots taken for state syncing purposes.
Snapshots are taken over the entire RocksDB database, packaged into
azstd
compressedtar
archive, and split into 10 MB chunks.
(#3701) -
Implement serde::Serialize for GovernanceParameters, PosParams, OwnedPosParams
(#3702) -
Change the quorum for voting on a default governance proposal from 2/3 to 40%.
(#3703) -
Improve the format of dumped txs. Added command to
generate signature without requiring a network connection.
(#3715) -
Moved governance shell sub-module into governance crate using dependency-
injection. (#3718) -
If an additional
reveal_pk
transaction is required, the client now groups
it with the actual transaction into a single batch instead of submitting it
separately. (#3720) -
Improve the proposal result query to be more descriptive and detail
the validator voting period. Fix some other small logging bugs.
(#3728) -
Switched to use typed ChainId instead of a string in all
fn get_chain_id
.
(#3733) -
Add an RPC endpoint for the consensus validator set in the SDK.
(#3734) -
Update tendermint-rs, ibc-rs and tower-abci
(#3735) -
Refactored token transfer functions and fixed checks for no-op conditions.
(#3736) -
Support dynamically joining ledger managed tasks. With this change, adding
or removing managed tasks from the ledger should be a far easier process to
contend with. (#3741) -
Factored most of the masp code out of the sdk and into shielded token crate. These
required the creation of two futher crates: "namada_io" and "namada_wallet". (#3744) -
Increased the gas cost for storage consumption and improved gas tracking for
masp fee payments. (#3746) -
Upgrade CometBFT to v0.37.11.
(#3751) -
Remove namada-relayer from the build.
(#3752) -
Improve error and help messages to clarify that a .tx
file is expected as input to --tx-path for a custom tx.
(#3757) -
Miscellaneous improvements and bug fixes to the dry run command.
(#3758) -
Check the string length of the validator name in provided metadata.
(#3779) -
Improve the CLI query-protocol-parameters.
(#3788) -
Improved the invariants and the usage of the
Gas
type.
(#3792) -
Propagate "std" feature from SDK to wallet crate.
(#3795) -
Improve the logging options for querying MASP conversions.
(#3805) -
When calling init chain, we now verify that the native token alias has masp
parameters set. (#3806) -
Refactored most native VPs to be agnostic to VP environment (WASM or native).
(#3807) -
Adds an SDK and CLI tool to estimate the latest annual staking rewards rate.
(#3816) -
Reduced the number of a tx event's masp attributes to a single one.
(#3826) -
Remove relayer help messages from namada binary.
(#3830) -
Let user customize the pre-genesis chain-id via environment variable
(#3833) -
Validate a chain ID of genesis on ABCI InitChain request
prior to applying it to ensure it's not been tampered with.
(#3843)
TESTING
- Clean IBC E2E tests and refine IBC client upgrade test with Gaia
(#3601) - Updated the gaia e2e tests to use the MASP internal address instead of
the payment address as the receiver of an IBC shielding transaction.
(#3626) - Augment the functionality of
gen_localnet.py
with the ability
to generate full node base directories. Moreover, add a new script
to boot up a localnet with two genesis validators or a full node.
(#3680)
Namada 0.43.0
Namada 0.43.0 is a minor relasing improving shielded sync and addressing some pre-genesis flow issues.
BUG FIXES
- Fix genesis bonds from implicit accounts. Now, only addresses
of the formtnam1...
are supported inbalances.toml
.
(#3645)
FEATURES
- Partially addresses Issue #2900. Viewing and spending keys can now
be given birthdays in the form of block heights which are loaded into
shielded sync. Shielded sync will not try to decrypt a block before a
keys birthday with said key. (#3653) - The command
namadan utils test-genesis
now accepts--check-can-sign
multi-arg that can be used with genesis addresses and/or public keys to
verify that a pre-genesis wallet in the base directory is able to sign
with the keys associated with the addresses or with the keys themselves.
(#3660)
IMPROVEMENTS
- Removed parallel gas accounting.
(#3615) - Improve governance client side validation.
(#3629) - Masp vp and protocol now ensure that a transaction can push at most one MASP
action. (#3632) - Do not load context for
namadan utils test-genesis
command.
(#3652) - Speeds up client commands on networks with massive balances.toml
files. Previously, to retrieve the native token of some network,
we had to parse these giant files. Now, we only parse the
necessary genesis toml files required to retrieve the native token.
(#3655)
SDK
- Parallelize the shielded sync implementation in Namada.
(#3578)
TESTING
Namada 0.42.0
Namada 0.42.0 is a minor release that includes refactor of crates dependency graph using dependency injection, improvements in client check and node's stability.
BUG FIXES
- Workaround Windows problems to be able to build on it.
(#3553) - Improve client side checks for update-account transaction.
(#3566) - Do not load shed tower-abci info service.
(#3576) - No-op instead of error in wasm for withdraw txs if no tokens are available
to withdraw. Automatically submit reveal pk tx for source for shielding
transfers. (#3594) - Fix the behavior of the MASP VP when processing an IBC Receive message
involves unescrowing. (#3611)
FEATURES
- Added support for Ledger wallet TCP transport.
(#3593)
IMPROVEMENTS
- Added two new crates, namada_vm and namada_vp and removed namada crate that
contained various loosely related code. Moved the native VP implementations
to the relevant crates and replaced their cross-dependencies with dependency-
injection. (#3402) - Replaced cross-system dependencies in namada_shielded_token crate with
dependency-injection. (#3466) - Added a new namada_systems crate to contain abstract systems interfaces,
previously added to core crate. Also switched to use the concrete
storage error and result type instead of the generic associated
type which reduces the amount of typing needed one the caller side.
(#3472) - Replaced cross-system dependencies in namada_governance crate with dependency-
injection. (#3482) - Replaced cross-system dependencies in namada_proof_of_stake crate with
dependency-injection. (#3497) - Decode asset types to addresses when generating test vectors if possible.
(#3507) - Replaced cross-system dependencies in namada_ibc crate with dependency-
injection. (#3509) - Improved tracing messages regarding MASP fee payment.
(#3547) - Updated the gas costs based on benchmarks ran on v41.
(#3554) - Removed unnecessary trait bound from declarations.
(#3577) - Fxing comments and strings.
(#3589) - Improved the
max_block_time
estimate.
(#3591) - Refactor signature fetching data.
(#3592) - Do not try to download wasms artifacts from an untrusted source.
(#3598) - Support additional address kinds in
balances.toml
genesis file.
Previously, only established addresses and public keys were supported.
(#3614) - Display the hash of the proposal wasm code when querying proposals with
associated wasm payload. (#3617)
Namada 0.41.0
Namada 0.41.0 is a minor release that primarily improves gas, fixes bugs related to signature verification and a memory leak from a dependency, and includes shielded sync upgrades.
BUG FIXES
- Adds SDK builder to shielded and shielding transfers.
(#3518) - Workaround a leak in wasmer store.
(#3529) - Client fixes that include using the correct total voting power to compute a
proposal result and also the correct voting threshold for steward proposals.
(#3540) - Fixed a possible panic in transaction signatures verification missing expected
signature(s). (#3543)
CI
- Fixed a broken e2e test for db migrations. Added it to the list of e2e test to be run by the CI.
(#3481)
IMPROVEMENTS
- Moved the signature verifications out of the masp vp and into the affected
addresses' vps. (#3312) - Implements phase 1 of Issue #3385
-
When fetching notes, connections and related failures should not halt shielded sync. Instead, the process
should be restarted -
If fetching is interrupted, the data fetched should be persisted locally so that progress isn't lost.
-
A trait for fetching behavior should be added to provide modularity
(#3498)
-
- Improved the interface of the gas type. Removed the duplicated gas used from
events. (#3428) - Implement the phase 2 masp shielded sync client. This client uses
anamada-masp-indexer
instance to query the state of the shielded context.
(#3456) - Minor improvements to governance and PGF code quality, including
template gov proposal jsons and a python script to attach wasm code.
(#3471) - Modified rechecks of process proposal to actually use
process_proposal
instead ofprocess_txs
. Added a caching mechanism to avoid
running the check for a given proposed block more than once.
(#3473) - Expanded the scope of test vector generation and updated outdated components
of the test vector code. (#3494) - Removes redundant function.
(#3502) - Bump tendermint-rs to 0.37
(#3506) - Increased the gas cost for storage occupation and tied it to the other gas
costs. (#3510) - Eliminates the MASP VPs requirement for all debited accounts to sign a Tx.
(#3516) - Rename and split --memo-path into --ibc-shielding-data and --ibc-memo
(#3517)
Namada 0.40.0
Namada 0.40.0 is a minor release that makes many important improvements to shielded actions, DB snapshotting capabilities, batched transactions, and much more.
BUG FIXES
- Update native token total supply with MASP rewards.
(#3375) - Increase the lifetime of disposable signing keys from 5 minutes to 1 week.
(#3378) - Our
DateTimeUtc
type allowed a relaxed representation of RFC3339 strings.
We now enforce a string subset of this format, to guarantee deterministic
serialization. (#3389) - Fix to decode ibc-rs transfer messages
(#3404) - Add replay protection to MASP-IBC transactions.
(#3409) - Respect --wasm-dir on init-network.
(#3432) - Fix IBC shielding transfer for the receiver not to be replaced by a malicious
relayer (#3438) - Fixed MASP witness data malleability in the Tx
(#3463)
FEATURES
- Reworked transparent and masp transfers to allow for multiple sources, targets,
tokens and amounts. (#3356) - Added support for fee payment directly from the MASP pool.
(#3393)
IMPROVEMENTS
-
Moved up the check on the sapling value balance in the masp vp.
(#2721) -
Queries methods now requests
TryInto
trait bound for block heights to reduce
the conversion error. (#2891) -
Miscellaneous code optimizations.
(#3192) -
Added a
namada complete
command to generate shell completions. This command
requires--shell
with one of:- bash
- elvish
- fish
- powershell
- zsh
- nushell
To use in e.g. bash, run
namada complete --shell bash > /usr/share/bash-completion/completions/namada.bash
.
(#3343) -
Remove the
max_expected_time_per_block
genesis parameter.
(#3366) -
Refactored checked assign arithmetic operations to use smooth-operator macro.
(#3374) -
Store total MASP rewards and print them in the conversions query.
(#3375) -
Remove the check on the maximum number of signatures allowed per transaction
(#3380)
-
Resolves the first two points of Issue #3307:
- Add the ability to create chunkable snapshots to our rocksdb implementation
- Spawn a background task to create snapshots are certain blockheights
Specifically adds a config parameter that indicates after how many blocks a
snapshot should be created. If set, then on the corresponding calls to commit,
a background task is spun up that takes a snapshot of rocksDB and writes it
in a convenient format to a file. This file contains metadata of how to be
broken up into chunks. Once a new snapshot is created, older snapshots are
removed. (#3383)
-
Addresses the third point and part of the fourth point of Issue
#3307- Adds chunking logic to snapshots
- Implements the
ListSnapshots
ABCI call - Implements the
LoadSnapshotChunk
ABCI call
(#3386)
-
Remove the requirement that the proposal voting period
is some integer multiple of the minimum voting period.
(#3390) -
Include the gas scale as a protocol parameter that is
mutable via governance rather than as a hard-coded constant.
(#3391) -
Upgrade the library used to communicate with hardware wallet
(#3412) -
Index batched txs via their wrapper and commitment hashes.
(#3416) -
Moved shielded tx validation out of the SDK crate into shielded token crate.
(#3419) -
Enforce an upper limit on the number of PGF stewards allowed to exist at a
given time. (#3442) -
Combined the various Transfer formats into one general one.
(#3446) -
Introduced a local configuration parameter to allow nodes to
rerun the process proposal checks before block finalization.
(#3448)
TESTING
Namada 0.39.0
Namada 0.39.0 is a minor release that primarily abstracts the different kinds of transfer transactions and makes upgrades to the MASP and VPs.
BUG FIXES
- Fixes an issue with unsanitized input to a PoS query to find
a validator by TM address which may cause a node to panic.
(#3340) - Fix to clear the write log when dry-run batched transaction
(#3358)
IMPROVEMENTS
- The transfer command has been split into:
transfer
(shielded transfer)transparent-transfer
shield
(from transparent to shielded)unshield
(from shielded to transparent)
(#3297)
- Avoid growing wasm memory when performing read-only accesses.
(#3315) - Added a separate epoch tracker for masp to decouple its logic from the rest of
the protocol. (#3318) - Default to the address from local config when the
--node
argument is not specified forshielded-sync
command
(#3333) - Allow NAM transfers for protocol actions.
(#3348) - Select gas payer from implicit address in the Namada CLI.
(#3349) - Remove old disposable keys from the wallet.
(#3350) - Addressed some minor issues in the shielded token code.
(#3351)