Full Node Protocol
The Full node protocol ...
sui.node.v2.proto
The sui.node.v2 package contains API definitions for services that are expected to run on Full nodes.
BalanceChange
The delta, or change, in balance for an address for a particular Coin
type.
Fields
BalanceChanges
Set of BalanceChange
s that occurred as the result of a transaction.
This set of events are calculated by analyzing all input and output Coin
type objects.
Fields
EffectsFinality
Indicates the finality of the executed transaction.
Fields
ExecuteTransactionOptions
Fields
BalanceChanges
in the response. Defaults to false
if not included.sui.types.TransactionEffects
message in the response. Defaults to false
if not included.TransactionEffects
formatted as BCS in the response. Defaults to false
if not included.sui.types.TransactionEvents
message in the response. Defaults to false
if not included.TransactionEvents
formatted as BCS in the response. Defaults to false
if not included.ExecuteTransactionRequest
Request message for NodeService.ExecuteTransaction
.
Note: You must provide only one of transaction
or transaction_bcs
.
Fields
ExecuteTransactionResponse
should be returned.UserSiganture
s authorizing the execution of the provided transaction.UserSiganture
s authorizing the execution of the provided transaction, encoded as bytes.ExecuteTransactionResponse
Response message for NodeService.ExecuteTransaction
.
Fields
TransactionEvents
for this transaction. This field might be empty, even if it was explicitly requested, if the transaction didn't produce any events. sui.types.TransactionEffects.events_digest
is populated if the transaction produced any events.FullCheckpointObject
An object used by or produced from a transaction.
Fields
FullCheckpointObjects
Set of objects used by or produced from a transaction.
Fields
FullCheckpointTransaction
A transaction, with all of its inputs and outputs.
Fields
TransactionEvents
for this transaction. This field might be empty, even if it was explicitly requested, if the transaction didn't produce any events. sui.types.TransactionEffects.events_digest
is populated if the transaction produced any events.GetCheckpointOptions
Options for which parts of the GetCheckpointResponse
should be returned.
Fields
sui.types.CheckpointContents
message in the response. Defaults to false
if not included.CheckpointContents
formatted as BCS in the response. Defaults to false
if not included.sui.types.ValidatorAggregatedSignature
in the response. Defaults to false
if not included.sui.types.CheckpointSummary
in the response. Defaults to false
if not included.CheckpointSummary
formatted as BCS in the response. Defaults to false
if not included.GetCheckpointRequest
Request message for NodeService.GetCheckpoint
.
At most, provide one of sequence_number
or digest
. An error is
returned if you attempt to provide both. If you provide neither, the service
returns the latest executed checkpoint.
Fields
GetCheckpointResponse
should be returned.GetCheckpointResponse
Response message for NodeService.GetCheckpoint
.
Fields
GetCommitteeRequest
Request message for NodeService.GetCommittee.
Fields
GetCommitteeResponse
Response message for NodeService.GetCommittee
.
Fields
GetFullCheckpointOptions
Options for which parts of the GetFullCheckpointResponse
should be returned.
Fields
sui.types.CheckpointContents
message in the response. Defaults to false
if not included.CheckpointContents
formatted as BCS in the response. Defaults to false
if not included.sui.types.TransactionEffects
message in the response. Defaults to false
if not included.TransactionEffects
formatted as BCS in the response. Defaults to false
if not included.sui.types.TransactionEvents
message in the response. Defaults to false
if not included.TransactionEvents
formatted as BCS in the response. Defaults to false
if not included.false
if not included.sui.types.Object
message in the response. Defaults to false
if not included.false
if not included.false
if not included.sui.types.ValidatorAggregatedSignature
in the response. Defaults to false
if not included.sui.types.CheckpointSummary
in the response. Defaults to false
if not included.CheckpointSummary
formatted as BCS in the response. Defaults to false
if not included.sui.types.Transaction
message in the response. Defaults to false
if not included.false
if not included.GetFullCheckpointRequest
Request message for NodeService.GetFullCheckpoint
.
At most, provide one of sequence_number
or digest
. An error is
returned if you provide both. If you provide neither, the service
returns the latest executed checkpoint.
Fields
GetFullCheckpointResponse
should be returned.GetFullCheckpointResponse
Response message for NodeService.GetFullCheckpoint
.
Fields
GetNodeInfoRequest
Request message for NodeService.GetNodeInfo
.
GetNodeInfoResponse
Response message for NodeService.GetNodeInfo
.
Fields
mainnet
, testnet
, and so on.GetObjectOptions
Fields
GetObjectRequest
Request message for NodeService.GetObject
.
Fields
GetObjectResponse
should be returned.GetObjectResponse
Response message for NodeService.GetObject
.
Fields
GetTransactionOptions
Options for which parts of the GetTransactionResponse
should be returned.
Fields
sui.types.TransactionEffects
message in the response. Defaults to false
if not included.TransactionEffects
formatted as BCS in the response. Defaults to false
if not included.sui.types.TransactionEvents
message in the response. Defaults to false
if not included.TransactionEvents
formatted as BCS in the response. Defaults to false
if not included.sui.types.UserSignature
s in the response. Defaults to false
if not included.UserSignature
s encoded as bytes in the response. Defaults to false
if not included.sui.types.Transaction
message in the response. Defaults to false
if not included.false
if not included.GetTransactionRequest
Request message for NodeService.GetTransaction
.
Fields
GetTransactionResponse
should be returned.GetTransactionResponse
Response message for NodeService.GetTransactio
n.
Fields
TransactionEvents
for this transaction. This field might be empty, even if it was explicitly requested, if the transaction didn't produce any events. sui.types.TransactionEffects.events_digest
is populated if the transaction produced any events.UserSignatures
List of UserSignature
s used to authorize a transaction.
Fields
UserSignaturesBytes
List of UserSignature
s used to authorize a transaction encoded as bytes.
Fields
sui.types.proto
Protobuf definitions of public Sui core types.
This file contains a complete set of protobuf definitions for all of the public sui core types. All sui types are intended to have a 1:1 mapping to a protobuf message defined in this file and be able to roundtrip to/from their rust and protobuf definitions assuming a sufficiently up-to-date version of both these definitions.
For more information on the types these proto messages correspond with, see
the documentation for their rust versions defined in the
sui-sdk-types
library.
Use of optional
These message definitions use protobuf version 3 (proto3). In proto3, fields
that are primitives (that is, they are not a message
) and are not present
on the wire are zero-initialized. To gain the ability to detect
field presence,
these definitions follow the convention of having all fields marked
optional
, and wrapping repeated
fields in a message as needed.
Even if a field is marked as optional
, it might not actually be optional from
the perspective of the Sui protocol. Such fields are explicitly labled
as Required
or Optional
in their documentation.
ActiveJwk
A new JWK.
Fields
Address
Unique identifier for an account on the Sui blockchain.
An Address
is a 32-byte pseudonymous identifier used to uniquely identify an account and
asset-ownership on the Sui blockchain. Often, human-readable addresses are encoded in
hexadecimal with a 0x
prefix. For example, this is a valid Sui address:
0x02a212de6a9dfa3a69e22387acfbafbb1a9e591bd9d636e7895dcfc8de05f331
.
Fields
AddressDeniedForCoinError
Address is denied for this coin type.
Fields
Argument
An argument to a programmable transaction command.
Fields
TransferObjects
, which can use it by-value.Result
but it accesses a nested result. Currently, the only usage of this is to access a value from a Move call with multiple return values.AuthenticatorStateExpire
Expire old JWKs.
Fields
AuthenticatorStateUpdate
Update the set of valid JWKs.
Fields
Bcs
Message that represents a type that is serialized and encoded using the BCS format.
Fields
Bn254FieldElement
A point on the BN254 elliptic curve.
Fields
CancelledTransaction
A transaction that was cancelled.
Fields
CancelledTransactions
Set of cancelled transactions.
Fields
ChangeEpoch
System transaction used to change the epoch.
Fields
ChangeEpoch
txn, the validator must write out the following modules. Modules are provided with the version they will be upgraded to, their modules in serialized form (which include their package ID), and a list of their transitive dependencies.ChangedObject
Input/output state of an object that was changed during execution.
Fields
CheckpointCommitment
A commitment made by a checkpoint.
Fields
CheckpointContents
The committed to contents of a checkpoint.
Fields
V1
Version 1 of CheckpointContents
.
Fields
CheckpointSummary
A header for a checkpoint on the Sui blockchain.
On the Sui network, checkpoints define the history of the blockchain. They are quite similar to the concept of blocks used by other blockchains like Bitcoin or Ethereum. The Sui blockchain, however, forms checkpoints after transaction execution has already happened to provide a certified history of the chain, instead of being formed before execution.
Checkpoints commit to a variety of state, including but not limited to:
- The hash of the previous checkpoint.
- The set of transaction digests, their corresponding effects digests, as well as the set of user signatures that authorized its execution.
- The objects produced by a transaction.
- The set of live objects that make up the current state of the chain.
- On epoch transitions, the next validator committee.
CheckpointSummary
s themselves don't directly include all of the previous information but they
are the top-level type by which all the information is committed to transitively via cryptographic
hashes included in the summary. CheckpointSummary
s are signed and certified by a quorum of
the validator committee in a given epoch to allow verification of the chain's state.
Fields
CheckpointSummary
. This will be None
only for the first, or genesis, checkpoint.CheckpointSummary
is not an evolvable structure - it must be readable by any version of the code. Therefore, to allow extensions to be added to CheckpointSummary
, opaque data can be added to checkpoints, which can be deserialized based on the current protocol version.CheckpointedTransactionInfo
Transaction information committed to in a checkpoint.
Fields
CircomG1
A G1 point.
Fields
CircomG2
A G2 point.
Fields
Command
A single command in a programmable transaction.
Fields
forall T: Vec<T> -> vector<T>
Given n-values of the same type, it constructs a vector. For non-objects or an empty vector, the type tag must be specified.(&mut Coin<T>, Vec<u64>)
-> Vec<Coin<T>>
It splits off some amounts into new coins with those amounts.(Vec<forall T:key+store. T>, address)
It sends n-objects to the specified address. These objects must have store (public transfer) and either the previous owner must be an address or the object must be newly created.UpgradeTicket
that must have been produced from an earlier command in the same programmable transaction.CommandArgumentError
An error with an argument to a command.
Fields
TransferObject
command.CongestedObjectsError
Set of objects that were congested, leading to the transaction's cancellation.
Fields
ConsensusCommitPrologue
Consensus commit prologue system transaction.
This message can represent V1, V2, and V3 prologue types.
Fields
ConsensusDeterminedVersionAssignments
Version assignments performed by consensus.
Fields
Digest
32-byte output of hashing a Sui structure using the Blake2b256 hash function.
Fields
EndOfEpochData
Data, which when included in a CheckpointSummary
, signals the end of an Epoch
.
Fields
ValidatorCommittee
for the next epoch.EndOfEpochTransaction
Set of operations run at the end of the epoch to close out the current epoch and start the next one.
Fields
EndOfEpochTransactionKind
Operation run at the end of an epoch.
Fields
Event
An event.
Fields
MoveCall
command that triggered this event to be emitted.MoveCall
command that triggered this event to be emitted.ExecutionStatus
The status of an executed transaction.
Fields
FailureStatus
An error that can occur during the execution of a transaction.
Fields
GasCostSummary
Summary of gas charges.
Storage is charged independently of computation. There are three parts to the storage charges:
storage_cost
: the charge of storage at the time the transaction is executed. The cost of storage is the number of bytes of the objects being mutated multiplied by a variable storage cost per byte.storage_rebate
: the amount a user gets back when manipulating an object. Thestorage_rebate
is thestorage_cost
for an object minus fees.non_refundable_storage_fee
: not all the value of the object storage cost is given back to user and there is a small fraction that is kept by the system. This value tracks that charge.
When looking at a gas cost summary the amount charged to the user is
computation_cost + storage_cost - storage_rebate
and that is the amount that is deducted from the gas coins.
non_refundable_storage_fee
is collected from the objects being mutated/deleted
and it is tracked by the system in storage funds.
Objects deleted, including the older versions of objects mutated, have the storage field
on the objects added up to a pool of "potential rebate". This rebate then is reduced
by the "nonrefundable rate" such that:
potential_rebate(storage cost of deleted/mutated objects) = storage_rebate + non_refundable_storage_fee
Fields
GasPayment
Payment information for executing a transaction.
Fields
GenesisObject
An object part of the initial chain state.
Fields
GenesisTransaction
The genesis transaction.
Fields
I128
A signed 128-bit integer encoded in little-endian using 16-bytes.
Fields
Identifier
A Move identifier.
Identifiers are only valid if they conform to the following ABNF:
identifier = (ALPHA *127(ALPHA / DIGIT / UNDERSCORE)) /
(UNDERSCORE 1*127(ALPHA / DIGIT / UNDERSCORE))
UNDERSCORE = %x95
Fields
Input
An input to a user transaction.
Fields
Jwk
A JSON web key.
Struct that contains info for a JWK. A list of them for different kinds can be retrieved from the JWK endpoint (for example, &#lt;https://www.googleapis.com/oauth2/v3/certs>). The JWK is used to verify the JWT token.
Fields