Current section
Files
Jump to
Current section
Files
lib/protobuf/service.proto
syntax = "proto3";
package forge_abi;
import "rpc.proto";
// forge RPC definition
// Notice: when you define a new RPC, please follow the naming convention. Your
// function name is snake case, and req / req are PASCAL case of the function
// name, prefixed with Request / Response. e.g. rpc get_abc(RequestGetAbc)
// returns (ResponseGetAbc). If you break this, RPC builder would complain.
service ChainRpc {
// tx related
rpc send_tx(RequestSendTx) returns (ResponseSendTx);
rpc get_tx(stream RequestGetTx) returns (stream ResponseGetTx);
rpc get_block(stream RequestGetBlock) returns (stream ResponseGetBlock);
rpc get_blocks(RequestGetBlocks) returns (ResponseGetBlocks);
rpc get_unconfirmed_txs(RequestGetUnconfirmedTxs)
returns (ResponseGetUnconfirmedTxs);
// utility
rpc get_chain_info(RequestGetChainInfo) returns (ResponseGetChainInfo);
rpc get_node_info(RequestGetNodeInfo) returns (ResponseGetNodeInfo);
rpc search(RequestSearch) returns (ResponseSearch);
rpc get_net_info(RequestGetNetInfo) returns (ResponseGetNetInfo);
rpc get_validators_info(RequestGetValidatorsInfo)
returns (ResponseGetValidatorsInfo);
rpc get_config(RequestGetConfig) returns (ResponseGetConfig);
}
service EventRpc {
rpc subscribe(RequestSubscribe) returns (stream ResponseSubscribe);
rpc unsubscribe(RequestUnsubscribe) returns (ResponseUnsubscribe);
}
service FileRpc {
// filesystem related
// rpc store_file(stream RequestStoreFile) returns (ResponseStoreFile);
// rpc load_file(RequestLoadFile) returns (stream ResponseLoadFile);
// rpc pin_file(RequestPinFile) returns (ResponsePinFile);
}
service StateRpc {
// state related
rpc get_account_state(stream RequestGetAccountState)
returns (stream ResponseGetAccountState);
rpc get_asset_state(stream RequestGetAssetState)
returns (stream ResponseGetAssetState);
rpc get_forge_state(RequestGetForgeState) returns (ResponseGetForgeState);
// rpc get_protocol_state(stream RequestGetProtocolState) returns (stream
// ResponseGetProtocolState);
// rpc get_stake_state(stream RequestGetStakeState)
// returns (stream ResponseGetStakeState);
rpc get_swap_state(stream RequestGetSwapState)
returns (stream ResponseGetSwapState);
rpc get_delegate_state(stream RequestGetDelegateState)
returns (stream ResponseGetDelegateState);
}
service WalletRpc {
// wallet related
rpc declare_node(RequestDeclareNode) returns (ResponseDeclareNode);
}
service StatsRpc {
rpc get_forge_stats(RequestGetForgeStats) returns (ResponseGetForgeStats);
rpc list_transactions(RequestListTransactions)
returns (ResponseListTransactions);
rpc list_assets(RequestListAssets) returns (ResponseListAssets);
rpc list_stakes(RequestListStakes) returns (ResponseListStakes);
rpc list_account(RequestListAccount) returns (ResponseListAccount);
rpc list_top_accounts(RequestListTopAccounts)
returns (ResponseListTopAccounts);
rpc list_asset_transactions(RequestListAssetTransactions)
returns (ResponseListAssetTransactions);
rpc list_blocks(RequestListBlocks) returns (ResponseListBlocks);
rpc get_health_status(RequestGetHealthStatus)
returns (ResponseGetHealthStatus);
rpc list_swap(RequestListSwap) returns (ResponseListSwap);
rpc get_swap_statistics(RequestGetSwapStatistics)
returns (ResponseGetSwapStatistics);
}