This is a bug fix release to the Cosmos SDK 0.40 "Stargate" release series. No breaking changes are introduced, thus no migration should be needed. Among the various bugfixes, this release introduces important security patches.
See the Cosmos SDK v0.40.1 milestone on our issue tracker for details.
Gogoprotobuf released a bugfix addressing CVE-2021-3121. Cosmos SDK respective dependency has been updated and protobuf generated files were regenerated.
This release comes with a newer release of Tendermint that, other than fixing various bugs it also addresses a high-severity security vulnerability. For the comprehensive list of changes introduced by Tendermint since Cosmos SDK v0.40.0, please refer to Tendermint's v0.34.3 release notes.
In Cosmos SDK applications, it is recommended to use Time.Unix() <= 0
instead of Time.IsZero()
, which may lead to unexpected results.
See #8085 for more information.
The x/upgrade
module command and REST endpoints for querying upgrade plans would panic when no plan existed. This is now resolved.
In Cosmos SDK v0.40.0 a new structure (SignatureV2
) for handling message signatures was introduced.
Although the tx sign --signature-only
command was still capable of generating correct signatures, it was not returning the account's correct sequence number.
Our automatic builds were not working correctly due to small gaps in file paths. Fixed in \8300 and \8301.
Cosmos SDK errors typically support the Is()
method. The Go
errors.Is()
function compares an error to a value and should always return true
when the receiver is passed as an argument to its own method, e.g. err.Is(err)
. This was not a case for the error types provided by the types/errors
package.
Errors occur when using the client to send IBC transactions without flag --absolute-timeouts
, e.g:
gaiad tx ibc-transfer transfer
The issue was caused by incorrect interface decoding and unpacking of Any
values and is now fixed.