Default package

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

message AccountAmount

Libonomy.proto:270

An account, and the amount that it sends or receives during a cryptocurrency transfer.

Used in: TransferList

message AccountID

Libonomy.proto:16

The ID for an a cryptocurrency account

Used in: AccountAmount, CryptoCreateTransactionBody, CryptoUpdateTransactionBody, TransactionBody, TransactionID

message ContractID

Libonomy.proto:30

The ID for a smart contract instance

Used in: Key

message CryptoCreateTransactionBody

Libonomy.proto:236

Create a new account. After the account is created, the AccountID for it is in the receipt, or can be retrieved with a GetByKey query, or by asking for a Record of the transaction to be created, and retrieving that. The account can then automatically generate records for large transfers into it or out of it, which each last for 25 hours. Records are generated for any transfer that exceeds the thresholds given here. This account is charged cryptocurrency for each record generated, so the thresholds are useful for limiting Record generation to happen only for large transactions. The Key field is the key used to sign transactions for this account. If the account has receiverSigRequired set to true, then all cryptocurrency transfers must be signed by this account's key, both for transfers in and out. If it is false, then only transfers out have to be signed by it. When the account is created, the payer account is charged enough hbars so that the new account will not expire for the next autoRenewPeriod seconds. When it reaches the expiration time, the new account will then be automatically charged to renew for another autoRenewPeriod seconds. If it does not have enough hbars to renew for that long, then the remaining hbars are used to extend its expiration as long as possible. If it is has a zero balance when it expires, then it is deleted. This transaction must be signed by the payer account. If receiverSigRequired is false, then the transaction does not have to be signed by the keys in the keys field. If it is true, then it must be signed by them, in addition to the keys of the payer account. An entity (account, file, or smart contract instance) must be created in a particular realm. If the realmID is left null, then a new realm will be created with the given admin key. If a new realm has a null adminKey, then anyone can create/modify/delete entities in that realm. But if an admin key is given, then any transaction to create/modify/delete an entity in that realm must be signed by that key, though anyone can still call functions on smart contract instances that exist in that realm. A realm ceases to exist when everything within it has expired and no longer exists. The current API ignores shardID, realmID, and newRealmAdminKey, and creates everything in shard 0 and realm 0, with a null key. Future versions of the API will support multiple realms and multiple shards.

Used in: TransactionBody

message CryptoTransferTransactionBody

Libonomy.proto:281

Transfer cryptocurrency from some accounts to other accounts. The accounts list can contain up to 10 accounts. The amounts list must be the same length as the accounts list. Each negative amount is withdrawn from the corresponding account (a sender), and each positive one is added to the corresponding account (a receiver). The amounts list must sum to zero. Each amount is a number of tinyBars (there are 100,000,000 tinyBars in one Hbar). If any sender account fails to have sufficient hbars to do the withdrawal, then the entire transaction fails, and none of those transfers occur, though the transaction fee is still charged. This transaction must be signed by the keys for all the sending accounts, and for any receiving accounts that have receiverSigRequired == true. The signatures are in the same order as the accounts, skipping those accounts that don't need a signature.

Used in: TransactionBody

message CryptoUpdateTransactionBody

Libonomy.proto:249

Change properties for the given account. Any null field is ignored (left unchanged). This transaction must be signed by the existing key for this account. If the transaction is changing the key field, then the transaction must be signed by both the old key (from before the change) and the new key. The old key must sign for security. The new key must sign as a safeguard to avoid accidentally changing to an invalid key, and then having no way to recover. When extending the expiration date, the cost is affected by the size of the list of attached claims, and of the keys associated with the claims and the account.

Used in: TransactionBody

message CurrentAndNextFeeSchedule

Libonomy.proto:200

This contains two Fee Schedules with expiry timestamp.

message Duration

Libonomy.proto:216

Used in: CryptoCreateTransactionBody, CryptoUpdateTransactionBody, TransactionBody

message FeeComponents

Libonomy.proto:165

Used in: FeeData

message FeeData

Libonomy.proto:186

The total fees charged for a transaction. It contains three parts namely node data, network data and service data

Used in: TransactionFeeSchedule

message FeeSchedule

Libonomy.proto:193

The fee schedule for a specific libonomy functionality and the time period this fee schedule will expire

Used in: CurrentAndNextFeeSchedule

message FileID

Libonomy.proto:23

The ID for a file

message Key

Libonomy.proto:54

A Key can be a public key from one of the three supported systems (ed25519, RSA-3072, ECDSA with p384). Or, it can be the ID of a smart contract instance, which is authorized to act as if it had a key. If an account has an ed25519 key associated with it, then the corresponding private key must sign any transaction to transfer cryptocurrency out of it. And similarly for RSA and ECDSA. A Key can be a smart contract ID, which means that smart contract is to authorize operations as if it had signed with a key that it owned. The smart contract doesn't actually have a key, and doesn't actually sign a transaction. But it's as if a virtual transaction were created, and the smart contract signed it with a private key. A key can be a "threshold key", which means a list of M keys, any N of which must sign in order for the threshold signature to be considered valid. The keys within a threshold signature may themselves be threshold signatures, to allow complex signature requirements. A Key can be a list of keys. Their use is dependent on context. For example, a Libonomy file is created with a list of keys, where all of them must sign a transaction to create or modify the file, but only one of them is needed to sign a transaction to delete the file. So it's a single list that sometimes acts as a 1-of-M threshold key, and sometimes acts as an M-of-M threshold key. A Key can contain a ThresholdKey or KeyList, which in turn contain a Key, so this mutual recursion would allow nesting arbitrarily deep. A ThresholdKey which contains a list of primitive keys (e.g., ed25519) has 3 levels: ThresholdKey -> KeyList -> Key. A KeyList which contains several primitive keys (e.g., ed25519) has 2 levels: KeyList -> Key. A Key with 2 levels of nested ThresholdKeys has 7 levels: Key -> ThresholdKey -> KeyList -> Key -> ThresholdKey -> KeyList -> Key. Each Key should not have more than 46 levels, which implies 15 levels of nested ThresholdKeys.

Used in: CryptoCreateTransactionBody, CryptoUpdateTransactionBody, KeyList

message KeyList

Libonomy.proto:72

A list of keys

Used in: Key, ThresholdKey

enum LibonomyFunctionality

Libonomy.proto:129

The functionality provided by libonomy

Used in: TransactionFeeSchedule

message NodeAddress

Libonomy.proto:206

The information about a node

Used in: NodeAddressBook

message NodeAddressBook

Libonomy.proto:213

Gives the node addresses in the address book

message RealmID

Libonomy.proto:10

The ID for a realm. Within a given shard, every realm has a unique ID. Each account, file, and contract instance belongs to exactly one realm.

Used in: CryptoCreateTransactionBody

message ShardID

Libonomy.proto:5

Used in: CryptoCreateTransactionBody

message Signature

Libonomy.proto:80

A Signature corresponding to a Key. It is a sequence of bytes holding a public key signature from one of the three supported systems (ed25519, RSA-3072, ECDSA with p384). Or, it can be a list of signatures corresponding to a single threshold key. Or, it can be the ID of a smart contract instance, which is authorized to act as if it had a key. If an account has an ed25519 key associated with it, then the corresponding private key must sign any transaction to transfer cryptocurrency out of it. If it has a smart contract ID associated with it, then that smart contract is allowed to transfer cryptocurrency out of it. The smart contract doesn't actually have a key, and doesn't actually sign a transaction. But it's as if a virtual transaction were created, and the smart contract signed it with a private key. A key can also be a "threshold key", which means a list of M keys, any N of which must sign in order for the threshold signature to be considered valid. The keys within a threshold signature may themselves be threshold signatures, to allow complex signature requirements (this nesting is not supported in the currently, but will be supported in a future version of API). If a Signature message is missing the "signature" field, then this is considered to be a null signature. That is useful in cases such as threshold signatures, where some of the signatures can be null. The definition of Key uses mutual recursion, so it allows nesting that is arbitrarily deep. But the current API only accepts Key messages up to 3 levels deep, such as a list of threshold keys, each of which is a list of primitive keys. Therefore, the matching Signature will have the same limitation. This restriction may be relaxed in future versions of the API, to allow deeper nesting. This message is deprecated and succeeded by SignaturePair and SignatureMap messages.

Used in: SignatureList

message SignatureList

Libonomy.proto:103

The signatures corresponding to a KeyList of the same length. This message is deprecated and succeeded by SignaturePair and SignatureMap messages.

Used in: Signature, ThresholdSignature, Transaction

message SignatureMap

Libonomy.proto:124

A set of signatures corresponding to every unique public key used to sign a given transaction. If one public key matches more than one prefixes on the signature map, the transaction containing the map will fail immediately with the response code KEY_PREFIX_MISMATCH.

Used in: Transaction

message SignaturePair

Libonomy.proto:111

The client may use any number of bytes from 0 to the whole length of the public key for pubKeyPrefix. If 0 bytes is used, then it is assumed that only one public key is used to sign.

Used in: SignatureMap

message ThresholdKey

Libonomy.proto:66

A set of public keys that are used together to form a threshold signature. If the threshold is N and there are M keys, then this is an N of M threshold signature. If an account is associated with ThresholdKeys, then a transaction to move cryptocurrency out of it must be signed by a list of M signatures, where at most M-N of them are blank, and the other at least N of them are valid signatures corresponding to at least N of the public keys listed here.

Used in: Key

message ThresholdSignature

Libonomy.proto:95

A signature corresponding to a ThresholdKey. For an N-of-M threshold key, this is a list of M signatures, at least N of which must be non-null. This message is deprecated and succeeded by SignaturePair and SignatureMap messages.

Used in: Signature

message Timestamp

Libonomy.proto:220

An exact date and time. This is the same data structure as the protobuf Timestamp.proto (see the comments in https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto)

Used in: CryptoUpdateTransactionBody, TransactionID

message TimestampSeconds

Libonomy.proto:226

An exact date and time, with a resolution of one second (no nanoseconds).

Used in: FeeSchedule

message Transaction

Libonomy.proto:318

A single signed transaction, including all its signatures. The SignatureList will have a Signature for each Key in the transaction, either explicit or implicit, in the order that they appear in the transaction. For example, a CryptoTransfer will first have a Signature corresponding to the Key for the paying account, followed by a Signature corresponding to the Key for each account that is sending or receiving cryptocurrency in the transfer. Each Transaction should not have more than 50 levels. The SignatureList field is deprecated and succeeded by SignatureMap.

message TransactionBody

Libonomy.proto:286

A single transaction. All transaction types are possible here.

Used in: Transaction

message TransactionFeeSchedule

Libonomy.proto:180

The fees for a specific transaction or query based on the fee data.

Used in: FeeSchedule

message TransactionID

Libonomy.proto:37

The ID for a transaction. This is used for retrieving receipts and records for a transaction, for appending to a file right after creating it, for instantiating a smart contract with bytecode in a file just created, and internally by the network for detecting when duplicate transactions are submitted. A user might get a transaction processed faster by submitting it to N nodes, each with a different node account, but all with the same TransactionID. Then, the transaction will take effect when the first of all those nodes submits the transaction and it reaches consensus. The other transactions will not take effect. So this could make the transaction take effect faster, if any given node might be slow. However, the full transaction fee is charged for each transaction, so the total fee is N times as much if the transaction is sent to N nodes.

Used in: TransactionBody

message TransferList

Libonomy.proto:276

A list of accounts and amounts to transfer out of each account (negative) or into it (positive).

Used in: CryptoTransferTransactionBody