Releases: cosmos/cosmos-sdk
Releases · cosmos/cosmos-sdk
v0.38.3
v0.37.9
v0.38.2
Bug Fixes
- (baseapp) #5718 Remove call to
ctx.BlockGasMeterduring failed message validation which resulted in a panic when the tx execution mode wasCheckTx. - (x/genutil) #5775 Fix
ExportGenesisinx/genutilto export default genesis state ([]) instead ofnull. - (client) #5618 Fix crash on the client when the verifier is not set.
- (crypto/keys/mintkey) #5823 fix errors handling in UnarmorPubKeyBytes (underlying armoring function's return error was not being checked).
- (x/distribution) #5620 Fix nil pointer deref in distribution tax/rewward validation helpers.
Improvements
v0.37.8
Bug Fixes
- (rest) #5508 Fix
x/distributionendpoints to properly return height in the response. - (x/genutil) #5499 Ensure
DefaultGenesisreturns valid and non-nil default genesis state. - (x/genutil) #5775 Fix
ExportGenesisinx/genutilto export default genesis state ([]) instead ofnull. - (genesis) #5086 Ensure
gentxsare always an empty array instead ofnil.
Improvements
- (rest) #5648 Enhance /txs usability:
- Add
tx.minheightkey to filter transaction with an inclusive minimum block height - Add
tx.maxheightkey to filter transaction with an inclusive maximum block height
- Add
v0.38.1
Improvements
- (modules) #5597 Add
amountevent attribute to thecomplete_unbondingandcomplete_redelegationevents that reflect the total balances of the completed unbondings and redelegations respectively.
Bug Fixes
- (types) #5579 The IAVL
Store#Commitmethod has been refactored to delete a flushed version if it is not a snapshot version. The root multi-store now keeps track ofcommitInfoinstead oftypes.CommitID. DuringCommitof the root multi-store,lastCommitInfois updated from the saved state and is only flushed to disk if it is a snapshot version. DuringQueryof the root multi-store, if the request height is the latest height, we'll use the store'slastCommitInfo. Otherwise, we fetchcommitInfofrom disk. - (x/bank) #5531 Added missing amount event to MsgMultiSend, emitted for each output.
- (x/gov) #5622 Track any events emitted from a proposal's handler upon successful execution.
v0.37.7
Improvements
- (modules) #5597 Add
amountevent attribute to thecomplete_unbondingandcomplete_redelegationevents that reflect the total balances of the completed unbondings and redelegations respectively.
Bug Fixes
v0.38.0
State Machine Breaking
- (genesis) #5506 The
x/distributiongenesis state
now includesparamsinstead of individual parameters. - (genesis) #5017 The
x/genaccountsmodule has been
deprecated and all components removed except thelegacy/package. This requires changes to the
genesis state. Namely,accountsnow exist underapp_state.auth.accounts. The corresponding migration
logic has been implemented for v0.38 target version. Applications can migrate via:
$ {appd} migrate v0.38 genesis.json. - (modules) #5299 Handling of
ABCIEvidenceTypeDuplicateVote
duringBeginBlockalong with the corresponding parameters (MaxEvidenceAge) have moved from the
x/slashingmodule to thex/evidencemodule.
API Breaking Changes
- (modules) #5506 Remove individual setters of
x/distributionparameters. Instead, follow the module spec in getting parameters, setting new value(s) and finally callingSetParams. - (types) #5495 Remove redundant
(Must)Bech32ify*and(Must)Get*KeyBech32functions in favor of(Must)Bech32ifyPubKeyand(Must)GetPubKeyFromBech32respectively, both of which take aBech32PubKeyType(string). - (types) #5430
DecCoins#Addparameter changed fromDecCoins
to...DecCoin,Coins#Addparameter changed fromCoinsto...Coin. - (baseapp/types) #5421 The
Errorinterface (types/errors.go)
has been removed in favor of the concrete type defined intypes/errors/which implements the standarderrorinterface.- As a result, the
HandlerandQuerierimplementations now return a standarderror.
WithinBaseApp,runTxnow returns a(GasInfo, *Result, error)tuple andrunMsgsreturns a
(*Result, error)tuple. A reference to aResultis now used to indicate success whereas an error
signals an invalid message or failed message execution. As a result, the fieldsCode,Codespace,
GasWanted, andGasUsedhave been removed theResulttype. The latter two fields are now found
in theGasInfotype which is always returned regardless of execution outcome. - Note to developers: Since all handlers and queriers must now return a standard
error, thetypes/errors/
package contains all the relevant and pre-registered errors that you typically work with. A typical
error returned will look likesdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "..."). You can retrieve
relevant ABCI information from the error viaABCIInfo.
- As a result, the
- (client) #5442 Remove client/alias.go as it's not necessary and
components can be imported directly from the packages. - (store) #4748 The
CommitMultiStoreinterface
now requires aSetInterBlockCachemethod. Applications that do not wish to support this can simply
have this method perform a no-op. - (modules) #4665 Refactored
x/govmodule structure and dev-UX:- Prepare for module spec integration
- Update gov keys to use big endian encoding instead of little endian
- (modules) #5017 The
x/genaccountsmodule has been deprecated and all components removed except thelegacy/package. - #4486 Vesting account types decoupled from the
x/authmodule and now live underx/auth/vesting. Applications wishing to use vesting account types must be sure to register types viaRegisterCodecunder the new vesting package. - #4486 The
NewBaseVestingAccountconstructor returns an error
if the provided arguments are invalid. - (x/auth) #5006 Modular
AnteHandlervia composable decorators:- The
AnteHandlerinterface now returns(newCtx Context, err error)instead of(newCtx Context, result sdk.Result, abort bool) - The
NewAnteHandlerfunction returns anAnteHandlerfunction that returns the newAnteHandler
interface and has been moved into theauth/antedirectory. ValidateSigCount,ValidateMemo,ProcessPubKey,EnsureSufficientMempoolFee, andGetSignBytes
have all been removed as public functions.- Invalid Signatures may return
InvalidPubKeyinstead ofUnauthorizederror, since the transaction
will first hitSetPubKeyDecoratorbefore theSigVerificationDecoratorruns. StdTx#GetSignatureswill return an array of just signature byte slices[][]byteinstead of
returning an array ofStdSignaturestructs. To replicate the old behavior, use the public field
StdTx.Signaturesto get back the array of StdSignatures[]StdSignature.
- The
- (modules) #5299
HandleDoubleSignalong with paramsMaxEvidenceAgeandDoubleSignJailEndTimehave moved from thex/slashingmodule to thex/evidencemodule. - (keys) #4941 Keybase concrete types constructors such as
NewKeyBaseFromDirandNewInMemorynow accept optional parameters of typeKeybaseOption. These
optional parameters are also added on the keys sub-commands functions, which are now public, and allows
these options to be set on the commands or ignored to default to previous behavior. - #5547
NewKeyBaseFromHomeFlagconstructor has been removed. - #5439 Further modularization was done to the
keybase
package to make it more suitable for use with different key formats and algorithms:- The
WithKeygenFuncfunction added as aKeybaseOptionwhich allows a custom bytes to key
implementation to be defined when keys are created. - The
WithDeriveFuncfunction added as aKeybaseOptionallows custom logic for deriving a key
from a mnemonic, bip39 password, and HD Path. - BIP44 is no longer build into
keybase.CreateAccount(). It is however the default when using
theclient/keysadd command. SupportedAlgosandSupportedAlgosLedgerfunctions return a slice ofSigningAlgos that are
supported by the keybase and the ledger integration respectively.
- The
- (simapp) #5419 The
helpers.GenTx()now accepts a gas argument. - (baseapp) #5455 A
sdk.Contextis now passed into therouter.Route()function.
Client Breaking Changes
- (rest) #5270 All account types now implement custom JSON serialization.
- (rest) #4783 The balance field in the DelegationResponse type is now sdk.Coin instead of sdk.Int
- (x/auth) #5006 The gas required to pass the
AnteHandlerhas
increased significantly due to modularAnteHandlersupport. Increase GasLimit accordingly. - (rest) #5336
MsgEditValidatorusesdescriptioninstead ofDescriptionas a JSON key. - (keys) #5097 Due to the keybase -> keyring transition, keys need to be migrated. See
keys migratecommand for more info. - (x/auth) #5424 Drop
decode-txcommand from x/auth/client/cli, duplicate of thedecodecommand.
Features
- (store) #5435 New iterator for paginated requests. Iterator limits DB reads to the range of the requested page.
- (x/evidence) #5240 Initial implementation of the
x/evidencemodule. - (cli) #5212 The
q gov proposalscommand now supports pagination. - (store) #4724 Multistore supports substore migrations upon load. New
rootmulti.Store.LoadLatestVersionAndUpgrademethod in
BaseappsupportsStoreLoaderto enable various upgrade strategies. It no
longer panics if the store to load contains substores that we didn't explicitly mount. - #4972 A
TxResponsewith a corresponding code
and tx hash will be returned for specific Tendermint errors:CodeTxInMempoolCacheCodeMempoolIsFullCodeTxTooLarge
- #3872 Implement a RESTful endpoint and cli command to decode transactions.
- (keys) #4754 Introduce new Keybase implementation that can
leverage operating systems' built-in functionalities to securely store secrets. MacOS users may encounter
the following issue with thego-keychainlibrary. If
you encounter this issue, you must upgrade your xcode command line tools to version >=10.2. You can
upgrade via:sudo rm -rf /Library/Developer/CommandLineTools; xcode-select --install. Verify the
correct version via:pkgutil --pkg-info=com.apple.pkg.CLTools_Executables. - #5355 Client commands accept a new
--keyring-backendoption through which users can specify which backend should be used
by the new key store:- ...
v0.37.6
v0.37.5
Features
- (types) #5360 Implement
SortableDecByteswhich
allows theDectype to be sortable.
Improvements
- (tendermint) Bump Tendermint version to v0.32.8.
- (cli) #5482 Remove old "tags" nomenclature from the
q txscommand in favor of the new events system. Functionality remains unchanged except that=is used instead of:to be consistent with the API's use of event queries.