Preprocess is called prior to /construction/payloads
to construct a request for any metadata that is needed for transaction construction given (i.e. account nonce). The options
object returned from this endpoint will be sent to the /construction/metadata
endpoint UNMODIFIED by the caller (in an offline execution environment). If your Construction API implementation has configuration options, they MUST be specified in the /construction/preprocess
request (in the metadata
field).
ConstructionPreprocessRequest is passed to the /construction/preprocess
endpoint so that a Rosetta implementation can determine which metadata it needs to request for construction. Metadata provided in this object should NEVER be a product of live data (i.e. the caller must follow some network-specific data fetching strategy outside of the Construction API to populate required Metadata). If live data is required for construction, it MUST be fetched in the call to /construction/metadata
.
The network_identifier specifies which network a particular object is associated with.
Operations contain all balance-changing information within a transaction. They are always one-sided (only affect 1 AccountIdentifier) and can succeed or fail independently from a Transaction. Operations are used both to represent on-chain data (Data API) and to construct new transactions (Construction API), creating a standard interface for reading and writing to blockchains.
ConstructionPreprocessResponse contains options
that will be sent unmodified to /construction/metadata
. If it is not necessary to make a request to /construction/metadata
, options
should be omitted. Some blockchains require the PublicKey of particular AccountIdentifiers to construct a valid transaction. To fetch these PublicKeys, populate required_public_keys
with the AccountIdentifiers associated with the desired PublicKeys. If it is not necessary to retrieve any PublicKeys for construction, required_public_keys
should be omitted.