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

feat(network): Local Tx Submission errors #598

Merged
merged 39 commits into from
Feb 13, 2025

Conversation

sterraf
Copy link
Contributor

@sterraf sterraf commented Feb 12, 2025

This PR decodes the RejectReason after a failed local Tx submission by structuring into two variants:

  1. Plutus errors (an ASCII string); or
  2. an (Era, Vec<TxError>) pair.

The TxError type corresponds to the Conway era ledger transaction errors. Its only analyzed variant is that of ConwayUtxowPredFailure for which, in turn, 6 variants have been implemented along with their deeper structure.

For each error having variants not yet analyzed, a temporary "raw" variant was added to hold the CBOR information.

Unit-tests using an up-to-date preprod node response were added to codec.rs. For instance, I had to implement the SMaybe option type with the codec corresponding to (S)Maybe type of the Cardano node, required for many types (different to default one for Option<T>.

This PR properly subsumes #562, #584, #585, #588, and #593, which are to be closed.

@scarmuega scarmuega merged commit 07ec18b into txpipe:main Feb 13, 2025
@ginnun
Copy link
Contributor

ginnun commented Feb 20, 2025

For anyone interested, we have a full working implementation of all the tx submission errors in this fork: https://github.com/blockfrost/pallas/tree/feat/blockfrost

This fork also generates identical error messages to the Haskell native cardano submit API.

We plan to open a PR once we do a bit of refactoring.

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

Successfully merging this pull request may close these issues.

3 participants