feat(external-call): Add transaction encoding/decoding for external calls#440
Closed
trusch wants to merge 1 commit into
Closed
feat(external-call): Add transaction encoding/decoding for external calls#440trusch wants to merge 1 commit into
trusch wants to merge 1 commit into
Conversation
|
🎉 Thank you for your contribution! It appears you have not yet signed the Agreement DA Contributor License Agreement (CLA), which is required for your changes to be incorporated into an Open Source Software (OSS) project. Please kindly read the and reply on a new comment with the following text to agree: I have hereby read the Digital Asset CLA and agree to its terms You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot. |
e14cd7c to
68dcbe2
Compare
68dcbe2 to
c3939ce
Compare
c3939ce to
20f886f
Compare
20f886f to
3ce660a
Compare
2ffb802 to
d51b122
Compare
d51b122 to
c4fd85b
Compare
This is the transaction-coder layer of the external-call stack, following the engine and Speedy support in digital-asset#518. It adds encoding and decoding for recorded external call results on exercise nodes. Runtime execution, Canton protocol support, extension service integration, and validation policy remain in later PRs. Refs digital-asset#513.
c4fd85b to
c561f64
Compare
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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
This PR adds serialization support for external call results in transactions. It enables transactions with external calls to be persisted, transmitted between participants, and reconstructed.
Requires #439
Changes
Transaction Coder (
TransactionCoder.scala)Encoding
Decoding
Backward Compatibility
repeatedso missing field = empty listTesting
TransactionCoderSpec.scala- Round-trip encoding testsContractStateMachineSpec.scala- State machine with external callsValidationSpec.scala- Validation of encoded transactionsTestNodeBuilder.scala- Test helpers for building nodes