Proto commits in tendermint/go-amino

These 26 commits are when the Protocol Buffers files have changed:

Commit:53f720c
Author:Jae Kwon

Add amino.Marshaler test cases; fix bytes special case

Commit:d13975a
Author:Jae Kwon

Fix amino.Marshaler

Commit:d34ff59
Author:Jae Kwon

isEmpty checks repr, became is*EmptyRepr

Commit:054de51
Author:Jae Kwon

fix slice slice issues

Commit:00384ec
Author:Jae Kwon

Fix issues for nested lists

Commit:e2ad183
Author:Jae Kwon

support fixed32/64 for genporot; Remove varint from tests

Commit:d634273
Author:Jae Kwon

update types.proto

Commit:5d715c6
Author:Jae Kwon

...

Commit:aad1d02
Author:Jae Kwon

pbbindings almost done

Commit:896c56d
Author:Jae Kwon

generate bindings to protobuf generated structs

Commit:f807819
Author:Jae Kwon

work in progress with Any

Commit:c1adb0c
Author:Jae Kwon

Fix generated import file, add symlink in proto

Commit:09a0d01
Author:Jae Kwon

Use PackageInfo and make everything explicit

Commit:104c503
Author:Jae Kwon

wip

Commit:035b43f
Author:Ismail Khoffi
Committer:Ismail Khoffi

WIP: committing feature complete code with debug output & a bunch of comments & todos for @marbar3778 to catch up Signed-off-by: Ismail Khoffi <Ismail.Khoffi@gmail.com>

Commit:38f9ef7
Author:Ismail Khoffi
Committer:Ismail Khoffi

minor improvement to test code Signed-off-by: Ismail Khoffi <Ismail.Khoffi@gmail.com>

Commit:ebe5c45
Author:Ismail Khoffi

define a proto message for tests: amino should encode registered types as this protobuf message Signed-off-by: Ismail Khoffi <Ismail.Khoffi@gmail.com>

Commit:0b520c1
Author:Ismail Khoffi
Committer:GitHub

Wrap basic types in a struct (#270) * First stab on #204: disallow direct encoding of basic types * fix some tests and disallow defined types on decoding (but allow interfaces on decoding) * fix remaining tests and introduce a new error type (instead of panicing) * remove code: condition is always 'false' because 'err' is always 'nil' * WIP: add `(field_number << 3) | wire_type` with field_number == 1 if the passed type is not a struct to simulate protobuf message {} Still missing: - proper table driven tests - decoding (will basically be skipping over the first bytes if non struct type is passed) * remove unused type aliases (use types defined in tests package instead) * Some cleanup: - table driven tests - use helper method `writeFieldIfNotEmpty` where it makes sense - remove a bunch of comments & debug output * Added a more complex test case (currently fails), some lengthy debugging session revealed another minor difference between amino and proto3 (see the two added FIXMEs); also: - renamed some proto3 types - some minor cleanup * Do not prepend with list of structs with field tag (will be handled internally) * WIP: First stab on decoding -> a few failing tests * Fix one of the failing tests: TestBasicTypes * Fix all remaining tests * Fix unfinished comment & remove debug output Signed-off-by: Ismail Khoffi <Ismail.Khoffi@gmail.com> * remove unsed var Signed-off-by: Ismail Khoffi <Ismail.Khoffi@gmail.com> * delete debug output and comment Signed-off-by: Ismail Khoffi <Ismail.Khoffi@gmail.com> * delete debug output and obsolete TODOs and some minot cleanups Signed-off-by: Ismail Khoffi <Ismail.Khoffi@gmail.com> * Add another test case (type PrimitivesStructAr [2]PrimitivesStruct) and fix implementation: - Additionally to the fieldnum and wiretag we need a size prefix (not bare) in case the typ3 isn't of ByteLength. - add helper methods as Bez suggested: check if struct and check if pointer to struct - fix tests due to changes Signed-off-by: Ismail Khoffi <Ismail.Khoffi@gmail.com>

The documentation is generated from this commit.

Commit:6dcc6dd
Author:Ismail Khoffi
Committer:GitHub

Release 0.14.0 (#240) * minimal changes to ensure proto3 compat. for unsigned ints (int, int32, int64) * Add changes to decode ints, too * Fix example that contains an int * Add changelog entry * Delete outdated tests (covered by new table driven test) * Add overflow checks for int & int32 * unum -> u64 * prep release: update changelog

Commit:1e6e402
Author:Ismail Khoffi

Delete outdated tests (covered by new table driven test)

Commit:a424518
Author:Ismail Khoffi

WIP: ensure proto3 compatibility for unsigned ints; fuzzer fails :-/ - minimal changes to ensure proto3 compat. for unsigned ints (int, int32, int64) - fuzzer fails in many places

Commit:e1c8f6f
Author:Ismail Khoffi

First experiments with varint encoding

Commit:8171e3d
Author:Ismail Khoffi
Committer:GitHub

proto3 compatibility: use uvarint encoding in time instead of fixed sized (#224) * proto3 compatibility: use varint encoding in time instead of fixed sized - internal seconds and nanos were encoded fixed size which is different from proto's "well known type" TimeStamp * switch to UVarint encoding (EncodeUvarint) for seconds and nanos - add tests against "google/protobuf/timestamp.proto and clean up tests slightly - add validation of seconds while encoding - add error type InvalidTimeErr - remove unnecessary var - add changelog entry * go vet: - ./codec.go:257: PrintTypes passes lock by value: amino.Codec contains sync.RWMutex - remove some unused (unexported) methods * review comment: remove outdated comment

Commit:faa6e73
Author:Ismail Khoffi
Committer:GitHub

Release/v0.12.0 (#216) * DecodeInt{8, 16} negative limit checks + tests (#125) Updates #120 Also adds a test for Byteslice encoding and decoding roundtripping and part slicing then rejoining. * fix circleci2.0 * some metalinter issues * skip over default values when encoding time (#178) * do not encode empty structs, unless `amino:"write_empty"` is set (#179) * skip over empty structs by default * slightly more info on panics * Fix zero time decoding (#190) - fix decoding of skipped fields in time, or completely skipped time - necessary because sec=0 and ns=0 do not result in time.Time{} and vice versa * Prepare release 0.11.0 (#193) * Fix time decoding & encoding of arrays and structs - top-level entry functions called with BinFieldNum:1 to properly encode e.g. arrays of structs (see non-time related test) - add defaultValue method, different from #196 it deals with multiply nested pointers * Removed dependency on tmlibs/common * Always write empty if struct field is pointer * add tests for #206 - test for pointers to empty struct and nil pointer * fix proto3 compatibility for empty structs * Add EmptyStruct to fuzz tests * Revert "fix proto3 compatibility for empty structs" * Do not allow encoding of nil struct pointers in a slice/array * By default, 0-length list elements are decoded as nil

Commit:9a02f42
Author:Liamsi

add tests for #206 - compare to proto3 behaviour - test for pointers to empty struct and nil pointer Signed-off-by: Liamsi <Liamsi@users.noreply.github.com>

Commit:5b24c68
Author:Ismail Khoffi
Committer:Jae Kwon

Basic proto compatibilty tests (#176) * some (manual) tests to test proto3 compatibility * do not panic on some bytes