I’m going to answer this question with the assumption you are talking about
/construction/combine based on the title of the topic.
When you say these fields “aren’t strictly required”, I assume you mean you can infer this information from the
unsigned_transaction or there is only 1 way to do something (i.e. only one valid
signature_type). In some implementations, this information is required so we always pass it along (instead of using a separate config to specify what we should send…we felt this was less confusing).
That being said, we highly recommend verifying wherever possible. If you know that certain
signature_types aren’t valid, you should error aggressively. The
rosetta-cli does not do any fuzzing yet but it is something we are scoping for the next month or so to see if we can create invalid transactions. For example, does manipulating the
unsigned_transaction cause an error or is it silently passed?
You are correct,
/construction/parse does do its own set of validations independent of this (comparing the constructed transaction’s intent with the intent provided to
/construction/preprocess). This should catch most issues related to incorrectly creating the transaction. However, it won’t catch any errors that manifest in ways not represented by
Signers (as this isn’t visible to