7 KiB
Protocol Documentation
Table of Contents
-
-
Services
-
Messages
-
-
- Messages
accounting/service.proto
Service "frost.fs.accounting.AccountingService"
Accounting service provides methods for interaction with FrostFS sidechain via other FrostFS nodes to get information about the account balance. Deposit and Withdraw operations can't be implemented here, as they require Mainnet FrostFS smart contract invocation. Transfer operations between internal FrostFS accounts are possible if both use the same token type.
rpc Balance(BalanceRequest) returns (BalanceResponse);
Method Balance
Returns the amount of funds in GAS token for the requested FrostFS account.
Statuses:
- OK (0, SECTION_SUCCESS): balance has been successfully read;
- Common failures (SECTION_FAILURE_COMMON).
Name | Input | Output |
---|---|---|
Balance | BalanceRequest | BalanceResponse |
Message BalanceRequest
BalanceRequest message
Field | Type | Label | Description |
---|---|---|---|
body | BalanceRequest.Body | Body of the balance request message. | |
meta_header | frost.fs.session.RequestMetaHeader | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. | |
verify_header | frost.fs.session.RequestVerificationHeader | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
Message BalanceRequest.Body
To indicate the account for which the balance is requested, its identifier
is used. It can be any existing account in FrostFS sidechain Balance
smart contract. If omitted, client implementation MUST set it to the
request's signer OwnerID
.
Field | Type | Label | Description |
---|---|---|---|
owner_id | frost.fs.refs.OwnerID | Valid user identifier in OwnerID format for which the balance is requested. Required field. |
Message BalanceResponse
BalanceResponse message
Field | Type | Label | Description |
---|---|---|---|
body | BalanceResponse.Body | Body of the balance response message. | |
meta_header | frost.fs.session.ResponseMetaHeader | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. | |
verify_header | frost.fs.session.ResponseVerificationHeader | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
Message BalanceResponse.Body
The amount of funds in GAS token for the OwnerID
's account requested.
Balance is given in the Decimal
format to avoid precision issues with
rounding.
Field | Type | Label | Description |
---|---|---|---|
balance | Decimal | Amount of funds in GAS token for the requested account. |
accounting/types.proto
Message Decimal
Standard floating point data type can't be used in FrostFS due to inexactness
of the result when doing lots of small number operations. To solve the lost
precision issue, special Decimal
format is used for monetary computations.
Please see The General Decimal Arithmetic Specification for detailed problem description.
Field | Type | Label | Description |
---|---|---|---|
value | int64 | Number in the smallest Token fractions. | |
precision | uint32 | Precision value indicating how many smallest fractions can be in one integer. |
Scalar Value Types
.proto Type | Notes | C++ Type | Java Type | Python Type |
---|---|---|---|---|
double | double | double | float | |
float | float | float | float | |
int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int |
int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long |
uint32 | Uses variable-length encoding. | uint32 | int | int/long |
uint64 | Uses variable-length encoding. | uint64 | long | int/long |
sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int |
sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long |
fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int |
fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long |
sfixed32 | Always four bytes. | int32 | int | int |
sfixed64 | Always eight bytes. | int64 | long | int/long |
bool | bool | boolean | boolean | |
string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode |
bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str |