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
txcommands 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 tosimd 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
MarshalAnyandUnmarshalAnytoMarshalInterfaceandUnmarshalInterfacerespectively. These functions must take an interface as parameter (not a concrete type norAnyobject). Underneath they useAnywrapping for correct protobuf serialization. - CLI: removed
--textflag fromshow-node-idcommand; the text format for public keys is not used any more - instead we use ProtoJSON.
- (types) #9079 Add
AddAmount/SubAmountmethods tosdk.Coin. - #8628 Commands no longer print outputs using
stderrby default
API Breaking Changes
- (keyring) #\8662
NewMnemonicnow receives an additionalpassphraseargument to secure the key generated by the bip39 mnemonic. - (x/bank) #8473 Bank keeper does not expose unsafe balance changing methods such as
SetBalance,SetSupplyetc. - (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
InfoImporterinterface is removed from legacy keybase. - #8629 Deprecated
SetFullFundraiserPathfromConfigin favor ofSetPurposeandSetCoinType. - (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
SupplyIinterface andSupplyare removed and usessdk.Coinsfor supply tracking - (x/upgrade) #8743
UpgradeHandlerincludes a new argumentVersionMapwhich helps facilitate in-place migrations. - (x/auth) #8129 Updated
SigVerifiableTx.GetPubKeysmethod signature to return error. - (x/upgrade) \7487 Upgrade
Keepertakes new argumentProtocolVersionSetterwhich implements setting a protocol version on baseapp. - (baseapp) \7487 BaseApp's fields appVersion and version were swapped to match Tendermint's fields.
- #8682
ante.NewAnteHandlerupdated to receive all positional params asante.HandlerOptionsstruct. If required fields aren't set, throws error accordingly. - (x/staking/types) #7447 Remove bech32 PubKey support:
ValidatorIinterface update:GetConsPubKeyrenamed toTmConsPubKey(this is to clarify the return type: consensus public key must be a tendermint key);TmConsPubKey,GetConsAddrmethods return error.Validatorupdated according to theValidatorIchanges described above.ToTmValidatorfunction: addederrorto return values.Validator.ConsensusPubkeytype changed fromstringtocodectypes.Any.MsgCreateValidator.Pubkeytype changed fromstringtocodectypes.Any.
- (client) #8926
client/tx.PrepareFactoryhas been converted to a private function, as it's only used internally. - (auth/tx) #8926 The
ProtoTxProviderinterface used as a workaround for transaction simulation has been removed. - (x/bank) #8798
GetTotalSupplyis removed in favour ofGetPaginatedTotalSupply - (x/bank/types) #9061
AddressFromBalancesStorenow 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
HandleEquivocationEvidencepersists 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,coinbaseandburnevents. - (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.Intrather thanstring.
Improvements
- (x/bank) #8614 Add
NameandSymbolfields to denom metadata - (x/auth) #8522 Allow to query all stored accounts
- (crypto/types) #8600
CompactBitArray: optimize theNumTrueBitsBeforemethod and add anEqualmethod. - (x/upgrade) #8743 Add tracking module versions as per ADR-041
- (types) #8962 Add
Abs()method tosdk.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/totalandGET /bank/total/{denom}in swagger - (x/slashing) #8427 Fix query signing infos command
Deprecated
- (grpc) #8926 The
txfield inSimulateRequesthas been deprecated, prefer to passtx_bytesinstead.