Skip to content

v0.43.0-alpha1

Pre-release
Pre-release
Compare
Choose a tag to compare
@aaronc aaronc released this 22 Apr 17:55
e28271b

Features

  • #8077 Added support for grpc-web, enabling browsers to communicate with a chain's gRPC server
  • #8965 cosmos reflection now provides more information on the application such as: deliverable msgs, sdk.Config info etc (still in alpha stage).
  • #8559 Added Protobuf compatible secp256r1 ECDSA signatures.
  • #8786 Enabled secp256r1 in x/auth.
  • (rosetta) #8729 Data API fully supports balance tracking. Construction API can now construct any message supported by the application.
  • #8754 Added support for reverse iteration to pagination.
  • #9088 Added implementation to ADR-28 Derived Addresses.
  • #9133 Added hooks for governance actions.

Client Breaking Changes

  • #8363 Addresses no longer have a fixed 20-byte length. From the SDK modules' point of view, any 1-255 bytes-long byte array is a valid address.
  • #8346 All CLI tx commands generate ServiceMsgs by default. Graceful Amino support has been added to ServiceMsgs to support signing legacy Msgs.
  • (crypto/ed25519) [#8690] Adopt zip1215 ed2559 verification rules.
  • #8849 Upgrade module no longer supports time based upgrades.
  • #8880 The CLI simd migrate v0.40 ... command has been renamed to simd migrate v0.42.
  • #7477 Changed Bech32 Public Key serialization in the client facing functionality (CLI, MsgServer, QueryServer):
    • updated the keyring display structure (it uses protobuf JSON serialization) - the output is more verbose.
    • Renamed MarshalAny and UnmarshalAny to MarshalInterface and UnmarshalInterface respectively. These functions must take an interface as parameter (not a concrete type nor Any object). Underneath they use Any wrapping for correct protobuf serialization.
    • CLI: removed --text flag from show-node-id command; the text format for public keys is not used any more - instead we use ProtoJSON.
  • (types) #9079 Add AddAmount/SubAmount methods to sdk.Coin.
  • #8628 Commands no longer print outputs using stderr by default

API Breaking Changes

  • (keyring) #\8662 NewMnemonic now receives an additional passphrase argument to secure the key generated by the bip39 mnemonic.
  • (x/bank) #8473 Bank keeper does not expose unsafe balance changing methods such as SetBalance, SetSupply etc.
  • (x/staking) #8473 On genesis init, if non bonded pool and bonded pool balance, coming from the bank module, does not match what is saved in the staking state, the initialization will panic.
  • (x/gov) #8473 On genesis init, if the gov module account balance, coming from bank module state, does not match the one in gov module state, the initialization will panic.
  • (x/distribution) #8473 On genesis init, if the distribution module account balance, coming from bank module state, does not match the one in distribution module state, the initialization will panic.
  • (client/keys) #8500 InfoImporter interface is removed from legacy keybase.
  • #8629 Deprecated SetFullFundraiserPath from Config in favor of SetPurpose and SetCoinType.
  • (x/upgrade) #8673 Remove IBC logic from x/upgrade. Deprecates IBC fields in an Upgrade Plan. IBC upgrade logic moved to 02-client and an IBC UpgradeProposal is added.
  • (x/bank) #8517 SupplyI interface and Supply are removed and uses sdk.Coins for supply tracking
  • (x/upgrade) #8743 UpgradeHandler includes a new argument VersionMap which helps facilitate in-place migrations.
  • (x/auth) #8129 Updated SigVerifiableTx.GetPubKeys method signature to return error.
  • (x/upgrade) \7487 Upgrade Keeper takes new argument ProtocolVersionSetter which implements setting a protocol version on baseapp.
  • (baseapp) \7487 BaseApp's fields appVersion and version were swapped to match Tendermint's fields.
  • #8682 ante.NewAnteHandler updated to receive all positional params as ante.HandlerOptions struct. If required fields aren't set, throws error accordingly.
  • (x/staking/types) #7447 Remove bech32 PubKey support:
    • ValidatorI interface update: GetConsPubKey renamed to TmConsPubKey (this is to clarify the return type: consensus public key must be a tendermint key); TmConsPubKey, GetConsAddr methods return error.
    • Validator updated according to the ValidatorI changes described above.
    • ToTmValidator function: added error to return values.
    • Validator.ConsensusPubkey type changed from string to codectypes.Any.
    • MsgCreateValidator.Pubkey type changed from string to codectypes.Any.
  • (client) #8926 client/tx.PrepareFactory has been converted to a private function, as it's only used internally.
  • (auth/tx) #8926 The ProtoTxProvider interface used as a workaround for transaction simulation has been removed.
  • (x/bank) #8798 GetTotalSupply is removed in favour of GetPaginatedTotalSupply
  • (x/bank/types) #9061 AddressFromBalancesStore now returns an error for invalid key instead of panic.

State Machine Breaking

  • (x/{bank,distrib,gov,slashing,staking}) #8363 Store keys have been modified to allow for variable-length addresses.
  • (x/evidence) #8502 HandleEquivocationEvidence persists the evidence to state.
  • (x/gov) #7733 ADR 037 Implementation: Governance Split Votes
  • (x/bank) #8656 balance and supply are now correctly tracked via coin_spent, coin_received, coinbase and burn events.
  • (x/bank) #8517 Supply is now stored and tracked as sdk.Coins
  • (store) #8790 Reduce gas costs by 10x for transient store operations.
  • (x/staking) #8505 Convert staking power reduction into an on-chain parameter rather than a hardcoded in-code variable.
  • (x/bank) #9051 Supply value is stored as sdk.Int rather than string.

Improvements

  • (x/bank) #8614 Add Name and Symbol fields to denom metadata
  • (x/auth) #8522 Allow to query all stored accounts
  • (crypto/types) #8600 CompactBitArray: optimize the NumTrueBitsBefore method and add an Equal method.
  • (x/upgrade) #8743 Add tracking module versions as per ADR-041
  • (types) #8962 Add Abs() method to sdk.Int.
  • (x/bank) #8950 Improve efficiency on supply updates.
  • (store) #8012 Implementation of ADR-038 WriteListener and listen.KVStore
  • (makefile) #7933 Use Docker to generate swagger files.

Bug Fixes

  • (gRPC) #8945 gRPC reflection now works correctly.
  • (keyring) #\8635 Remove hardcoded default passphrase value on NewMnemonic
  • (x/bank) #8434 Fix legacy REST API GET /bank/total and GET /bank/total/{denom} in swagger
  • (x/slashing) #8427 Fix query signing infos command

Deprecated

  • (grpc) #8926 The tx field in SimulateRequest has been deprecated, prefer to pass tx_bytes instead.