Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement transaction serialization. #124

Closed
hdevalence opened this issue Nov 28, 2019 · 1 comment · Fixed by #156
Closed

Implement transaction serialization. #124

hdevalence opened this issue Nov 28, 2019 · 1 comment · Fixed by #156
Assignees

Comments

@hdevalence
Copy link
Contributor

Following from #105 (comment):

  1. The actual transaction encoding and decoding is not implemented, although there is a stub module in which it will live (transaction/serialization.rs). Implementing ZcashSerialize and ZcashDeserialize is a further chunk of work, but because all of the unrefined types are in place, it can be done independently of (1) by, e.g., parsing something as a [u8; 32] instead of some refined PublicKey type.

This issue is for implementing serialization for transactions. It probably makes sense to do this together with the next follow-on item from that PR:

  1. The as-yet-unimplemented encoding and decoding is not tested. In addition to the transaction test vectors, we could define a proptest strategy to generate random transaction data to check that the encodings round-trip.
@hdevalence
Copy link
Contributor Author

I can start trying to stub this out. To make this independent of #123, the first implementation for this PR should write the unrefined types as raw bytes and read them back to raw bytes. Then, as #123 is filled in later, we can change the serialization for each type that we refine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants