* Changelog update
* Rename codec.MarshalAny
* move codec.MarshalInterface to codec.Marshaler
* fix tests
* Update amino_codec for compliance with MarshalerInterface
* update tests and comments
* add tests
* change order of args in UnmarshalInterface to a canonical one
* uplift MarshalInterface to take ProtoMessage as an argument
* wip
* add nil check
* make tests working
* tests cleanup
* add support for *JSON methods
* Update changelog
* linter fixes
* fix test types
* update evidence genesis_test
* adding test
* review updates
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Updating the ADR template
Introducing few small sections to the template:
* Summary: IMHO it's very valuable for every reader to quickly see what this ADR is about. Must be short.
* Backwards Compatibility -- each ADR MUST analyze backward compatibility issue. Let's make it clear and put as the ADR subsection.
* Test Cases -- often, when analyzing a problem and implementing a solution, it's very useful to define test-cases. Hence it SHOULD be a part of the template.
Inspiration: Enterprise Ethreum Alliance Proposal [template](https://github.com/EntEthAlliance/EEPs/blob/master/draft/templates/EEP0002-Standards_Proposal_Template.md)
* change Summary -> Abstract
* adr-27: adding
Each ADR should have an abstract and an example use case to quickly present the goal.
Here, adding this to DR 027: Deterministic Protobuf Serialization
* review update
* added link to TxRaw
* added list of major use-cases
* updated wording in context and abstract
* updated the adr-020 part
* add consequences and motivation for TxRaw
* Update docs/architecture/adr-027-deterministic-protobuf-serialization.md
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
* Update docs/architecture/adr-027-deterministic-protobuf-serialization.md
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
* Update docs/architecture/adr-027-deterministic-protobuf-serialization.md
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
* Update docs/architecture/adr-027-deterministic-protobuf-serialization.md
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
* Update docs/architecture/adr-027-deterministic-protobuf-serialization.md
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
* rewording
* Update docs/architecture/adr-027-deterministic-protobuf-serialization.md
Co-authored-by: Simon Warta <2603011+webmaster128@users.noreply.github.com>
* Update docs/architecture/adr-027-deterministic-protobuf-serialization.md
Co-authored-by: Simon Warta <2603011+webmaster128@users.noreply.github.com>
* Update docs/architecture/adr-027-deterministic-protobuf-serialization.md
Co-authored-by: Simon Warta <2603011+webmaster128@users.noreply.github.com>
Co-authored-by: Amaury Martiny <amaury.martiny@protonmail.com>
Co-authored-by: Simon Warta <2603011+webmaster128@users.noreply.github.com>
Co-authored-by: Cory <cjlevinson@gmail.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
When reading this ADR, I was confused about _denomination_. When reading this in context of tokens I always think about a unit / measure. Examples: bills denominated in $20 and $50. Or as 100 cents makes 1 dollar.
The Merriam-Webster dictionary defines [denomination](https://www.merriam-webster.com/dictionary/denomination) as:
1. an act of denominating. Eg: the denomination of prices in U.S. dollars
2. a value or size of a series of values or sizes. Eg: metric denominations
3. name, designation especially : a general name for a category
It seams that we are using the last definition (3rd).
* Update changelog.
* Fix typos.
* Remove 'by default' from packed encoding rule.
* Further specify longer requirement.
* Clarify that bool must have value of 1 if included.
* Fix typo variant -> varint.
* Disambiguate rule 3.
* Add more reasoning for requirements on zeroes.
* Reword rules to make bit restrictions clearer. Add exception for negative int32.
* Add reference for signed integer encoding.
* Clarify rule for signed int requirement.
* Deterministic -> bijective.
* Normalize spacing in 'protobuf 3'.
* Add background to clarify 70 bits.
* Fix nit: all -> most.
* Clarify is -> must.
Co-authored-by: Alessio Treglia <alessio@tendermint.com>