Chains

Block model

sf.antelope.type.v1.Block

sf.antelope.type.v1.Block

stringid = 1

id is the block's hash.

uint32number = 2

Number is the block's height at which this block was mined.

uint32version = 3
BlockHeaderheader = 4

Header contains the block's header information like its parent hash, the merkel root hash and all other information the form a block.

stringproducer_signature = 5
TransactionReceipt[]unfiltered_transactions = 6

The unfiltered transactions in this block when NO filtering has been applied, (i.e. filtering_applied = false). When filtering has been applied on this block, (i.e. filtering_applied = true), this field will be set to nil and instead, the filtered_transactions will be populated with only filtered transactions.

Use the helper getter method Transactions() to automatically pick the correct field to use (unfiltered_transactions when filtering_applied == false and filtered_transactions when filtering_applied == true).

Extension[]block_extensions = 7
uint32dpos_proposed_irreversible_blocknum = 8
uint32dpos_irreversible_blocknum = 9
ProducerScheduleactive_schedule_v1 = 10

This was a list of {name, publicKey} elements, each block being signed by a single key, the schedule was simply a list of pair, each pair being the producer name and it's public key used to sign the block.

BlockRootMerkleblockroot_merkle = 11
ProducerToLastProduced[]producer_to_last_produced = 12
ProducerToLastImpliedIRB[]producer_to_last_implied_irb = 13
stringblock_signing_key = 14

This was a single string element representing a public key (eos-go#ecc.PublicKey). It has been replaced by valid_block_signing_authority_v2. deprecated

uint32[]confirm_count = 15
PendingProducerSchedulepending_schedule = 16
ActivatedProtocolFeaturesactivated_protocol_features = 17
boolvalidated = 18
RlimitOp[]rlimit_ops = 19
TrxOp[]unfiltered_implicit_transaction_ops = 20

The unfiltered implicit transaction ops in this block when NO filtering has been applied, (i.e. filtering_applied = false). When filtering has been applied on this block, (i.e. filtering_applied = true), this field will be set to nil and instead, the filtered_implicit_transaction_ops will be populated with only filtered implicit transaction ops.

Use the helper getter method ImplicitTransactionOps() to automatically pick the correct field to use (unfiltered_implicit_transaction_ops when filtering_applied == false and filtered_implicit_transaction_ops when filtering_applied == true).

TransactionTrace[]unfiltered_transaction_traces = 21

The unfiltered transaction traces in this block when NO filtering has been applied, (i.e. filtering_applied = false). When filtering has been applied on this block, (i.e. filtering_applied = true), this field will be set to nil and instead, the filtered_transaction_traces will be populated with only filtered transactions.

Use the helper getter method TransactionTraces() to automatically pick the correct field to use (unfiltered_transaction_traces when filtering_applied == false and filtered_transaction_traces when filtering_applied == true).

uint32unfiltered_transaction_count = 22

Number of transaction executed within this block when no filtering is applied (filtering_applied == false).

uint32unfiltered_transaction_trace_count = 23

Number of transaction trace executed within this block when no filtering is applied (filtering_applied == false).

uint32unfiltered_executed_input_action_count = 24

Number of top-level actions that were successfully executed within this block when no filtering is applied (filtering_applied == false).

uint32unfiltered_executed_total_action_count = 25

Number of actions that were successfully executed within this block when no filtering is applied (filtering_applied == false).

BlockSigningAuthorityvalid_block_signing_authority_v2 = 30

This replaces block_signing_key with a richer structure able to handle the weighted threshold multisig for block producers.

This can be downgraded to the old block_signing_key simply by taking the first key present in the list. This is of course simple and not accurate anymore in EOSIO 2.0 system where WTMSIG_BLOCK_SIGNATURES has been activated AND block producers starts signing blocks with more than one key.

See BlockSigningAuthority for further details

ProducerAuthorityScheduleactive_schedule_v2 = 31

This replaces the old type ProducerSchedule for the active_schedule field. This was only a type change in EOSIO 2.0, the field's name remained the same.

This is the new schedule data layout which is richer than it's oldest counterpart. The inner element for a producer can then be composed with multiple keys, each with their own weight and the threshold required to accept the block signature.

boolfiltering_applied = 40

Wheter or not a filtering process was run on this block. The filtering process sets to nil the unfiltered_transaction_traces to nil and populate the filtered_transaction_traces according to the filtering_include_filter_expr and filtering_exclude_filter_expr CEL expressions. A transaction will be present in the filtered_transaction_traces array if it matched the filtering_include_filter_expr and did NOT match the filtering_exclude_filter_expr.

Moreover, each matching action that brought the transaction to be in filtered_transaction_traces array will have a filtering_matched flag set on it to broadcast the fact that this action match the inclusion/exclusion list.

This flag controls all filtered_* and unfiltered_* elements on the Block structure and on substructures if present.

stringfiltering_include_filter_expr = 41

The CEL filter expression used to include transaction in filtered_transaction_traces array, works in combination with filtering_exclude_filter_expr value.

stringfiltering_exclude_filter_expr = 42

The CEL filter expression used to exclude transaction in filtered_transaction_traces array, works in combination with filtering_include_filter_expr value.

uint32filtered_transaction_trace_count = 43

Number of transaction trace that were successfully executed within this block that are found in the filtered_transaction_traces array. This field is populated only when the flag filtering_applied is true.

uint32filtered_executed_input_action_count = 44

Number of top-level actions that were successfully executed within this block that are found in the filtered_transaction_traces array. This field is populated only when the flag filtering_applied is true.

uint32filtered_executed_total_action_count = 45

Number of actions that were successfully executed within this block that are found in the filtered_transaction_traces array. This field is populated only when the flag filtering_applied is true.

TransactionTrace[]filtered_transaction_traces = 46

The filtered transaction traces in this block when filtering has been applied, (i.e. filtering_applied = true). This will be only the transaction trace that matched the include filter CEL expression and did NOT match the exclude filter CEL expression.

Use the helper getter method TransactionTraces() to automatically pick the correct field to use (unfiltered_transaction_traces when filtering_applied == false and filtered_transaction_traces when filtering_applied == true).

TransactionReceipt[]filtered_transactions = 47

The filtered transactions in this block when filtering has been applied, (i.e. filtering_applied = true). This will be only the transactions that matched the include filter CEL expression and did NOT match the exclude filter CEL expression.

Use the helper getter method Transactions() to automatically the correct field (unfiltered_transaction when filtering_applied == false and filtered_transactions when filtering_applied == true).

uint32filtered_transaction_count = 48

Number of transaction that were successfully executed within this block that are found in the filtered_transactions array. This field is populated only when the flag filtering_applied is true.

TrxOp[]filtered_implicit_transaction_ops = 49

The filtered implicit transaction ops in this block when filtering has been applied, (i.e. filtering_applied = true). This will be only the implicit transaction ops that matched the include filter CEL expression and did NOT match the exclude filter CEL expression.

Use the helper getter method ImplicitTransactionOps() to automatically the correct field (unfiltered_implicit_transaction_ops when filtering_applied == false and filtered_implicit_transaction_ops when filtering_applied == true).

stringfiltering_system_actions_include_filter_expr = 50

The CEL filter expression used to include system actions, required by some systems, works in combination with the two other filters above.

bytesaction_mroot_savanna = 60

to be used during Legacy to Savanna transition where action_mroot needs to be converted from Legacy merkle to Savanna merkle

uint32finality_lib = 61

the LIB post-Savanna activation, pre-Savanna this is found in dpos_irreversible_blocknum

FinalityDatafinality_data = 62
ProposerPolicyproposer_policy = 63
FinalizerPolicyfinalizer_policy = 64

sf.antelope.type.v1.BlockHeader

stringproducer = 4
uint32confirmed = 5

uint16

stringprevious = 6
bytestransaction_mroot = 7
bytesaction_mroot = 8
uint32schedule_version = 9
ProducerSchedulenew_producers_v1 = 10

EOSIO 1.x only

A change to producer schedule was reported as a NewProducers field on the BlockHeader in EOSIO 1.x. In EOSIO 2.x, when feature WTMSIG_BLOCK_SIGNATURES is activated, the NewProducers field is not present anymore and the schedule change is reported through a BlockHeaderExtension on the the BlockHeader struct.

If you need to access the old value, you can

Extension[]header_extensions = 11
BlockHeaderExtension[]decoded_header_extensions = 12

sf.antelope.type.v1.Extension

uint32type = 1
bytesdata = 2

sf.antelope.type.v1.BlockRootMerkle

uint32node_count = 1
bytes[]active_nodes = 2

sf.antelope.type.v1.ProducerToLastProduced

stringname = 1
uint32last_block_num_produced = 2

sf.antelope.type.v1.ProducerToLastImpliedIRB

stringname = 1
uint32last_block_num_produced = 2

sf.antelope.type.v1.PendingProducerSchedule

uint32schedule_lib_num = 1
bytesschedule_hash = 2
ProducerScheduleschedule_v1 = 3

See Block#active_schedule_v1 for further details, this is the same change as the active schedule, but applied to the pending field.

See Block#active_schedule_v2 for further details, this is the same change as the active schedule, but applied to the pending field.

sf.antelope.type.v1.ActivatedProtocolFeatures

bytes[]protocol_features = 1

sf.antelope.type.v1.FinalityData

uint32major_version = 1
uint32minor_version = 2
uint32active_finalizer_policy_generation = 3
bytesaction_mroot = 4
bytesreversible_blocks_mroot = 5
uint32latest_qc_claim_block_num = 6
byteslatest_qc_claim_finality_digest = 7
google.protobuf.Timestamplatest_qc_claim_timestamp = 8
bytesbase_digest = 9
FinalizerPolicypending_finalizer_policy = 10
uint32last_pending_finalizer_policy_generation = 11

sf.antelope.type.v1.FinalizerPolicy

uint32generation = 1
uint64threshold = 2
FinalizerAuthority[]finalizers = 3

sf.antelope.type.v1.TransactionReceipt

uint32cpu_usage_micro_seconds = 2
uint32net_usage_words = 3
stringid = 4
PackedTransactionpacked_transaction = 5

present if not deferred

uint64index = 6

within the SignedBlock

sf.antelope.type.v1.TrxOp

FIXME: this is really just an output of the implicit transactions, isn't it? We don't have other operations here.. do we? What's the name anyway?

TrxOp.Operationoperation = 1
stringname = 2
stringtransaction_id = 3
SignedTransactiontransaction = 4

sf.antelope.type.v1.TransactionTrace

stringid = 1

SHA-256 (FIPS 180-4) of the FCBUFFER-encoded packed transaction

uint64block_num = 2

Reference to the block number in which this transaction was executed.

Reference to the block time this transaction was executed in

stringproducer_block_id = 4

Reference to the block ID this transaction was executed in

Receipt of execution of this transaction

int64elapsed = 6
uint64net_usage = 7
boolscheduled = 8

Whether this transaction was taken from a scheduled transactions pool for execution (delayed)

ActionTrace[]action_traces = 9

Traces of each action within the transaction, including all notified and nested actions.

TransactionTracefailed_dtrx_trace = 10

Trace of a failed deferred transaction, if any.

Exceptionexception = 15

Exception leading to the failed dtrx trace.

uint64error_code = 16
DBOp[]db_ops = 17

List of database operations this transaction entailed

DTrxOp[]dtrx_ops = 18

List of deferred transactions operations this transaction entailed

FeatureOp[]feature_ops = 19

List of feature switching operations (changes to feature switches in nodeos) this transaction entailed

PermOp[]perm_ops = 20

List of permission changes operations

RAMOp[]ram_ops = 21

List of RAM consumption/redemption

RAMCorrectionOp[]ram_correction_ops = 22

List of RAM correction operations (happens only once upon feature activation)

RlimitOp[]rlimit_ops = 23

List of changes to rate limiting values

TableOp[]table_ops = 24

List of table creations/deletions

CreationFlatNode[]creation_tree = 25

Tree of creation, rather than execution

uint64index = 26

Index within block's unfiltered execution traces

sf.antelope.type.v1.ProducerSchedule

Present in EOSIO 1.x only

uint32version = 1
ProducerKey[]producers = 2

sf.antelope.type.v1.BlockSigningAuthority

Present in EOSIO 2.x only

This represents the signatures that were used to signed the block. Previously, in EOSIO 1.x, this was a simple public key since only one key could sign a block. In EOSIO 2.x, when WTMSIG_BLOCK_SIGNATURES feature is active, the block can be signed with a set of different public keys, each with its own weight as well as the threshold at which point the signatures are accepted.

This is actually implemented as a fc::variant type in the C++ code, this tainted our own implementation where multiple types can be represented using a oneof.

Know current types (and version they were introduced):

  • BlockSigningAuthorityV0 [Type 0] (EOSIO 2.0)
BlockSigningAuthorityV0v0 = 1oneof variant

sf.antelope.type.v1.ProducerAuthoritySchedule

Present in EOSIO 2.x only

This is the new schedule data layout which is richer than it's oldest counterpart. The inner element for a producer can then be composed with multiple keys, each with their own weight and the threshold required to accept the block signature.

uint32version = 1
ProducerAuthority[]producers = 2

sf.antelope.type.v1.FinalizerAuthority

stringdescription = 1
uint64weight = 2
stringpublic_key = 3

sf.antelope.type.v1.RlimitState

UsageAccumulatoraverage_block_net_usage = 1
UsageAccumulatoraverage_block_cpu_usage = 2
uint64pending_net_usage = 3
uint64pending_cpu_usage = 4
uint64total_net_weight = 5
uint64total_cpu_weight = 6
uint64total_ram_bytes = 7
uint64virtual_net_limit = 8
uint64virtual_cpu_limit = 9

sf.antelope.type.v1.RlimitAccountLimits

stringowner = 1
boolpending = 2
int64net_weight = 3
int64cpu_weight = 4
int64ram_bytes = 5

sf.antelope.type.v1.PackedTransaction

string[]signatures = 1
uint32compression = 2
bytespacked_context_free_data = 3
bytespacked_transaction = 4

sf.antelope.type.v1.SignedTransaction

Transactiontransaction = 1
string[]signatures = 2
bytes[]context_free_data = 3

sf.antelope.type.v1.TransactionReceiptHeader

uint32cpu_usage_micro_seconds = 2
uint32net_usage_words = 3

sf.antelope.type.v1.ActionTrace

ActionReceiptreceipt = 1
Actionaction = 2
boolcontext_free = 3
int64elapsed = 4
stringconsole = 5
stringtransaction_id = 6
uint64block_num = 7
stringproducer_block_id = 8
AccountRAMDelta[]account_ram_deltas = 10
stringreceiver = 11
Exceptionexception = 15
uint32action_ordinal = 16
uint32creator_action_ordinal = 17
uint32closest_unnotified_ancestor_action_ordinal = 18
uint32execution_index = 19
uint64error_code = 20

https://github.com/EOSIO/eos/pull/7108

boolfiltering_matched = 30

Whether this action trace was a successful match, present only when filtering was applied on block. This will be true if the Block filtering_applied is true, if the include CEL filter matched and if the exclude CEL filter did NOT match.

boolfiltering_matched_system_action_filter = 31

Whether this action trace was a successful system match, present only when filtering was applied on block. This will be true if the Block filtering_applied is true, if the system actions include CEL filter matched, supersedes any exclude CEL filter.

bytesraw_return_value = 41

ReturnValue has been added in EOSIO 2.1.x as something that can be returned from the execution of an action.

See https://github.com/EOSIO/eos/pull/8327

stringjson_return_value = 42

sf.antelope.type.v1.DBOp

DBOp.Operationoperation = 1
uint32action_index = 2
stringcode = 3
stringscope = 4
stringtable_name = 5
stringprimary_key = 6
stringold_payer = 7
stringnew_payer = 8
bytesold_data = 9
bytesnew_data = 10
stringold_data_json = 11
stringnew_data_json = 12

sf.antelope.type.v1.DTrxOp

DTrxOp.Operationoperation = 1
uint32action_index = 2
stringsender = 3
stringsender_id = 4
stringpayer = 5
stringpublished_at = 6
stringdelay_until = 7
stringexpiration_at = 8
stringtransaction_id = 9
SignedTransactiontransaction = 10

sf.antelope.type.v1.FeatureOp

stringkind = 1
uint32action_index = 2
stringfeature_digest = 3
Featurefeature = 4

sf.antelope.type.v1.RAMOp

RAMOp.Operationoperation = 1

Operation is the legacy operation tag that we used initially. This is replaced by a combination of Namespce and Action.

Deprecated: Use Namespace and Action instead to determine what the RAM operation represents

uint32action_index = 2
stringpayer = 3
int64delta = 4
uint64usage = 5
RAMOp.Namespacenamespace = 6

Namespace representing the category the RAM operation belong to, like account, table_row, table, etc.

This coupled with action replaces the operation field.

RAMOp.Actionaction = 7

Namespace representing the action the RAM operation did, like add, delete or remove an object.

This coupled with action replaces the operation field.

stringunique_key = 8

UniqueKey gives a unique key to the operation, this unique key is opaque, does not necessarly represents anything and should uniquely represents the RAM Operation within a given timeframe of block (a key should never overlap any other keys (per namespace), on any blocks span).

sf.antelope.type.v1.RAMCorrectionOp

stringcorrection_id = 1
stringunique_key = 2
stringpayer = 3
int64delta = 4

sf.antelope.type.v1.TableOp

TableOp.Operationoperation = 1
uint32action_index = 2
stringpayer = 3
stringcode = 4
stringscope = 5
stringtable_name = 6

sf.antelope.type.v1.CreationFlatNode

int32creator_action_index = 1
uint32execution_action_index = 2

sf.antelope.type.v1.ProducerKey

Present in EOSIO 1.x only

stringaccount_name = 1
stringblock_signing_key = 2

sf.antelope.type.v1.BlockSigningAuthorityV0

Present in EOSIO 2.x only

uint32threshold = 1
KeyWeight[]keys = 2

sf.antelope.type.v1.ProducerAuthority

Present in EOSIO 2.x only

stringaccount_name = 1
BlockSigningAuthorityblock_signing_authority = 2

sf.antelope.type.v1.ProtocolFeatureActivationExtension

bytes[]protocol_features = 1

sf.antelope.type.v1.UsageAccumulator

uint32last_ordinal = 1
uint64value_ex = 2
uint64consumed = 3

sf.antelope.type.v1.ElasticLimitParameters

uint64target = 1
uint64max = 2
uint32periods = 3
uint32max_multiplier = 4
Ratiocontract_rate = 5
Ratioexpand_rate = 6

sf.antelope.type.v1.ActionReceipt

stringreceiver = 1
stringdigest = 2
uint64global_sequence = 3
AuthSequence[]auth_sequence = 4
uint64recv_sequence = 5
uint64code_sequence = 6
uint64abi_sequence = 7

sf.antelope.type.v1.Action

stringaccount = 1
stringname = 2
PermissionLevel[]authorization = 3
stringjson_data = 4
bytesraw_data = 5

sf.antelope.type.v1.AccountRAMDelta

stringaccount = 1
int64delta = 2

sf.antelope.type.v1.Exception.LogMessage

stringformat = 2
bytesdata = 4

This is actually a Pair<string, any> in C++ which get serialized usually as a JSON object. However, it seems some string sequences could be invalid UTF-8 characters. As such, we decided to use a bytes array. Can be interpreted as a UTF-8 string containing JSON, just be ready to handle UTF-8 errors if they arise.

sf.antelope.type.v1.Feature

stringfeature_digest = 1
SubjectiveRestrictionssubjective_restrictions = 2
stringdescription_digest = 3
string[]dependencies = 4
stringprotocol_feature_type = 5
Specification[]specification = 6

sf.antelope.type.v1.PermissionObject

stringowner = 1

Owner is the account for which this permission was set

stringname = 2

Name is the permission's name this permission object is known as.

Authorityauthority = 4
uint64id = 10

Id represents the EOSIO internal id of this permission object.

uint64parent_id = 11

ParentId represents the EOSIO internal id of the parent's of this permission object.

sf.antelope.type.v1.KeyWeight

stringpublic_key = 1
uint32weight = 2

sf.antelope.type.v1.Ratio

uint64numerator = 1
uint64denominator = 2

sf.antelope.type.v1.TransactionHeader

uint32ref_block_num = 2
uint32ref_block_prefix = 3
uint32max_net_usage_words = 4
uint32max_cpu_usage_ms = 5
uint32delay_sec = 6

sf.antelope.type.v1.AuthSequence

stringaccount_name = 1
uint64sequence = 2

sf.antelope.type.v1.PermissionLevel

stringactor = 1
stringpermission = 2

sf.antelope.type.v1.SubjectiveRestrictions

boolenabled = 1
boolpreactivation_required = 2
stringearliest_allowed_activation_time = 3

sf.antelope.type.v1.Specification

stringname = 1
stringvalue = 2

sf.antelope.type.v1.PermissionLevelWeight

PermissionLevelpermission = 1
uint32weight = 2

sf.antelope.type.v1.WaitWeight

uint32wait_sec = 1
uint32weight = 2

sf.antelope.type.v1.DBOp.Operation

enum

OPERATION_UNKNOWN = 0

OPERATION_INSERT = 1

OPERATION_UPDATE = 2

OPERATION_REMOVE = 3

sf.antelope.type.v1.DTrxOp.Operation

enum

OPERATION_UNKNOWN = 0

OPERATION_CREATE = 1

OPERATION_PUSH_CREATE = 2

OPERATION_FAILED = 3

OPERATION_CANCEL = 4

OPERATION_MODIFY_CANCEL = 5

OPERATION_MODIFY_CREATE = 6

sf.antelope.type.v1.PermOp.Operation

enum

OPERATION_UNKNOWN = 0

OPERATION_INSERT = 1

OPERATION_UPDATE = 2

OPERATION_REMOVE = 3

sf.antelope.type.v1.RAMOp.Action

enum

ACTION_UNKNOWN = 0

ACTION_ADD = 1

ACTION_CANCEL = 2

ACTION_CORRECTION = 3

ACTION_PUSH = 4

ACTION_REMOVE = 5

ACTION_UPDATE = 6

sf.antelope.type.v1.RAMOp.Namespace

enum

NAMESPACE_UNKNOWN = 0

NAMESPACE_ABI = 1

NAMESPACE_ACCOUNT = 2

NAMESPACE_AUTH = 3

NAMESPACE_AUTH_LINK = 4

NAMESPACE_CODE = 5

NAMESPACE_DEFERRED_TRX = 6

NAMESPACE_SECONDARY_INDEX = 7

NAMESPACE_TABLE = 8

NAMESPACE_TABLE_ROW = 9

sf.antelope.type.v1.RAMOp.Operation

enum

OPERATION_UNKNOWN = 0

OPERATION_CREATE_TABLE = 1

OPERATION_DEFERRED_TRX_ADD = 2

OPERATION_DEFERRED_TRX_CANCEL = 3

OPERATION_DEFERRED_TRX_PUSHED = 4

OPERATION_DEFERRED_TRX_RAM_CORRECTION = 5

OPERATION_DEFERRED_TRX_REMOVED = 6

OPERATION_DELETEAUTH = 7

OPERATION_LINKAUTH = 8

OPERATION_NEWACCOUNT = 9

OPERATION_PRIMARY_INDEX_ADD = 10

OPERATION_PRIMARY_INDEX_REMOVE = 11

OPERATION_PRIMARY_INDEX_UPDATE = 12

OPERATION_PRIMARY_INDEX_UPDATE_ADD_NEW_PAYER = 13

OPERATION_PRIMARY_INDEX_UPDATE_REMOVE_OLD_PAYER = 14

OPERATION_REMOVE_TABLE = 15

OPERATION_SECONDARY_INDEX_ADD = 16

OPERATION_SECONDARY_INDEX_REMOVE = 17

OPERATION_SECONDARY_INDEX_UPDATE_ADD_NEW_PAYER = 18

OPERATION_SECONDARY_INDEX_UPDATE_REMOVE_OLD_PAYER = 19

OPERATION_SETABI = 20

OPERATION_SETCODE = 21

OPERATION_UNLINKAUTH = 22

OPERATION_UPDATEAUTH_CREATE = 23

OPERATION_UPDATEAUTH_UPDATE = 24

OPERATION_DEPRECATED = 25

For newer RAM Ops that are registered by Deep Mind, their Operation value will be Deprecated until we remove the operation completely. Use instead the Namespace and Action fields to take a decision about what the RAM operation is doing.

sf.antelope.type.v1.RlimitOp.Operation

enum

OPERATION_UNKNOWN = 0

OPERATION_INSERT = 1

OPERATION_UPDATE = 2

sf.antelope.type.v1.TableOp.Operation

enum

OPERATION_UNKNOWN = 0

OPERATION_INSERT = 1

OPERATION_REMOVE = 2

sf.antelope.type.v1.TransactionStatus

enum

TRANSACTIONSTATUS_NONE = 0

TRANSACTIONSTATUS_EXECUTED = 1

TRANSACTIONSTATUS_SOFTFAIL = 2

TRANSACTIONSTATUS_HARDFAIL = 3

TRANSACTIONSTATUS_DELAYED = 4

TRANSACTIONSTATUS_EXPIRED = 5

TRANSACTIONSTATUS_UNKNOWN = 6

TRANSACTIONSTATUS_CANCELED = 7

sf.antelope.type.v1.TrxOp.Operation

enum

OPERATION_UNKNOWN = 0

OPERATION_CREATE = 1