Refactor transaction building combinators #3057
Merged
Merged
Conversation
7900c31 to
f083762
Compare
…rors handling replace with_fee() and with_lock_height() with a more flexible with_features()
just set it once on the tx when building
6dfb655 to
a78bc68
Compare
yeastplume
approved these changes
Oct 31, 2019
Member
yeastplume
left a comment
There was a problem hiding this comment.
This looks good to me. I've always thought the combinators were unnecessarily confusing, so it's a welcome refactor.
Member
Author
|
Merging this. grin-wallet will no longer build until the related PR is also merged. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This allows for more robust error handling as we can now propagate errors up to the top level.
Specifically the
Appendtype which takes a Result and returns a Result.Also replaced
with_fee()andwith_lock_height()combinators with simply passing in kernel features tobuild::transaction()andbuild::partial_transaction(). It was confusing (and fragile) settingfeeandlock_heightindividually via combinators. We now explicitly specify the features for the kernel of the tx being built.NOTE: Wallet uses
build::transaction()andbuild::partial_transaction()so we need to be careful merging this to make sure the wallet project is updated to reflect this.