package types

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

message AccessPath

access_path.proto:8

Used in: Event, GetEventsByEventAccessPathRequest, WriteOp

message AccountState

transaction.proto:125

Account state as a whole. After execution, updates to accounts are passed in this form to storage for persistence.

Used in: TransactionToCommit

message AccountStateBlob

account_state_blob.proto:10

Used in: AccountStateWithProof

message AccountStateProof

proof.proto:61

The complete proof used to authenticate an account state.

Used in: AccountStateWithProof

message AccountStateWithProof

account_state_blob.proto:12

Used in: GetAccountStateResponse, GetAccountTransactionBySequenceNumberResponse, GetEventsByEventAccessPathResponse

message AccumulatorProof

proof.proto:10

Used in: AccountStateProof, EventProof, SignedTransactionProof, TransactionListWithProof

message ArithmeticError

vm_errors.proto:240

Used in: ExecutionStatus

enum ArithmeticError.ArithmeticErrorType

vm_errors.proto:241

Used in: ArithmeticError

message AssertionFailure

vm_errors.proto:236

user-defined assertion error code number

Used in: ExecutionStatus

enum BinaryError

vm_errors.proto:190

Errors that can arise from binary decoding (deserialization)

Used in: VMStatus

message DynamicReferenceError

vm_errors.proto:251

Used in: ExecutionStatus

enum DynamicReferenceError.DynamicReferenceErrorType

vm_errors.proto:252

Used in: DynamicReferenceError

message Event

events.proto:16

An event emitted from a smart contract

Used in: EventWithProof, EventsList, TransactionToCommit

message EventProof

proof.proto:68

The complete proof used to authenticate an event.

Used in: EventWithProof

message EventWithProof

events.proto:23

An event along with the proof for the event

Used in: GetEventsByEventAccessPathResponse, ValidatorChangeEventWithProof

message EventsForVersions

events.proto:36

A list of EventList's, each representing all events for a transaction.

Used in: TransactionListWithProof

message EventsList

events.proto:31

A list of events.

Used in: EventsForVersions, SignedTransactionWithProof

message ExecutionStatus

vm_errors.proto:263

Used in: VMStatus

message GetAccountStateRequest

get_with_proof.proto:192

Gets latest state for an account.

Used in: RequestItem

message GetAccountStateResponse

get_with_proof.proto:198

State information returned by a get account state query.

Used in: ResponseItem

message GetAccountTransactionBySequenceNumberRequest

get_with_proof.proto:230

----------------------------------------------------------------------------- ---------------- Get single transaction by account + sequence number ----------------------------------------------------------------------------- Get transactions that altered an account - this includes both sent and received. A user of this should check that the data returned matches what they expect. As an example, a potential attack vector would be something like the following: Alice is buying an apple from Bob. Alice's phone signs a transaction X with sequence number N that pays coins to Bob. Alice transmits this signature to Bob's payment terminal which then submits the transaction and checks its status to see if Alice can be given the apple. However, as Bob is doing this Alice constructs a second transaction X' also with sequence number N. Alice gets that transaction inserted in the blockchain. If Bob isn't thoughtful about how he uses this API he may assume that if he asks for the N'th transaction on Alice's account that when the API returns that this means the transaction has gone through. The point here is that one should be careful in reading too much into "transaction X is on the chain" and focus on the logs, which tell you what the transaction did. If a client submitted a transaction, they should also verify that the hash of the returned transaction matches what they submitted. As an example, if a client has two wallets that share the same account, they may both submit a transaction at the same sequence number and only one will be committed. A client should never assume that if they receive the response that this transaction was included that it means that this is definitely the transaction that was submitted. They should check that the hash matches what they sent

Used in: RequestItem

message GetAccountTransactionBySequenceNumberResponse

get_with_proof.proto:242

Transaction information for transactions requested by GetAccountTransactionsRequest

Used in: ResponseItem

message GetEventsByEventAccessPathRequest

get_with_proof.proto:259

Get events that exist on an event access path. In the current world, a user may specify events that were received, events that were sent, or any event that modifies their account

Used in: RequestItem

message GetEventsByEventAccessPathResponse

get_with_proof.proto:275

Used in: ResponseItem

message GetTransactionsRequest

get_with_proof.proto:296

Get up to limit transactions starting from start_version.

Used in: RequestItem

message GetTransactionsResponse

get_with_proof.proto:308

Used in: ResponseItem

message LedgerInfo

ledger_info.proto:30

/ Even though we don't always need all hashes, we pass them in and return them / always so that we keep them in sync on the client and don't make the client / worry about which one(s) to pass in which cases / / This structure serves a dual purpose. / / First, if this structure is signed by 2f+1 validators it signifies the state / of the ledger at version `version` -- it contains the transaction / accumulator at that version which commits to all historical transactions. / This structure may be expanded to include other information that is derived / from that accumulator (e.g. the current time according to the time contract) / to reduce the number of proofs a client must get. / / Second, the structure contains a `consensus_data_hash` value. This is the / hash of an internal data structure that represents a block that is voted on / by consensus. / / Combining these two concepts when the consensus algorithm votes on a block B / it votes for a LedgerInfo with the `version` being the latest version that / will be committed if B gets 2f+1 votes. It sets `consensus_data_hash` to / represent B so that if those 2f+1 votes are gathered, the block is valid to / commit

Used in: LedgerInfoWithSignatures

message LedgerInfoWithSignatures

ledger_info.proto:70

/ The validator node returns this structure which includes signatures / from each validator to confirm the state. The client needs to only pass / back the LedgerInfo element since the validator node doesn't need to know / the signatures again when the client performs a query, those are only there / for the client to be able to verify the state

Used in: UpdateToLatestLedgerResponse, ValidatorChangeEventWithProof

message ModuleId

language_storage.proto:9

/ The unique identifier for a module on the chain.

Used in: VMVerificationStatus

message Program

transaction.proto:41

The code for the transaction to execute

Used in: RawTransaction

message RawTransaction

transaction.proto:15

A generic structure that describes a transaction that a client submits

message RequestItem

get_with_proof.proto:144

Used in: UpdateToLatestLedgerRequest

message ResponseItem

get_with_proof.proto:177

Individual response items to the queries posed by the requests

Used in: UpdateToLatestLedgerResponse

enum RuntimeStatus

vm_errors.proto:208

Used in: ExecutionStatus

message SignedTransaction

transaction.proto:60

A generic structure that represents signed RawTransaction

Used in: admission_control.SubmitTransactionRequest, mempool.AddTransactionWithValidationRequest, SignedTransactionWithProof, SignedTransactionsBlock, TransactionListWithProof, TransactionToCommit

message SignedTransactionProof

proof.proto:55

The complete proof used to authenticate a signed transaction.

Used in: SignedTransactionWithProof

message SignedTransactionWithProof

transaction.proto:73

Used in: GetAccountTransactionBySequenceNumberResponse

message SignedTransactionsBlock

transaction.proto:89

A generic structure that represents a block of transactions originated from a particular validator instance.

Used in: mempool.GetBlockResponse

message SparseMerkleProof

proof.proto:23

Used in: AccountStateProof

message TransactionArgument

transaction.proto:48

An argument to the transaction if the transaction takes arguments

Used in: Program

enum TransactionArgument.ArgType

transaction.proto:49

Used in: TransactionArgument

message TransactionInfo

transaction_info.proto:12

`TransactionInfo` is the object we store in the transaction accumulator. It consists of the transaction as well as the execution result of this transaction. This are later returned to the client so that a client can validate the tree

Used in: AccountStateProof, EventProof, SignedTransactionProof, TransactionListWithProof

message TransactionListWithProof

transaction.proto:149

A list of consecutive transactions with proof. This is mainly used for state synchronization when a validator would request a list of transactions from a peer, verify the proof, execute the transactions and persist them. Note that the transactions are supposed to belong to the same epoch E, otherwise verification will fail.

Used in: GetTransactionsResponse

message TransactionToCommit

transaction.proto:133

Transaction struct to commit to storage

message UpdateToLatestLedgerRequest

get_with_proof.proto:133

This API is used to update the client to the latest ledger version and optionally also request 1..n other pieces of data. This allows for batch queries. All queries return proofs that a client should check to validate the data. Note that if a client only wishes to update to the latest LedgerInfo and receive the proof that this latest ledger extends the client_known_version ledger the client had, they can simply set the requested_items to an empty list.

Used as request type in: admission_control.AdmissionControl.UpdateToLatestLedger

message UpdateToLatestLedgerResponse

get_with_proof.proto:160

Response from getting latest ledger

Used as response type in: admission_control.AdmissionControl.UpdateToLatestLedger

enum VMInvariantViolationError

vm_errors.proto:177

These are errors that the VM might raise if a violation of internal invariants takes place.

Used in: VMStatus

message VMStatus

vm_errors.proto:273

The status of the VM

Used in: admission_control.SubmitTransactionResponse

message VMValidationStatus

vm_errors.proto:75

Used in: VMStatus

enum VMValidationStatusCode

vm_errors.proto:33

The status of a transaction as determined by the prologue.

Used in: VMValidationStatus

enum VMVerificationErrorKind

vm_errors.proto:101

When a code module/script is published it is verified. These are the possible errors that can arise from the verification process.

Used in: VMVerificationStatus

message VMVerificationStatus

vm_errors.proto:84

Used in: VMVerificationStatusList

enum VMVerificationStatus.StatusKind

vm_errors.proto:85

Used in: VMVerificationStatus

message VMVerificationStatusList

vm_errors.proto:80

Used in: VMStatus

message ValidatorChangeEventWithProof

validator_change.proto:24

This is used to prove validator changes. When a validator is changing, it triggers an event on /validator_change_account/events/sent. To tell the client about validator changes, we query /validator_change_account/events/sent to get all versions that contain validator changes after the version that we are trying to update from. For each of these versions, the old validator set would have signed the ledger info at that version. The client needs this as well as the event results + proof. The client can then verify that these events were under the current tree and that the changes were signed by the old validators (and that the events correctly show which validators are the new validators). This message represents a single validator change event and the proof that corresponds to it

Used in: UpdateToLatestLedgerResponse

message ValidatorPublicKeys

validator_public_keys.proto:9

Protobuf definition for the Rust struct ValidatorPublicKeys

Used in: ValidatorSet

message ValidatorSet

validator_set.proto:11

Protobuf definition for the Rust struct ValidatorSet.

message ValidatorSignature

ledger_info.proto:77

Used in: LedgerInfoWithSignatures

message WriteOp

transaction.proto:105

Write Operation on underlying storage.

Used in: WriteSet

enum WriteOpType

transaction.proto:115

Type of write operation

Used in: WriteOp

message WriteSet

transaction.proto:99

Set of WriteOps to save to storage.

Used in: RawTransaction