forked from cerc-io/laconicd-deprecated
@@ -0,0 +1,281 @@
|
||||
syntax = "proto3";
|
||||
package ethermint.evm.v1;
|
||||
|
||||
import "gogoproto/gogo.proto";
|
||||
import "cosmos/base/query/v1beta1/pagination.proto";
|
||||
import "google/api/annotations.proto";
|
||||
import "ethermint/evm/v1/evm.proto";
|
||||
import "ethermint/evm/v1/tx.proto";
|
||||
|
||||
option go_package = "github.com/tharsis/ethermint/x/evm/types";
|
||||
|
||||
// Query defines the gRPC querier service.
|
||||
service Query {
|
||||
// Account queries an Ethereum account.
|
||||
rpc Account(QueryAccountRequest) returns (QueryAccountResponse) {
|
||||
option (google.api.http).get = "/ethermint/evm/v1/account/{address}";
|
||||
}
|
||||
|
||||
// CosmosAccount queries an Ethereum account's Cosmos Address.
|
||||
rpc CosmosAccount(QueryCosmosAccountRequest)
|
||||
returns (QueryCosmosAccountResponse) {
|
||||
option (google.api.http).get =
|
||||
"/ethermint/evm/v1/cosmos_account/{address}";
|
||||
}
|
||||
|
||||
// ValidatorAccount queries an Ethereum account's from a validator consensus
|
||||
// Address.
|
||||
rpc ValidatorAccount(QueryValidatorAccountRequest)
|
||||
returns (QueryValidatorAccountResponse) {
|
||||
option (google.api.http).get =
|
||||
"/ethermint/evm/v1/validator_account/{cons_address}";
|
||||
}
|
||||
|
||||
// Balance queries the balance of a the EVM denomination for a single
|
||||
// EthAccount.
|
||||
rpc Balance(QueryBalanceRequest) returns (QueryBalanceResponse) {
|
||||
option (google.api.http).get = "/ethermint/evm/v1/balances/{address}";
|
||||
}
|
||||
|
||||
// Storage queries the balance of all coins for a single account.
|
||||
rpc Storage(QueryStorageRequest) returns (QueryStorageResponse) {
|
||||
option (google.api.http).get =
|
||||
"/ethermint/evm/v1/storage/{address}/{key}";
|
||||
}
|
||||
|
||||
// Code queries the balance of all coins for a single account.
|
||||
rpc Code(QueryCodeRequest) returns (QueryCodeResponse) {
|
||||
option (google.api.http).get = "/ethermint/evm/v1/codes/{address}";
|
||||
}
|
||||
|
||||
// TxLogs queries ethereum logs from a transaction.
|
||||
rpc TxLogs(QueryTxLogsRequest) returns (QueryTxLogsResponse) {
|
||||
option (google.api.http).get = "/ethermint/evm/v1/tx_logs/{hash}";
|
||||
}
|
||||
|
||||
// BlockLogs queries all the ethereum logs for a given block hash.
|
||||
rpc BlockLogs(QueryBlockLogsRequest) returns (QueryBlockLogsResponse) {
|
||||
option (google.api.http).get = "/ethermint/evm/v1/block_logs/{hash}";
|
||||
}
|
||||
|
||||
// BlockBloom queries the block bloom filter bytes at a given height.
|
||||
rpc BlockBloom(QueryBlockBloomRequest) returns (QueryBlockBloomResponse) {
|
||||
option (google.api.http).get = "/ethermint/evm/v1/block_bloom";
|
||||
}
|
||||
|
||||
// Params queries the parameters of x/evm module.
|
||||
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
|
||||
option (google.api.http).get = "/ethermint/evm/v1/params";
|
||||
}
|
||||
|
||||
// StaticCall queries the static call value of x/evm module.
|
||||
rpc StaticCall(QueryStaticCallRequest) returns (QueryStaticCallResponse) {
|
||||
option (google.api.http).get = "/ethermint/evm/v1/static_call";
|
||||
}
|
||||
|
||||
// EthCall implements the `eth_call` rpc api
|
||||
rpc EthCall(EthCallRequest) returns (MsgEthereumTxResponse) {
|
||||
option (google.api.http).get = "/ethermint/evm/v1/eth_call";
|
||||
}
|
||||
|
||||
// EstimateGas implements the `eth_estimateGas` rpc api
|
||||
rpc EstimateGas(EthCallRequest) returns (EstimateGasResponse) {
|
||||
option (google.api.http).get = "/ethermint/evm/v1/estimate_gas";
|
||||
}
|
||||
}
|
||||
|
||||
// QueryAccountRequest is the request type for the Query/Account RPC method.
|
||||
message QueryAccountRequest {
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
// address is the ethereum hex address to query the account for.
|
||||
string address = 1;
|
||||
}
|
||||
|
||||
// QueryAccountResponse is the response type for the Query/Account RPC method.
|
||||
message QueryAccountResponse {
|
||||
// balance is the balance of the EVM denomination.
|
||||
string balance = 1;
|
||||
// code hash is the hex-formatted code bytes from the EOA.
|
||||
string code_hash = 2;
|
||||
// nonce is the account's sequence number.
|
||||
uint64 nonce = 3;
|
||||
}
|
||||
|
||||
// QueryCosmosAccountRequest is the request type for the Query/CosmosAccount RPC
|
||||
// method.
|
||||
message QueryCosmosAccountRequest {
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
// address is the ethereum hex address to query the account for.
|
||||
string address = 1;
|
||||
}
|
||||
|
||||
// QueryCosmosAccountResponse is the response type for the Query/CosmosAccount
|
||||
// RPC method.
|
||||
message QueryCosmosAccountResponse {
|
||||
// cosmos_address is the cosmos address of the account.
|
||||
string cosmos_address = 1;
|
||||
// sequence is the account's sequence number.
|
||||
uint64 sequence = 2;
|
||||
// account_number is the account numbert
|
||||
uint64 account_number = 3;
|
||||
}
|
||||
|
||||
// QueryValidatorAccountRequest is the request type for the
|
||||
// Query/ValidatorAccount RPC method.
|
||||
message QueryValidatorAccountRequest {
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
// cons_address is the validator cons address to query the account for.
|
||||
string cons_address = 1;
|
||||
}
|
||||
|
||||
// QueryValidatorAccountResponse is the response type for the
|
||||
// Query/ValidatorAccount RPC method.
|
||||
message QueryValidatorAccountResponse {
|
||||
// account_address is the cosmos address of the account in bech32 format.
|
||||
string account_address = 1;
|
||||
// sequence is the account's sequence number.
|
||||
uint64 sequence = 2;
|
||||
// account_number is the account number
|
||||
uint64 account_number = 3;
|
||||
}
|
||||
|
||||
// QueryBalanceRequest is the request type for the Query/Balance RPC method.
|
||||
message QueryBalanceRequest {
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
// address is the ethereum hex address to query the balance for.
|
||||
string address = 1;
|
||||
}
|
||||
|
||||
// QueryBalanceResponse is the response type for the Query/Balance RPC method.
|
||||
message QueryBalanceResponse {
|
||||
// balance is the balance of the EVM denomination.
|
||||
string balance = 1;
|
||||
}
|
||||
|
||||
// QueryStorageRequest is the request type for the Query/Storage RPC method.
|
||||
message QueryStorageRequest {
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
/// address is the ethereum hex address to query the storage state for.
|
||||
string address = 1;
|
||||
|
||||
// key defines the key of the storage state
|
||||
string key = 2;
|
||||
}
|
||||
|
||||
// QueryStorageResponse is the response type for the Query/Storage RPC
|
||||
// method.
|
||||
message QueryStorageResponse {
|
||||
// key defines the storage state value hash associated with the given key.
|
||||
string value = 1;
|
||||
}
|
||||
|
||||
// QueryCodeRequest is the request type for the Query/Code RPC method.
|
||||
message QueryCodeRequest {
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
// address is the ethereum hex address to query the code for.
|
||||
string address = 1;
|
||||
}
|
||||
|
||||
// QueryCodeResponse is the response type for the Query/Code RPC
|
||||
// method.
|
||||
message QueryCodeResponse {
|
||||
// code represents the code bytes from an ethereum address.
|
||||
bytes code = 1;
|
||||
}
|
||||
|
||||
// QueryTxLogsRequest is the request type for the Query/TxLogs RPC method.
|
||||
message QueryTxLogsRequest {
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
// hash is the ethereum transaction hex hash to query the logs for.
|
||||
string hash = 1;
|
||||
}
|
||||
|
||||
// QueryTxLogs is the response type for the Query/TxLogs RPC method.
|
||||
message QueryTxLogsResponse {
|
||||
// logs represents the ethereum logs generated from the given transaction.
|
||||
repeated Log logs = 1;
|
||||
}
|
||||
|
||||
// QueryBlockLogsRequest is the request type for the Query/BlockLogs RPC method.
|
||||
message QueryBlockLogsRequest {
|
||||
option (gogoproto.equal) = false;
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
|
||||
// hash is the block hash to query the logs for.
|
||||
string hash = 1;
|
||||
// pagination defines an optional pagination for the request.
|
||||
cosmos.base.query.v1beta1.PageRequest pagination = 2;
|
||||
}
|
||||
|
||||
// QueryTxLogs is the response type for the Query/BlockLogs RPC method.
|
||||
message QueryBlockLogsResponse {
|
||||
// logs represents the ethereum logs generated at the given block hash.
|
||||
repeated TransactionLogs tx_logs = 1 [ (gogoproto.nullable) = false ];
|
||||
// pagination defines the pagination in the response.
|
||||
cosmos.base.query.v1beta1.PageResponse pagination = 2;
|
||||
}
|
||||
|
||||
// QueryBlockBloomRequest is the request type for the Query/BlockBloom RPC
|
||||
// method.
|
||||
message QueryBlockBloomRequest {
|
||||
// height of the block which we want to query the bloom filter.
|
||||
// Tendermint always replace the query request header by the current context
|
||||
// header, height cannot be extracted from there, so we need to explicitly
|
||||
// pass it in parameter.
|
||||
int64 height = 1;
|
||||
}
|
||||
|
||||
// QueryBlockBloomResponse is the response type for the Query/BlockBloom RPC
|
||||
// method.
|
||||
message QueryBlockBloomResponse {
|
||||
// bloom represents bloom filter for the given block hash.
|
||||
bytes bloom = 1;
|
||||
}
|
||||
|
||||
// QueryParamsRequest defines the request type for querying x/evm parameters.
|
||||
message QueryParamsRequest {}
|
||||
|
||||
// QueryParamsResponse defines the response type for querying x/evm parameters.
|
||||
message QueryParamsResponse {
|
||||
// params define the evm module parameters.
|
||||
Params params = 1 [ (gogoproto.nullable) = false ];
|
||||
}
|
||||
|
||||
// QueryStaticCallRequest defines static call request
|
||||
message QueryStaticCallRequest {
|
||||
// address is the ethereum contract hex address to for static call.
|
||||
string address = 1;
|
||||
// static call input generated from abi
|
||||
bytes input = 2;
|
||||
}
|
||||
|
||||
// QueryStaticCallRequest defines static call response
|
||||
message QueryStaticCallResponse { bytes data = 1; }
|
||||
|
||||
// EthCallRequest defines EthCall request
|
||||
message EthCallRequest {
|
||||
// same json format as the json rpc api.
|
||||
bytes args = 1;
|
||||
// the default gas cap to be used
|
||||
uint64 gas_cap = 2;
|
||||
}
|
||||
|
||||
// EstimateGasResponse defines EstimateGas response
|
||||
message EstimateGasResponse {
|
||||
// the estimated gas
|
||||
uint64 gas = 1;
|
||||
}
|
||||
Reference in New Issue
Block a user