Fix transaction withReference and use in followChain #881
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.
Summary
Added a
transaction.withReference
around the transaction use infollowChain
to avoid some duplicate deserialization calls.I also noticed that
transaction.withReference
wasn't working correctly for async callbacks -- The callback would execute, then call thefinally
to drop the reference before the callback was finished. Fixed this without makingtransaction.withReference
async by creating a separatePromise.resolve()
to wrap the result and callingfinally
on that one.Testing Plan
Synced a fresh database locally and also ran a node that was already synced up. Ran followChain with these changes to make sure it still works
Breaking Change
Is this a breaking change? If yes, add notes below on why this is breaking and
what additional work is required, if any.