Robert E. Davidson III

Results 23 issues of Robert E. Davidson III

Closes #1715 Closes https://github.com/onflow/cadence/issues/1941 ## Description Encode cadence.Value and cadence.Type using custom binary codec. Full test coverage is to be handled in a separate issue: https://github.com/onflow/cadence/issues/1939 ______ - [ ]...

Performance

CBF currently uses the `binary` package, which is inefficient. Either use an efficient library (what does protobuf use?) or hand-code. Also: make sure to use little endian because it is...

Improvement

In CBF, length (of strings, arrays, etc) is encoded as four bytes. Separately, anything that can be nil encodes an extra byte a a boolean for whether or not it's...

Improvement

Right now, the complex types are encoded in-line with their values. If two values have the same type, the type is encoded twice. The complex types should only be encoded...

Right now in Cadence we encode events as JSON. We want to encode them with the new codec, CBF (Cadence Binary Format). The FVM treats events as a black box...

A wrapper codec is needed that chooses which codec to use for decoding by examining the first byte. If the first byte is '{' then assume it's JSON. This isn't...

I included metering for newly allocated Cadence values and types on decoding but there may be gaps. My biggest concern is that there may be unbounded values that are metered...

Achieve 100% test coverage on a line-by-line basis for the codec work. This can include the fuzzing test coverage but doing so requires enabling that in CI.

Testing

Same as https://github.com/onflow/cadence/issues/1935 but for the sema codec.

Testing

This is fuzzing for the Cadence external values codec specifically, not the sema codec.

Testing