All Versions
139
Latest Version
Avg Release Cycle
31 days
Latest Release
688 days ago

Changelog History
Page 6

  • v0.38.4 Changes

    May 21, 2020

    ๐Ÿ› Bug Fixes

    • (x/auth) #5950 Fix IncrementSequenceDecorator to use is IsReCheckTx instead of IsCheckTx to allow account sequence incrementing.
  • v0.38.3 Changes

    April 09, 2020

    ๐Ÿ‘Œ Improvements

    • ๐Ÿš€ (tendermint) Bump Tendermint version to v0.33.3.
  • v0.38.2 Changes

    March 25, 2020

    ๐Ÿ› Bug Fixes

    • ๐Ÿšš (baseapp) #5718 Remove call to ctx.BlockGasMeter during failed message validation which resulted in a panic when the tx execution mode was CheckTx.
    • 0๏ธโƒฃ (x/genutil) #5775 Fix ExportGenesis in x/genutil to export default genesis state ([]) instead of null.
    • (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/reward validation helpers.

    ๐Ÿ‘Œ Improvements

    • โœจ (rest) #5648 Enhance /txs usability:
      • Add tx.minheight key to filter transaction with an inclusive minimum block height
      • Add tx.maxheight key to filter transaction with an inclusive maximum block height
    • ๐Ÿ–จ (crypto/keys) #5739 Print an error message if the password input failed.
  • v0.38.1 Changes

    February 11, 2020

    ๐Ÿ‘Œ Improvements

    • (modules) #5597 Add amount event attribute to the complete_unbonding and complete_redelegation events that reflect the total balances of the completed unbondings and redelegations respectively.

    ๐Ÿ› Bug Fixes

    • ๐Ÿ”จ (types) #5579 The IAVL Store#Commit method has been refactored to delete a flushed version if it is not a snapshot version. The root multi-store now keeps track of commitInfo instead of types.CommitID. During Commit of the root multi-store, lastCommitInfo is updated from the saved state and is only flushed to disk if it is a snapshot version. During Query of the root multi-store, if the request height is the latest height, we'll use the store's lastCommitInfo. Otherwise, we fetch commitInfo from 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.38.0 Changes

    January 23, 2020

    State Machine Breaking

    • (genesis) #5506 The x/distribution genesis state now includes params instead of individual parameters.
    • (genesis) #5017 The x/genaccounts module has been ๐Ÿ“ฆ deprecated and all components removed except the legacy/ package. This requires changes to the genesis state. Namely, accounts now exist under app_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 during BeginBlock along with the corresponding parameters (MaxEvidenceAge) have moved from the x/slashing module to the x/evidence module.

    API Breaking Changes

    • ๐Ÿšš (modules) #5506 Remove individual setters of x/distribution parameters. Instead, follow the module spec in getting parameters, setting new value(s) and finally calling SetParams.
    • (types) #5495 Remove redundant (Must)Bech32ify* and (Must)Get*KeyBech32 functions in favor of (Must)Bech32ifyPubKey and (Must)GetPubKeyFromBech32 respectively, both of which take a Bech32PubKeyType (string).
    • (types) #5430 DecCoins#Add parameter changed from DecCoins to ...DecCoin, Coins#Add parameter changed from Coins to ...Coin.
    • (baseapp/types) #5421 The Error interface (types/errors.go) ๐Ÿšš has been removed in favor of the concrete type defined in types/errors/ which implements the standard error interface.
      • As a result, the Handler and Querier implementations now return a standard error. Within BaseApp, runTx now returns a (GasInfo, *Result, error) tuple and runMsgs returns a (*Result, error) tuple. A reference to a Result is now used to indicate success whereas an error signals an invalid message or failed message execution. As a result, the fields Code, Codespace, GasWanted, and GasUsed have been removed the Result type. The latter two fields are now found in the GasInfo type which is always returned regardless of execution outcome.
      • Note to developers: Since all handlers and queriers must now return a standard error, the types/errors/ package contains all the relevant and pre-registered errors that you typically work with. A typical error returned will look like sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "..."). You can retrieve relevant ABCI information from the error via ABCIInfo.
    • ๐Ÿšš (client) #5442 Remove client/alias.go as it's not necessary and ๐Ÿ“ฆ components can be imported directly from the packages.
    • (store) #4748 The CommitMultiStore interface ๐Ÿ‘ now requires a SetInterBlockCache method. Applications that do not wish to support this can simply have this method perform a no-op.
    • ๐Ÿ”จ (modules) #4665 Refactored x/gov module 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/genaccounts module has been deprecated and all components removed except the legacy/ package.
    • ๐Ÿ“ฆ #4486 Vesting account types decoupled from the x/auth module and now live under x/auth/vesting. Applications wishing to use vesting account types must be sure to register types via RegisterCodec under the new vesting package.
    • #4486 The NewBaseVestingAccount constructor returns an error if the provided arguments are invalid.
    • (x/auth) #5006 Modular AnteHandler via composable decorators:
      • The AnteHandler interface now returns (newCtx Context, err error) instead of (newCtx Context, result sdk.Result, abort bool)
      • The NewAnteHandler function returns an AnteHandler function that returns the new AnteHandler interface and has been moved into the auth/ante directory.
      • ValidateSigCount, ValidateMemo, ProcessPubKey, EnsureSufficientMempoolFee, and GetSignBytes have all been removed as public functions.
      • Invalid Signatures may return InvalidPubKey instead of Unauthorized error, since the transaction will first hit SetPubKeyDecorator before the SigVerificationDecorator runs.
      • StdTx#GetSignatures will return an array of just signature byte slices [][]byte instead of returning an array of StdSignature structs. To replicate the old behavior, use the public field StdTx.Signatures to get back the array of StdSignatures []StdSignature.
    • ๐Ÿšš (modules) #5299 HandleDoubleSign along with params MaxEvidenceAge and DoubleSignJailEndTime have moved from the x/slashing module to the x/evidence module.
    • (keys) #4941 Keybase concrete types constructors such as NewKeyBaseFromDir and NewInMemory now accept optional parameters of type KeybaseOption. These optional parameters are also added on the keys sub-commands functions, which are now public, and allows 0๏ธโƒฃ these options to be set on the commands or ignored to default to previous behavior.
    • ๐Ÿšš #5547 NewKeyBaseFromHomeFlag constructor 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 WithKeygenFunc function added as a KeybaseOption which allows a custom bytes to key implementation to be defined when keys are created.
      • The WithDeriveFunc function added as a KeybaseOption allows 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 the client/keys add command.
      • SupportedAlgos and SupportedAlgosLedger functions return a slice of SigningAlgos that are supported by the keybase and the ledger integration respectively.
    • (simapp) #5419 The helpers.GenTx() now accepts a gas argument.
    • (baseapp) #5455 A sdk.Context is now passed into the router.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 AnteHandler has ๐Ÿ‘ increased significantly due to modular AnteHandler support. Increase GasLimit accordingly.
    • (rest) #5336 MsgEditValidator uses description instead of Description as a JSON key.
    • ๐Ÿ‘€ (keys) #5097 Due to the keybase -> keyring transition, keys need to be migrated. See keys migrate command for more info.
    • (x/auth) #5424 Drop decode-tx command from x/auth/client/cli, duplicate of the decode command.

    ๐Ÿ”‹ 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/evidence module.
    • ๐Ÿ‘ (cli) #5212 The q gov proposals command now supports pagination.
    • โฌ†๏ธ (store) #4724 Multistore supports substore migrations upon load. New rootmulti.Store.LoadLatestVersionAndUpgrade method in โฌ†๏ธ Baseapp supports StoreLoader to enable various upgrade strategies. It no longer panics if the store to load contains substores that we didn't explicitly mount.
    • #4972 A TxResponse with a corresponding code and tx hash will be returned for specific Tendermint errors:
      • CodeTxInMempoolCache
      • CodeMempoolIsFull
      • CodeTxTooLarge
    • #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 the go-keychain library. 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-backend option through which users can specify which backend should be used by the new key store:
      • os: use OS default credentials storage (default).
      • file: use encrypted file-based store.
      • kwallet: use KDE Wallet service.
      • pass: use the pass command line password manager.
      • test: use password-less key store. For testing purposes only. Use it at your own risk.
    • (keys) #5097 New keys migrate command to assist users migrate their keys to the new keyring.
    • (keys) #5366 keys list now accepts a --list-names option to list key names only, whilst the keys delete command can delete multiple keys by passing their names as arguments. The aforementioned commands can then be piped together, e.g. appcli keys list -n | xargs appcli keys delete
    • โฌ†๏ธ (modules) #4233 Add upgrade module that coordinates software upgrades of live chains.
    • #4486 Introduce new PeriodicVestingAccount vesting account type that allows for arbitrary vesting periods.
    • (baseapp) #5196 Baseapp has a new runTxModeReCheck to allow applications to skip expensive and unnecessary re-checking of transactions.
    • (types) #5196 Context has new IsRecheckTx() bool and WithIsReCheckTx(bool) Context methods to to be used in the AnteHandler.
    • โšก๏ธ (x/auth/ante) #5196 AnteDecorators have been updated to avoid unnecessary checks when ctx.IsReCheckTx() == true
    • (x/auth) #5006 Modular AnteHandler via composable decorators:
      • The AnteDecorator interface has been introduced to allow users to implement modular AnteHandler functionality that can be composed together to create a single AnteHandler rather than implementing a custom AnteHandler completely from scratch, where each AnteDecorator allows for custom behavior in tightly defined and logically isolated manner. These custom AnteDecorator can then be chained together with default AnteDecorator or third-party AnteDecorator to create a modularized AnteHandler which will run each AnteDecorator in the order specified in ChainAnteDecorators. For details on the new architecture, refer to the [ADR](docs/architecture/adr-010-modular-antehandler.md).
      • ChainAnteDecorators function has been introduced to take in a list of AnteDecorators and chain them in sequence and return a single AnteHandler:
        • SetUpContextDecorator: Sets GasMeter in context and creates defer clause to recover from any OutOfGas panics in future AnteDecorators and return OutOfGas error to BaseApp. It MUST be the first AnteDecorator in the chain for any application that uses gas (or another one that sets the gas meter).
        • ValidateBasicDecorator: Calls tx.ValidateBasic and returns any non-nil error.
        • ValidateMemoDecorator: Validates tx memo with application parameters and returns any non-nil error.
        • ConsumeGasTxSizeDecorator: Consumes gas proportional to the tx size based on application parameters.
        • MempoolFeeDecorator: Checks if fee is above local mempool minFee parameter during CheckTx.
        • DeductFeeDecorator: Deducts the FeeAmount from first signer of the transaction.
        • SetPubKeyDecorator: Sets pubkey of account in any account that does not already have pubkey saved in state machine.
        • SigGasConsumeDecorator: Consume parameter-defined amount of gas for each signature.
        • SigVerificationDecorator: Verify each signature is valid, return if there is an error.
        • ValidateSigCountDecorator: Validate the number of signatures in tx based on app-parameters.
        • IncrementSequenceDecorator: Increments the account sequence for each signer to prevent replay attacks.
    • ๐Ÿ‘ (cli) #5223 Cosmos Ledger App v2.0.0 is now supported. The changes are backwards compatible and App v1.5.x is still supported.
    • (x/staking) #5380 Introduced ability to store historical info entries in staking keeper, allows applications to introspect specified number of past headers and validator sets
      • Introduces new parameter HistoricalEntries which allows applications to determine how many recent historical info entries they want to persist in store. Default value is 0.
      • Introduces cli commands and rest routes to query historical information at a given height
    • (modules) #5249 Funds are now allowed to be directly sent to the community pool (via the distribution module account).
    • 0๏ธโƒฃ (keys) #4941 Introduce keybase option to allow overriding the default private key implementation of a key generated through the keys add cli command.
    • (keys) #5439 Flags --algo and --hd-path are added to keys add command in order to make use of keybase modularized. By default, it uses (0, 0) bip44 HD path and secp256k1 keys, so is non-breaking.
    • (types) #5447 Added ApproxRoot function to sdk.Decimal type in order to get the nth root for a decimal number, where n is a positive integer.
      • An ApproxSqrt function was also added for convenience around the common case of n=2.

    ๐Ÿ‘Œ Improvements

    • ๐Ÿšš (iavl) #5538 Remove manual IAVL pruning in favor of IAVL's internal pruning strategy.
    • (server) #4215 The --pruning flag ๐Ÿ”ง has been moved to the configuration file, to allow easier node configuration.
    • ๐Ÿ‘ (cli) #5116 The CLIContext now supports multiple verifiers when connecting to multiple chains. The connecting chain's CLIContext will have to have the correct chain ID and node URI or client set. To use a CLIContext with a verifier for another chain:
      // main or parent chain (chain as if you're running without IBC)
      mainCtx := context.NewCLIContext()
    
      // connecting IBC chain
      sideCtx := context.NewCLIContext().
        WithChainID(sideChainID).
        WithNodeURI(sideChainNodeURI) // or .WithClient(...)
    
      sideCtx = sideCtx.WithVerifier(
        context.CreateVerifier(sideCtx, context.DefaultVerifierCacheSize),
      )
    
    • ๐Ÿ“ฆ (modules) #5017 The x/auth package now supports generalized genesis accounts through the GenesisAccount interface.
    • ๐Ÿšš (modules) #4762 Deprecate remove and add permissions in ModuleAccount.
    • โšก๏ธ (modules) #4760 update x/auth to match module spec.
    • ๐Ÿ”’ (modules) #4814 Add security contact to Validator description.
    • ๐Ÿ”จ (modules) #4875 refactor integration tests to use SimApp and separate test package
    • (sdk) #4566 Export simulation's parameters and app state to JSON in order to reproduce bugs and invariants.
    • (sdk) #4640 improve import/export simulation errors by extending DiffKVStores to return an array of KVPairs that are then compared to check for inconsistencies.
    • ๐Ÿ”จ (sdk) #4717 refactor x/slashing to match the new module spec
    • โšก๏ธ (sdk) #4758 update x/genaccounts to match module spec
    • ๐Ÿ–จ (simulation) #4824 PrintAllInvariants flag will print all failed invariants
    • (simulation) #4490 add InitialBlockHeight flag to resume a simulation from a given block

      • Support exporting the simulation stats to a given JSON file
    • ๐Ÿ”จ (simulation) #4847, #4838 and #4869 SimApp and simulation refactors:

      • Implement SimulationManager for executing modules' simulation functionalities in a modularized way
      • Add RegisterStoreDecoders to the SimulationManager for decoding each module's types
      • Add GenerateGenesisStates to the SimulationManager to generate a randomized GenState for each module
      • Add RandomizedParams to the SimulationManager that registers each modules' parameters in order to simulate ParamChangeProposals' Contents
      • Add WeightedOperations to the SimulationManager that define simulation operations (modules' Msgs) with their respective weights (i.e chance of being simulated).
      • Add ProposalContents to the SimulationManager to register each module's governance proposal Contents.
    • (simulation) #4893 Change SimApp keepers to be public and add getter functions for keys and codec

    • (simulation) #4906 Add simulation Config struct that wraps simulation flags

    • โšก๏ธ (simulation) #4935 Update simulation to reflect a proper ABCI application without bypassing BaseApp semantics

    • ๐Ÿ”จ (simulation) #5378 Simulation tests refactor:

      • Add App interface for general SDK-based app's methods.
      • Refactor and cleanup simulation tests into util functions to simplify their implementation for other SDK apps.
    • (store) #4792 panic on non-registered store

    • ๐Ÿ“ฆ (types) #4821 types/errors package added with support for stacktraces. It is meant as a more feature-rich replacement for sdk.Errors in the mid-term.

    • (store) #1947 Implement inter-block (persistent) caching through CommitKVStoreCacheManager. Any application wishing to utilize an inter-block cache ๐Ÿ“„ must set it in their app via a BaseApp option. The BaseApp docs have been drastically improved to detail this new feature and how state transitions occur.

    • ๐Ÿšš (docs/spec) All module specs moved into their respective module dir in x/ (i.e. docs/spec/staking -->> x/staking/spec)

    • ๐Ÿ“š (docs/) #5379 Major documentation refactor, including:

      • (docs/intro/) Add and improve introduction material for newcomers.
      • (docs/basics/) Add documentation about basic concepts of the cosmos sdk such as the anatomy of an SDK application, the transaction lifecycle or accounts.
      • (docs/core/) Add documentation about core conepts of the cosmos sdk such as baseapp, server, stores, context and more.
      • (docs/building-modules/) Add reference documentation on concepts relevant for module developers (keeper, handler, messages, queries,...).
      • (docs/interfaces/) Add documentation on building interfaces for the Cosmos SDK.
      • Redesigned user interface that features new dynamically generated sidebar, build-time code embedding from GitHub, new homepage as well as many other improvements.
    • (types) #5428 Add Mod (modulo) method and RelativePow (exponentation) function for Uint.

    • ๐Ÿšš (modules) #5506 Remove redundancy in x/distributions use of parameters. There now exists a single Params type with a getter and setter along with a getter for each individual parameter.

    ๐Ÿ› Bug Fixes

    • (client) #5303 Fix ignored error in tx generate only mode.
    • (cli) #4763 Fix flag --min-self-delegation for staking EditValidator
    • ๐Ÿ‘ (keys) Fix ledger custom coin type support bug.
    • (x/gov) #5107 Sum validator operator's all voting power when tally votes
    • (rest) #5212 Fix pagination in the /gov/proposals handler.
  • v0.37.14 Changes

    August 12, 2020

    ๐Ÿ‘Œ Improvements

    • ๐Ÿš€ (tendermint) Bump Tendermint version to v0.32.13.
  • v0.37.13 Changes

    June 03, 2020

    ๐Ÿ‘Œ Improvements

    • ๐Ÿš€ (tendermint) Bump Tendermint version to v0.32.12.
    • ๐Ÿš€ (cosmos-ledger-go) Bump Cosmos Ledger Wallet library version to v0.11.1.
  • v0.37.12 Changes

    May 05, 2020

    ๐Ÿ‘Œ Improvements

    • ๐Ÿš€ (tendermint) Bump Tendermint version to v0.32.11.
  • v0.37.11 Changes

    April 22, 2020

    ๐Ÿ› Bug Fixes

    • 0๏ธโƒฃ (x/staking) #6021 --trust-node's false default value prevents creation of the genesis transaction.
  • v0.37.10 Changes

    April 22, 2020

    ๐Ÿ› Bug Fixes

    • (client/context) #5964 Fix incorrect instantiation of tmlite verifier when --trust-node is off.