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 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
MarshalAny
andUnmarshalAny
toMarshalInterface
andUnmarshalInterface
respectively. These functions must take an interface as parameter (not a concrete type norAny
object). Underneath they useAny
wrapping for correct protobuf serialization. - CLI: removed
--text
flag fromshow-node-id
command; the text format for public keys is not used any more - instead we use ProtoJSON.
- (types) #9079 Add
AddAmount
/SubAmount
methods tosdk.Coin
. - #8628 Commands no longer print outputs using
stderr
by default
API Breaking Changes
- (keyring) #\8662
NewMnemonic
now receives an additionalpassphrase
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
fromConfig
in favor ofSetPurpose
andSetCoinType
. - (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 andSupply
are removed and usessdk.Coins
for supply tracking - (x/upgrade) #8743
UpgradeHandler
includes a new argumentVersionMap
which helps facilitate in-place migrations. - (x/auth) #8129 Updated
SigVerifiableTx.GetPubKeys
method signature to return error. - (x/upgrade) \7487 Upgrade
Keeper
takes new argumentProtocolVersionSetter
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 asante.HandlerOptions
struct. If required fields aren't set, throws error accordingly. - (x/staking/types) #7447 Remove bech32 PubKey support:
ValidatorI
interface update:GetConsPubKey
renamed toTmConsPubKey
(this is to clarify the return type: consensus public key must be a tendermint key);TmConsPubKey
,GetConsAddr
methods return error.Validator
updated according to theValidatorI
changes described above.ToTmValidator
function: addederror
to return values.Validator.ConsensusPubkey
type changed fromstring
tocodectypes.Any
.MsgCreateValidator.Pubkey
type changed fromstring
tocodectypes.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 ofGetPaginatedTotalSupply
- (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
andburn
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 thanstring
.
Improvements
- (x/bank) #8614 Add
Name
andSymbol
fields to denom metadata - (x/auth) #8522 Allow to query all stored accounts
- (crypto/types) #8600
CompactBitArray
: optimize theNumTrueBitsBefore
method and add anEqual
method. - (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/total
andGET /bank/total/{denom}
in swagger - (x/slashing) #8427 Fix query signing infos command
Deprecated
- (grpc) #8926 The
tx
field inSimulateRequest
has been deprecated, prefer to passtx_bytes
instead.