2021-01-07 21:45:32 +00:00
|
|
|
syntax = "proto3";
|
|
|
|
package ethermint.evm.v1alpha1;
|
|
|
|
|
|
|
|
import "gogoproto/gogo.proto";
|
|
|
|
import "google/api/annotations.proto";
|
|
|
|
import "ethermint/evm/v1alpha1/evm.proto";
|
|
|
|
|
|
|
|
option go_package = "github.com/cosmos/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/v1alpha1/account/{address}";
|
|
|
|
}
|
|
|
|
|
2021-04-18 15:54:18 +00:00
|
|
|
// Account queries an Ethereum account's Cosmos Address.
|
|
|
|
rpc CosmosAccount(QueryCosmosAccountRequest) returns (QueryCosmosAccountResponse) {
|
|
|
|
option (google.api.http).get = "/ethermint/evm/v1alpha1/cosmos_account/{address}";
|
|
|
|
}
|
|
|
|
|
2021-01-07 21:45:32 +00:00
|
|
|
// 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/v1alpha1/balances/{address}";
|
|
|
|
}
|
|
|
|
|
|
|
|
// Storage queries the balance of all coins for a single account.
|
|
|
|
rpc Storage(QueryStorageRequest) returns (QueryStorageResponse) {
|
2021-04-19 07:10:57 +00:00
|
|
|
option (google.api.http).get = "/ethermint/evm/v1alpha1/storage/{address}/{key}";
|
2021-01-07 21:45:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Code queries the balance of all coins for a single account.
|
|
|
|
rpc Code(QueryCodeRequest) returns (QueryCodeResponse) {
|
|
|
|
option (google.api.http).get = "/ethermint/evm/v1alpha1/codes/{address}";
|
|
|
|
}
|
|
|
|
|
|
|
|
// TxLogs queries ethereum logs from a transaction.
|
|
|
|
rpc TxLogs(QueryTxLogsRequest) returns (QueryTxLogsResponse) {
|
|
|
|
option (google.api.http).get = "/ethermint/evm/v1alpha1/tx_logs/{hash}";
|
|
|
|
}
|
|
|
|
|
2021-04-18 15:54:18 +00:00
|
|
|
// TxReceipt queries a receipt by a transaction hash.
|
|
|
|
rpc TxReceipt(QueryTxReceiptRequest) returns (QueryTxReceiptResponse) {
|
|
|
|
option (google.api.http).get = "/ethermint/evm/v1alpha1/tx_receipt/{hash}";
|
|
|
|
}
|
|
|
|
|
|
|
|
// TxReceiptsByBlockHeight queries tx receipts by a block height.
|
|
|
|
rpc TxReceiptsByBlockHeight(QueryTxReceiptsByBlockHeightRequest) returns (QueryTxReceiptsByBlockHeightResponse) {
|
|
|
|
option (google.api.http).get = "/ethermint/evm/v1alpha1/tx_receipts_block/{height}";
|
|
|
|
}
|
|
|
|
|
|
|
|
// TxReceiptsByBlockHash queries tx receipts by a block hash.
|
|
|
|
rpc TxReceiptsByBlockHash(QueryTxReceiptsByBlockHashRequest) returns (QueryTxReceiptsByBlockHashResponse) {
|
|
|
|
option (google.api.http).get = "/ethermint/evm/v1alpha1/tx_receipts_block_hash/{hash}";
|
|
|
|
}
|
|
|
|
|
2021-01-07 21:45:32 +00:00
|
|
|
// BlockLogs queries all the ethereum logs for a given block hash.
|
|
|
|
rpc BlockLogs(QueryBlockLogsRequest) returns (QueryBlockLogsResponse) {
|
|
|
|
option (google.api.http).get = "/ethermint/evm/v1alpha1/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/v1alpha1/block_bloom";
|
|
|
|
}
|
|
|
|
|
|
|
|
// Params queries the parameters of x/evm module.
|
|
|
|
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
|
|
|
|
option (google.api.http).get = "/ethermint/evm/v1alpha1/params";
|
|
|
|
}
|
2021-04-18 15:54:18 +00:00
|
|
|
|
|
|
|
// StaticCall queries the static call value of x/evm module.
|
|
|
|
rpc StaticCall(QueryStaticCallRequest) returns (QueryStaticCallResponse) {
|
|
|
|
option (google.api.http).get = "/ethermint/evm/v1alpha1/static_call";
|
|
|
|
}
|
2021-01-07 21:45:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// QueryAccountRequest is the request type for the Query/Account RPC method.
|
|
|
|
message QueryAccountRequest {
|
2021-04-19 07:10:57 +00:00
|
|
|
option (gogoproto.equal) = false;
|
2021-01-07 21:45:32 +00:00
|
|
|
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 code bytes from the EOA.
|
|
|
|
bytes code_hash = 2;
|
|
|
|
// nonce is the account's sequence number.
|
|
|
|
uint64 nonce = 3;
|
|
|
|
}
|
|
|
|
|
2021-04-18 15:54:18 +00:00
|
|
|
// QueryCosmosAccountRequest is the request type for the Query/CosmosAccount RPC method.
|
|
|
|
message QueryCosmosAccountRequest {
|
2021-04-19 07:10:57 +00:00
|
|
|
option (gogoproto.equal) = false;
|
2021-04-18 15:54:18 +00:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
2021-01-07 21:45:32 +00:00
|
|
|
// QueryBalanceRequest is the request type for the Query/Balance RPC method.
|
|
|
|
message QueryBalanceRequest {
|
2021-04-19 07:10:57 +00:00
|
|
|
option (gogoproto.equal) = false;
|
2021-01-07 21:45:32 +00:00
|
|
|
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 {
|
2021-04-19 07:10:57 +00:00
|
|
|
option (gogoproto.equal) = false;
|
2021-01-07 21:45:32 +00:00
|
|
|
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 {
|
2021-04-19 07:10:57 +00:00
|
|
|
option (gogoproto.equal) = false;
|
2021-01-07 21:45:32 +00:00
|
|
|
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 {
|
2021-04-19 07:10:57 +00:00
|
|
|
option (gogoproto.equal) = false;
|
2021-01-07 21:45:32 +00:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
2021-04-18 15:54:18 +00:00
|
|
|
// QueryTxReceiptRequest is the request type for the Query/TxReceipt RPC method.
|
|
|
|
message QueryTxReceiptRequest {
|
2021-04-19 07:10:57 +00:00
|
|
|
option (gogoproto.equal) = false;
|
2021-04-18 15:54:18 +00:00
|
|
|
option (gogoproto.goproto_getters) = false;
|
|
|
|
|
|
|
|
// hash is the ethereum transaction hex hash to query the receipt for.
|
|
|
|
string hash = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
// QueryTxReceiptResponse is the response type for the Query/TxReceipt RPC method.
|
|
|
|
message QueryTxReceiptResponse {
|
|
|
|
// receipt represents the ethereum receipt for the given transaction.
|
|
|
|
TxReceipt receipt = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
// QueryTxReceiptsByBlockHeightRequest is the request type for the Query/TxReceiptsByBlockHeight RPC method.
|
|
|
|
message QueryTxReceiptsByBlockHeightRequest {
|
2021-04-19 07:10:57 +00:00
|
|
|
option (gogoproto.equal) = false;
|
2021-04-18 15:54:18 +00:00
|
|
|
option (gogoproto.goproto_getters) = false;
|
|
|
|
|
|
|
|
// height is the block height to query tx receipts for
|
|
|
|
int64 height = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
// QueryTxReceiptsByBlockHeightResponse is the response type for the Query/TxReceiptsByBlockHeight RPC method.
|
|
|
|
message QueryTxReceiptsByBlockHeightResponse {
|
|
|
|
// tx receipts list for the block
|
|
|
|
repeated TxReceipt receipts = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
// QueryTxReceiptsByBlockHashRequest is the request type for the Query/TxReceiptsByBlockHash RPC method.
|
|
|
|
message QueryTxReceiptsByBlockHashRequest {
|
2021-04-19 07:10:57 +00:00
|
|
|
option (gogoproto.equal) = false;
|
2021-04-18 15:54:18 +00:00
|
|
|
option (gogoproto.goproto_getters) = false;
|
|
|
|
|
|
|
|
// hash is the ethereum transaction hex hash to query the receipt for.
|
|
|
|
string hash = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
// QueryTxReceiptsByBlockHashResponse is the response type for the Query/TxReceiptsByBlockHash RPC method.
|
|
|
|
message QueryTxReceiptsByBlockHashResponse {
|
|
|
|
// tx receipts list for the block
|
|
|
|
repeated TxReceipt receipts = 1;
|
|
|
|
}
|
|
|
|
|
2021-01-07 21:45:32 +00:00
|
|
|
// QueryBlockLogsRequest is the request type for the Query/BlockLogs RPC method.
|
|
|
|
message QueryBlockLogsRequest {
|
2021-04-19 07:10:57 +00:00
|
|
|
option (gogoproto.equal) = false;
|
2021-01-07 21:45:32 +00:00
|
|
|
option (gogoproto.goproto_getters) = false;
|
|
|
|
|
|
|
|
// hash is the block hash to query the logs for.
|
|
|
|
string hash = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
// QueryTxLogs is the response type for the Query/BlockLogs RPC method.
|
|
|
|
message QueryBlockLogsResponse {
|
|
|
|
// logs represents the ethereum logs generated at the given block hash.
|
2021-04-19 07:10:57 +00:00
|
|
|
repeated TransactionLogs tx_logs = 1 [(gogoproto.nullable) = false];
|
2021-01-07 21:45:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// QueryBlockBloomRequest is the request type for the Query/BlockBloom RPC
|
|
|
|
// method.
|
2021-04-19 07:10:57 +00:00
|
|
|
message QueryBlockBloomRequest {
|
|
|
|
int64 height = 1;
|
|
|
|
}
|
2021-01-07 21:45:32 +00:00
|
|
|
|
|
|
|
// 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.
|
2021-04-19 07:10:57 +00:00
|
|
|
Params params = 1 [(gogoproto.nullable) = false];
|
2021-01-07 21:45:32 +00:00
|
|
|
}
|
2021-04-18 15:54:18 +00:00
|
|
|
|
|
|
|
// 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;
|
|
|
|
}
|