cosmos-sdk v0.30.0 Release Notes

  • ๐Ÿ’ฅ BREAKING CHANGES

    • Gaia REST API (gaiacli advanced rest-server)

      • [gaia-lite] [#2182] Renamed and merged all redelegations endpoints into /staking/redelegations
      • #3176 tx/sign endpoint now expects BaseReq fields as nested object.
      • [#2222] all endpoints renamed from /stake -> /staking
      • [#1268] LooseTokens -> NotBondedTokens
      • [#3289] misc renames:
        • Validator.UnbondingMinTime -> Validator.UnbondingCompletionTime
        • Delegation -> Value in MsgCreateValidator and MsgDelegate
        • MsgBeginUnbonding -> MsgUndelegate
    • Gaia CLI (gaiacli)

      • #810 Don't fallback to any default values for chain ID.
        • Users need to supply chain ID either via config file or the --chain-id flag.
        • Change chain_id and trust_node in gaiacli configuration to chain-id and trust-node respectively.
      • #3069 --fee flag renamed to --fees to support multiple coins
      • #3156 Remove unimplemented gaiacli init command
      • [#2222] gaiacli tx stake -> gaiacli tx staking, gaiacli query stake -> gaiacli query staking
      • #1894 version command now shows latest commit, vendor dir hash, and build machine info.
      • #3320 Ensure all gaiacli query commands respect the --output and --indent flags
    • Gaia

      • https://github.com/cosmos/cosmos-sdk/issues/2838 - Move store keys to constants
      • #3162 The --gas flag now takes auto instead of simulate in order to trigger a simulation of the tx before the actual execution.
      • #3285 New gaiad tendermint version to print libs versions
      • #1894 version command now shows latest commit, vendor dir hash, and build machine info.
      • #3249 tendermint's show-validator and show-address --json flags removed in favor of --output-format=json.
    • SDK

      • [distribution] #3359 Always round down when calculating rewards-to-be-withdrawn in F1 fee distribution
      • #3336 Ensure all SDK messages have their signature bytes contain canonical fields value and type.
      • #3333 - F1 storage efficiency improvements - automatic withdrawals when unbonded, historical reward reference counting
      • [staking] #2513 Validator power type from Dec -> Int
      • [staking] #3233 key and value now contain duplicate fields to simplify code
      • #3064 Sanitize sdk.Coin denom. Coins denoms are now case insensitive, i.e. 100fooToken equals to 100FOOTOKEN.
      • #3195 Allows custom configuration for syncable strategy
      • #3242 Fix infinite gas meter utilization during aborted ante handler executions.
      • [x/distribution] #3292 Enable or disable withdraw addresses with a parameter in the param store
      • [staking] #2222 /stake -> /staking module rename
      • [staking] #1268 LooseTokens -> NotBondedTokens
      • [staking] #1402 Redelegation and unbonding-delegation structs changed to include multiple an array of entries
      • [staking] #3289 misc renames:
        • Validator.UnbondingMinTime -> Validator.UnbondingCompletionTime
        • Delegation -> Value in MsgCreateValidator and MsgDelegate
        • MsgBeginUnbonding -> MsgUndelegate
      • [#3315] Increase decimal precision to 18
      • #3323 Update to Tendermint 0.29.0
      • #3328 [x/gov] Remove redundant action tag
    • Tendermint

      • #3298 Upgrade to Tendermint 0.28.0

    ๐Ÿ”‹ FEATURES

    • Gaia REST API (gaiacli advanced rest-server)

      • #3067 Add support for fees on transactions
      • #3069 Add a custom memo on transactions
      • #3027 Implement /gov/proposals/{proposalID}/proposer to query for a proposal's proposer.
    • Gaia CLI (gaiacli)

      • #2399 Implement params command to query slashing parameters.
      • #2730 Add tx search pagination parameter
      • #3027 Implement query gov proposer [proposal-id] to query for a proposal's proposer.
      • #3198 New keys add --multisig flag to store multisig keys locally.
      • #3198 New multisign command to generate multisig signatures.
      • #3198 New sign --multisig flag to enable multisig mode.
      • #2715 Reintroduce gaia server's insecure mode.
      • #3334 New gaiad completion and gaiacli completion to generate Bash/Zsh completion scripts.
      • #2607 Make gaiacli config handle the boolean indent flag to beautify commands JSON output.
    • Gaia

      • [#2182] [x/staking] Added querier for querying a single redelegation
      • #3305 Add support for vesting accounts at genesis.
      • #3198 [x/auth] Add multisig transactions support
      • #3198 add-genesis-account can take both account addresses and key names
    • SDK

      • #3099 Implement F1 fee distribution
      • #2926 Add TxEncoder to client TxBuilder.
      • #2694 Vesting account implementation.
      • #2996 Update the AccountKeeper to contain params used in the context of the ante handler.
      • #3179 New CodeNoSignatures error code.
      • #3319 [x/distribution] Queriers for all distribution state worth querying; distribution query commands
      • #3356 [x/auth] bech32-ify accounts address in error message.

    ๐Ÿ‘Œ IMPROVEMENTS

    • Gaia REST API

      • #3176 Validate tx/sign endpoint POST body.
      • #2948 Swagger UI now makes requests to light client node
    • Gaia CLI (gaiacli)

      • #3224 Support adding offline public keys to the keystore
    • Gaia

      • #2186 Add Address Interface
      • #3158 Validate slashing genesis
      • #3172 Support minimum fees in a local testnet.
      • #3250 Refactor integration tests and increase coverage
      • #3248 Refactor tx fee model:
        • Validators specify minimum gas prices instead of minimum fees
        • Clients may provide either fees or gas prices directly
        • The gas prices of a tx must meet a validator's minimum
        • gaiad start and gaia.toml take --minimum-gas-prices flag and minimum-gas-price config key respectively.
      • #2859 Rename TallyResult in gov proposals to FinalTallyResult
      • #3286 Fix gaiad gentx printout of account's addresses, i.e. user bech32 instead of hex.
      • #3249 --json flag removed, users should use --output=json instead.
    • SDK

      • #3137 Add tag documentation for each module along with cleaning up a few existing tags in the governance, slashing, and staking modules.
      • #3093 Ante handler does no longer read all accounts in one go when processing signatures as signature verification may fail before last signature is checked.
      • [staking] #1402 Add for multiple simultaneous redelegations or unbonding-delegations within an unbonding period
      • [staking] #1268 staking spec rewrite
    • CI

      • #2498 Added macos CI job to CircleCI
      • #142 Increased the number of blocks to be tested during multi-sim
      • #147 Added docker image build to CI

    ๐Ÿ› BUG FIXES

    • Gaia CLI (gaiacli)

      • #3141 Fix the bug in GetAccount when len(res) == 0 and err == nil
      • #810 Fix regression in gaiacli config file handling
    • Gaia

      • #3148 Fix gaiad export by adding a boolean to NewGaiaApp determining whether or not to load the latest version
      • #3181 Correctly reset total accum update height and jailed-validator bond height / unbonding height on export-for-zero-height
      • #3172 Fix parsing gaiad.toml when it already exists.
      • #3223 Fix unset governance proposal queues when importing state from old chain
      • #3187 Fix gaiad export by resetting each validator's slashing period.